docs: Campaign P final physics slice — ledger updates (#116, #166, P2)

Per docs/research/2026-07-30-ts4-116-oracle-plan.md, following the four
code commits that closed out TS-4 (5e2be19b), #116 shape-2 (01492205),
and AD-55 (252e8068), plus #116 shape-1's Path-6 fix (db2889af) and the
TransitionalInsert return-value fix (7e1be3de):

- ISSUES.md #116: shape-2 marked CLOSED (D4 un-skipped, structurally
  confirmed, no cdb needed). Shape-1 narrowed, not closed: the Path-6
  head-sphere fix is a real, independent improvement but the tick-22760
  confirming replay showed it doesn't explain that specific symptom --
  the mover is grounded there (Path 5, not Path 6) and the actual
  no-normal-recorded mechanism (SpherePath.PrecipiceSlide's
  find_crossed_edge-false fallback) is independently confirmed byte-exact
  retail behavior too. Recorded the concrete next step (re-run against
  the faithful Setup-based door registration instead of the simplified
  fixture) rather than closing on an unmet acceptance criterion.
- ISSUES.md #166: noted TS-4 and AD-55 landed (the AP-7-family
  completion this note was waiting on); closure still pends the visual-
  matrix scenario-5 recheck against live retail.
- Campaign P plan (2026-07-29-physics-parity-campaign.md) P2 status
  block: TS-4 outcome (retired, not deferred), #116 outcome (shape-2
  closed / shape-1 narrowed), AD-55 outcome (retired).

Docs-only; no build/test change required for this commit.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Erik 2026-07-30 12:59:23 +02:00
parent 252e806804
commit 464005ef2b
2 changed files with 127 additions and 23 deletions

View file

@ -94,14 +94,36 @@ character state continuously.
### P2 — Response-layer edge family — retires TS-1, TS-4, AP-7; closes #166, #116
**Status (2026-07-30):** TS-1 and AP-7 retired; #166 reattributed in
ISSUES.md (no new code — see the research doc §3). **TS-4 is deferred, not
retired** — the fixture-first removal attempt this doc's §6 Step 3 requires
reproduced the historical 2026-04-30 L.4 wedge (a dat-free capture,
`Ts4SteepRoofWedgeCaptureTests`); the shortcut stays in `BSPQuery.cs`. Root
cause and the concrete next research step are recorded in
`docs/research/2026-07-30-response-layer-edge-family-pseudocode.md` §7 item
6. #116 is untouched (oracle-first, own session).
**Status (2026-07-30, FINAL — Campaign P final physics slice):** TS-1 and
AP-7 retired same-day as originally recorded. **TS-4 is now ALSO
RETIRED** — the oracle follow-up pass
(`docs/research/2026-07-30-ts4-116-oracle-plan.md`) found the freeze the
first implementation attempt hit was one layer downstream of Path 6
(inside `AdjustOffset`'s crease projection against a purely-vertical
offset — a genuine retail-identical degeneracy, not a bug) and ran the
plan's own decisive confirming test: `Ts4SteepRoofWedgeCaptureTests`'s
horizontal-velocity variant (matching the realistic live-play input that
originally validated the shortcut) converges cleanly with the shortcut
removed. The Path-6 steep-poly shortcut is deleted from both
`BSPQuery.cs` and `FlatBspQuery.cs`; the pure-vertical degenerate case is
pinned (not fixed) as register row AD-56. **#116 is narrowed, not
closed**: shape-2 (D4 first-airborne-frame hard-stop) is CLOSED — the
oracle plan's structural dispatch-routing hypothesis was confirmed by
instrumentation with no cdb session needed, and the D4 pin is un-skipped.
Shape-1 (tick-22760 lateral-slide loss) got a real, independently-decomp-
confirmed fix (Path 6's foot-clear/head-hit branch now returns `Collided`
+ `SetCollisionNormal` directly, matching pc:323824-323834/ACE
`BSPTree.cs:221-230`), but the confirming replay showed this does NOT
explain tick-22760 itself — that mover is grounded (dispatches through
Path 5, not Path 6) and the actual "no normal recorded" mechanism
(`SpherePath.PrecipiceSlide`'s `find_crossed_edge`-false fallback) is
independently confirmed byte-exact retail behavior too. The remaining
divergence is most likely this test's simplified door-registration
fixture, not the response layer — see ISSUES.md #116 and the oracle
plan's Addendum 2 for the full trace and the concrete next step (re-run
against the faithful Setup-based door registration). AD-55 (the sled
slope-flatness constant, split out of AP-7's retirement) is ALSO retired
this same slice — byte-proven `cos(10°)` per the oracle plan's Addendum.
The collision *response* layer (what happens after a hit): ground
friction, cliff edges, downhill landings, near-perpendicular wall