release: 8.0.0 - #305
Conversation
Six breaking changes from one whole-repo bug sweep, and 87 non-breaking fixes
alongside them. `wiki/Upgrading.md` gains the `7.x -> 8.0.0` section; every
entry names the manual edit, because no release here has ever shipped a codemod.
The six, in the order the upgrade guide walks them:
1. @ultimat3/realtime splits into `.` and `./server`. One barrel carried
`useLive` beside `openNatsClient`, so an entry importing only the hook
failed to build for the browser — the island this framework tells you to
write could not be bundled.
2. IdempotencyStore.settle and fail take the reservation id. THE SILENT ONE:
a store with the old two-parameter method still compiles and silently
loses the fence.
3. pwa.installPrompt, auth.afterSignInPath and ai.modelEnv are deleted. No
replacement key, because there was never a behaviour.
4. @ultimat3/manifest drops `canonical` — the third of five copies of one
serialiser, and the one feeding contract-diff equality.
5. @ultimat3/render drops matchRoute/RouteMatch — the second of two exported
matchers, with zero consumers.
6. SQL_CANCEL projects its columns instead of `returning *`.
Stamped with `scripts/release.ts --bump major`: 30 workspaces at 8.0.0,
[Unreleased] promoted, a fresh empty section opened above it. `bun.lock`
regenerated (222 recorded facts) and `wiki/_Footer.md` restamped — both caught
by the checks this release added, which is the first time either has been
mechanical rather than remembered.
`bun run verify` 14/19, 5 skipped, exit 0. `reference-app-gate` every pin holds.
`scripts/release.ts --check 8.0.0` green.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0135KMN4Tfq1xhMwts1FNvis
|
Warning Review limit reachedYou’ve reached a temporary PR review limit under our Fair Usage Limits Policy. Next review available in: 14 minutes Limit details: You’ve used the included review currently available. Your 73 included PR review attempts over the past 7 days set your current allowance at 1 review per hour. You’re in a promotional period — use the checkbox below to run this review for free:
On-demand reviews are free for the next 29 days. After that, they cost $0.25 per reviewed file. How can I continue?Run this review now using the option above, or comment You can also wait for the limit to reset, then comment An organization admin can change what happens after included review limits in Billing. How do review limits work?CodeRabbit enforces per-developer PR review limits within each organization. For paid Pro and Pro+ reviews, CodeRabbit uses a developer's included PR review attempts over the past 7 days to set the current hourly allowance. At typical activity levels, the full plan allowance applies. Higher sustained activity can lower the allowance until earlier attempts leave the 7-day window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Path: .coderabbit.yml Review profile: ASSERTIVE Plan: Pro Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (46)
Comment |
…published (#306) Every slice complete across 7 PRs (#288, #291, #292, #294, #298, #301, #303) plus the release (#305). 8.0.0 is on npm, 30/30 attested. Ten findings escaped their slice rather than being absorbed into it, and each is an issue rather than a line in a report: #289, #290, #293, #295, #296, #297, #299, #300, #302, #304. Claude-Session: https://claude.ai/code/session_0135KMN4Tfq1xhMwts1FNvis Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Cuts 8.0.0 — six breaking changes from deep-dive sweep two, and 87 non-breaking fixes alongside them, across seven merged PRs (#288, #291, #292, #294, #298, #301, #303).
The six breaking changes
@ultimat3/realtime→.+./serverIdempotencyStore.settle/failtake a reservation idpwa.installPrompt,auth.afterSignInPath,ai.modelEnvdeleted@ultimat3/manifestdropscanonicalcanonicalJsonfrom@ultimat3/core@ultimat3/renderdropsmatchRoute/RouteMatch@ultimat3/http's trie is the live matcherSQL_CANCELprojects its columns#2 is the one to read even if nothing else applies. A store implementing the old two-parameter method still compiles — a shorter function is assignable to a longer signature — and silently loses the fence.
wiki/Upgrading.mdsays so in bold.#1 is the one that was costing users most. The single barrel carried
useLivebesideopenNatsClient, sobun build --target=browseron an entry importing only the hook failed with "Browser build cannot require() Node.js builtin:stream/web". The islandwiki/Realtime.mdtells you to write could not be bundled at all.What the stamp did
bun run scripts/release.ts --bump major— 30 workspaces at 8.0.0,[Unreleased]promoted to## 8.0.0 - 2026-08-23, a fresh empty section opened above it, and the 9 commits sincev7.0.0appended under### Commits.Two things it did not do, both caught by checks this release added:
bun.lock— 222 recorded facts disagreed with theirpackage.jsonafter the bump. The check that catches this is the one this sweep fixed: it previously matched[a-z-]+(missingi18n) and anchored onpackages/(skipping every app), and had been green over 72 stale ranges plus 30 stale workspace versions.wiki/_Footer.mdstill saidv7.0.0. It is the one page that is allowed to state the version, andversion-stamps.tsnames it.Both are now mechanical rather than remembered.
One thing I did not paper over
wiki/Upgrading.md's table has always had a1.x → 2.0.0row pointing at a2.0.0section the page has never carried — 2.0.0 is the largest major this project has shipped (33 entries) and the only one with no walkthrough.changelog-checkcould not see it: it verifies the table row, not that a section with that heading exists.The row now says so out loud, and #304 carries both halves: write the section, and tighten the check to assert the heading rather than the row.
Gate
bun run verifybun run scripts/reference-app-gate.tsbun run scripts/release.ts --check 8.0.0bun run scripts/lockfile-pins.tspackage.jsonbun run scripts/version-stamps.tsbun run changelog-checkAfter merge
Annotated
git tag -a v8.0.0(never lightweight —--follow-tagsskips those, which is howv4.0.0was left local and its Release could not be created), push, publish the GitHub Release, approve thenpm-publishenvironment, then confirm withscripts/registry-audit.ts --jsonthat all 30 are on npm at 8.0.0 with attestations.🤖 Generated with Claude Code
https://claude.ai/code/session_0135KMN4Tfq1xhMwts1FNvis
Need help on this PR? Tag
@codesmith-botwith what you need. Autofix is disabled.