Commit Graph
22 Commits
Author SHA1 Message Date
ginnoirandClaude Opus 5 4e0c285347 refactor: drop the mojibake workaround from slugifyStem
slugifyStem carried `.replaceAll('ΓÇÖ', "'")`, which patched a corrupted
apostrophe at the slug layer so three notes with mojibake filenames still
produced correct URLs. The underlying filenames are now repaired, so no stem
contains that sequence and the line is dead code that encodes an assumption
which is no longer true.

Proved it is dead rather than assuming: rebuilt and diffed all 411 generated
slugs against the previous build - identical, nothing moved.

The unit test asserted against the corrupted string, so it was testing the
workaround rather than the behaviour. It now uses the real repaired stem,
'A Farfetch’D Story', which exercises the same thing that actually matters -
that U+2019 becomes a hyphen - and still expects 'a-farfetch-d-story'. Added a
case for 'Fused Dimensions' to pin the non-breaking-space folding, since that
name previously carried U+00A0.

Also syncs the catalog for the Fused Dimensions rename. Verified: npm run check
(0 errors, vitest 9/9), npm run build (486 pages), CI=1 npm run test:ui (8/8),
deployed; live 200 on all seven repaired URLs and the h1 renders without NBSP.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-14 15:03:21 -05:00
ginnoirandClaude Opus 5 e9334f73e8 chore: regenerate slug-keyed manifests after the stem repair
banner-manifest.json and file-manifest.json are build outputs but are tracked,
and both key on the site slug, so the four changed slugs have to be re-emitted
or the next build shows a dirty tree. Content is otherwise identical - only the
four keys and their asset filenames move.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-14 14:53:05 -05:00
ginnoirandClaude Opus 5 e1302517a5 data: sync catalog - 7 repaired note stems, 4 URL changes
Upstream fix repaired seven mojibake note filenames, which the catalog derives
its stems from. Four hack URLs change as a result:

  /hack/a-il/                -> /hack/anil/
  /hack/fused-adimensions/   -> /hack/fused-dimensions/
  /hack/yu-gi-oh-pok-duel/   -> /hack/yu-gi-oh-pokeduel/
  /hack/recharged-yellow-previously-known-as-pok-mon-yellow-cross/
                             -> ...-as-pokemon-yellow-cross/

The three apostrophe cases keep their existing URLs, because slugifyStem already
carries a replaceAll workaround for the mojibake apostrophe. That workaround and
its unit test are now redundant, since no stem contains the sequence any more,
but both are left in place as harmless defensive code.

Entry count unchanged at 411, so no fixture updates. Verified: npm run check
(0 errors, vitest 9/9), npm run build (486 pages, banners regenerated under the
new slugs), CI=1 npm run test:ui (8/8), deployed. Live 200 on all seven repaired
URLs plus core pages; the four retired slugs now 404 as intended.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-14 14:52:51 -05:00
ginnoirandClaude Opus 5 b6651b0723 data: sync catalog - 87 summaries cleaned of raw markdown
Summaries render as plain text in a single <p> (ContentSection.astro,
HackCard.astro), so markdown emphasis, [label](url) links, [[wikilinks]],
callouts, headings and bare URLs all showed literally on the site. All 87
affected summaries rewritten as clean prose upstream in the vault.

Counts unchanged at 411, so no fixture updates. Verified: npm run check
(0 errors, vitest 9/9), npm run build (486 pages), CI=1 npm run test:ui (8/8),
plus a scan of all 411 built pages' rendered Summary paragraphs showing zero
markdown residue.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-14 14:43:18 -05:00
ginnoirandClaude Opus 5 fa92dd25d1 data: sync catalog - repair 11 corrupted version fields
Six versions recovered from evidence (Rutile Ruby 2.2, Clover 1.3.3, Legends -
Kingdom Hearts 3.5, Space World Crystal 4.2, TCG Neo 1.33, Techno Emerald
2.0.6); five set to unknown where no version was ever stated. Rutile Ruby's
download links relabelled to the official build names.

