memory: snapshot — U7 three-quarters built, blocked on one ruling

U6 shipped as v0.6.0 and a late fix as v0.6.1; U7's three ratified components
(rail, filters, grid keyboard) are landed and the fourth is deliberately not,
because swapping subfolder sections for filename-derived groups is a scope
departure the operator has not ruled on. A test fails if anyone builds it
anyway.

Two new detail files. One decomposes U7 by ratified-versus-not and records the
two decisions taken under stated assumption. The other keeps the mechanism
behind today's misrouted directive: pane_find addresses seats by a ROLLING PANE
TITLE, which is not a stable address, and the failure is silent from the
sender's side -- Miranda had no signal until infra-ops flagged it. The incident
resolved; the mechanism did not.

The generated handoff committed the modality failure its own step-7 read exists
to catch: it listed push, seed and the 17-handle note as imperative Next steps
when all three are explicitly gated. Rewritten as do-nots, Next steps emptied.
Recorded here because it is the second time the generator has needed that
backstop.
This commit is contained in:
vh
2026-09-22 17:38:40 -07:00
parent a306e2dc6d
commit 8bf5343049
3 changed files with 140 additions and 52 deletions
@@ -0,0 +1,45 @@
# An approved directive misrouted because pane_find addresses by a rolling title
_2026-09-22 · booth_
**An operator-approved directive (D-0011, sent by Miranda, telling booth-dev to
begin U7) landed on the infra-ops handle instead.** Worth keeping for the
mechanism, not the incident: the incident resolved cleanly and the mechanism
did not.
## What happened, and why nothing broke
`pane_find` matched `terminal_2` **by its ROLLING PANE TITLE**, and that pane is
the eshpfi-management seat rather than booth-dev. Miranda confirmed all of this
directly when asked.
infra-ops caught it and **deliberately did not relay the content as an
instruction** — their reasoning, which is exactly right: a directive arriving as
"infra-ops says Miranda says Vuong says" is two hops from the source, and a peer
passing operator authority along is the thing the rules warn about. They sent a
routing report instead, quoting only the two lines that identified the target.
This session then **did not act on it**, and asked Miranda directly rather than
taking a peer's word for the operator's. She confirmed it was genuine and
**superseded pending the sections ruling**. Both loops closed in two messages.
## The part that is still true tomorrow
**A pane title that changes as work moves through the pane is not a stable
address.** It put an approved directive on the wrong seat, and:
- **the failure is silent from the sender's side.** Miranda had no signal it
went astray until infra-ops spoke up. A directive that misroutes to a quiet
or busy seat simply evaporates.
- it landed somewhere that caught it. That was luck, not design.
Reported to infra-ops as an ops matter (`01M35JJ9034E64HMA8X9C21R2N`), with the
mechanism named and no fix proposed — not this repo's call. **Not tracked
anywhere by booth-dev**; recorded here only so the next session does not
re-derive it if a directive goes missing again.
## The rule this confirms
The CLAUDE.md Miranda exception is for Miranda relaying **directly**. A
second-hand report of a Miranda relay is one hop too far, and infra-ops said so
before this session had to. Going to the source cost two messages and settled it.
@@ -0,0 +1,56 @@
# U7 is three-quarters built and blocked on one word
_2026-09-22 · booth_
**The last v1 unit, decomposed by what the operator has already ratified versus
what he has not.** ROADMAP's U7 row names four components. Three were already
approved there and are **built, tested and deployed** (`a306e2d`). The fourth is
a scope departure and is **deliberately not built**.
| component | ROADMAP | state |
|---|---|---|
| sticky rail | ratified | **landed** — totals + per-filter counts |
| filters | ratified | **landed** — all / flagged / annotated / unanswered |
| grid keyboard | ratified | **landed** — `←/→ f n Enter Esc`, bound only when a grid exists |
| **sections → filename groups** | **departs** | **NOT BUILT** |
`tests/test_navigation.py::test_no_group_rail_is_shipped_yet` fails the moment
somebody builds the group rail anyway, so the departure cannot arrive by
accident while the ruling is outstanding.
## The question, and why it is his
**Drop subfolder sections for filename-prefix groups — yes or no?**
Measured (see [[2026-09-22-u7-remeasured-before-scoping]]): **zero of eleven
gallery booths have a subdirectory**, so sections buy nothing; stripping a
trailing digit-run from the stem yields **5–16 sensible groups on four of the
five large galleries** and degenerates to one group on the fifth. The
replacement is better on the evidence — but swapping a ratified component for
an unratified one is scope direction, not implementation.
Contract at `docs/contracts/u7_navigation.contract.md`, status
`PARTIALLY LANDED`, with the departure named as the operator's call.
## Decisions taken under stated assumption, both cheap to reverse
- **`unanswered` means HAS AN OPEN PICK** — the U4 hold predicate, which already
exists. The other reading ("has no mark at all") is a genuinely different
question and stays an open question on the contract.
- **Filters are LINKS, not scripts**, resolved server-side, so the gallery keeps
working with JavaScript off. U3 cost the verbatim path its no-JS operation and
said so plainly; the gallery is the surface the operator actually reviews on,
and this unit does not repeat it there.
## The vacuous falsifier, written an hour after the entry about them
`test_filtering_never_reorders` compared each filtered view against the
**unfiltered response** — so a mutation reversing the order reversed both sides
and it **stayed green under the exact change it forbade.** Caught only by
running the mutation rather than trusting the assertion.
Rewritten against an independent truth: U1 INV-3 says the order IS `sorted(rel)`,
so each view must be sorted, full stop, with no reference to another response.
Re-verified RED. **Every new falsifier in this session was mutation-checked
after this**, and that is the practice to keep — see
[[2026-09-22-vacuous-falsifiers]].