plan(v0.57): re-grade six shipped artifacts + add RQ-57-COUNTPARAMS (#970) - #972
Merged
Conversation
…MS (#970) Six artifacts still read `proposed` while their work is on main. Re-graded to `implemented`, so the release-readiness query means something: RQ-57-SKIPEXIT #952 (#960) declined REQUESTED export exits non-zero RQ-57-PROVGAP #944 (#967) verified origins for introduced branches RQ-57-DOCSWEEP #946 (#968) Tiers 2+3 honesty sweep RQ-57-SPWILD #946 (#969) writes_sp 175-of-222 wildcard expanded RQ-57-A64PARAM #851 (#971) aarch64 written-param homing RQ-561-ZEROMEM #953 (v0.56.1) shipped two releases ago, never re-graded NEW: RQ-57-COUNTPARAMS (#970). It has no artifact because nobody planned it — the #851 lane found it while fixing the aarch64 instance of the same shape. An unplanned finding with no artifact is invisible to the release query, which is exactly how #933 slipped a release, so it gets one now. What it records that the issue alone does not: * The severity differs by BACKEND and both halves are stated at the confidence they were established. RISC-V is EXECUTED-confirmed: with a poisoned stack the function returns 0xDEADBEEF — an UNINITIALISED stack slot, i.e. previous frame contents. That is information disclosure, not a wrong value. ARM's exact wrong value was INFERRED FROM DISASSEMBLY, never executed; the artifact says so, because the #851 lane's first draft stated it as measured and the advisor caught it. * ARM is only INCIDENTALLY correct on the simple shape (a merge-point `str r1,[sp]` catches the still-live param) and breaks once a call clobbers the param register — so "ARM looks fine" is not evidence. * Red-first must be per-backend BY EXECUTION. Assuming one backend's evidence transfers is what left this latent after the aarch64 fix. * The named residual survives: the `None` branch of `current_func_param_count` still uses the unsound heuristic — unreachable from the CLI, reachable via the direct `compile_function` API. Per the user's direction this ships in v0.57 rather than as a v0.56.3 patch. rivet: errors unchanged (50 before and after); warnings 164 -> 166, which is the two every artifact in this file carries (trailer-reference naming, and the `verifies` link that lands with the test) — verified identical for RQ-57-SPWILD and RQ-57-GPIO, so this is one more artifact of the same shape, not a new defect. claim_check 43/43. Refs #970 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01YJK5LZZEkV5smCY1jKn18L
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Six v0.57 artifacts still read
proposedwhile their work is merged on main. Re-graded toimplementedso "what is left in this release" is a query with a true answer:New: RQ-57-COUNTPARAMS (#970)
It had no artifact because nobody planned it — the #851 lane found it while fixing the aarch64 instance of the same code shape. An unplanned finding with no artifact is invisible to the release query, which is precisely how #933 slipped a release.
What the artifact records that the issue alone does not:
0xDEADBEEF— an uninitialised stack slot, i.e. previous frame contents. That is information disclosure, not merely a wrong value. ARM's exact wrong value was inferred from disassembly, never executed — recorded as such, because the lane's first draft stated it as measured and the advisor caught it.str r1,[sp]catches the still-live param) and breaks once a call clobbers the param register. "ARM looks fine" is not evidence.Nonebranch ofcurrent_func_param_countstill uses the unsound heuristic — unreachable from the CLI, reachable via the directcompile_functionAPI.Per direction, this ships in v0.57 rather than as a v0.56.3 patch.
Gates
rivet errors unchanged (50 before and after). Warnings 164 → 166 — those two are the ones every artifact in this file carries (trailer-reference naming, and the
verifieslink that lands with the test); verified identical counts for RQ-57-SPWILD and RQ-57-GPIO, so this is one more artifact of the same shape, not a new defect class.claim_check43/43.Refs #970
🤖 Generated with Claude Code
https://claude.ai/code/session_01YJK5LZZEkV5smCY1jKn18L