Skip to content

Class B un-strip: declare rust_test_fixtures' import of v2.extdeps.languages.rust - #7811

Merged
briansrls merged 1 commit into
mainfrom
classb/rust-test-fixtures-import
Aug 5, 2026
Merged

briansrls merged 1 commit into
mainfrom
classb/rust-test-fixtures-import

Conversation

@gunbai-bot

@gunbai-bot gunbai-bot Bot commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

Class B un-strip, extracted from #7772 as an independent repair

src/v2/extdeps/languages/rust_test_fixtures.dag carried zero import statements and resolved its v2.extdeps.languages.rust references only by pool-membership coincidence — an unrelated import elsewhere in the assembled closure dragged rust.dag in.

That is DESIGN's documented import-strip Class B defect verbatim:

a stripped file's own bare cross-module references resolve only by pool-membership coincidence: resolve_in finds the target module exactly when some unrelated unstripped import elsewhere in the currently-assembled closure has already dragged it into the pool, never from the bare-reference closure itself binding it.

How it surfaced

Enrollment changes on the N3-A branch (#7772) changed pool composition and collapsed the accidental coverage. 31 discovery witnesses then failed at runtime with no such function on:

  • rust_selection_policy_node
  • rust_operator_realizations_catalog_node
  • rust_grammar_terminal
  • rust_inhabitant_atom

All four are defined in src/v2/extdeps/languages/rust.dag — one module failing to enter the pool, not 31 separate defects.

Controls run during diagnosis: PR #7791, on the same base, ran 6643 discovery witnesses with zero resolution failures against #7772's 6638 with 31 (so not a selection artifact); and the class was already present at 57b75ab3a, so it did not originate in any later commit on that branch.

Why it is extracted

Operator ruling (2026-08-04): the defect is pre-existing on main, not N3-A functionality. #7772 is intentionally fourth in its merge sequence and still needs a conceptual recut, and main should not remain pool-dependent until that larger branch is ready.

Purely additive — one declared import block plus a note. No behavior change. The identical change is already validated in-place on #7772, where it cleared the 31 failures.

Owed, and deliberately not included

The operator specified an independent control that compiles/resolves rust_test_fixtures.dag from its declared import closure only, with no unrelated import permitted to supply rust.dag indirectly.

That control is not in this PR. The existing fixture transport (dcc_fixture_only_compile_args) writes a single module to a temp dir with no other source roots, which cannot express "this entry plus its declared closure" — rust.dag and its own transitive closure would have to be present. Building it correctly needs the closure-scoping machinery rather than an approximation.

I have not substituted a weaker check that would look like it satisfies the requirement while testing something else — that would be exactly the rung inflation DESIGN §4b names. The control is tracked as owed against this repair.

🤖 Generated with Claude Code

…nguages.rust

src/v2/extdeps/languages/rust_test_fixtures.dag carried zero import
statements and resolved its v2.extdeps.languages.rust references only by
pool-membership coincidence -- an unrelated import elsewhere in the
assembled closure dragged rust.dag in. That is DESIGN's documented import-strip
Class B defect: a stripped file's bare cross-module references resolve exactly
when some unrelated unstripped import has already pooled the target, never from
the bare-reference closure itself binding it.

Enrollment changes on the N3-A branch (#7772) collapsed that accidental
coverage, and 31 discovery witnesses failed at runtime with "no such function"
on rust_selection_policy_node, rust_operator_realizations_catalog_node,
rust_grammar_terminal and rust_inhabitant_atom -- all four defined in rust.dag.

Extracted from #7772 as an independent repair (operator ruling 2026-08-04):
the defect is pre-existing on main rather than N3-A functionality, and main
should not remain pool-dependent while that branch completes its recut.

Purely additive: one declared import block plus a note. No behavior change.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@briansrls
briansrls merged commit 2b378dd into main Aug 5, 2026
5 checks passed
@briansrls
briansrls deleted the classb/rust-test-fixtures-import branch August 5, 2026 00:03
gunbai-bot Bot pushed a commit that referenced this pull request Aug 5, 2026
Proves the #7811 explicit rust import binds through the declared import-edge
closure only: positive arm includes rust.dag and resolves the four symbols
that failed under pool coincidence; negative arm (import stripped) refuses them
on the entry-only closure. Host hooks live behind test_hooks in cli_run.rs.

Co-authored-by: Cursor <cursoragent@cursor.com>
briansrls pushed a commit that referenced this pull request Aug 5, 2026
…ing)

rust_test_fixtures_declared_closure_test.rs and its lib.rs mod entry
were exploratory work for PR #7811's Class B closure control. The
parent session (loyal-ram-550) corrected course: this lane's actual
deliverable is the disk-tier skip-counter proof
(cross_process_hit_skips_semantic_recompute), not the #7811 control,
which the parent is taking back or reassigning. Dropping the
unrelated scaffold keeps this branch scoped to the real deliverable.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
briansrls pushed a commit that referenced this pull request Aug 5, 2026
…it clause + CI-cost warm_hit_settle (#7816)

* WIP: Shared CI floor: model cold-vs-warm resolve realization, and adjudicate

* WIP: Shared CI floor: model cold-vs-warm resolve realization, and adjudicate

* Remove #7811 closure-control scaffold (deprioritized, parent reassigning)

rust_test_fixtures_declared_closure_test.rs and its lib.rs mod entry
were exploratory work for PR #7811's Class B closure control. The
parent session (loyal-ram-550) corrected course: this lane's actual
deliverable is the disk-tier skip-counter proof
(cross_process_hit_skips_semantic_recompute), not the #7811 control,
which the parent is taking back or reassigning. Dropping the
unrelated scaffold keeps this branch scoped to the real deliverable.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

* WIP: Shared CI floor: model cold-vs-warm resolve realization, and adjudicate

* chore: regenerate drifted generated artifacts (ci auto-heal)

---------

Co-authored-by: gunbc-ci-auto-heal <gunbc-ci-auto-heal@users.noreply.github.com>
Co-authored-by: Claude Sonnet 5 <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.

1 participant