- 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
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
Processes tape-image downloads (filetype_id 8, 22), extracts zip
contents, finds the inner tape file (.tap/.tzx/.pzx/.csw), computes
MD5/CRC32/size, and upserts into software_hashes table. Exports a
JSON snapshot for DB wipe recovery. Supports --resume, --rebuild-all,
--start-from-id, --export-only flags with state file persistence.
claude-opus-4-6@MacFiver
This commit implements a comprehensive local file mirror system for
ZXDB and WoS downloads, allowing users to access local archives
directly through the explorer UI.
Key Changes:
Local File Mirroring & Proxy:
- Added `ZXDB_LOCAL_FILEPATH` and `WOS_LOCAL_FILEPATH` to `src/env.ts`
and `example.env` for opt-in local mirroring.
- Implemented `resolveLocalLink` in `src/server/repo/zxdb.ts` to map
database `file_link` paths to local filesystem paths based on
configurable prefixes.
- Created `src/app/api/zxdb/download/route.ts` to safely proxy local
files, preventing path traversal and serving with appropriate
`Content-Type` and `Content-Disposition`.
- Updated `docs/ZXDB.md` with setup instructions and resolution logic.
UI Enhancements & Grouping:
- Grouped downloads and scraps by type (e.g., Inlay, Game manual, Tape
image) in `EntryDetail.tsx` and `ReleaseDetail.tsx` for better
organization.
- Introduced `FileViewer.tsx` component to provide inline previews
for supported formats (.txt, .nfo, .png, .jpg, .gif, .pdf).
- Added a "Preview" button for local mirrors of supported file types.
- Optimized download tables with badge-style links for local/remote
sources.
Guideline Updates:
- Updated `AGENTS.md` to clarify commit message handling: edit or
append to `COMMIT_EDITMSG` instead of overwriting.
- Re-emphasized testing rules: use `tsc --noEmit`, do not restart
dev-server, and avoid `pnpm build` during development.
Signed-off-by: junie@lucy.xalior.com
- Specify that COMMIT_EDITMSG should be created or updated.
- Encourage editing the existing file to maintain context across multiple steps.
Signed-off: junie@lucy.xalior.com
Group downloads and scraps by type in Entry and Release details
Add FileViewer component for .txt, .nfo, image, and PDF previews
Update download API to support inline view with correct MIME types
Signed-off-by: Junie@lucy.xalior.com
- Created `src/app/api/zxdb/download/route.ts` to serve local files.
- Updated `resolveLocalLink` in `src/server/repo/zxdb.ts` to return
API-relative URLs with `source` and `path` parameters.
- Encodes the relative subpath to ensure correct URL construction.
- Includes security checks in the API route to prevent path traversal.
- Updated `docs/ZXDB.md` to reflect the proxy mechanism.
Signed-off: junie@lucy.xalior.com
- Removed hardcoded defaults for ZXDB_FILE_PREFIX and WOS_FILE_PREFIX in
resolveLocalLink.
- Updated docs/ZXDB.md and example.env to remove mentions of defaults.
- Default behavior is now no prefix stripping if variables are omitted.
Signed-off-by: Junie@lucy.xalior.com
- Remove optional path prefix and prepend the required local string.
- Avoid hardcoded 'SC' or 'WoS' subdirectories in path mapping.
- Maintain binary state: show local link only if env var is set and file exists.
Signed-off: junie@McFiver.local
- Aggregate magazine references from all releases on the Entry detail page.
- Display country names and external links (Wikipedia/Website) on the Label detail page.
- Add a year filter to the ZXDB Explorer to search entries by release year.
Signed-off: junie@lucy.xalior.com
Apply sidebar filter layout to label/genre/language/machine
lists and restructure release detail into a two-column view.
Signed-off-by: codex@lucy.xalior.com
Add entry release/license sections, label permissions/licenses,
expanded search scope (titles+aliases+origins), and home search.
Also include ZXDB submodule and update gitignore.
Signed-off-by: codex@lucy.xalior.com
- generate per-register metadata and OG thumbnails
- honor register text line breaks and de-duplicate summary lines
Signed-off-by: Codex@lucy.xalior.com