Skip to content

FIRSTTOUCH-1: transport_script_wall_compile_red -- live_tree_disposition correction, and a terminal admission finding (not a restoration) - #8575

Merged
briansrls merged 3 commits into
mainfrom
session/quick-owl-789
Aug 19, 2026
Merged

briansrls merged 3 commits into
mainfrom
session/quick-owl-789

Conversation

@gunbai-bot

@gunbai-bot gunbai-bot Bot commented Aug 19, 2026 •

Copy link
Copy Markdown
Contributor

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.

  1. The move out of test.claim.long. stands, on its own reason. 021d17e6a7 quarantined this module for cost (a 35.1x first-touch swing: 1394ms → 48963ms on unchanged rows, traced to the module_path_index shared-fill trap, docs/plans/floor-shared-fill-ledger.md). That trap is already fixed on main (#8470 / 7e4871be86, warms build_module_path_index_from_witness_roots during floor preparation). So the module's long. 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.

  2. The real change: live_tree_disposition corrected from SubstrateInputsOnly to ReadsLiveTree. This witness calls compile_dag_rust_emit_check, which reaches the identical build_module_path_index_from_witness_roots live-tree walk its sibling (compile_diagnostic_census_witness_test.dag) already declares ReadsLiveTree for. 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. SubstrateInputsOnly was the mis-declaration. This correction stands on its own merits regardless of admission consequences.

  3. 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) is long_home(module) → DeclinedLongModule; else reads_live_tree → DeclinedLiveTree; else Planned — an OR of two independent decline arms, not one quarantine gate. Moving the module out of long. does not admit it once ReadsLiveTree is (correctly) declared: it just moves the three identities from one decline bucket to the other. Confirmed at identity grain via the RequiredFloorDispositionRow receipt (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, unchanged
    • declined_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 #8470 warms, 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 defect docs/plans/floor-shared-fill-ledger.md exists 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=766 vastly outnumbers declined_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.
  • Identity-grain disposition comparison against main baseline (above) — the actual falsifying measurement for the original "restoration" claim.
  • Swept for stale test.claim.long.transport_script references — none remain.
  • Not closeable by this PR or any floor run: the witness's actual floor-fold cost under #8470, blocked on its inadmissibility while ReadsLiveTree.

🤖 Generated with Claude Code

Brian Searls and others added 3 commits August 19, 2026 21:01
…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>
@gunbai-bot gunbai-bot Bot changed the title FIRSTTOUCH-1: restore transport_script_wall_compile_red out of long/ (#8470 already fixed its cost) FIRSTTOUCH-1: transport_script_wall_compile_red -- live_tree_disposition correction, and a terminal admission finding (not a restoration) Aug 19, 2026
@briansrls
briansrls merged commit c4642e0 into main Aug 19, 2026
1 check passed
@briansrls
briansrls deleted the session/quick-owl-789 branch August 19, 2026 23:30
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