1.4 KiB
1.4 KiB
WIP: Tape Identifier Dropzone
Branch: feature/software-hashes
Started: 2026-02-17
Status: Complete
Plan
Implements the tape identifier feature from docs/plans/tape-identifier.md.
Drop a tape file on the /zxdb page → client computes MD5 + size → server action looks up software_hashes → returns identified ZXDB entry.
Tasks
- Add
lookupByMd5()tosrc/server/repo/zxdb.ts - Create
src/utils/md5.ts— pure-JS MD5 for browser - Create
src/app/zxdb/actions.ts— server actionidentifyTape - Create
src/app/zxdb/TapeIdentifier.tsx— client component with dropzone - Insert
<TapeIdentifier />intosrc/app/zxdb/page.tsx - Verify on http://localhost:4000/zxdb
Progress Log
2026-02-17T00:00
- Started work. Continuing on
feature/software-hashesate27a16e.
2026-02-17T00:01
- All implementation complete. Type check passes. Ready for visual verification.
Decisions & Notes
- Uses RSC server actions (not API routes) to discourage bulk scripting.
- MD5 computed client-side; file never leaves the browser.
- No new npm dependencies — pure-JS MD5 implementation (~130 lines).
- TapeIdentifier placed between hero and "Start exploring" grid in a row layout with explanatory text alongside.
Blockers
None.
Commits
fc513c5 - wip: start tape identifier — init progress tracker
8624050 - feat: add tape identifier dropzone on /zxdb