docs(lane): refresh the recovery checkpoint past B5

The ledger still pointed at 175cc7b as the code head and still listed
B6's routing row as owed, two commits after it landed. A recovery
checkpoint that lags is worse than none: it reads as current and sends
the next session to a tree missing the work it is about to redo.

Head is now f441d3d at 312 GPU rows. B6 moves out of "owed outright"
into a block of its own, because the part worth recovering is not that
it landed but what its fixture had to defeat: TWO independent conditions
each make a horizontal-inertness claim vacuous --- four-column lines pin
B7's saturated right bound to zero, and line wrap, on by default, makes
scroll_by_columns return early and pin the left edge whatever the
target. The default harness document has both. A row asserting "the
minimap did not scroll sideways" passes under either while testing
nothing, and the setup assertion caught it twice.

Also records the review that followed: the same row pinned neither
probe's target and discarded both Steps, so an unchanged
code_scroll_left was the whole of "inert". And it notes the asymmetry a
reader would otherwise get wrong --- the contrast leg cannot use the
transcript, because a horizontal document scroll is local and silent, so
both legs' transcripts are empty.

The B5 paragraph keeps 175cc7b as its own historical anchor, now said
plainly to be B5's checkpoint rather than the lane's, with the current
head named beside it.
This commit is contained in:
Levi Neuwirth 2026-09-01 20:46:12 +02:00
parent f441d3dc55
commit 4e6ca51607
No known key found for this signature in database
1 changed files with 43 additions and 12 deletions

View File

@ -319,10 +319,11 @@ Framing
this base, the panel-replay prerequisite recorded as DISCHARGED by #243,
and the both-axis effect witness still owed.
**Landed so far** (code head `175cc7b`)**:** B1's per-target fractional
**Landed so far** (code head `f441d3d`)**:** B1's per-target fractional
wheel residual (the producer), B2's daemon-side horizontal panel leg,
B3/B7's shared `scroll_window_columns` with its saturated bound and wrap
pin, B4's middle-click PRIMARY paste, and **B5's I-beam**, whose icon is
pin, B4's middle-click PRIMARY paste, **B6's minimap wheel routing**,
and **B5's I-beam**, whose icon is
re-derived in **`reshape`'s tail**. Panel inset transitions now terminate
at `reshape_if_panel_band_changed`: accepted `Present`/`Absent`/row-count
changes and a geometry declaration disowning the retained frame all
@ -341,11 +342,14 @@ row's documented mutation named something the row could not see. **A
witness whose mutation is masked is not weaker evidence than a real
one; it is evidence of nothing, and it reads identically in the diff.**
At `175cc7b`, all 309 GPU rows pass; workspace clippy with all targets
and `-D warnings`, fmt and `git diff --check` are clean. Four mutations
were executed and each fires its named row: omit accepted-frame reflow,
omit epoch-invalidation reflow, reshape content-only frames, and retain
divider hover on `Absent`.
At `175cc7b` — B5's own checkpoint, not the lane's current one — all
309 GPU rows pass; workspace clippy with all targets and `-D warnings`,
fmt and `git diff --check` are clean. Four mutations were executed and
each fires its named row: omit accepted-frame reflow, omit
epoch-invalidation reflow, reshape content-only frames, and retain
divider hover on `Absent`. **The lane's current head is `f441d3d` at
312 GPU rows**; recover from the authoritative remote ref above, not
from this commit.
**Landed but NOT yet witnessed** — recovery needs this split, because
"L1–L8 owed" reads as though none of the mechanism exists:
@ -358,11 +362,38 @@ divider hover on `Absent`.
- **R4 and R5's residual resets**, as two separate clears beside
`code_scroll_left` so omitting either is individually visible.
**Owed outright:** B6's routing row, the **L1–L8 rows** for the
latch above, step 3's fractional both-axis panel witness, R4/R5's own
replacement witnesses, and **B1's disposal half** — a residual keyed to
a surface that goes away must go with it, and this frontend does not yet
track "that buffer is gone".
**Owed outright:** the **L1–L8 rows** for the latch above, step 3's
fractional both-axis panel witness, R4/R5's own replacement witnesses,
and **B1's disposal half** — a residual keyed to a surface that goes
away must go with it, and this frontend does not yet track "that buffer
is gone".
**B6 (`2dccc2b`, tightened in `f441d3d`)** is three rows on
`EffectHarness`, the first production-path coverage `apply_wheel` has
ever had: a notch over the minimap scrolls the document viewport, a
part-notch over it cannot complete one over the document, and its
horizontal axis is inert. Its mechanism had landed with B1; only the
evidence was owed.
Its fixture is the recovery-relevant part. **Two separate conditions
each make a horizontal-inertness claim vacuous**, and the default
harness document has both: four-column lines pin B7's saturated right
bound to zero, and line wrap — **on by default** — makes
`scroll_by_columns` return early and pin the left edge, whatever the
target. Under either, *nothing* scrolls sideways and a row asserting
"the minimap did not" passes without testing anything. The row uses
wide lines and turns wrap off through `LineWrapFacts`, asserting the
wrap landed; `EffectHarness::new()` keeps its 200-line fixture and M22
rationale untouched, with `with_document` added beside it.
Review then caught the same row asserting the absence of one effect and
calling it inertness: it pinned neither probe's target (panel chrome is
horizontally inert too, for unrelated reasons) and discarded both
`Step`s, so an unchanged `code_scroll_left` was the whole claim. It now
asserts both targets exactly and an empty transcript on the minimap
leg. **The contrast leg cannot use the transcript** — a horizontal
document scroll is local and silent, so both legs' transcripts are
empty and only `code_scroll_left` separates them.
### Two gate gaps this lane found, neither fixed here