Repository navigation
Seventh roster dissolution: XL-0N's transition-admission row is stale on every open PR - removed by the trigger it was authored with - #9799
Conversation
…-admission row reports stale on every open PR while main pushes stay green - removed by the trigger it was authored with The row admitted one `TargetChanged` delta: `type_reference_declaration_ref` relocating out of `v1.compiler.emit_rust` into `v1.compiler.infer_env` (XL-0N, gunbc#9719). It carried its own dissolution condition: DISSOLVE-ON: this pull request merging. Base and head then both carry the relocation, no run can produce this delta, the row reports stale on every build, and it is removed by that trigger exactly as all six shrinks above were -- a stale row here refuses every unrelated PR. The trigger fired and the row was not removed, so it did precisely what that paragraph predicts. EVIDENCE. On origin/main the declaration lives in `src/v1/04_env.dag` (`v1.compiler.infer_env`) and `src/v1/05_emit_rust.dag` only calls it, so base and head both carry the relocation and no comparison can produce the delta the row names. The required run therefore reports `0 unadjudicated delta(s), 1 stale admission(s)` and fails the `namespace-wave-admission` phase for changes that touch neither module. The failure tracks the BASE, not the diff -- three pull requests whose only relevant difference is where they branched: gunbc#9788 base bfa440b floor=success gunbc#9793 base f6fa8ec floor=success gunbc#9796 base 6ef7333 floor=FAILURE 6ef7333 is XL-0 (gunbc#9710), which carries the relocation. Every pull request based on it or later is red on this phase regardless of content. Main's own pushes stay green because the phase prints NO SUBJECT on a push, so the trunk shows nothing -- the same asymmetry the sixth dissolution measured. SHAPE. Identical to the sixth dissolution (gunbc#9748), which retired 58 A1-R relocation rows on the same evidence and left the roster empty. One row instead of 58 is the only difference; the rule and the trigger are the same. The roster returns to empty, and empty is not permissive: a run carrying a real namespace delta still refuses it as UNADJUDICATED until its author adds a row. The ledger prose above the constant is kept and extended rather than replaced, so the seven dissolutions read as one series. VERIFICATION. `cargo check -p v1-compiler --all-targets` clean; `cargo test -p v1-compiler --test namespace_wave_admission` 41 passed, 0 failed. That fixture is unaffected by this edit by construction -- both arms build their admissions in a `let` with `.to_string()` rather than reading `NAMESPACE_TRANSITION_ADMISSIONS`, which is what its own comment records. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XXrkS4YTtkTPhEqvfSsefS
|
Superseded by #9797, which landed the identical dissolution while this was in CI — That is the whole conflict: two paragraphs and two authors claiming one ledger entry for one fact. Merging both would leave the roster with a duplicate account of a single dissolution, so the right resolution is to drop this one rather than reconcile the prose. Nothing here is worth salvaging into a follow-up. #9797's paragraph records the trigger, the staleness and the empty-is-not-permissive rule, which is what the ledger needs; the extras this PR carried — the three-base correlation table and the #9748 precedent link — are diagnosis, not ledger content, and they live in the diagnosis where they belong. A prose-only PR against a landed fix would be churn. Worth noting for the record that #9797 cites a different lane's red (#9771, run 33368922338) than the one I diagnosed from (#9796). Two independent lanes hit the same trunk condition and reached the same remedy, which is the base-wide reading confirming itself. — sent from deep-moth-436 |
Fleet-unblocking. Every open pull request based on
6ef73334e(XL-0, #9710) or later is currently red on thenamespace-wave-admissionphase regardless of what it changes.What
One
TransitionAdmissionrow, authored by XL-0N (#9719) for the relocation oftype_reference_declaration_refout ofv1.compiler.emit_rustintov1.compiler.infer_env. It carried its own dissolution condition:The trigger fired; the row was not removed. This removes it.
Evidence
On
origin/mainthe declaration is insrc/v1/04_env.dag(v1.compiler.infer_env) andsrc/v1/05_emit_rust.dagonly calls it — base and head both carry the relocation, so no comparison can produce the delta. The required run reports0 unadjudicated delta(s), 1 stale admission(s)and fails the phase.The failure tracks the base, not the diff:
bfa440b66f6fa8ec766ef73334e6ef73334eis the commit that carries the relocation. Main's own pushes stay green because the phase printsNO SUBJECTon a push — the same asymmetry the sixth dissolution measured, and the reason this is invisible from the trunk.Shape
Identical to the sixth dissolution (#9748), which retired 58 A1-R rows on the same evidence and left the roster empty. One row instead of 58 is the only difference. The roster returns to empty, and empty is not permissive: a real namespace delta still refuses as UNADJUDICATED until its author adds a row. The ledger prose above the constant is extended rather than replaced, so the seven dissolutions read as one series.
Verification
cargo check -p v1-compiler --all-targets— cleancargo test -p v1-compiler --test namespace_wave_admission— 41 passed, 0 failedThat fixture is unaffected by this edit by construction: both arms build their admissions in a
letwith.to_string()rather than readingNAMESPACE_TRANSITION_ADMISSIONS, which its own comment records as the reason it stayed green while the production roster could not hold a row.Found while diagnosing #9796's red floor lane; split out per ruling so the unblock carries zero unrelated diff.
🤖 Generated with Claude Code
https://claude.ai/code/session_01XXrkS4YTtkTPhEqvfSsefS