ship(phys): A6.P3 slice 2 — L622 seed investigation + #98 filed
Slice 2 v1 (`892019b`) attempted to close issue #96 by removing the PhysicsEngine.cs L622 per-tick CP seed. v1 build/test green, CP-write count dropped 91% in scen3 re-capture, BUT user happy-test surfaced a regression: BSP step_up at the last step of stairs failed because sub-step 1's AdjustOffset had no ContactPlane to compute the lift direction. Slice 2 v2 (`f8d669b`) reverted the seed removal + added a no-op-if- unchanged guard inside CollisionInfo.SetContactPlane. The guard early-returns when called with values matching current ci state. Outcome: - #96 PARTIALLY ADDRESSED, scope updated in ISSUES.md to "accepted as documented retail divergence." The seed is load-bearing for step_up; closing #96 fully would require deeper refactor (AdjustOffset fallback to body.ContactPlane). Guard is benign improvement. - Slice 2 v2 verification capture (scen3_inn_2nd_floor_slice2v2/ acdream.log) committed as evidence — 226,464 cp-writes from L624 seed confirms guard doesn't trigger for fresh-ci-per-tick pattern. - Slice 2 v1 verification capture (scen3_inn_2nd_floor_slice2/ acdream.log) also committed — confirms v1 actually reduced cp-writes (2,690 total) but the step_up regression made it unshippable. NEW M1.5 BLOCKER FILED — issue #98: cellar ascent stuck at last step. Evidence in slice2v2 capture's cell-transit chain: 0xA9B4014B → 0xA9B4014A → 0xA9B4013F → 0xA9B4014A → 0xA9B4014B → ... (Z stable ~96.4; CellId ping-pongs every tick) This is Finding 3 family (cell-resolver hysteresis missing) — same root cause as #90 workaround + scen4 sling-out. Retail oracle: CObjCell::find_cell_list Position-variant at acclient_2013_pseudo_c.txt:308742-308783. NEXT — A6.P3 slice 3: - Port retail's cell-array hysteresis into ResolveCellId + CheckBuildingTransit. - Closes #98 (cellar-up), possibly #97 (phantom collisions same instability family), enables #90 workaround removal. Documents updated: - ISSUES.md — #96 scope updated, #98 filed - docs/plans/2026-04-11-roadmap.md — A6.P3 slice 2 marked SHIPPED, slice 3 scope added - CLAUDE.md — Currently-working-toward block updated to slice 3 Test suite: 1148 pass + 8 pre-existing fail (baseline maintained). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
f8d669be88
commit
d868946537
5 changed files with 279969 additions and 44 deletions
|
|
@ -192,18 +192,32 @@ successfully 2026-04-30 for the steep-roof case. Matching binaries
|
|||
PARTIALLY CLOSED — 99.3% of remaining cp-writes come from L622
|
||||
per-tick body-CP seed at `PhysicsEngine.ResolveWithTransition:622`
|
||||
(filed as issue #96 for slice 2).
|
||||
- **A6.P3 slice 2 — Gate L622 per-tick CP seed** (issue #96,
|
||||
~1 day). Either remove the L622 seed entirely (rely on Mechanism
|
||||
A + Mechanism B for CP propagation) OR gate it to fire only on
|
||||
`body.ContactPlane` change. Verify slope walking + stair-climb +
|
||||
cellar still work. Target: scen3 cp-write ≤ 100 (matches retail
|
||||
BP7 ~0). Re-test phantom collisions + fall-through (issue #97,
|
||||
hypothesized side-effect of #96) post-slice-2.
|
||||
- **A6.P3 slice 3 — Finding 3 (cell-resolver sling-out)** (if not
|
||||
closed as side-effect of slice 1+2). Re-capture scen4 first to
|
||||
confirm whether sling-out persists. Otherwise: narrow fix in
|
||||
`ResolveCellId` + `CheckBuildingTransit` cell-stickiness; remove
|
||||
#90 workaround.
|
||||
- **✓ SHIPPED — A6.P3 slice 2 — L622 seed investigation + no-op guard**
|
||||
(2026-05-22, commits `892019b` v1 + `f8d669b` v2). v1 removed the
|
||||
L622 seed entirely; broke BSP step_up at the last step of stairs
|
||||
(user happy-test surfaced the regression). v2 reverted v1 + added
|
||||
a no-op-if-unchanged guard inside `CollisionInfo.SetContactPlane`.
|
||||
**#96 PARTIALLY ADDRESSED — accepted as documented retail
|
||||
divergence.** The seed is load-bearing for `AdjustOffset`
|
||||
slope-projection on sub-step 1 which BSP step_up depends on.
|
||||
Matching retail would require deeper refactor (e.g. AdjustOffset
|
||||
fallback to body.ContactPlane). Guard is benign improvement;
|
||||
further #96 closure deferred.
|
||||
- **A6.P3 slice 3 — Finding 3 (cell-resolver stickiness)** (NEXT,
|
||||
~1-2 days). New M1.5-blocking bug surfaced during slice 2
|
||||
verification: **user cannot walk UP from cottage cellar — stuck
|
||||
at last step due to cell-resolver ping-pong** (issue #98). Same
|
||||
family as #90 (existing workaround) + scen4 sling-out (Finding 3
|
||||
from A6.P2). Retail oracle: `CObjCell::find_cell_list`
|
||||
Position-variant at `acclient_2013_pseudo_c.txt:308742-308783`.
|
||||
Port retail's cell-array hysteresis: prefer previous tick's
|
||||
CellId when sphere is close to (but slightly outside) previous
|
||||
cell's CellBSP volume. May close issues #98 (target), #97
|
||||
(phantom collisions; same instability family), #90 (workaround
|
||||
removal), and scen4 sling-out together. **No re-captures
|
||||
required for slice 3 scope decision** — issue #98 evidence already
|
||||
captured in `docs/research/2026-05-21-a6-captures/scen3_inn_2nd_floor_slice2v2/acdream.log`
|
||||
cell-transit chain.
|
||||
- Issue #95 (visibility blowup) NOT in A6.P3 scope — separate work
|
||||
surface.
|
||||
- **A6.P4 — Remove workarounds + visual verification** (~1 day after
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue