v0.74.0 — the changelog moves to the help site
The Changelog tab has never rendered the changelog. It bundles CHANGELOG.md?raw, splits it
on # , and prints each line as a <Text> with a regex for bullets — so links arrive as
literal text, tables as pipes, and the 123 per-version notes the changelog only links
to do not arrive at all. Everything under "Released" is a list of markdown that goes
nowhere. The history is shipped and unreadable.
The fix is not a better renderer in the app. docs/help is already a wiki, already rendered
by ursa, already published on its own origin, and the app already embeds it for the Guide.
So the changelog is hoisted into that wiki before it builds — the file, and every
document reachable from it, rewritten so the copy is internally consistent — and the app's
Changelog tab becomes what the Guide tab already is: the wiki, showing a page.
Hoisting rather than authoring, because CHANGELOG.md is a working file at the repo root
that every release edits, and a second copy under docs/help/ would be stale by the next
commit. The generated tree is gitignored for the same reason.
Help site
- [x] Hoist the changelog, and everything it links to, into the wiki at build time.
A dependency-free
apps/help/scripts/hoistChangelog.mjsthat runs before ursa onbuild,devandtest. Transitive, because a changelog whose per-version notes 404 is the same unreadable history in a nicer font: it follows relative markdown links fromCHANGELOG.mdand copies every document it reaches intodocs/help/changelog/, rewriting links so hoisted documents point at each other, documents already in the wiki are linked rather than copied a second time, and anything that cannot be hoisted — the source files the notes cite, and the ~130 links in this corpus that are already broken in the repo — degrades to its own link text rather than to a 404. - [x] Point the app's Changelog at that page. The tab renders
HelpWikionchangelog/index, exactly as the Guide tab renders it on a wiki page; theCHANGELOG.md?rawimport, the bespoke parser's second caller, and the accordion go with it. One constant (HELP_CHANGELOG_PAGE) names the page on the app's side and the script names the directory on the wiki's, with a contract test holding the two together — a rename that missed one would leave the tab on a 404.