Repository navigation
Retire the parse walker reference_sites_from_parsed_module onto collect_reference_sites - #12910
Merged
Merged
Conversation
…ollector v2.lens.reference_deps reference_sites_from_parsed_module and its parsed census and closure walk are deleted. Measured: the walker missed a dotted callee and a qualified call argument that collect_reference_sites sees. The equivalence test now reads the one edge producer, v2.lens.module_graph dependency_resolution_facts_live (import facts plus collector-derived edges). The differential cells become collector exact-site-set controls. Records gunbc.recurring_failure_mode reference_reader_without_postfix_handling_drops_call_sites. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…t consumes Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Contributor
Author
|
Re-verified at merged head 1a541bf with claim_batch (28 GB runner, cgroup recipe): all four collector cells PASS as written. Both call cells FAIL under the position mutation (named edges not extending position) and under the spelling mutation. All four FAIL under the spelling mutation. |
…the stale golden The test did not resolve on main (witness_layer_roots used bare, an ActiveDebt row in the unimported-bare-provider roster), which hid a golden listing an import envelope the entry no longer has. Import it, retire the debt row, and re-derive the golden from the dependency closure. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…s_layer_roots row (ImportsFixed) instead of deleting it Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…golden from the declared import edges Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…tire the ReadsLiveTree debt row Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…osure's homes with an in-pool resolution assertion The floor declined it as a long-home witness even when changed, so the closure golden had no executing claim. Moved out of test/claim/long/, its frozen deferral row dropped, and its pool derived from the golden's directories rather than the whole corpus. Every import of a reached file must resolve inside that pool, so the narrowing cannot hide an edge. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
… pairing claim (the cited broker witness does not exist) Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…a wall and its claimed cover were both silently non-executing Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…unctions only it consumed Its closure check is now held by test.claim.module_graph.import_closure_live (real corpus, executing on the floor, run 36883586866) and demand_closure_agreement_witness (supplied fixture). Revised option A, ruled by default after escalation to the operator. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…ed file uses Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
briansrls
added this pull request to the merge queue
Oct 2, 2026
gunbai-bot Bot
pushed a commit
that referenced
this pull request
Oct 2, 2026
…mage, #12910): resolve_binder_part dispatches on CoreEdgeLabel BinderDefaultEdge, not the <binder-default> text #12948's resolve read a binder node's default edge by comparing its label with binder_default_label(); under this cut that edge is the core arm BinderDefaultEdge, so the dispatch is edge_is_core. The new inhabitance position for a binder default carries an Authored label like its siblings. #12790's close_lowered_image wraps the targets this branch had relabelled (map-literal entry, operation member); reference_deps keeps main's trimmed imports plus the two this branch's readers still use. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
gunbai-bot Bot
pushed a commit
that referenced
this pull request
Oct 2, 2026
…tsFixed (floor RosterStale: #12910's collect_reference_sites no longer reports the pair in these PR-touched files) Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Retires the parse walker
v2.lens.reference_depsreference_sites_from_parsed_module, a replacement migration under DESIGN §3. It also deletes the walker's parsed census and its parsed closure walk. After this, reference sites have one authority,v2.compiler.reference_site_collectorcollect_reference_sites, and dependency edges have one producer,v2.lens.module_graphdependency_resolution_facts_live. That producer is import facts plus edges derived from the collector's sites. Nothing falls back to the walker.Step 1: the cells disagreed, and the walker was the one at fault
New cells in
v2.test.claim.namespace_xl0.qualified_site_enumerator_differentialuse the fixturefn qsd_call() -> Bool { v2.test.qsd_provider.qsd_callee(x: v2.test.qsd_provider.qsd_argument) }. Run withclaim_batchat pinebcc7cdfbd25, on a 28 GB runner with the cgroup recipe:So the collector sees both sites and the walker sees neither: it has no postfix handling. This was escalated, and gentle-koi-724 ruled option A: retire the walker, and keep the cells as checks on the collector.
Cells now: the collector's exact site set
qsd_call's body must carry exactly two sites:…qsd_call.arrow_body_edge @ v2.test.qsd_provider.qsd_callee…qsd_call.arrow_body_edge.x @ v2.test.qsd_provider.qsd_argumentThese positions were captured from the collector itself. The parameter and field cells remain as collector presence checks. Run with
claim_batchat87447bb3:Step 2: who consumed the walker, and where each went
I grepped for every consumer before deleting.
reference_resolution_facts_from_parsed_corpus,reference_closure_bfs_parsed_walk,reference_closure_parsed_liveand the*_census_live/*_facts_live/refusal_count_livefamily. None had a consumer outside the lens. They duplicatedmodule_graph'sdependency_resolution_facts_liveanddependency_closure_live_excluding. Those already compose import facts withreference_derived_resolution_facts, which is built oncollect_module_reference_sites, and their own notes forbid a second edge producer beside them. So I deleted these rather than rebuilding them on raw sites. A rebuild would have been a second edge producer: a §3 fork and a dangling declaration under §3c.reference_parsed_tree_facts_match_import_facts_at_path: replaced byreference_dependency_facts_match_import_facts_at_path. It compares the producer's keyed edges for a path (dependency_resolution_facts_at_live) with that path's import facts, at (path, module) identity, in both directions.reference_closure_ingest_refusal_witness: now refuses on the ingest route the collector consumes (module_roots_from_source_root_ingest).dag/test/claim/long/reference_closure_equivalence_test: repointed onto both of the above.qsd_parsedfloor-share row is removed.reference_qn_from_import_decl_strict. It reads import declarations foradmission_from_module_root, which is live infrontier_probeandcompile_door_ledger. It is not a reference-site walker.Also deleted, in the same PR:
reference_deps_dissolve_on, the Scaffold disposition, the dissolution note and itsgunbc.dissolution_migration_censusrow, and the parsed-closure observation types.Delta: no edge changes in either direction
The old walker census and the new producer's keyed edges were run per file, at pin
ebcc7cdf(where both exist), over all 11 members of the conformance closure, including the conformance entry andsrc/v2/std/node.dag. The result is identical edge sets, with 0 added and 0 dropped in every file, and 0 OOM kills. No growth shows up here because these std files contain no dotted calls. Growth appears where a module is reached only through a dotted call or a call argument, which is the fixture case above.Two closures were not compared:
reference_closure_livenever used the walker (it is the import closure), so it is unchanged.The B2 safety wall is removed, and its check is now held by two claims that run
This section records the removal against the B2 ruling (operator, sharp-bee-290). The ruling was revised option A, approved by default after escalation through gentle-koi-724 and neat-boar-16 to the operator.
Why the wall could not stay.
dag/test/claim/long/reference_closure_equivalence_testdid not resolve on main: it usedgunbc.ci_layer_rootswitness_layer_rootswithout importing it. Its golden list had gone stale behind that failure. Once this PR repaired it, the floor ran it as a changed witness, and it took 14.1s against the 8s budget (floor run 36883586866,COMPLETED-OVER-COST-REQUIREMENT). Rostering it would not have helped: the file had to change, because it called the census this PR deletes.The claim that was cited as covering it was not running either.
import_closure_live_testhad the same unimported name and the same stale golden. Even once it resolved, the floor counted it asdeclined_longand never ran it. Both failures are now recorded ingunbc.recurring_failure_modeadmitted_module_without_judged_standing.What holds the check now (DESIGN §3 pairing: a supplied-input claim plus a real-route claim):
test.claim.module_graph.import_closure_live. It moved out oftest/claim/long/into a per-PR home, and its frozen deferral row is dropped.[changed-witness] … import_closure_live … outcome=passed,observed_wall_ms=843. That is under 8s, but over the 302ms enrolment margin, so it has a typed cost-debt row inv2.workflow.floor_cost_debt_admission, granted by deep-ferret-305 and conditioned by jolly-boar-500. Its retirement trigger is thegunbc.resolver_cost_frontierrow for the whole-pool heads demand (demand-engine M1).test.claim.module_graph.demand_closure_agreement_witness. It runs the same walk (import_closure_livedelegates todependency_closure_live_excluding) overdag/test/fixture/demand_closure. Its header cited a broker witness that does not exist; it now citesimport_closure_live.Receipts.
claim_batchon a 28 GB runner with the cgroup recipe:0f5101d0f5101d0f5101d0f5101d0f5101d05011dd05011ddDeleted:
reference_dependency_facts_match_import_facts_at_path,reference_closure_ingest_refusal_witness,reference_closure_live(_excluding)andreference_path_excluded, plus their data rows.Its unimported-name roster row is now
Retired { cause: FileDeleted }.conformance_imports_only.dagstays, becauseimport_closure_live_teststill uses it.Failure mode
New row:
gunbc.recurring_failure_modereference_reader_without_postfix_handling_drops_call_sites.🤖 Generated with Claude Code