# FIX-197 + W3 corrective — JIT state (todlando, 2026-08-19)

## BOTH LANES BUILT AND COMMITTED. Do not rebuild either.
## #197 @5eb6a3b: GATED **PASS** (doyle, 2026-08-19) — counts reproduced his side, MOVES priced,
## C4's third site discharged by his source read. Rides the NEXT ASSEMBLY as its ninth member.
## W3 corrective @e99633f: GATED **PASS** (doyle, 2026-08-19) — SEPARATE verdict, recorded in
## KEYSTONE-182-JIT: 637/637 full run in his fresh CRLF rig, all five skeleton/role cells green,
## clippy 0, treqs 0. His PASS message had gone to hertz only; asking is what surfaced it.
## BOARD STATE: #197 stays `state: WIP` on purpose — a lane-gate PASS is NOT field acceptance;
## it moves only when the ASSEMBLED head's golden is green, and doyle sweeps member states at
## milestone close-out through alchemy-0. TOUCH NO LABELS.

### W3 corrective — `e99633f` on `build/keystone-182-w2-sealed-multi` (worktree `.worktrees/keystone-w1`)
doyle's W3 gate verdict at 9193d40 was RED on F1 (CRLF). Fixed and committed; his diff review is
CLEAN and his mechanical re-gate legs (clippy + full --bins + treqs at e99633f) were firing as of
02:4x. W2 @008d0c4 already PASSED separately.

Mechanism (mine, re-measured independently): `include_str!` embeds CHECKOUT bytes and does NOT
normalize; rustc DOES normalize CRLF inside string literals, so `erole::RULE_TIERS` is `\n`
everywhere. On this autocrlf=true box a fresh checkout writes the artifact CRLF, so
`split_once("\n\n")` panicked. Fixed at the fixture edge (`er_skeleton()`), NOT with a
`.gitattributes` eol pin (declared reason in the commit).
Evidence: pre-fix + CRLF => 2/2 FAIL (exact panic); fix + CRLF => 2/2 PASS; fix + LF => 2/2 PASS;
spt --bins 637/637; clippy 0; treqs 0; diff scope cli.rs alone.

### #197 seam (i) — `5eb6a3b` on `fix/197-absent-code-uncounted`, base `f2d215a` (worktree `.worktrees/fix-197`)
Commit says `fixes #197`. Issue comment posted. doyle ACKED the hand-off; his diff review started
read-only, mechanical legs queued after hertz's focused cell.

Shape as ruled: `Presented::{Absent, Code{verified}}` enum · `GateOutcome::Uncounted` (apply no-op)
· `BringUp::NoCode` + `engine-room-no-code` · throttle STILL first · write-skip extended as
`!matches!(verdict, NoAdapter | NoCode)` · REQ minted + bound REQ amended BY REPLACEMENT · ADR-0052
§2a doc side. Report said MOVES.

THE FINDING: the defect was ASSERTED, not just uncovered — broker cell
`a_refused_bring_up_starts_nothing_mints_nothing_and_answers_typed` arm (c) asserted `failures==1`
for a codeless bring-up and is tagged `[unit->REQ-ER-BRINGUP-ATTEMPT-BOUND]`; same doctrine in the
`BringUpReq.code` wire doc and an rc.rs cell comment. All three moved with the requirement.
`rc.rs:1150` checked and correctly LEFT ALONE. That rewritten arm also pins the write-SKIP (asserts
the ledger file does not exist), which closes the coverage hole I had wrongly declared.

Legs: spt-store 489/489 · named cells 4/4 (485 skipped, filter matched) · spt --bins 630/630 (after
`cargo build -p spt --bins` — the fixture is a `[[bin]]` in spt itself) · spt-daemon --lib 849/849 ·
clippy 0 · treqs 0 · post-restore confirmation 3/3 + 1/1.
Six negative controls, all red on their own cell, sites counted first (all 1): C1 order, C2 apply,
C3 mapping, C4 new variant compile-red (LIMIT: 2 of 3 sites — the spt-side match is never reached
because spt-store fails first), C5 write-skip, C6 defect re-created.

## SEAM (ii): RULED CLOSED 2026-08-19 (doyle, by MEASUREMENT — #197 comment 5340617852). No second
## product change. My conn=16 labelled hole resolved to ONE actor: every codeless attach across x20
## was `serve_dispatch` fresh-gen re-attach ~130-360ms after a coded one; `shell_channel` and
## `gap_resume` were ZERO in the whole capture. Live trace: Refused failures=1 at the codeless eval,
## then the OPERATOR's real code throttled 331ms later — post-fix that is Uncounted + admit, which
## is exactly the harm #197 named. Dispatcher re-dial residual is benign; separate request if anyone
## wants it gone. #182 work FULLY GATED — nothing further owed this milestone.

## NEXT (in order)
1. Wait for doyle's re-gate verdict on e99633f and his gate on 5eb6a3b. Box order is his legs ->
   hertz's focused engine_room_bringup_e2e -> my #197 gate legs.
2. If he reds either lane, corrective rides the SAME lane branch; re-gate on the corrective tip.
3. Rebase/assembly: engineroom.rs + broker.rs were byte-identical across main/f2d215a/9193d40 at
   lane start, so #197 rebases trivially onto whatever head the assembly picks — RE-CHECK that
   before assuming it still holds.
4. Seam (ii) is DOYLE'S (he took the capture 2026-08-19; his later measurement-service offer
   governs over his earlier "capture is yours" note). Do NOT drive it. He extends gate_probe with
   site tags at attach.rs:298 / attach.rs:397 / shellchan.rs:301, x20, after my gate legs.

## Standing traps
- Open `GATE-TEST-INDEX.md` at first touch of any gate/rig/test-filter/CI log.
- NEVER work inside `.worktrees/rca-182-gate` (doyle's rig, uncommitted probe edits).
- `.worktrees/w3-crlf-probe` is MY throwaway probe worktree (detached @9193d40, no build) — remove
  it when the W3 lane closes.
- Run every leg with `env -u OWL_SESSION_ID -u SPT_AGENT_ID -u SPT_ENDPOINT_ID`.
- `traceable-reqs check` prints the whole registry — pipe it, read the exit only.
- Use `git -C`/absolute paths; a bare `cd` silently repoints every later read.
