Repository navigation
FIRSTTOUCH-1: transport_script_wall_compile_red -- live_tree_disposition correction, and a terminal admission finding (not a restoration) - #8575
Merged
Conversation
…8470 fixed its first-touch cost) 021d17e dropped this witness back into test.claim.long. after observing 1394ms->48963ms (35.1x) on the SAME unchanged rows -- the module_path_index shared-fill first-touch trap from the #8455 ledger, not a real cost of the witness. #8470 (7e4871b, already on main) fixed the exact call site (compile_dag_rust_emit_check_uncached -> build_module_path_index_from_witness_roots) by warming the index during floor preparation instead of inside an arbitrary claim, and named this witness's own rows in its own measurement table. Restores the module to dag/test/claim/, drops its long. module segment, and corrects live_tree_disposition from SubstrateInputsOnly to ReadsLiveTree -- compile_diagnostic_census_witness_test.dag had flagged that declaration as a latent mis-declaration pending the (since-deleted) falsifier cadence; tracing the shared host call confirms it reads the live tree. Closing this by execution, not argument, is the next --required-floor pass with the module back in discovery -- recorded as this change's own next step in the restored file's note. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
The prior commit landed only the file move (a pathspec error dropped the content edits from that git add). This lands the actual changes: the restored module's dropped long. segment, ReadsLiveTree correction and restoration note in transport_script_wall_compile_red_test.dag, the prose_row_frontier.dag path update, and the resolved census_live_tree_note in compile_diagnostic_census_witness_test.dag. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
royal-hawk-392 caught it: v2.workflow.required_floor's admission test is long_home(module) -> DeclinedLongModule; else reads_live_tree -> DeclinedLiveTree; else Planned -- an OR of two independent decline arms. Moving the module out of test.claim.long. does not admit it once live_tree_disposition is (correctly) ReadsLiveTree: it just moves the three identities from one decline bucket to the other. Confirmed at identity grain via RequiredFloorDispositionRow, comparing this branch's floor run against a main baseline run at the same head: claims unchanged (9686/9686), declined_long 539->536 (-3), declined_live 763->766 (+3). Rewrites firsttouch_1_restoration_note to state that plainly: the long/ move stands (its quarantine reason -- cost -- is stale now that the live-tree read is the operative reason), the ReadsLiveTree correction is the substantive change and stands on its own merits, and the finding is terminal -- this witness cannot be admitted to the required floor while it reads the live tree, independent of #8470. The cost question this session originally set out to close cannot be closed by any floor run while that holds, and is left as an open item with that named blocker rather than a task for someone to retry and fail at. Co-Authored-By: Claude Sonnet 5 <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.
Summary
This started as a restoration attempt and is not one. Reworked after royal-hawk-392 (parent lane) caught that the original diff's green CI run proved nothing — see below.
The move out of
test.claim.long.stands, on its own reason.021d17e6a7quarantined this module for cost (a 35.1x first-touch swing: 1394ms → 48963ms on unchanged rows, traced to themodule_path_indexshared-fill trap,docs/plans/floor-shared-fill-ledger.md). That trap is already fixed on main (#8470/7e4871be86, warmsbuild_module_path_index_from_witness_rootsduring floor preparation). So the module'slong.name was asserting a quarantine reason that is stale now that (2) below is the operative reason — carrying both is the exact drift the long/-vs-module-name split exists to prevent.The real change:
live_tree_dispositioncorrected fromSubstrateInputsOnlytoReadsLiveTree. This witness callscompile_dag_rust_emit_check, which reaches the identicalbuild_module_path_index_from_witness_rootslive-tree walk its sibling (compile_diagnostic_census_witness_test.dag) already declaresReadsLiveTreefor. That sibling's own note had flagged this as "either a latent mis-declaration or a judgment call," pending the falsifier cadence — since deleted (2026-08-15 floor cut) and never adjudicated.SubstrateInputsOnlywas the mis-declaration. This correction stands on its own merits regardless of admission consequences.The finding, terminal — this is what "not a restoration" means.
v2.workflow.required_floor's admission test (src/v1/stage0/src/cli_run.rs,run_required_floor) islong_home(module) → DeclinedLongModule; elsereads_live_tree → DeclinedLiveTree; elsePlanned— an OR of two independent decline arms, not one quarantine gate. Moving the module out oflong.does not admit it onceReadsLiveTreeis (correctly) declared: it just moves the three identities from one decline bucket to the other. Confirmed at identity grain via theRequiredFloorDispositionRowreceipt (the mechanism that made this decidable at all), comparing this branch's floor run against a main baseline run at the same head:claims(planned): 9686 in both, unchangeddeclined_long: 539 → 536 (−3)declined_live: 763 → 766 (+3)The three identities moved buckets and never became
Planned. This witness cannot be admitted to the required floor while it reads the live tree — independent of#8470. The first-touch cost fix and the admission question are two separate facts about this module; fixing the first does not touch the second.What this leaves open, honestly
The cost question FIRSTTOUCH-1 originally set out to close (is this witness now cheap under
#8470's fix) cannot be closed by any floor run while the admission finding holds — the witness is never planned into one. A standalone claim run is not a substitute measurement: it disables the per-floor-process memo#8470warms, so it would measure a different, uncached quantity, not this module's floor-fold cost. That would be a fourth false reading of the exact defectdocs/plans/floor-shared-fill-ledger.mdexists to stop people repeating. So the cost question stays open with a named blocker (this witness's own inadmissibility) rather than being left as a checkbox implying a future floor run will close it.Scale note, unrelated to this witness but worth surfacing where it'll be seen: at the same measurement,
declined_live=766vastly outnumbersdeclined_long=536(763 vs 539 pre-move). The multi-wave, multi-session effort behind this whole floor-restoration lane has been aimed entirely at the smaller of the two declined populations.Test plan
gunbc compile --source-root dag --source-root src/v2 --dry-run— clean parse/resolve, both before and after the note rewrite.test.claim.long.transport_scriptreferences — none remain.#8470, blocked on its inadmissibility whileReadsLiveTree.🤖 Generated with Claude Code