Repository navigation
v1 census close (B): the Rust reference population is produced by folding the item scan, not listed by hand - #11018
gunbai-bot[bot] wants to merge 25 commits into
Conversation
…ding the item scan, not listed by hand gunbc.rust_item_host_observation gains observe_rust_references / observe_current_rust_references: fold the existing item scan over every hand-Rust file (outside a caller-supplied deletion-set prefix) whose text names one of the caller's tokens, attribute each token-carrying line to the innermost enclosing item, and carry the DeclarationRef projection on the row. A file-level line lands on the file's own RustModule item; a line inside an unnamed macro block is a located unattributed row; an unclaimed tree refuses at the projection with its path. Files naming no token are not scanned. The HEAD-sources plumbing both live producers share is one helper (head_rust_sources) selected by predicate. gunbc.v1_consumer_census consumes it: v1_shim_items (four hand-named crate roots, a measurement copied from the tree) is gone; v1_consumer_population_for takes the observation, a host refusal is PopulationUnmeasured, unattributed lines join the uncitable column, and the token joins back to the hunted authority (v1_rt -> v1_compiler.v1_rt, v1_interpreter -> v1_compiler.v1_interpreter) through v1_reference_authorities. Population state stays PopulationMeasuredLowerBound. Witnesses: six producer arms on planted sources in rust_item_host_observation_witness_test (mutation control executed: dropping the file-level arm reds two); the census's tooling-row falsifier now folds planted sources through the producer; the four live-population witnesses moved to self_host_v1_consumer_census_live_witness_test.dag with a gunbc.ci_layer_roots exclusion row, because the population now reaches git and the hermetic envelope refuses it. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013ML4eiifGFgP18ALPw6inw
The three live-population census witnesses leaving the hermetic floor is a DESIGN 4b(3) rung drop, not just an exclusion row: gunbc.rung_drop v1_consumer_census_live_population_off_the_merge_path (previous MechanicallyPreventable, temporary Mitigatable, ReplacementStaged on the produced observation, population = the four live fns, trigger = a merge-blocking step executing a witness that reads v1_consumer_population() against the live tree). The exclusion row names the drop; neither retires the other. path_has_prefix is deleted in favor of starts_with. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013ML4eiifGFgP18ALPw6inw
|
Addressed review 63400: (1) the drop is now declared — |
# Conflicts: # dag/gunbc/rung_drop/roster.dag
…for what the rows carry (reviews 63443, 63432) v1_blocking_consumer_count_of / v1_consumer_member_count_of / v1_consumers_of / v1_uncitable_consumers_of take one ConsumerPopulation; the zero-argument instrument forms read the tree exactly once. The live witnesses bind the population once per body (the wet file: 29s -> 6.7s). RustUseEdge is renamed RustSourceReference: the produced population attributes any token-carrying line, not only use edges. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013ML4eiifGFgP18ALPw6inw
|
Addressed review 63443: the live population is now read once per question — |
…om an unmeasured population (review 63464) Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013ML4eiifGFgP18ALPw6inw
|
Addressed review 63464: |
…rrowing the first row (review 63476) Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013ML4eiifGFgP18ALPw6inw
|
Addressed review 63476: |
… to B's copy) Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013ML4eiifGFgP18ALPw6inw
…ow cannot read refuses the whole read (reviews 63508, 63507) Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013ML4eiifGFgP18ALPw6inw
|
Addressed review 63508: |
…ocessExit entry (review 63537) Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013ML4eiifGFgP18ALPw6inw
|
Addressed review 63537: (1) |
|
CI red on 89f6446 is runner infra, not the change: |
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013ML4eiifGFgP18ALPw6inw
|
Addressed review 63569: the live witness file now names |
…ogical (review 63591) Both sides read one accessor of one population, so its RED was unauthorable and the drop row leaned on it as evidence. The two refusals it named stay executed hermetically on planted fixtures (undisposed_consumer_is_caught, stale_row_is_caught). Its bin_wet row and drop identity go with it. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013ML4eiifGFgP18ALPw6inw
…p the Show loop (reviews 63608, 63607) DiscoveryProducer for the Rust medium is minted from the RustObservedTree (HEAD sha + ShowTree object id) that head_rust_sources read, never from the hand sweep's pin. Generated mirrors are excluded before git.Core.Show. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013ML4eiifGFgP18ALPw6inw
|
Addressed review 63608: (1) the produced Rust rows' |
Ledger-Repair-Judged: docs/design-rung-drops.md Ledger-Rows-Repaired: docs/design-rung-drops.md v1_consumer_census_live_population_off_the_merge_path
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013ML4eiifGFgP18ALPw6inw
…ssion/loyal-bat-613-b
…n 34579780327: git.Inspect.HeadCommit has no mock case) Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013ML4eiifGFgP18ALPw6inw
|
Floor red on d1e6eaa (run 34579780327) was real: the three live census witnesses reach |
… equality (review 63723) Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013ML4eiifGFgP18ALPw6inw
|
Addressed review 63723: the live producer witness now asserts the join's own statement — uncitable empty and |
… (review 63745) Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013ML4eiifGFgP18ALPw6inw
…oute cannot land, and a mocked HEAD would fabricate the liveness it asserts Runs 34589756974 / 34589514940 refused the four live identities as changed_witness_planned_without_terminal_verdict: the floor plans every witness the diff touches and a route-gap enrolment is exactly a witness with no route to a verdict. Publishing a mock for git.Inspect.HeadCommit only moves the refusal to ListTreePathsAtRevision, ShowTree and Show, and a whole mocked chain is a fixture tree -- which the hermetic planted-source witnesses already exercise -- asserting liveness over a constant. So the live file, its route-gap chunk, its bin_wet rows and its exclusion row are deleted; the two assertions that were on the floor at main are the drop row's population, the ledger is regenerated, and the operator instrument remains the live consumer. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013ML4eiifGFgP18ALPw6inw
|
Floor red on 9d13f1b (run 34589756974) was the changed-witness/no-route shape: the floor plans every witness the diff touches, and a route-gap enrolment is exactly a witness with no route to a verdict. Repair: the live witness file is deleted with its route-gap chunk, bin_wet rows and exclusion row; the drop row names the two assertions that were on the floor at main as its population; ledger regenerated. Also in this push: review 63745 (alias accessors deleted) and review 63723 (live-witness bound — now moot with the file gone). |
…view 63775) Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013ML4eiifGFgP18ALPw6inw
# Conflicts: # dag/gunbc/rung_drop/roster.dag # dag/gunbc/v1/v1_consumer_census.dag # dag/test/claim/self_host_v1_consumer_census_witness_test.dag # docs/design-rung-drops.md
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013ML4eiifGFgP18ALPw6inw
…d v1_claimed_successors import (review 63815) Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013ML4eiifGFgP18ALPw6inw
What
Close (B) of the v1 consumer-census completeness program (brief from eager-raven-113; proposal recorded in
gunbc.v1_consumer_censusmissing_basison #10939). No new production module; extendsgunbc.rust_item_host_observationas the brief directs.Producer —
gunbc.rust_item_host_observation:observe_rust_references(sources, generated_repo_paths, tokens, rows)folds the existinggunbc.rust_item_scanover every hand-Rust file whose text names one of the caller's tokens, attributes each token-carrying line throughattribute_scanned_lineto the innermost enclosing item, and carriesitem_declaration_ref_inon the row. Arms: inside an item → that item; file-level → the file's ownRustModuleitem (the crate root the census used to hand-author); inside an unnamed macro block → a locatedRustReferenceUnattributedrow, never a dropped line; unclaimed tree →ItemDeclarationRefRefusedat the projection, never skipped by selection. Files naming no token are not scanned.observe_current_rust_references(tokens, excluded_repo_prefix)is the live entry; the HEAD/tree/Show plumbing both live producers share is now one helperhead_rust_sources(select).Consumer —
gunbc.v1_consumer_census:v1_shim_items(four hand-named crate roots at one revision — a measurement copied from the tree, DESIGN §5) is deleted.v1_consumer_population_for(observation)takes the producer's observation: a host refusal isPopulationUnmeasured, unattributed lines join the uncitable column, unscannable token-carrying files refuse the population. The token joins back to the hunted authority throughv1_reference_authorities(v1_rt→v1_compiler.v1_rt,v1_interpreter→v1_compiler.v1_interpreter); the deletion set isv1_deletion_set_prefix.producer_rust_bridge_edgenow names the instrument that re-derives the rows.Census after this step (re-run, not transcribed)
gunbc run --source-root dag --source-root src/v2 --entry dag/gunbc/v1/v1_consumer_census.dag --function v1_blocking_consumer_count→ 36; population state PopulationMeasuredLowerBound (unchanged, as required — the Rust medium is now produced, the others are not). The producer answers four rows, one per shim crate, three at a finer grain than the hand list carried (pub mod v1_rt;is an item the scan mints, so the consumer is that module declaration rather than the enclosing crate root).Evidence
rust_item_host_observation_witness_test: six producer arms on planted sources (file-level, inside-item, macro-block unattributed, no-token, unclaimed-tree refusal, empty-token-list). Mutation control executed: dropping the file-level arm reds two of them.self_host_v1_consumer_census_witness_test: the tooling-row falsifier now folds planted sources through the producer (with the row every reference is cited; without it every one is uncitable); a planted host refusal is the Unmeasured arm with no rows.self_host_v1_consumer_census_live_witness_test.dag(ReadsLiveTree) with agunbc.ci_layer_rootsexclusion row: the population now reachesgit.Inspect.HeadCommit/ListTreePathsAtRevision/git.Core.Showand the hermetic envelope refuses rather than skips. All four pass underclaim_batch --wetlocally (29 s). Stated on the row: what the per-PR floor loses is a check that a hand list still said what it said; the executing consumer of the live census is the operator instrument above.Overlap note
#10939 (deep-bee-532) edits the same census module and witness file (per-medium
joined_media,tools.v1_consumer_discovery). This PR does not touch the regions #10939 changes, but a merge of both will need the shim-partition call sites reconciled; whichever lands second takes the merge.🤖 Generated with Claude Code
https://claude.ai/code/session_013ML4eiifGFgP18ALPw6inw