Skip to content

chore(release): v0.53.0 — "The last mile" (7 lanes) - #892

Merged
avrabe merged 2 commits into
mainfrom
release/v0.53.0
Jul 30, 2026
Merged

chore(release): v0.53.0 — "The last mile" (7 lanes)#892
avrabe merged 2 commits into
mainfrom
release/v0.53.0

Conversation

@avrabe

@avrabe avrabe commented Jul 30, 2026

Copy link
Copy Markdown
Contributor

Release assembly for v0.53.0. All seven lanes are already merged to main; this PR carries the version sweep, lockfile refresh, regenerated docs and the CHANGELOG headline.

Lanes (all merged, each CI-gated)

L1 #885 VFP register-file spilling — the GI-FPU-002 exhaustion rung (#881, VCR-RA-004)
L2 #886 RISC-V Lend0 root-cause + a second param-clobber-across-call bug (#882)
L3 #887 RV32 br_table + hard-error on unknown --target (was silently selecting the arm backend)
L4 #888 range-realloc cross-barrier soundness — pass and validator (#872)
L6 #884 make the gates real: CI-wire gpio-thin + rv32-boot, claim-pin template prose (#879/#880)
L7 #889 aarch64 VCR-SEL-005 third-backend parity gate + 13 measured op gaps (#851, #883)
L5 #891 VCR-DEC-001 graph colouring across if/else joins — measured, flag-off (#242)

Assembly checklist

  • Version sweep: workspace + all 13 intra-workspace path-dep pins + MODULE.bazel + status.json
  • Cargo.lock refreshed to 0.53.0 — v0.52 cold review caught a stale lock; no CI job builds --locked, so this is a release-process gate, not a CI one
  • Docs regenerated once at assembly (fix(claims): regenerate status.json + FEATURE_MATRIX for #803 trunc_sat ops (main is red) #805); lanes never hand-edit generated artifacts
  • claim_check 34/34 · check_version_pins OK · frozen anchors 10/10 · build 0 · fmt 0

Per the v0.52 lesson, this PR merges before the tag is cut, so v0.53.0 is an ancestor of main.

Version sweep: workspace + all 13 intra-workspace path-dep pins + MODULE.bazel
+ status.json, Cargo.lock refreshed to 0.53.0 (v0.52's cold review caught a
stale lock; no CI job builds --locked, so this one is on the release process).
Docs regenerated once at assembly per #805 -- lanes do not hand-edit generated
artifacts. claim_check 34/34, check_version_pins OK.

CHANGELOG headline added by the coordinator over the 8 lane-written entries.

Co-Authored-By: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YJK5LZZEkV5smCY1jKn18L
@codecov

codecov Bot commented Jul 30, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

…CLOSED

Cold review found the v0.53 assembly was about to ship the SAME defect class as
v0.51 and v0.52, with a new twist: the ledger was defending it.

F1 (BLOCK) — the FEATURE_MATRIX "Honest Summary" cited #881, #882 and #872 as
open residuals. All three were CLOSED by lanes in THIS release. Root cause is a
lane-ordering race: L6's doc-honesty commit landed 2026-07-29 15:28 and said
"honest-summary residual examples now cite the actually-open issues
(#881/#882/#872)" -- true when written; L1 closed #881 fourteen hours later. The
doc-honesty lane ran FIRST and nobody re-swept after the fixes landed. The
document had become self-contradictory: the summary said RV32 br_table still
declines while the backend row three sections up said it lowers. Re-pointed at
genuinely-open issues (#890, #851, #846), verified against `gh issue view`.

F2 (BLOCK) — claims.yaml PINNED the stale "#881" verbatim, so `claim_check`
reported 34/34 while green-confirming a false residual, and correcting the prose
would have turned the gate RED. CLAUDE.md says never fix a red gate by loosening
the ledger; this was the inverse -- a ledger entry that had gone false, so the
gate protected the defect instead of catching it.

The fix is structural, not a re-point: an ISSUE-NUMBER pin goes stale the moment
the issue is fixed, because `verbatim` only asserts the phrase is PRESENT. This
pin has now been wrong twice for exactly that reason (#782, then #881). It now
pins the CAPABILITY GAP -- "single-precision FPUs", the i64-from-f32 decline
that genuinely remains -- which becomes false precisely when the gap closes.
Red-first verified: replacing the phrase reddens SYNTH-F32-F64-VFP (exit 1),
restoring it returns green.

F3 -- three of seven lanes had NO changelog entry, including L4/#872: a
default-on soundness fix that MOVED SHIPPED BYTES (gust_poll 692->696, fact-spec
132->140). A user diffing v0.52->v0.53 output would have found no explanation.
Added L1 (#885), L4 (#888) and L7 (#889) entries, and collapsed a duplicate
`### Added` section that violated the Keep-a-Changelog structure the release
process mandates.

F4 -- README declared "No multi-memory" while the matrix (corrected this
release) says P with a CI-wired differential. Multi-memory phase 1 shipped in
v0.43 (#749); the README line was ~10 releases stale, so v0.53 would have
shipped two documents disagreeing about a capability.

F5 -- the #880 changelog entry claimed every pinned phrase is bound to its
oracle AND that oracle's CI wiring. SYNTH-MATRIX-WCET-COMPOSITION has neither --
the sound-WCET-bound row, one of the most safety-load-bearing claims in the
matrix, is the single exception. Named it rather than softening it away.

F6 -- #872's real remaining hole (a mid-segment `Pop {…,PC}` the segment-local
validator misses) and VCR-DEC-001's (a wrong-return-register rewrite accepted by
`validate_cfg_rewrite` AND VCR-RA-003 both, caught only by execution) existed
only in Rust doc-comments. Both now stated in the matrix and CHANGELOG: the
release was simultaneously OVERSTATING what is open and OMITTING what is.

claim_check 34/34, docs regenerated, render byte-fresh.

Co-Authored-By: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YJK5LZZEkV5smCY1jKn18L
@avrabe
avrabe merged commit 01d8a2a into main Jul 30, 2026
50 checks passed
@avrabe
avrabe deleted the release/v0.53.0 branch July 30, 2026 11:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant