feat: Disk Browser — browse AKAI disk filesystem in web UI #1

Open
opened 2026-06-22 02:37:00 +00:00 by david · 1 comment
Owner

Feature: Disk Browser

As a sample library curator
I want to browse the contents of an AKAI disk image (.iso) through the web UI
So that I can see what partitions, volumes, and sample files exist without the arcane akaiutil CLI

Acceptance Criteria

Scenario: Browse a single-partition ISO

Given a local AKAI disk image at ./output/isos/my-sample-cd.iso
When I open the Disk Browser in the web UI and select that ISO
Then I see a tree view showing:
  Partition A → Volume "DRUM_KIT_1" → SINE.S, KICK.S, SNARE.S
And each sample file shows its type (S900/S1000/S3000) and size

Scenario: Browse a multi-partition ISO

Given an AKAI disk image with partitions A through E
When I browse it in the Disk Browser
Then I can expand each partition to see its volumes
And I can expand each volume to see its files

Scenario: Empty/broken disk image

Given a disk image with no valid AKAI filesystem
When I attempt to browse it
Then I see "No valid AKAI partitions found" and the CLI `df` output for diagnosis

Implementation Notes

  • Shell out to akaiutil with df, dir, dirrec commands in a single session
  • Parse structured output from akaiutil; use lsrec for flat listing
  • Serve tree data as JSON from /api/browse?iso=<path> endpoint
  • akaiutil automates: cd /disk0/A/<volume>, dir, infoall
  • Start simple: single-session read-only browse, no write operations yet

Karpathy Principle

Start with the simplest thing that works: dfdir per partition, render as a tree in the UI. No metadata, just read-only browse.

## Feature: Disk Browser **As a** sample library curator **I want to** browse the contents of an AKAI disk image (.iso) through the web UI **So that** I can see what partitions, volumes, and sample files exist without the arcane `akaiutil` CLI ### Acceptance Criteria **Scenario: Browse a single-partition ISO** ``` Given a local AKAI disk image at ./output/isos/my-sample-cd.iso When I open the Disk Browser in the web UI and select that ISO Then I see a tree view showing: Partition A → Volume "DRUM_KIT_1" → SINE.S, KICK.S, SNARE.S And each sample file shows its type (S900/S1000/S3000) and size ``` **Scenario: Browse a multi-partition ISO** ``` Given an AKAI disk image with partitions A through E When I browse it in the Disk Browser Then I can expand each partition to see its volumes And I can expand each volume to see its files ``` **Scenario: Empty/broken disk image** ``` Given a disk image with no valid AKAI filesystem When I attempt to browse it Then I see "No valid AKAI partitions found" and the CLI `df` output for diagnosis ``` ### Implementation Notes - Shell out to `akaiutil` with `df`, `dir`, `dirrec` commands in a single session - Parse structured output from akaiutil; use `lsrec` for flat listing - Serve tree data as JSON from `/api/browse?iso=<path>` endpoint - akaiutil automates: `cd /disk0/A/<volume>`, `dir`, `infoall` - Start simple: single-session read-only browse, no write operations yet ### Karpathy Principle Start with the simplest thing that works: `df` → `dir` per partition, render as a tree in the UI. No metadata, just read-only browse.
david added the featuredisk-opsweb-ui labels 2026-06-22 02:37:00 +00:00
Author
Owner

Infrastructure is now in place on main:

  • HTTP server (fetch serve) with embedded web UI and SSE progress
  • REST API endpoints for search, list, download, extract, progress
  • Electron shell for desktop packaging
  • Docker compose serving on :8080

Ready to implement: add /api/browse to shell out to akaiutil df/dir/dirrec, parse structured output into a JSON tree, and render in the web UI as an expandable file tree.

Infrastructure is now in place on main: - HTTP server (fetch serve) with embedded web UI and SSE progress - REST API endpoints for search, list, download, extract, progress - Electron shell for desktop packaging - Docker compose serving on :8080 Ready to implement: add /api/browse to shell out to akaiutil df/dir/dirrec, parse structured output into a JSON tree, and render in the web UI as an expandable file tree.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: david/akai-utils#1