Skip to content

plan(v0.57): re-grade six shipped artifacts + add RQ-57-COUNTPARAMS (#970) - #972

Merged
avrabe merged 1 commit into
mainfrom
plan/v057-status-970
Aug 14, 2026
Merged

plan(v0.57): re-grade six shipped artifacts + add RQ-57-COUNTPARAMS (#970)#972
avrabe merged 1 commit into
mainfrom
plan/v057-status-970

Conversation

@avrabe

@avrabe avrabe commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

Six v0.57 artifacts still read proposed while their work is merged on main. Re-graded to implemented so "what is left in this release" is a query with a true answer:

artifact issue landed in
RQ-57-SKIPEXIT #952 #960
RQ-57-PROVGAP #944 #967
RQ-57-DOCSWEEP #946 #968
RQ-57-SPWILD #946 #969
RQ-57-A64PARAM #851 #971
RQ-561-ZEROMEM #953 v0.56.1 — shipped two releases ago, never re-graded

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:

  • Severity differs by backend, and each half is stated at the confidence it was established. RISC-V is executed-confirmed: with a poisoned stack it returns 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.
  • ARM is only incidentally correct on the simplest shape (a merge-point str r1,[sp] catches the still-live param) and breaks once a call clobbers the param register. "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 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 verifies link 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_check 43/43.

Refs #970

🤖 Generated with Claude Code

https://claude.ai/code/session_01YJK5LZZEkV5smCY1jKn18L

…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

codecov Bot commented Aug 14, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@avrabe
avrabe merged commit 9a4062c into main Aug 14, 2026
53 checks passed
@avrabe
avrabe deleted the plan/v057-status-970 branch August 14, 2026 14:07
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