Counts unchanged at 411, so no fixture updates. Verified: npm run check
(0 errors, vitest 9/9), npm run build (486 pages), CI=1 npm run test:ui (8/8),
deployed via scripts/deploy-site.ps1.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-14 14:25:01 -05:00
ginnoirandClaude Opus 5 c473436882 data: sync catalog - Soulgold v1.0.4.2, Z English v2.13
Version-only refresh of two existing entries; catalog count stays at 411 and no
Playwright fixture counts changed.

Verified: npm run check (0 errors, vitest 9/9), npm run build (486 pages),
CI=1 npm run test:ui (8/8), deployed via scripts/deploy-site.ps1. Live 200 for
/hack/soulgold/ (1.0.4.2) and /hack/z/ (v2.13 (EN)).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-14 14:12:46 -05:00
ginnoirandClaude Opus 5 c89dbe7f7d data: sync catalog to 411 hacks + refresh fixture counts
Adds Soulgold, Unchosen, Soulstones, and Soulstones 2: Time Wardens, plus the
new `RPG Maker MV` base route.

Playwright fixtures were two entries stale from the Timeless Diamond /
Spaceless Pearl sync, so they are reset to measured counts rather than deltas:
411 total, GBA 205, PC 86, NDS 52, Expansion 169, New Experience 179, QoL 97,
Complete 348, and the toHaveCount assertions (411 / GBA 205).

Verified: npm run check (0 errors, vitest 9/9), npm run build (486 pages,
banners 411/411), CI=1 npm run test:ui (8/8).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-10 21:01:51 -05:00
ginnoir 1ac9751073 data: add Timeless Diamond + Spaceless Pearl to catalog 2026-07-20 02:23:52 -05:00
ginnoirandClaude Opus 4.8 70d46933bd data: add Pokemblem to catalog + bump fixture counts
FE8 crossover hack (self-hosted in-game banner). Catalog 404 -> 405;
Playwright fixtures updated (405, GBA 204, New Experience 174, Complete 342).
Built and deployed to romhacks.ginnoir.com.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-06 19:25:10 -05:00
ginnoirandClaude Opus 4.8 3562042bc7 data: sync catalog to 404 hacks + bump fixture counts
Adds Hidden Place, Crippling Medical Debt Edition (with self-hosted
boxart banner), and Grimm/Conviction/Miragea's Traveler; restores
Crystal Inheritance to Complete. Playwright fixtures updated (404, PC 83,
New Experience 173, Difficulty 127, QoL 94, Complete 341, GBA 203, Beta 32).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-06 18:52:51 -05:00
ginnoirandClaude Opus 4.8 24811d7950 data: add Pokémon Nova to catalog + bump fixture counts
Nova (PhionGames RPG Maker XP / Essentials PC fangame) synced from the
vault export. Catalog 398->399, PC 78->79; banner manifest + Playwright
count fixtures updated. Built and deployed to romhacks.ginnoir.com.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-06 15:08:14 -05:00
ginnoir ca1a1a21ac data: refresh romhack archive catalog 2026-07-04 19:01:11 -05:00
ginnoir 26cafb2681 Refresh catalog with complete metadata and Fakemon generation filter.
Updates 396-hack catalog data, banner manifest, and Playwright fixtures for full banner coverage, zero gap counts, and Fakemon roster tags in the Generation sidebar.
2026-06-26 14:21:01 -05:00
ginnoir 29d5817ed0 feat: add fakemon and generation filters to catalog sidebar 2026-06-25 15:57:02 -05:00
ginnoir d3647c3eda feat: update catalog to 396 hacks with generations/fakemon fields 2026-06-25 15:56:55 -05:00
ginnoir f3bc721d4a fix: align sidebar filter titles 2026-06-09 18:20:24 -05:00
ginnoir 759d4a6b86 feat: polish homepage catalog stats 2026-06-09 03:54:26 -05:00
ginnoir e566ef4a51 fix: deploy site archive as file 2026-06-08 21:24:00 -05:00
ginnoir 0017a5d10c fix: deploy site with tar stream 2026-06-08 21:23:03 -05:00
ginnoir 2c9fea622b fix: correct deploy script status output 2026-06-08 21:20:25 -05:00
ginnoir 35de3cabdc chore: enforce lf line endings 2026-06-08 21:16:21 -05:00
ginnoir c868800495 feat: add romhack archive site 2026-06-08 21:16:04 -05:00