Skip to content

Repair the one call site RUNNER-WIDTH-1 left behind, which reds every PR's floor - #11871

Merged
briansrls merged 1 commit into
mainfrom
fix/runner-width-witness-import
Sep 20, 2026
Merged

briansrls merged 1 commit into
mainfrom
fix/runner-width-witness-import

Conversation

@gunbai-bot

@gunbai-bot gunbai-bot Bot commented Sep 20, 2026

Copy link
Copy Markdown
Contributor

This is a main-side break, not a defect in any open PR. The required floor lane refuses on main itself, and witnesses fails derivatively behind it, so every open pull request is currently blocked by it.

#11762 replaced the Int-valued gunbc_runner_slots_per_host with RunnerWidthResolution and deleted the Int — correct under DESIGN §3's replacement-migration rule, since a surviving Int would be the attractor. It migrated every production call site and missed one witness:

required-ci: declarations FAIL IMPORT-MEMBER-ABSENT
dag/test/claim/runner/runner_host_file_converge_witness_test.dag:14:39:
`test.claim.runner_host_file_converge_witness_test` imports `gunbc_runner_slots_per_host`
from `gunbc.runner_slot_allocation`, which declares no such name

The repair uses the shape build_cache_endpoint_observe_test already migrated to, rather than inventing one. The unresolved arm answers 0 - 1 rather than 0 on purpose — that is the point of the RUNNER-WIDTH-1 receipt this migration is named for: zero is the identity of the projections downstream of a width, so an unresolved width rendered as zero reads to every consumer as its own grounded answer. A negative sentinel cannot.

Only the variants are imported; RunnerWidthResolution itself is not referenced, so it is not imported.

Scope check: the module gunbc.runner_slot_allocation is fine — it moved file but kept its module name, so its ~70 importers are unaffected. Exactly one file referenced the deleted symbol, at two sites, both in this diff.

Verification: the floor log for run 35516936949 carries exactly one declarations FAIL and this is it. I could not re-run the resolve locally to green — this session's gunbc binary predates the hmac_sha256_hex interpreter primitive and reports it as a source error in files untouched here — so CI is the check.

cc: #11845 is open against this same file and is blocked by this same red.

🤖 Generated with Claude Code

… PR's floor

#11762 replaced the Int-valued gunbc_runner_slots_per_host with the
RunnerWidthResolution answer and DELETED the Int, which is the right
replacement-migration move: two answers to one question is the fork DESIGN 3
exists to prevent. It migrated every production call site and missed one
witness.

dag/test/claim/runner/runner_host_file_converge_witness_test.dag still imports
and calls the deleted name, so the required floor's declarations phase refuses
IMPORT-MEMBER-ABSENT on main itself. That refusal is not about any diff: it
reds the floor lane for EVERY open pull request, and the witnesses lane fails
derivatively behind it.

The repair is the shape build_cache_endpoint_observe_test already uses, not a
new one -- match the resolution and take the derived slots. The unresolved arm
answers `0 - 1` rather than `0` deliberately, and that is the whole lesson of
the receipt this migration was named for: zero is the IDENTITY of the
projections downstream of a width, so an unresolved width rendered as zero is
read by every consumer as its own grounded answer. A negative sentinel cannot
be mistaken for one.

Only the type's variants are imported; the RunnerWidthResolution type name is
not referenced here, so it is not imported.

Evidence: the declarations refusal names this file, this line and this member;
the floor log for run 35516936949 carries exactly one declarations FAIL and
this is it.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@briansrls
briansrls added this pull request to the merge queue Sep 20, 2026
Merged via the queue into main with commit f05e170 Sep 20, 2026
4 checks passed
@briansrls
briansrls deleted the fix/runner-width-witness-import branch September 20, 2026 17:39
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