# Changelog 📜 All notable changes to Next Explorer, in roughly chronological order. --- ## 🚧 v0.3.0 — Tapes, Hashes & Downloads *(unreleased, Feb 2026)* The great "what IS this .tap file?" release. ZXDB downloads become first-class citizens with local mirroring, grouping, inline previews, and now the ability to identify a tape by dropping it on the page. ### ✨ New - **Tape Identifier** — drag-and-drop a `.tap`/`.tzx`/`.p`/`.o` file onto `/zxdb` and get instant ZXDB entry matches based on SHA-256 hash lookup 🎯 - **Software hashes database** — 32,960-row snapshot of SHA-256 hashes for known ZXDB downloads, with a pipeline script (`update-software-hashes.mjs`) to rebuild/extend it - **Local ZXDB / WoS mirror support** — proxy downloads through the app's own API so self-hosted mirrors work seamlessly; inline previews rendered without leaving the page - **Magazine reviews** — reviews now shown on magazine issue pages - **Label detail pages** — full label view with releases, genre breakdown, and year filtering - **Year filter** on releases/entries ### 🔧 Improved - Download viewer reworked: grouped by format, inline previews, human-readable sizes - Local file path resolution corrected for edge-cases - Silently skip `/denied/` and other non-hosted prefixes during hash imports --- ## ✅ v0.2.0 — ZXDB Explorer *(December 2025 – January 2026)* The big one. A full cross-linked browser for the ZXDB software database, server-rendered for fast first paint, with deep links everywhere. ### ✨ New - **ZXDB integration** — MySQL via `mysql2` + Drizzle ORM; Zod-validated env (`ZXDB_URL`) - **Entries browser** — search, paginate, filter; deep-links to individual entry pages - **Entry detail pages** — aliases, web references, relations, tags, ports, scores, origins, facets 🗂️ - **Releases browser** — filterable by machine type, genre, label, year; download links - **Labels browser + detail** — label pages with linked releases - **Genres, Languages, Machine Types** — category hubs with entry counts - **Magazines + Issues** — stub magazine browser with issue listing - **Cross-linked UI** — `EntryLink` component used everywhere; Next `Link` for prefetching - **SSR + ISR** — index pages server-render initial data; `revalidate = 3600` on non-search pages for fast repeat visits - **Multi-select machine type filter** with chip toggles; favouring Next hardware by default - **Shared explorer components** — `ExplorerLayout`, `FilterSidebar`, `FilterSection`, `MultiSelectChips`, `Pagination` 🧩 - **Breadcrumbs** decoupled from search input - **Landing page** for `/zxdb` with hub links and hero - **Deploy helper** script (`bin/deploy.sh`) - **OG images** for register pages (happy new year from Codex 🎉) ### 🔧 Improved - ZXDB pagination counters fixed - Facets filter aliasing corrected - Case-insensitive search improvements - Graceful handling of missing `releases` / `downloads` schema tables - Homepage hero updated - Registers sidebar refactored to share explorer components ### 🏗️ Infrastructure - Zod env validation for all ZXDB config - `information_schema.tables` check before querying optional tables - API routes under `/api/zxdb/*` with Zod input validation, Node runtime - ZXDB setup guide at `docs/ZXDB.md` --- ## ✅ v0.1.0 — Registers Explorer *(October – November 2025)* The origin story. Started from a Create Next App scaffold with a GPT-5 assist, then heavily hand-crafted into something actually useful for exploring Spectrum Next hardware registers. ### ✨ New - **Register browser** — loads and parses `data/nextreg.txt`; real-time search/filter with results at a glance - **Register detail pages** — per-mode bitfield views (read/write/common), notes, and source modal - **Source viewer** — inline modal showing the raw `nextreg.txt` source for any register - **Wikilink support** — links parsed from register definitions and rendered as external refs - **Multi-parser architecture** — `reg_default.ts` for standard registers; `reg_f0.ts` for the exotic `0xF0` register; easy to extend 🔌 - **Multi-line footnote support** — parser handles footnotes that span multiple lines - **Deep-linkable search** — `?q=` query param synced to the search box so searches can be bookmarked/shared 🔗 - **Dark mode** — cookie-based theme set server-side to eliminate flash-of-wrong-theme ☀️🌙 - **Bootswatch Pulse theme** — purple primary; react-bootstrap throughout ### 🔧 Improved - iOS bitfield fix — prevent Safari turning hex values into tappable phone numbers 📱 - Parser on-demand (lazy load, not at startup) - Robust case-insensitive search - Linting and dead code removed; hallucination CSS cleaned up - Dokku build pipeline stabilised (pnpm store-dir pinned) - Next.js security bump (Dec 2025) ### 🏗️ Infrastructure - Project self-documents via `CLAUDE.md` / `AGENT.md` - Live `nextreg.txt` used (not bundled snapshot) - Dev runner fixed for local development