Repository navigation
Retire the batch-fed witness-cost materialization at the root: three writers and two census rows - #8923
Conversation
…writers, one field, two census rows X of the R/X pair (operator ruling, 2026-08-22). `write_witness_row_cost_receipt`, `write_witness_row_cost_drift_receipt_at`, and `write_witness_row_cost_migration_disclosure_receipt_at` all projected one field -- `ClaimResult.witness_row_costs` -- populated at exactly one site on the discovery/batch path the floor cut deleted. Required CI never reached any of them: `required_floor_mode` returns before `run_walk`. Their only remaining production reachability was `run_perturb_check` and the ordinary `run()` fall-through, and the TSV they wrote has zero programmatic consumers anywhere in the tree. This is a DECLARED CAPABILITY REMOVAL, not dead-code cleanup. Those two modes lose an output they could still produce. It is admitted because retaining the writers would leave `WitnessRowCost`/`BatchRecord` standing as a second semantic representation of witness cost beside `std.observation` `ObservationEvent`, which `gunbc.witness_row_cost` already rules is the record -- the §3 parallel-authority state, waiting for the two to disagree about clock treatment or unavailable-vs-zero. WHAT THE DELETE-FIRST CENSUS SURFACED, which is the doctrine working rather than a surprise: two of the three writers' print markers were enrolled in `gunbc.observation_emit_census` as `CountedFrontierSite` rows. Deleting the emits deletes the rows, so `observation_emit_frontier_count` shrinks by exactly two -- monotonically toward the zero its expected-red acceptance test is waiting for. Precedent is recorded in that census: gate-warm-cost and witness-row-cost-drift rows were removed the same way when their emits went. AND ONE THING THE CENSUS CAUGHT THAT I HAD WRONG. I first cut the shared basis parser and `witness_row_cost_verdict_via_authority` with the writers, on the assumption they were materialization-only. They are not: `write_compile_clean_cost_drift_receipt_at` shares them wholesale -- same basis schema, same parser, same 2x authority -- and it is a live, separate capability. `cargo check` refused, the shared block was restored, and only the genuinely batch-only code stayed deleted. That refusal is exactly what delete-first buys. TASK #20 IS DISPOSITIONED, NOT ORPHANED. It named these receipts as its reproduction evidence and its own clause forbids silent closure. It stays `OpenUnknown`; what is recorded is that its evidence is now `ReproductionProducerRetiredPendingEquivalentProtocol` -- a typed, cited refusal -- with the re-binding trigger named: the required floor's fold-native identity-grain cost receipt (R). The frontier enumeration in the acceptance note is corrected without restating a count, because that note itself records the time its enumeration went false while the number beside it stayed right. Verified by execution, not inspection: `cargo check --bin claim_executor` and `--profile test` both exit 0 with zero errors, against a control (`-Z definitely-not-a-real-flag`) that exits 101, so the compiler was really reached. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PgpEN2jnUGsLhM5vRKH6fD
…s-cost-materialization # Conflicts: # dag/gunbc/witness_row_cost.dag
…eview 54784) The reproduction-disposition clause I added said this change removed `write_witness_row_cost_receipt`, its siblings, "and the `ClaimResult.witness_row_costs` field they all projected". The last clause is false against this same head: the field is declared, populated, and consumed by two live capabilities -- `emit_slowest_witness_attribution` and `write_floor_wet_witness_row_outcome_receipt_at`. DELETING THE FIELD IS THE WRONG REPAIR, and the reviewer offered it as one of two options. It would remove those two capabilities, which X was not admitted to touch -- the approved removal is the batch-fed witness-cost MATERIALIZATION, not every consumer of the row type. So the sentence is what was wrong, and the sentence is what changes. The corrected clause names what was actually removed (three writers, their support helpers and tests, and the two `observation_emit_census` rows their print markers occupied) and states plainly that the field survives, with both live consumers named so the next reader can check the claim instead of trusting it. The false version is recorded in place rather than quietly swapped, because it is the exact premise-contamination class this document forbids: a session reading it would have planned against a deleted field and found it populated. It is recorded with unusual directness because the author had spent the day correcting that same class in other carriers and then committed it here. Comment-only. No code changed by this commit. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PgpEN2jnUGsLhM5vRKH6fD
|
Fixed in Verified against this head before fixing: On the two offered repairs, I took the second. Deleting the field would remove those two capabilities, and X was admitted to remove the batch-fed witness-cost materialization — not every consumer of the row type. Widening the deletion to make my sentence true would be repairing prose by breaking code. So the sentence changed. The corrected clause names what was actually removed (three writers, their support helpers and tests, and the two I recorded the false version in place rather than swapping it silently. It is the precise premise-contamination class DESIGN forbids — a session reading it would have planned against a deleted field and found it populated — and it is worth the extra sentence because I wrote it on a day spent correcting that same class in other carriers. The earlier APPROVE on this PR had even noted the field intentionally survives; I did not reconcile that against my own prose. No code changed by the fix commit. — sent from fierce-hawk-734 |
…consumer left CI red at `e1ef1bf`: `unused variable: falsifier_cadence`. The release build denies warnings; my local `cargo check` did not, so a green local run proved nothing about the gate. That is the defect behind the defect -- an instrument weaker than the wall it is standing in for -- and the fix here is verified with CI's literal command (`cargo build --release -p v1-compiler --bin claim_executor --bin gunbc`, exit 0, no rustc warnings) rather than with the weaker check that missed it. `falsifier_cadence` gated `write_witness_row_cost_drift_receipt_at`, which this branch deleted, so nothing inside `run_walk` reads it any more. It is removed rather than underscore-silenced: a parameter threaded through five call sites with no consumer is dead plumbing, and renaming it would keep the plumbing while hiding the evidence. HOW THE ARGUMENTS WERE IDENTIFIED, because guessing here is how a silent defect lands: `falsifier_cadence: bool` sits immediately before `emit_ordinary_floor_receipts: bool`, so deleting the wrong positional `bool` at a call site type-checks and silently flips a different flag. Rather than count arguments by hand across five sites, the parameter was temporarily retyped to `&'static str` so rustc named the exact argument position at every call site; each literal was then confirmed (`false` at four sites, `plan_function == "gunbc_falsifier_plan"` at the falsifier caller) before parameter and arguments were removed together. The compiler located them; I did not. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PgpEN2jnUGsLhM5vRKH6fD
…tions
The X deletion removed the row-cost receipt writers by line range. Two of
those ranges ended inside a doc comment whose function survived, so the
fragment re-attached to the NEXT function and falsely described it:
- walk_attempt_id_segment_is_safe lost its own §7 SCAFFOLD block (which
names std.types path_segment_is_safe as the single law, with a
dissolve-on) and inherited the drift writer's prose instead.
- batch_is_wet gained 40 lines about MeasuredUnavailable and
observation_measured_note; on main it carries no doc comment at all.
Both are the §4c failure in its plainest form: an annotation asserting
something about a subject that cannot read it. A sweep comparing every
surviving fn's preceding doc block against origin/main now reports zero
differences, so this is the class and not two instances.
Caught by the side chat's review of the first one; the sweep found the
second. Both post-date the approvals on this PR.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PgpEN2jnUGsLhM5vRKH6fD
|
Pushed a repair that post-dates the approvals on this PR, so flagging it rather than letting it ride. Two of the deletions in this PR were taken by line range, and two of those ranges ended inside a doc comment whose function survived. The fragment then re-attached to the next function and described it falsely:
Restored the first from main and removed the second. I then swept every surviving top-level The first was caught by my side chat, not by me — worth naming, because a deletion that eats adjacent authority prose leaves the code compiling and the annotation lying, which is exactly the §4c state no — sent from fierce-hawk-734 |
…ion policy Two findings from the side chat's review of this PR, both surviving on the previous head. X-2 -- the acceptance note's closing paragraph still said the census suite asserts '== 8, a fact about today'. Both halves are false now: this PR removed the frontier assertions from that suite, and the population moved when the two batch-fed sites retired. The failure is the mirror of the one the same row already records a paragraph earlier -- there an enumeration went false while the count stayed right; here a count outlived both its population and the assertion it attributed to another file. Deleted rather than re-pinned: observation_emit_frontier_count folds the roster and is the only authority for how many there are, so reciting another file's assertion was a second, positional naming of something that file already states. X-3 -- witness_row_cost_migration_threshold_ms and _verdict lost their last non-test consumer when the migration-disclosure writer was deleted. They are NOT inert: their witness still calls both and pins the threshold, so this is test-only policy, not dead code, and reading reachability as occupancy would delete a live wall. Declared RetainedPurePolicyPendingRequiredFloorProjection with the required floor's fold-native cost receipt named as next consumer and a two-armed dissolve-on. The point of the row is the refusal to let them read as silently surviving production authority. Verification: prose-only .dag edits; compile.frontend and compile.normalize both completed (the parse stage these can break) before the run was OOM-killed at a later stage under host load 27. No new string escapes introduced. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PgpEN2jnUGsLhM5vRKH6fD
|
Two more repairs pushed ( X-2 — a stale count recital, missed by name-level reading. The acceptance note's closing paragraph still said the census suite asserts Worth stating plainly, since a review here concluded the opposite: the note's earlier paragraph was corrected without restating a count, and that is what a reader checking the correction sees. The recital sat further down, in the paragraph explaining why this row exists separately from the census suite. Same file, same That makes it the mirror of the failure this same row already records one paragraph up: there, an enumeration went false while the count beside it stayed correct; here, a count outlived both its population and the assertion it attributed elsewhere. A count-based check cannot catch either. X-3 — the migration policy needed a disposition, not silence. Declared Verification is weaker than I would like and I am labelling it rather than rounding up: these are prose-only — sent from fierce-hawk-734 |
…recitals Review 54810 asked me to fix three stale recitals that still described the two witness-row-cost roster rows this PR removed. Two of the three were real and are fixed. Checking the third against the seed showed one of the removals was itself wrong, so correcting the prose to match the roster would have cemented the defect rather than exposed it. [witness-row-cost] IS STILL LIVE IN THE SEED. A production eprintln survives in claim_executor discovery_claim_result, on a path with five non-test callers. Only [witness-row-cost-migration-disclosure] and [witness-row-cost-drift] are gone. So removing witness_row_cost_site broke the bidirectional rule the census states in its own completeness note -- a live tag family absent from the roster. Restored: the roster row (with a rewritten reason, because what emits under that tag changed -- the per-witness TSV join is gone, the refusal line is what survives) and the bidirectional witness assertion. Executed evidence, discriminating pair: real marker -> w_post_snapshot_live_tags_are_rostered_bidirectional = true marker mutated to a bogus string on a copy -> false The control ran on a throwaway copy inside the workspace, since the source root must be under it; the copy is removed and the tree is clean of it. Also corrected, found while verifying: both the completeness note and the acceptance note listed selection-degradation as a frontier family. It has no emit in the seed and has never been on the roster -- an enumeration carrying a family that does not exist beside a count computed from families that do, so the two errors partially cancelled. What makes this worth recording rather than quietly fixing: the removal was reviewed, the review agreed the marker was gone, and nothing would have caught it -- the hand-maintained conjunction covering that tag was deleted in the same diff. A conjunction cannot object to its own deletion, so removing an assertion and removing the fact it protected look identical in the diff. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PgpEN2jnUGsLhM5vRKH6fD
|
Addressed review 54810 ( The one that inverts
So the premise that "the two Restored the row and the bidirectional assertion. The row carries a rewritten reason rather than the old one, because what emits under that tag genuinely changed: the per-witness TSV join projection is deleted, and what survives is the refusal line. Same tag, different population. Executed evidence, discriminating pair: The negative ran against a throwaway copy of The two that hold, fixed
One more, found while verifyingBoth the completeness note and the acceptance note listed What I would take from thisThe removal was reviewed, the review agreed the marker was gone, and nothing would have caught it: the hand-maintained conjunction covering that tag was deleted in the same diff. A conjunction cannot object to its own deletion — removing an assertion and removing the fact it protected are the same diff shape. That is the durable argument for the source-level marker census the witness note already names as its own residue: a check that DISCOVERS markers in the seed and joins them against the roster would have refused this edit without anyone remembering the tag. Frontier rows on the roster now: 6, and the enumerations name exactly those six. — sent from fierce-hawk-734 |
…he suite that should have caught them (#8951) #8923 corrected the frontier side of gunbc.observation_emit_census and left two recitals on the other side of the same file false. Both are the class the file already documents about itself. 1. observation_emit_census_sequencing_note said #7284's [witness-row-cost] left the roster on 2026-08-22 alongside [witness-row-cost-migration-disclosure]. Only the disclosure tag retired. witness_row_cost_site is a live CountedFrontierSite row in this same file, grounded on the surviving refusal emit in claim_executor discovery_claim_result, so one file was giving opposite present-tense accounts of one family. 2. observation_emit_roster_completeness_note recited `Eight families MigratedToObservation` and enumerated witness-budget-warn, which has no row in this roster and never had one. Derived from the roster the migrated population is SEVEN. That is the same two-directional failure this note already records on the frontier side -- a hand-maintained count and a hand-maintained enumeration beside each other, where a wrong member and a wrong total can agree -- surviving the pass that fixed the other side. The migrated recital is not repaired by writing seven. Neither a count nor an enumeration is maintained here now: observation_emit_roster names those rows, so restating them in prose is a second naming scheme for something the roster already names, and it is the naming scheme that rots. No derived migrated_count is minted beside observation_emit_frontier_count either -- the frontier count has a real target driving it to zero, a migrated count has nothing driving it, so it would be an artifact with no consumer whose only available assertions are `measure() == measure()` or a literal copied from the current tree. The suite that should have refused both is declined. Recorded at w_required_floor_standing_note rather than left to be inferred: observation_emit_census_witness_test declares ReadsLiveTree honestly -- it reads the seed -- and the floor declines every identity in such a file before execution (the 830 in declined_live). Meanwhile the zero-target acceptance declares SubstrateInputsOnly, DOES execute, and asks only whether observation_emit_frontier_count is zero. So the incentive is inverted: deleting a roster row moves the executing metric toward green while the only check that could object never runs. On 2026-08-22 that happened -- a live row deleted on a false premise, count improved, CI green, recovered by review. The disposition is NOT relabelled to get the suite admitted; editing a declaration to change routing is the §5 tell that a check was satisfied by editing its declaration rather than its subject. Rung declared MITIGATABLE, next-rung trigger is the floor's live-tree decline arm being deleted at the root. Verified by execution with the in-tree release binary (the gunbc on PATH is a stale shim that fails to parse current std/ identically on unmodified main -- controlled). All four census assertions return true; mutating the surviving frontier row's marker to one absent from the seed returns false on both source-joined assertions. observation_emit_frontier_count is 6 before and after, and the expected-red acceptance still returns false: prose-only, no computed value moved. Claude-Session: https://claude.ai/code/session_01PgpEN2jnUGsLhM5vRKH6fD Co-authored-by: Brian Searls <briansearls1@gmail.com> Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
X of the R/X pair (operator ruling, 2026-08-22).
What is deleted
write_witness_row_cost_receipt,write_witness_row_cost_drift_receipt_at, andwrite_witness_row_cost_migration_disclosure_receipt_atall projected one field —ClaimResult.witness_row_costs— populated at exactly one site on the discovery/batch path the floor cut removed. Required CI never reached any of them:required_floor_modereturns beforerun_walk. Their only remaining production reachability wasrun_perturb_checkand the ordinaryrun()fall-through, and the TSV they wrote has zero programmatic consumers anywhere in the tree.This is a declared capability removal, not dead-code cleanup
Those two modes lose an output they could still produce. It is admitted because retaining the writers would leave
WitnessRowCost/BatchRecordstanding as a second semantic representation of witness cost besidestd.observationObservationEvent— whichgunbc.witness_row_costalready rules is the record, not a TSV schema. That is the §3 parallel-authority state, waiting for the two to disagree about clock treatment or unavailable-vs-zero.What the delete-first census surfaced
Two of the three writers’ print markers were enrolled in
gunbc.observation_emit_censusasCountedFrontierSiterows. Deleting the emits deletes the rows, soobservation_emit_frontier_countshrinks by exactly two — monotonically toward the zero its expected-red acceptance test waits for. Precedent is recorded in that same census: gate-warm-cost and witness-row-cost-drift rows went the same way when their emits did.And one thing the census caught that I had wrong. I first cut the shared basis parser and
witness_row_cost_verdict_via_authorityalong with the writers, assuming they were materialization-only. They are not —write_compile_clean_cost_drift_receipt_atshares them wholesale (same basis schema, same parser, same 2× authority) and is a live, separate capability.cargo checkrefused, the shared block was restored, and only genuinely batch-only code stayed deleted. That refusal is exactly what delete-first buys.TASK #20 is dispositioned, not orphaned
It named these receipts as its reproduction evidence, and its own clause forbids silent closure. It stays
OpenUnknown; what is recorded is that its evidence is nowReproductionProducerRetiredPendingEquivalentProtocol— a typed, cited refusal — with the re-binding trigger named: the required floor’s fold-native identity-grain cost receipt (R).The frontier enumeration in the acceptance note is corrected without restating a count, because that note itself records the time its enumeration went false while the number beside it stayed right.
Verification
By execution, not inspection:
cargo build --release -p v1-compiler --bin claim_executor --bin gunbccargo check -Z definitely-not-a-real-flagcargo fmt --all --check(pre-commit + pre-push)Net: −771 / +8 lines.
Why this table changed. It previously listed only
cargo checkruns. That was not CI's build: the release build denies warnings andcargo checkdid not, so an unused-parameter warning left by this PR's deletion passed locally and turned CI red. The row above is now the exact command CI runs. Recorded rather than swapped, because "verified locally" against a weaker command than the gate is the failure, not the warning itself.The
.daghalf (census rows, witness assertions, acceptance note, TASK #20) is verified by CI, which I cannot run locally.🤖 Generated with Claude Code
https://claude.ai/code/session_01PgpEN2jnUGsLhM5vRKH6fD