ship(phys): A6.P3 slice 1 — Indoor ContactPlane retention COMPLETE

Slice 1 ships the strip-synthesis + Mechanism B (LKCP restore) fix
addressing A6.P2 Finding 2. Includes:

  - scen3_inn_2nd_floor_postfix paired capture (retail.log + decoded
    + acdream.log) as verification artifact. acdream cp-write count
    dropped from 86,748 to 25,082; per-unit-of-activity rate dropped
    63x (164.61 -> 2.60 cp-writes per cell-cache event).

  - Findings doc (docs/research/2026-05-21-a6-cdb-capture-findings.md)
    appended with slice 1 SHIPPED section: commit map, scen2/scen3
    pre/post comparison tables, user happy-test results, status of
    each A6.P2 finding (Finding 1 CLOSED as side-effect, Finding 2
    PARTIALLY CLOSED with remaining 99.3% from L622 seed flagged
    as #96, Finding 3 + #95 still open), slice 2 recommendation.

  - Issue #96 filed: "Per-tick PhysicsEngine.ResolveWithTransition CP
    seed contributes 99.3% of post-slice-1 CP writes." Slice 2 target.
    Sketch options: remove entirely / gate by change-detection / no-op
    guard inside SetContactPlane.

  - Issue #97 filed: "Phantom collisions + occasional fall-through on
    indoor 2nd floor." User-reported during happy-testing. HYPOTHESIS:
    side-effect of #96; falsifiable by re-testing post-slice-2.

  - CLAUDE.md updated: Currently-working-toward block now points at
    A6.P3 slice 2 (#96) as the active phase. M1.5 building/cellar
    demo half is ACHIEVABLE NOW (slice 1 unblocked the physics).

  - Roadmap updated: A6.P3 broken into 3 slices, slice 1 marked
    SHIPPED with commit history.

KEY USER-VISIBLE OUTCOME: stairs + cellar descent now WORK in acdream
(user happy-test confirmed walking up/down inn stairs multiple times,
walking down to cellar). A6.P2 Finding 1 (dispatcher entry frequency
mismatch) confirmed as secondary effect of Finding 2 — closed without
explicit Finding 1 work, as A6.P2 hypothesized.

REMAINING CONCERNS for slice 2 + future:
  - L622 per-tick seed (#96) still firing 24,906 times in scen3 postfix
  - Phantom collisions + fall-through on 2nd floor (#97)
  - See-through-walls indoors (#95, separate scope)
  - Indoor lighting broken (A7 scope)

Test suite: 1148 pass + 8 pre-existing fail (baseline maintained;
T3 IndoorContactPlaneRetentionTests adds the +1).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Erik 2026-05-22 10:11:44 +02:00
parent 066568a711
commit f04ea90050
7 changed files with 127435 additions and 24 deletions

View file

@ -726,25 +726,31 @@ render identically to pre-O. Spec:
[`docs/superpowers/specs/2026-05-21-phase-o-dat-path-unification-design.md`](docs/superpowers/specs/2026-05-21-phase-o-dat-path-unification-design.md).
**Currently working toward: M1.5 — Indoor world feels right** (resumed
from 2026-05-20 baseline after Phase O ship). **A6.P1 + A6.P2 SHIPPED
2026-05-21** (this session). Current A6 phase: **A6.P3 — Fix BSP
correction paths.** Per A6.P2 sequencing: Finding 2 first (ContactPlane
resynthesis blowup — primary M1.5 root cause; suspect site
`Transition.FindEnvCollisions` indoor branch). Re-run scen1-5 captures
after PR. Then Finding 3 (cell-resolver sling-out from scen4; remove #90
workaround in same PR). Findings doc:
from 2026-05-20 baseline after Phase O ship). **A6.P1 + A6.P2 + A6.P3
slice 1 SHIPPED 2026-05-21** (this session). Slice 1's strip-synthesis
+ Mechanism B (LKCP restore) fix unblocked stairs + cellar descent in
acdream (user happy-test confirmed walking up/down stairs and into
cellar) — confirms A6.P2's hypothesis that Finding 1 (dispatcher
frequency mismatch) was a secondary effect of Finding 2 (CP-write
blowup). Current A6 phase: **A6.P3 slice 2 — gate L622 per-tick CP
seed (issue #96)**. Slice 2 closes the remaining 99.3% of post-fix CP
writes that come from the body-CP seed at
`PhysicsEngine.ResolveWithTransition:622` (retail equivalent fires zero
calls). After slice 2, re-test phantom collisions + occasional
fall-through on 2nd floor (issue #97, hypothesized side-effect of #96).
Findings doc:
[`docs/research/2026-05-21-a6-cdb-capture-findings.md`](docs/research/2026-05-21-a6-cdb-capture-findings.md).
Original demo scenario (Holtburg Sewer end-to-end) is unreachable: sewer
doesn't exist on this server, and **issue #95** (portal-graph visibility
blowup, discovered in A6.P1 scen5) blocks any substitute dungeon. Revised
M1.5 demo split into building/cellar half (achievable after A6.P3) +
blowup) blocks any substitute dungeon. Revised M1.5 demo split into
building/cellar half (ACHIEVABLE NOW — slice 1 unblocked the physics) +
dungeon half (blocked on #95). Issues in scope: #80, #81, #83, #88, #90
(workaround removal), **#95** (visibility blowup; not A6 scope but
blocks dungeon demo), L-indoor, L-spotlight, stairs, 2nd-floor, cellar,
indoor sling-out (new from scen4), and the `TryFindIndoorWalkablePlane`
synthesis removal. **M2 ("Kill a drudge") is deferred until M1.5
lands.** Full M1.5 writeup at the corresponding block in
`docs/plans/2026-05-12-milestones.md`.
(workaround removal), **#95** (visibility blowup; not A6 scope), **#96**
(L622 seed, slice 2), **#97** (phantom collisions + fall-through; #96
side-effect), L-indoor, L-spotlight, indoor sling-out (Finding 3), and
the `TryFindIndoorWalkablePlane` definition deletion (A6.P4). **M2
("Kill a drudge") is deferred until M1.5 lands.** Full M1.5 writeup at
the corresponding block in `docs/plans/2026-05-12-milestones.md`.
**Today's pre-M1.5 baseline (2026-05-20).** Five surgical fixes
shipped to close the user-reported "logged in inside the inn, ran