Files
CodeWhale BotandClaude Opus 5.5 8c6e61c82a feat(web): give every release its own release-notes page (CW-7497)
codewhale.net/<locale>/changelog/<version> shows every entry of one
released version, section by section with each section's entry count,
from the same CHANGELOG.md derivation as /changelog. The post-update
notice in the TUI and CLI links here, so the address has to keep working
after a release falls off the list page (which shows the newest six
releases and twelve entries per section): all 46 released versions are
derived into lib/release-notes.generated.ts, untracked like
changelog.generated.ts (~730 KB, imported only by the new route). Pages
render on demand and are cached (generateStaticParams returns []), the
same pattern as /ratatui/[component]. A v-prefixed version redirects to
the bare one; an unknown version is a 404. English and Chinese copy;
other locales fall back to English chrome and canonicalize to /en.

/changelog now links each released version's "Full notes" and its
"12 of 49 entries shown" cap to that page instead of the 800 KB
CHANGELOG.md on GitHub; Unreleased still links GitHub.

Not deployed.

Checks run on this source:
- npx tsc --noEmit: 0 errors
- npx eslint on the changed files: 0 problems
- npx vitest run lib/changelog.test.ts lib/i18n/dictionaries.test.ts:
  2 files, 26 passed, 0 failed
- npx next build: compiled; /[locale]/changelog/[version] listed as an
  on-demand static route
- next dev in the in-app browser: /en and /zh/changelog/0.10.2 render all
  seven sections with every entry; /en/changelog/v0.10.2 redirects,
  /en/changelog/9.9.9 is 404, /en/changelog/0.8.40 is 200; the zh page
  has no horizontal scroll at 375 px.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-21 10:59:08 -07:00

23 lines
526 B
Plaintext

node_modules
.next
.open-next
.wrangler
.cloudflare
.env
.env.local
.env.*.local
*.log
.DS_Store
next-env.d.ts
.vercel
tsconfig.tsbuildinfo
.dev.vars
# Derived at build/test time from CHANGELOG.md and docs/INSTALL.md. Not
# tracked: two PRs that each regenerated a committed copy against their own
# base merged to a stale file and reddened main (2026-09-26). `npm run
# prebuild`, `npm run dev` and the vitest global setup write them.
lib/changelog.generated.ts
lib/release-notes.generated.ts
lib/install-guide.generated.ts