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
40
CLAUDE.md
40
CLAUDE.md
|
|
@ -727,28 +727,34 @@ render identically to pre-O. Spec:
|
|||
|
||||
**Currently working toward: M1.5 — Indoor world feels right** (resumed
|
||||
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).
|
||||
slice 1 SHIPPED 2026-05-21.** **A6.P3 slice 2 v2 SHIPPED 2026-05-22**
|
||||
(commit `f8d669b`): tried removing the L622 per-tick CP seed
|
||||
(`892019b` v1) but it broke BSP step_up at the last step of stairs;
|
||||
reverted + added a benign no-op-if-unchanged guard inside
|
||||
`CollisionInfo.SetContactPlane`. Slice 2 outcome: **#96 partially
|
||||
addressed — accepted as documented retail divergence** (the per-tick
|
||||
seed is load-bearing for `AdjustOffset` slope-projection on sub-step 1
|
||||
which BSP step_up depends on; matching retail would require deeper
|
||||
refactor of AdjustOffset). Slice 2 verification surfaced a NEW
|
||||
M1.5-blocking bug: **user cannot walk UP out of cottage cellar — stuck
|
||||
at last step due to cell-resolver ping-pong (filed as issue #98,
|
||||
Finding 3 family).** Current A6 phase: **A6.P3 slice 3 — Finding 3
|
||||
cell-resolver stickiness (issue #98 + #90 workaround removal +
|
||||
possibly closes #97)**. Retail oracle: `CObjCell::find_cell_list`
|
||||
Position-variant at `acclient_2013_pseudo_c.txt:308742-308783`.
|
||||
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) 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), **#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
|
||||
building/cellar half (PARTIALLY ACHIEVABLE post-slice-1; cellar-ascent
|
||||
blocked on #98) + dungeon half (blocked on #95). Issues in scope: #80,
|
||||
#81, #83, #88, #90 (workaround removal after slice 3), **#95**
|
||||
(visibility; not A6 scope), **#96** (L622 seed; retail divergence
|
||||
accepted), **#97** (phantom collisions; may close as #98 side-effect),
|
||||
**#98** (cellar-ascent stuck; A6.P3 slice 3 target), L-indoor,
|
||||
L-spotlight, indoor sling-out (Finding 3 family with #98), 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`.
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue