Files
explorer/docs/plans/plan_feature-software-hashes_tape-identifier_implimentation.md

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() to src/server/repo/zxdb.ts
  • Create src/utils/md5.ts — pure-JS MD5 for browser
  • Create src/app/zxdb/actions.ts — server action identifyTape
  • Create src/app/zxdb/TapeIdentifier.tsx — client component with dropzone
  • Insert <TapeIdentifier /> into src/app/zxdb/page.tsx
  • Verify on http://localhost:4000/zxdb

Progress Log

2026-02-17T00:00

  • Started work. Continuing on feature/software-hashes at e27a16e.

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