From fc513c580badb5b11e6a533da642343515b900ef Mon Sep 17 00:00:00 2001 From: "D. Rimron-Soutter" Date: Tue, 17 Feb 2026 16:32:22 +0000 Subject: [PATCH] =?UTF-8?q?wip:=20start=20tape=20identifier=20=E2=80=94=20?= =?UTF-8?q?init=20progress=20tracker?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit opus-4-6@McFiver --- ...e-hashes_tape-identifier_implimentation.md | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 docs/plans/plan_feature-software-hashes_tape-identifier_implimentation.md diff --git a/docs/plans/plan_feature-software-hashes_tape-identifier_implimentation.md b/docs/plans/plan_feature-software-hashes_tape-identifier_implimentation.md new file mode 100644 index 0000000..66bfc64 --- /dev/null +++ b/docs/plans/plan_feature-software-hashes_tape-identifier_implimentation.md @@ -0,0 +1,38 @@ +# WIP: Tape Identifier Dropzone + +**Branch:** `feature/software-hashes` +**Started:** 2026-02-17 +**Status:** In Progress + +## Plan + +Implements the tape identifier feature from [docs/plans/tape-identifier.md](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 `` 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`. + +## 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. + +## Blockers + +None currently. + +## Commits +