diff --git a/docs/research/2026-09-01-overhaul/s3-walk-ownership-map.md b/docs/research/2026-09-01-overhaul/s3-walk-ownership-map.md index e8fa9bb1..0c462597 100644 --- a/docs/research/2026-09-01-overhaul/s3-walk-ownership-map.md +++ b/docs/research/2026-09-01-overhaul/s3-walk-ownership-map.md @@ -803,6 +803,55 @@ DELETE (no retail counterpart): poses (InstalledDat lane); the two cathedral `LC`/`SC` order pins. - T4: `LaunchOptionsDocumentationTests` green with the one new row. +### 11.5 Chunk 1 fix round 1 (lead, 2026-09-03, after the three-lens review of `079483bb6`) + +Verdicts: build/test FAIL and production-path FAIL on the SAME blocking +finding; retail lens pending at draft time (amended below if it adds +items). Every item lead-verified against the source. Fix in the same +worktree on top of `079483bb6`; round 1 of the two the plan allows. + +- **G1 — the flag-off integration test is vacuous (blocking).** + `Collect_TranscriptFlagOff_ProducesNoConsoleOutput` drives ONE frame and + asserts through `WalkOracleTrace.Parse`, which structurally discards the + last (open) frame — so a one-frame transcript parses to nothing whether or + not anything printed. Fix: drive TWO frames and assert (a) the parser sees + ZERO frames and (b) no captured line starts with any of the ten kinds + (`F `, `P `, `LS`, `LC `, `SC `, `BLD `, `DI `, `DC `, `EC `, `OC `) — + robust to other test classes' console noise, which never begins with those + tokens. MUTATION CHECK (mandatory for every pin in this round): show, in + the commit message, that the pin FAILS when the flag gate is forced true + (temporarily) — a pin that cannot fail is not a pin. +- **G2 — LC/SC compute before the flag (major).** `LodCellId(...)` runs on + every land-cell turn (~1,300 divisions/modulos/checked conversions per + outdoor frame) before `PrintLandCell`/`PrintSortCell` test the flag. + Guard the call sites: `if (RenderingDiagnostics.DumpWalkTranscriptEnabled) + WalkTranscriptDump.PrintLandCell(WalkTranscriptDump.LodCellId(...))`, and + audit every other print site for argument work outside the guard (the DC + site builds nothing until inside `PrintDrawCells` — fine; the frame-root + site is already guarded). +- **G3 — the flag-on round trip never prints LC/SC/BLD (major).** Extend T2: + one outdoor-root frame over a synthetic landscape with one in-view block + and one building (the `WalkFrameDriverTests` landscape fixtures already + exist) → the captured lines parse to a frame whose events contain + `LS`, ≥1 `LC`, ≥1 `SC`, and the `BLD`, in that order, matching the + driver's recorded turns; plus one interior-root frame covering `DI`/`DC`/ + `EC`/`OC`. Both with the mutation check. +- **G4 — parts/alpha-depth smoke pins (minor).** Assert `AM > 0` and + `PM > 0` (and `PD > 0`, `DM > 0` for the parts logs) for every committed + capture — §6b lists the counts; a regex that silently matches nothing must + fail. +- **G5 — launch-options wording (minor).** The side-effects column says + exactly: flag off = one bool read per print site, nothing else; flag on = + one console line per walk turn (≈600–800 lines per outdoor frame) — a + print-only diagnostic for offline diffing, never for ordinary runs. +- **G6 — comment hygiene (note).** Remove the self-correction noise in the + conformance test comment ("DI f4180108... no, a9b4013f"); keep the two + bespoke Facts (doorway-still, foundry-deep) — they need the full + DAT-built world the theory body already uses, so either shape is + acceptable; say why in a one-line comment. +- Gates unchanged (§11.3); the InstalledDat lane must still show only the + three known failures; the new still-fixture rows must still reproduce. + ### 11.4 Out of scope Any validator, canonical format, or dashboard; any behavior change; any