90 lines
4.9 KiB
Markdown
90 lines
4.9 KiB
Markdown
# 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
|