Skip to content

Retire the six DeclaredCallableIdentity admission rows by their trigger (#9665 merged; they refused every PR) - #9705

Merged
gunbai-bot[bot] merged 1 commit into
mainfrom
unbreak/fourth-admission-shrink
Aug 30, 2026
Merged

gunbai-bot[bot] merged 1 commit into
mainfrom
unbreak/fourth-admission-shrink

Conversation

@gunbai-bot

@gunbai-bot gunbai-bot Bot commented Aug 30, 2026 •

Copy link
Copy Markdown
Contributor

The six DeclaredCallableIdentity hoist to v1.std.core 2026-08-29 rows in src/v1/stage0/src/namespace_wave_admission.rs (hand-maintained roster, outside the regen population) were authored for #9665 with dissolve-on "this PR merging". #9665 merged as ecdeb49, so every pull_request build now has a base that already carries the hoist: base and merge head agree, no run can produce those six deltas, and stale_admissions reports all six -> namespace-wave-admission FAILED PHASE on every open PR (measured on #9689 @ bfd9524: 0 unadjudicated delta(s), 6 stale admission(s); same on #9676 @ 680cc49). Main's own push build at ecdeb49 is green because its base is pre-#9665 -- the block is PR-only but universal, the fourth time this roster has reproduced the shape its own doc predicts. The rows are deleted by their trigger, the roster is &[] again, and empty is not permissive: a real namespace delta still refuses as UNADJUDICATED until its author adds a row. The fourth-shrink note sits beside the previous three.

test: cargo test -p v1-compiler --test namespace_wave_admission 33/33 (remote, BuildBuddy 11f384e2). Discriminating check: this PR's own witnesses lane reports 0 stale admission(s) where every other open PR reports 6.

Part of #9664.

🤖 Generated with Claude Code

https://claude.ai/code/session_01GXfYKNQTD3VfYyQcnJpxNU

…dissolved on #9665 merging

Every pull_request build now has ecdeb49 (or later) as its base, so base and merge
head both carry the hoist, no run can produce those six deltas, and the rows report
stale -- refusing every open PR (measured on #9689 @ bfd9524: 0 unadjudicated,
6 stale). Removed by their own dissolve-on trigger; the roster is empty and empty is
not permissive.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GXfYKNQTD3VfYyQcnJpxNU
@gunbai-bot
gunbai-bot Bot marked this pull request as ready for review August 30, 2026 01:38
@gunbai-bot gunbai-bot Bot changed the title XL-0 Retire the six DeclaredCallableIdentity admission rows by their trigger (#9665 merged; they refused every PR) Aug 30, 2026
@gunbai-bot
gunbai-bot Bot merged commit 6d879e1 into main Aug 30, 2026
4 checks passed
@gunbai-bot
gunbai-bot Bot deleted the unbreak/fourth-admission-shrink branch August 30, 2026 01:56
gunbai-bot Bot pushed a commit that referenced this pull request Aug 30, 2026
…red record and this branch's two live rows

Both sides removed #9665's six stale admission rows — this branch in its
previous merge commit, main in #9705 with the measured receipt. The resolution
keeps main's richer shrink record verbatim and re-seats this branch's two
RequiredCiLane rows, which still match live deltas until #9698 merges.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GpYEk9gSYmMkwL1489D79U
gunbai-bot Bot pushed a commit that referenced this pull request Aug 30, 2026
…merging -- this refuses EVERY pull request, not just this one

Not this lane's subject, taken because it stands between every branch and a
green. #9698 (fa03a01) moved BuildLane and WitnessesLane from
gunbc.required_ci_host_verdict_census to the new gunbc.required_ci_phase_roster.
The two TransitionAdmission rows that adjudicated that move were authored with
the trigger "they go STALE the moment #9698 merges and MUST be removed then" --
their own words -- and #9698 is merged, so no pull_request build can produce the
deltas they name and the phase refuses on the stale rows alone.

Measured, run 33292088803: FAILED PHASE namespace-wave-admission (0 unadjudicated
delta(s), 2 stale admission(s)), naming both rows. This branch's own namespace
delta -- the gunbc.repo_self_build -> gunbc.stage0_crate_partition_generated
import the roster fix adds -- was adjudicated ExplicitlyEvaluatedZeroDelta and
passed, so the refusal is entirely the two stale rows.

Emptying the array to &[] is the proven form: the fourth shrink (#9705) did
exactly that and shipped green. That shrink was a standalone PR and that remains
the normal shape; it rides here only because main was already red.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RTvKD3J3pnUzXmUascawfQ
briansrls pushed a commit that referenced this pull request Aug 30, 2026
…, and the required build lane gains the partition crates as the wall (#9711)

* Stage0 partition roster: the three modules #9689 added, the phantom row, and the required gate that can see them

The authority edits only; generated artifacts follow in the next commit.

- v2.workflow.rust_crate_partition: std_target_representation into the std-core
  unit, extdeps_languages_rust_representation into the extdeps-languages unit,
  and gunbc_rust_source_type_bindings into the v1-infer unit through its own
  named list, because its layer is neither the v1_compiler pipeline nor the
  extdeps one and the grouping is physical rather than nominal. Placement is
  forced by each module's own crate:: references, not chosen.
- The same authority drops std_lens_verdict, which named a file stage0 lib.rs
  deliberately does not declare (has_pub_mod false in the crate-layout
  registration), so the partition crates were compiling a module the monolith
  does not. The FILE's disposition is deliberately not settled here.
- gunbc.repo_self_build gains repo_self_build_partition_crates_command, whose
  package list is read from the partition roster rather than restated, and the
  build lane runs it beside the all-bins build. That is the executing wall for
  the E0432 class, with rustc as the oracle.
- One witness for the class a hermetic join CAN reach, with its discriminating
  RED authored as a fixture because the live corpus cannot express the refused
  state once the phantom row is gone.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RTvKD3J3pnUzXmUascawfQ

* Move the roster witness inside the required gate's prefix; convert the v1-infer count literal to an identity join

Run 33290382542 measured both of these rather than my guessing at them.

- The new witness sat at `test.claim.stage0_partition_roster_layout_join_witness`,
  which matches none of v2.workflow.required_floor required_gate_prefixes, so the
  floor discovered it, classified it DeclinedOutsideRequiredGate and never ran it
  -- while it was RED on the live corpus. A wall that reds and is declined is an
  inert lens, so the module path is part of the wall and the file now lives at
  v2.test.claim.*, which the `v2.test.` prefix admits.
- witness_v1_infer_unit_members_holds was the run's single unexpected failure:
  `(unit.members |> count) == 9`, stale the moment the roster gained a module. It
  is now an identity join between the declared roster and what came back through
  the assignment map and partition_fold, so it cannot be repaired by retyping a
  number. Its blind spot -- an error in the roster itself -- is stated in place
  and belongs to the build lane, where rustc is the oracle.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RTvKD3J3pnUzXmUascawfQ

* Sixth admission shrink: the two RequiredCiLane rows dissolved on #9698 merging -- this refuses EVERY pull request, not just this one

Not this lane's subject, taken because it stands between every branch and a
green. #9698 (fa03a01) moved BuildLane and WitnessesLane from
gunbc.required_ci_host_verdict_census to the new gunbc.required_ci_phase_roster.
The two TransitionAdmission rows that adjudicated that move were authored with
the trigger "they go STALE the moment #9698 merges and MUST be removed then" --
their own words -- and #9698 is merged, so no pull_request build can produce the
deltas they name and the phase refuses on the stale rows alone.

Measured, run 33292088803: FAILED PHASE namespace-wave-admission (0 unadjudicated
delta(s), 2 stale admission(s)), naming both rows. This branch's own namespace
delta -- the gunbc.repo_self_build -> gunbc.stage0_crate_partition_generated
import the roster fix adds -- was adjudicated ExplicitlyEvaluatedZeroDelta and
passed, so the refusal is entirely the two stale rows.

Emptying the array to &[] is the proven form: the fourth shrink (#9705) did
exactly that and shipped green. That shrink was a standalone PR and that remains
the normal shape; it rides here only because main was already red.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RTvKD3J3pnUzXmUascawfQ

* Regenerated: the partition roster, its stage0 mirror, the three crate lib.rs files, and the build lane that now compiles them

Produced by the generators, not by hand. main_wet (dag/gunbc/instruments/
generated_artifact_gate.dag) rewrote exactly two artifacts -- the generated
partition .dag and .github/workflows/witnesses.yml -- and nothing else in the
corpus moved. --required-regen then reported one drifted mirror,
gunbc_stage0_crate_partition_generated.rs, and --emit-partition-crates rendered
14 files and wrote 3: the std-core, extdeps-languages and v1-infer lib.rs, which
are precisely the three crates the roster change touches.

The emitted build step, read off the emitted bytes rather than assumed:

    run: |
      cargo build --release -p v1-compiler --bins
      cargo build --release -p v1-stage0-runtime -p v1-stage0-std-core ...

Both commands under one literal block scalar, the package list derived from the
partition roster rather than restated, so a crate added to the partition joins
the gate with no edit at the gate.

REGEN NOTE FOR THE NEXT AUTHOR: main_wet is OOM-killed on a BuildBuddy runner
under the default budget (SIGKILL, rc=137). /sys/fs/cgroup/memory.max and
memory.high are unreadable there, so memory_governor read_host_budget_bytes
falls through to MemAvailable -- which reports the HOST's memory, not the slot's
-- and caps at the 15 GiB declared slot line, which can exceed what the slot
actually has. Setting GUNBC_MEMORY_BUDGET_BYTES explicitly (10 GiB used here,
peak RSS 7.7 GiB) makes it complete. The kill is silent through a `cmd | grep |
tail` pipeline, because the pipeline reports the last stage's status.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RTvKD3J3pnUzXmUascawfQ

---------

Co-authored-by: gunbc-ci-auto-heal <gunbc-ci-auto-heal@users.noreply.github.com>
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
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.

0 participants