Skip to content

v0.91 planning: anchor at v0.90.0 and the v0.91 scope, gale's silent classes first - #1675

Merged
avrabe merged 1 commit into
mainfrom
v091-plan
Nov 8, 2026
Merged

avrabe merged 1 commit into
mainfrom
v091-plan

Conversation

@avrabe

@avrabe avrabe commented Nov 8, 2026 •

Copy link
Copy Markdown
Contributor

Refs #1672 #1568 #1604 #1145 #1661 #1191 #1301 #739 #1645 #1640 #910 #1286 #1636 #1673 #1643 #1460 #1136 #1575

Opens the v0.91 window: the anchor moves to v0.90.0, and artifacts/release-v0.91/ holds the scope. Modelled on the v0.90 planning PR (#1652). Nothing is delivered here. Every record is status: proposed, so issue_closure_check --release v0.91 authorises nothing.

Order of work

gale's requests rank highest, then wrong code, then the themes, then the carried items. Every refuting command was RUN on 2945628 (the v0.90.0 tag commit) with a fresh 0.90.0 debug build, and its output is in the record. Every one came back LIVE. RQ-91-ARCHMODEL12 is a filing, not a defect.

Record Priority Issue (where analysed) Refuter on 2945628
RQ-91-NPADATAPTR must (gale a) #1672 LIVE: tbl() faults on an unmapped read, wasmtime returns 0x88776655; the anchor control is equal
RQ-91-NPARESID1568 must (gale a) #1568 LIVE: constant through i32.add / select, 1 of 4 equal
RQ-91-NPARESID1604 must (gale a) #1604 LIVE: a straddle reached through arithmetic faults, wasmtime returns 0x22110000; near miss: a constant-destination fill is refused loudly
RQ-91-NPAMODEL must (theme) #739 (closed) LIVE: 15 shipped fn npa_* definitions, 3 of them refusal checks at 3 call sites; the 5 wired NPA oracles each exit 0 (the baseline). The grep uses [[:space:]]: git grep -E has no \s, and with \s the same command prints a false 2
RQ-91-MPUENFORCE must (gale b) #1145 LIVE: self-contained refuses with rc 1; relocatable with --embedder-mpu gives rc 0, an object byte-identical to no --safety-bounds, with no MPU programming
RQ-91-NPASWBOUNDS must (gale) #1661 LIVE: software/npa 0 of 4 in-bounds memory-0 calls equal, all trap; the none/npa control is 4 of 4
RQ-91-COMPEXPORTS must (gale) #1191 LIVE (export half) on a wac-composed toy; the import half does not reproduce there, and gale-nano was not available
RQ-91-ARMV6M must (gale) #1301 LIVE: cortex-m0plus and cortex-m0 are unknown targets
RQ-91-IMAGEBUILDER must (theme) #1645 (closed) LIVE: 12 builder definitions, 10 distinct, in synth-cli
RQ-91-R5DATAINIT must (unfiled) #1640 (closed) LIVE: the cortex-r5 image is .text only, with 0 segment bytes and no global init; the cortex-m3 control places both
RQ-91-M3SELFBL must (unfiled) #1645 (closed) LIVE: b2: f7ff fffe bl b2
RQ-91-EMUFLOOR should (theme) #910 (closed) LIVE: 1 literal site in ci.yml, mirrored in claims.yaml; V gives rc 0, V±1 give rc 1; 9 of 16 window commits touch ci.yml, and all 9 move the floor line; 50 selector waivers
RQ-91-SUPPORTLEVELS should (theme) #1286 (closed) LIVE: 0 support-level hits, no x86 crate
RQ-91-SPECDRIFT should #1636 (closed) LIVE: a corrupted i32.wast:37 gives RESULT PASS, rc 0, state-skew=1
RQ-91-MEMKFLOAT should #1673 LIVE: only the integer control function is emitted, on m4f and m7dp
RQ-91-CORPUS should #1643 (closed) LIVE: the volume is still unmounted
RQ-91-NPM10 should #1460 LIVE: latest is 0.69.0; 0.90.0 returns 404; run 42434103438 failed at step 7 with E_STAGE_REQUIRED
RQ-91-ARCHMODEL12 should #1136 FILED, NOT PERFORMED; spar#445 is open
RQ-91-TRIPWIREPROT should #1636 (closed) LIVE: the Claim Check log on 2945628 reads live required-context list UNAVAILABLE
RQ-91-TRIPWIREEXPR should #1636 (closed) LIVE: 5 of 10 required contexts have an expression runs-on
RQ-91-EXTRACTR1 should #1575 (closed) LIVE: 090 ×21 and 0892 ×12; 3 thousands-separator pairs split

Why each theme has the priority it has.

  • The address model is MUST. It is the vehicle for gale's first-ranked silent classes, and success is counted in checks deleted.
  • The image builder is MUST. It carries two silent wrong-code defects. They are UNFILED by decision, so they are stated in records and no issue is filed.
  • The derived floor is SHOULD. It is merge friction and a hand-kept second copy, not wrong code.
  • Support levels are SHOULD. They make the public claims honest and change no emitted code. x86-64 enters at L3. It is a request the maintainer relayed from Christof, and it has no issue.

The issue: field. R5 requires one on every release record since v0.60. Where nothing was filed, the record cites the CLOSED issue where the matter was analysed (the #345 convention). An authorised issue that is already closed satisfies the closure obligation, so issue-scope: closes authorises nothing there. issue_closure_check still attributes #1636's and #1643's closures to v0.90.

Anchor

ANCHOR_TAG and ANCHOR_PROGRAMME move at both sites each. ANCHOR_DELIVERY does not move. The values are read off the gate's own line:

status-evidence-anchor: v0.90.0 — 134 delivery commits (pinned 134), 715 artifacts (pinned 715), lag 0

That is 715 against 696 at v0.89.2, a gap of 19, equal to the 19 RQ-90 ids. Paired control:

  • 714 and 716 fail A2.
  • 133 and 135 fail A1.
  • 696 fails A2 on this tree.
  • 715 with the tag back at v0.89.2 fails A2 and CENSUS.
  • With the tag at v0.90.0 and no release-v0.91/ directory, the gate fails A0 and CENSUS.

Gates, on this branch

  • claim_check: 77/77 claims hold.
  • status_evidence_check: rc 0, 0 failures.
  • verdict_prose_check: 218 artifacts, 0 disagree.
  • release_file_statistics_scan --release v0.91: 0 digit hits and 0 word hits. The release file is comments-only and names no issue.
  • recurring_na_filing_check: release under cut: v0.91, steps-1-2 filing VISIBLE: RQ-91-ARCHMODEL12, failures 0.
  • issue_closure_check --release v0.91 --since-tag v0.90.0 --allow-unclosed: 0 authorised and 0 held open. It reports VACUOUS AUTHORISED SET, which is the planning state, and rc 0 with --allow-vacuous-authorised. The v0.90 audit is unchanged: 15 authorised, 2 held open, 0 failures.
  • check_py_floor under a real Python 3.9: 321 files, 0 findings, and the self-test passes 26 fixtures.
  • The Claim Check job's 54 run: steps, each run whole under bash -e -o pipefail: 0 non-zero.
  • Live ci_pool_tripwire: pinned required contexts match branch protection, rc 0.

Squash simulation

The squash subject is pinned to this PR's title, v0.91 planning: anchor at v0.90.0 and the v0.91 scope, gale's silent classes first (#1675). In a scratch clone, that subject was committed over 2945628 with this PR's head tree. The tree is identical to head 4f13961.

  • status_evidence_check exits 0 with 0 failures. The anchor reads v0.90.0 — 134 … 715 …, lag 0, and the window reads 0 delivery-shaped commits since v0.90.0. The planning subject is not delivery-shaped.
  • Control: the same tree under the lane-shaped subject v0.91 NOSUCHLANE (#1672): native-pointer provenance decided once (#1675) exits 1, FAIL R10-lane: … names artifact RQ-91-NOSUCHLANE, which no release file defines.

Not to be merged by this lane.

🤖 Generated with Claude Code

https://claude.ai/code/session_01YJK5LZZEkV5smCY1jKn18L

…classes first

Theme: gale's requests rank highest, and the structure that keeps producing
its silent classes is changed rather than patched again. Each wrong-code
lane is delivered as an execution-verified fix against the reference
runtime, or as a loud refusal where the input is out of scope. The two
refactor themes are done when the code they replace is deleted.

Twenty-one artifacts under artifacts/release-v0.91/, all `status: proposed`,
`issue-scope: closes` (the only value R12 allows beside a non-claiming
status; it authorises nothing until a record claims), each with a refuting
command RUN at planning on 2945628 (the v0.90.0 tag commit) with a fresh
0.90.0 debug build, its output in the record. Every refuting command came
back LIVE; none is refuted. RQ-91-ARCHMODEL12 is a filing, not a defect.

- must, gale (a), wrong code: #1672 (RQ-91-NPADATAPTR), the #1568 residual
  (RQ-91-NPARESID1568), the #1604 residual (RQ-91-NPARESID1604)
- must, theme: native-pointer address model (RQ-91-NPAMODEL): MUST because
  it is the vehicle for gale's first-ranked classes; measured from 15 shipped
  `fn npa_*` definitions, 3 of them refusal checks
- must, gale (b): #1145's MPU-enforcement half (RQ-91-MPUENFORCE)
- must, gale: #1661 (RQ-91-NPASWBOUNDS), #1191 (RQ-91-COMPEXPORTS), #1301
  (RQ-91-ARMV6M)
- must, theme: one image builder (RQ-91-IMAGEBUILDER), measured from 10
  distinct builders in synth-cli: MUST because it carries two silent
  wrong-code defects that are UNFILED by decision and stated in records,
  RQ-91-R5DATAINIT (self-contained cortex-r5 drops data segments and global
  initialisers) and RQ-91-M3SELFBL (--target cortex-m3 --func-name ships a
  bl to itself)
- should, theme: derived emulation floor (RQ-91-EMUFLOOR): merge friction
  and a hand-kept second copy, not wrong code; 9 of the 16 commits in
  c20d37b..2945628 touch ci.yml and all 9 move the floor line
- should, theme: backend support levels (RQ-91-SUPPORTLEVELS): it makes the
  public claims honest and changes no emitted code; x86-64 enters at L3 as a
  maintainer-relayed request with no issue
- should, carried: the spec ratchet's blindness to a corrupted .wast
  expectation (RQ-91-SPECDRIFT), #1673 (RQ-91-MEMKFLOAT), the acceptance
  corpus, still unmounted (RQ-91-CORPUS), #1460 re-measured (RQ-91-NPM10),
  #1136 filed (RQ-91-ARCHMODEL12), the tripwire drift check that is
  UNAVAILABLE on the runner (RQ-91-TRIPWIREPROT), the tripwire's blindness
  to an expression runs-on on 5 of 10 required jobs (RQ-91-TRIPWIREEXPR),
  extract_r1_numbers' noise (RQ-91-EXTRACTR1)

Every record carries an `issue:` field, as R5 requires since v0.60. Where
no issue was filed, the record cites the CLOSED issue where the matter was
analysed (#739, #910, #1286, #1575, #1636, #1640, #1643, #1645), so its
`issue-scope: closes` authorises nothing; issue_closure_check attributes
the v0.90 closures of #1636 and #1643 to v0.90, not to v0.91.

The release file is comments-only and names no issue. The statistics scan
reports 0 digit hits and 0 word hits.

The anchor moves to v0.90.0: ANCHOR_TAG and ANCHOR_PROGRAMME, at both
sites each; ANCHOR_DELIVERY does not move. Read off the gate's own anchor
line after setting the tag: 715 artifacts at v0.90.0 against 696 at
v0.89.2, a gap of 19, equal to the 19 RQ-90 ids v0.90 added, and 134
delivery commits at both tags. Paired control: 714 and 716 fail A2, 133
and 135 fail A1, 696 fails A2 on this tree, and 715 with the tag back at
v0.89.2 fails A2 and CENSUS.

Refs #1672 #1568 #1604 #1145 #1661 #1191 #1301 #739 #1645 #1640 #910 #1286 #1636 #1673 #1643 #1460 #1136 #1575

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01YJK5LZZEkV5smCY1jKn18L
@codecov

codecov Bot commented Nov 8, 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 eab6664 into main Nov 8, 2026
76 of 77 checks passed
@avrabe
avrabe deleted the v091-plan branch November 8, 2026 08:30
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