16 Commits

Author SHA1 Message Date
e803274af4 react-bootstrap migration, review & parser fixes
UI / react-bootstrap:
Migrate client components to react-bootstrap (Card, Table, Form,
Alert, Badge, Nav, Button, Spinner, Row, Col): the ZXDB explorers
and detail pages (Labels, Genres, Languages, MachineTypes, Releases,
Entries), TapeIdentifier, home page, Navbar and ThemeDropdown.
Server components (home, zxdb hub, magazines, issues) keep raw
HTML+className — react-bootstrap barrel imports resolve to undefined
under Turbopack in server components. Replace bi bi-* CSS icons with
react-bootstrap-icons. Add aria-labels to search inputs and
visually-hidden captions to data tables.

Code-review remediation (docs/todo.md):
- FileViewer: replace useState-as-effect with a proper useEffect.
- register.service: restore request-level caching of parsed registers.
- middleware: convert .js to .ts, dev-only request logging.
- Extract shared types to src/types/zxdb.ts; add src/server/repo
  barrel for incremental per-domain splitting.
- Extract helpers: parseIdList (params.ts), serialize (serialize.ts),
  buildRegisterSummary/isInfoLine (register_helpers.ts).
- Add loading.tsx skeletons for dynamic ZXDB detail routes.
- generateMetadata + notFound() on entry/release/label detail pages.
- opengraph-image: stable keys; ThemeDropdown: drop hardcoded cookie
  domain; remove unused page.module.css.

Register parser & data:
- Update data/nextreg.txt from upstream tbblue (SpectrumNext FPGA):
  0x04/0x0A/0x0F/0x80/0x81 bit changes, new Issue 5 board id, 0x43
  renamed "Palette Control", 0xF0/0xF8/0xF9/0xFA now "Issues 4 and 5
  Only".
- Add reg_44 custom parser for 0x44 (Palette Value 9-bit): the two
  consecutive writes render as separate "1st write" / "2nd write"
  modes.
- Skip commented-out register headers so the disabled 0xA3 block no
  longer leaks a phantom register.
- Add detailHasContent guard so body-less registers (0xC7/0xCB/0xCF/
  0xFF) and 0xF0's leading blank no longer emit empty tab strips.
- Capture 0xF0's leading "Issues 4 and 5 Only" line as register text.
- Add isIssueRestricted (case-sensitive) to detect the issue badge
  across rewording without flagging per-bit "(issue 5 only)" notes;
  update badge label to "Issues 4 & 5 Only".

claude-opus-4-8@lucy
2026-06-08 22:47:37 +01:00
e27a16eda1 Ready to add F/E 2026-02-17 16:30:13 +00:00
5a6c536283 feat: add .o tape extension, recompute missing (32,960 rows)
claude-opus-4-6@MacFiver
2026-02-17 16:18:51 +00:00
9efedb5f2e feat: add .p tape extension and --rebuild-missing flag
- Add .p (ZX81 program) to tape file extensions list
- Add --rebuild-missing flag: only processes downloads not yet in
  software_hashes (LEFT JOIN exclusion), avoids recomputing known hashes
- Recomputed: 639 new .p file hashes, total now 32,944 rows

claude-opus-4-6@MacFiver
2026-02-17 16:15:53 +00:00
9bfebc1372 feat: add initial software_hashes JSON snapshot (32,305 rows)
First full run of update-software-hashes.mjs completed:
- 32,305 tape-image downloads hashed (MD5, CRC32, size, inner path)
- Snapshot at data/zxdb/software_hashes.json for DB wipe recovery

claude-opus-4-6@MacFiver
2026-02-17 16:09:55 +00:00
f5ae89e888 feat: add software_hashes table schema and reimport pipeline
- Add softwareHashes Drizzle model (download_id PK, md5, crc32,
  size_bytes, inner_path, updated_at)
- Update import_mysql.sh to reimport from JSON snapshot after DB wipe
- Add pnpm scripts: update:hashes, export:hashes
- Create data/zxdb/ directory for JSON snapshot storage

claude-opus-4-6@MacFiver
2026-02-17 16:06:51 +00:00
dd8794af60 GONE 2025-11-13 15:21:30 +00:00
c306976f3a Adding notes for future work 2025-10-15 23:04:08 +01:00
5b39e84b02 Update parsers to handle more wikilink formats 2025-10-14 13:51:24 +01:00
7c4d93d7ba Fixing up wikilinks 2025-10-13 18:36:05 +01:00
9bc2557ff2 More whitespace, more footnotes, more Case Matching 2025-10-13 18:31:07 +01:00
1bc613dd4e Update whitespace and bullet point refs 2025-10-13 18:12:27 +01:00
3ba737eb03 More whitespace changes 2025-10-10 21:00:50 +01:00
a85d323487 Attempt for project to document itself, and moving to live version of nextreg.txt 2025-10-08 12:28:46 +01:00
0aae6aebfd Trying to get a dokku build :) 2025-10-07 22:01:08 +01:00
50190d002d First version of app, by GPT5 2025-10-07 13:32:22 +01:00