david
b69e1d81ab
debug: add console logging to browseWavs and playWav
2026-06-22 00:42:18 -07:00
david
4f03524668
chore: add JS/ESLint toolchain, refactor onclick to event delegation
...
- Add ESLint config for web/ui (flat config, golangci-lint-compatible)
- Add js-lint task to mise.toml (npm run lint in web/ui)
- Add ESLint check to check-toolchain.sh
- Add .golangci.yml for golangci-lint v2 with correct exclusions
- Refactor app.js: replace inline onclick with data-action + event delegation
- Add null checks and HTTP status checks to browseWavs
- Add web/ui/node_modules/ to .gitignore
2026-06-22 00:10:49 -07:00
david
f716902580
fix: handle null data in browseWavs, add HTTP status check
...
Avoid 'Cannot read properties of null (reading error)' when server
returns null or non-JSON. Also check resp.ok before parsing JSON.
2026-06-22 00:02:32 -07:00
david
cf53912a33
feat: Audio Preview Player — browse and play WAV samples via Web Audio API
...
Issue: #9
Backend:
- GET /api/list-wavs?dir=<path> — lists .wav files in a directory
- GET /wavs/<file> — static file serving from ./output/wavs
Web UI:
- WAV Browser section with path input + Browse button
- AudioContext-based playback (zero deps) — progress bar, time display
- WAV file grid with Play buttons, active item highlighting
Tests:
- 3 new tests for handleListWavs (wav files, empty dir, nonexistent dir)
- Fix TestFindAkaiutil: add t.Chdir(tmp) so relative path lookups don't
accidentally find the repo's third_party/akaiutil/akaiutil binary
2026-06-22 00:01:15 -07:00
david
f195ba5a5c
ui: move search results below download/extract controls
...
Search bar stays at top as the "command center".
Download queue and extract controls follow.
Results render at the bottom — the main scrolling area.
2026-06-21 22:35:18 -07:00
david
e2dbb66525
feat: web UI + HTTP server + Electron shell
...
- serve.go: embedded web UI (embed.FS), REST API endpoints for
search, list, download (SSE progress), and WAV extraction
- main.go: added serve subcommand and flag registration
- web/ui: vanilla JS frontend with search cards, download queue,
extract controls; dark theme, zero dependencies
- electron/: Electron wrapper that spawns fetch serve as sidecar,
reads port from stdout, creates BrowserWindow; electron-builder
config for macOS .app bundle with akaiutil + script as resources
Refs #1 , #9
2026-06-21 19:46:30 -07:00