docs(roadmap+milestones): mark A6.P1/A6.P2 shipped; update M1.5 demo
A6.P1 (cdb probe spike) + A6.P2 (analysis report) both SHIPPED this session. Updated: docs/plans/2026-04-11-roadmap.md — M1.5 phase block now shows A6.P1 + A6.P2 SHIPPED with commit refs; A6.P3 entry expanded with the Finding-2-first sequencing recommendation from A6.P2; A6.P4 entry notes the original "Holtburg Sewer end-to-end" acceptance walk is unreachable (sewer doesn't exist). docs/plans/2026-05-12-milestones.md — M1.5 demo scenario split into building/cellar half (achievable post-A6.P3) + dungeon half (blocked on issue #95 visibility blowup; promote to post-M1.5 if #95 isn't fixed in scope). Issue list updated: added #95 + indoor sling-out (new from scen4); marked stairs/2nd-floor/cellar as characterized by A6.P2 Finding 2 family. CLAUDE.md — Currently-working-toward block now points at A6.P3 as the active phase. A6.P1 + A6.P2 ship noted with the findings doc pointer. Demo-scenario note updated to reflect the sewer + #95 reality. Issues-in-scope updated. Also includes a 1-line trailing-prompt addition to scen3 + scen4 retail.log files (cdb wrote one more `0:000>` after the kill that landed after the original capture commits). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
184933d796
commit
90fbdc02df
5 changed files with 97 additions and 44 deletions
29
CLAUDE.md
29
CLAUDE.md
|
|
@ -726,16 +726,25 @@ 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). Demo scenario: enter the
|
||||
Holtburg Sewer through the in-town portal, navigate through (walls
|
||||
block, stairs work, items block, lighting reads correctly), exit back
|
||||
to town. Phases: A6 (Indoor physics fidelity, cdb-driven) + A7
|
||||
(Indoor lighting fidelity, RenderDoc + retail-decomp driven). Issues
|
||||
in scope: #80, #81, #83, #88, #90 (workaround removal), L-indoor,
|
||||
L-spotlight, stairs, 2nd-floor, cellar, 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`.
|
||||
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:
|
||||
[`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) +
|
||||
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`.
|
||||
|
||||
**Today's pre-M1.5 baseline (2026-05-20).** Five surgical fixes
|
||||
shipped to close the user-reported "logged in inside the inn, ran
|
||||
|
|
|
|||
|
|
@ -142,27 +142,55 @@ successfully 2026-04-30 for the steep-roof case. Matching binaries
|
|||
(acclient.exe v11.4186) + PDB present.
|
||||
|
||||
**Sub-pieces (slices):**
|
||||
- **A6.P1 — cdb probe spike** (~3 days). Build cdb scripts capturing
|
||||
retail's per-tick state at 9 scenarios:
|
||||
- 4 building sites: Holtburg inn doorway, inn stairs, inn 2nd floor,
|
||||
cottage cellar.
|
||||
- 5 dungeon sites: Holtburg Sewer entry portal, first stair descent,
|
||||
inter-room portal transition, open central area, dark corridor.
|
||||
Breakpoints on `set_collide`, `step_sphere_up`, `step_sphere_down`,
|
||||
`transitional_insert`, `set_contact_plane`, `validate_walkable`.
|
||||
Mirror with our equivalent probes (`[indoor-bsp]`, `[cp-write]`,
|
||||
new `[push-back]`).
|
||||
- **A6.P2 — Analysis report** (~1 day). Quantify the per-call-site
|
||||
gap. Identify which BSP path(s) over- or under-correct. Output:
|
||||
1–3 specific bug findings with retail decomp anchors.
|
||||
- **A6.P3 — Fix the BSP correction paths** (~3–5 days). Surgical
|
||||
fixes informed by A6.P2 data. Likely touches `BSPQuery.AdjustSphereToPlane`,
|
||||
`AdjustOffsetToPlane`, Path 5 / Path 6 branches, sub-step state
|
||||
mutation.
|
||||
- **A6.P4 — Remove workarounds** (~1 day). Revert #90 sphere-overlap
|
||||
stickiness in `PhysicsEngine.ResolveCellId`. Delete
|
||||
`Transition.TryFindIndoorWalkablePlane` + its caller in
|
||||
`FindEnvCollisions`. Verify behavior holds without the workarounds.
|
||||
- **✓ SHIPPED — A6.P1 — cdb probe spike** (2026-05-21). Built cdb
|
||||
scripts (`tools/cdb/a6-probe.cdb` v4 with PDB-verified offsets +
|
||||
hex-bits float output + Python decoder), PowerShell runner with
|
||||
ASCII encoding, PDB-match verification, and the new
|
||||
`[push-back]`/`[push-back-disp]`/`[push-back-cell]` acdream probe
|
||||
family (env `ACDREAM_PROBE_PUSH_BACK=1`). Captured 5 of 9 scenarios
|
||||
with paired retail+acdream traces (scen1 inn doorway, scen2 inn
|
||||
stairs, scen3 inn 2nd floor, scen4 cottage cellar, scen5 town
|
||||
network portal as substitute for Holtburg Sewer entry). Scen6-9
|
||||
cancelled — Holtburg Sewer doesn't exist on this server, and any
|
||||
substitute dungeon hits issue #95 (portal-graph visibility blowup)
|
||||
on portal entry, making physics-only analysis impossible. Five
|
||||
captures are sufficient evidence for A6.P2. Commits: infra Tasks
|
||||
1-14 + cdb iterations + scen1 capture (prior session); scen2-5
|
||||
captures (`a9a427f`, `297d1c5`, `4b5aebc`, `46c6e08`, `35d5c58`)
|
||||
+ issue #95 filing (`5be784e`) (this session).
|
||||
- **✓ SHIPPED — A6.P2 — Analysis report** (2026-05-21, `184933d`).
|
||||
Output: [`docs/research/2026-05-21-a6-cdb-capture-findings.md`](../research/2026-05-21-a6-cdb-capture-findings.md).
|
||||
Four findings ready for A6.P3: Finding 2 (ContactPlane resynthesis
|
||||
blowup — 250× to ∞× more CP writes in acdream; primary M1.5 root
|
||||
cause) is HIGH severity and the highest-confidence single-cause
|
||||
fix candidate. Finding 1 (dispatcher entry frequency mismatch —
|
||||
4× to 281× fewer dispatcher entries in acdream) is likely a
|
||||
secondary effect of Finding 2's missing retention paths. Finding 3
|
||||
(indoor cell-resolver sling-out captured in scen4) — HIGH severity,
|
||||
separate fix surface in ResolveCellId/CheckBuildingTransit.
|
||||
Finding 4 (portal-graph visibility blowup discovered incidentally
|
||||
in scen5) — filed as issue #95, scope-adjacent, handled outside A6.
|
||||
Tables 1+2 (per-site push-back delta + path-frequency diff)
|
||||
deferred to optional A6.P1.5 (entry+exit BPs in cdb script);
|
||||
not blocking A6.P3. M1.5 symptom coverage matrix shows every
|
||||
in-scope physics symptom mapped to at least one finding.
|
||||
- **A6.P3 — Fix the BSP correction paths** (~3–5 days). Sequencing
|
||||
per A6.P2 recommendation: Finding 2 first (highest-confidence
|
||||
single-cause; suspect site is `Transition.FindEnvCollisions` indoor
|
||||
branch + the retention mechanisms that should keep ContactPlane
|
||||
across frames). Re-run scen1-5 captures after the PR. If CP-write
|
||||
ratios drop from ~1,000× to ~1×, Finding 2 is closed and Finding 1
|
||||
may close as side-effect. Then Finding 3 (cell-resolver stickiness
|
||||
in ResolveCellId + CheckBuildingTransit; same PR also removes #90
|
||||
workaround). Issue #95 is NOT in A6.P3 scope.
|
||||
- **A6.P4 — Remove workarounds + visual verification** (~1 day after
|
||||
P3). Revert #90 sphere-overlap stickiness in
|
||||
`PhysicsEngine.ResolveCellId`. Delete `Transition.TryFindIndoorWalkablePlane`
|
||||
+ its caller in `FindEnvCollisions`. Visual verification at Holtburg
|
||||
inn + cellar + (if #95 is also fixed by then) a dungeon. The
|
||||
original A6.P4 plan named "Holtburg Sewer end-to-end" as the
|
||||
acceptance walk; since the sewer doesn't exist, the M1.5 demo
|
||||
scenario needs an alternative (see milestones doc).
|
||||
|
||||
#### Phase A7 — Indoor lighting fidelity (RenderDoc + retail-decomp driven)
|
||||
|
||||
|
|
|
|||
|
|
@ -198,18 +198,30 @@ baseline with no code changes lost — Phase O did not touch dat-loading
|
|||
infrastructure for physics or collision, only the rendering pipeline.
|
||||
M1.5's planned phases (A6 + A7) are unaffected.
|
||||
|
||||
**Demo scenario:** Enter the Holtburg Sewer dungeon through the in-town entry
|
||||
portal. Navigate to the end (5–7 rooms with stairs + a multi-Z chamber).
|
||||
Exit back to town. Throughout the walk:
|
||||
**Demo scenario (updated 2026-05-21):** The original demo target was
|
||||
"enter the Holtburg Sewer dungeon" but that location doesn't exist on
|
||||
this ACE server (discovered during A6.P1 capture session). Additionally,
|
||||
A6.P1 surfaced **issue #95** (portal-graph visibility blowup) which makes
|
||||
ANY dungeon visually unusable on entry. Demo scenario revised in two
|
||||
parts:
|
||||
|
||||
**Building/cellar demo (achievable after A6.P3 lands):**
|
||||
Walk into the Holtburg inn, climb to the 2nd floor, walk around without
|
||||
sling-out or wall-clip. Enter a cottage cellar, descend without falling
|
||||
through. Throughout:
|
||||
- Walls block — no walk-through anywhere, indoor or stab-shell.
|
||||
- Stairs work — ascend + descend without falling through or stuck-in-falling.
|
||||
- Items block — sarcophagi, urns, decorations, tables, chests, fireplaces.
|
||||
- Lighting reads correctly — torchlit rooms are bright, dark corridors are
|
||||
dark, no spotlights projecting onto walls from held items, no upper-floor
|
||||
dimming bug, static decorations participate in the day-cycle (outside) and
|
||||
in per-cell environment lighting (inside).
|
||||
- Items block — furniture, decorations.
|
||||
- Cell transitions are smooth — no CellId ping-pong, no flicker.
|
||||
- Lighting reads correctly — torchlit rooms are bright, no spotlight
|
||||
artifacts, static decorations participate in env lighting.
|
||||
|
||||
**Dungeon demo (blocked on issue #95 fix; promote to post-M1.5 if
|
||||
the visibility bug isn't addressed in M1.5 scope):**
|
||||
Enter any dungeon via portal (substitute for "Holtburg Sewer"). Navigate
|
||||
~3-5 rooms without rendering corruption (no see-through-walls, no
|
||||
other-dungeons-rendered-inside). Walls block, stairs work, items block,
|
||||
lighting correct, cell transitions smooth.
|
||||
|
||||
**Why this is its own milestone:** M1 landed walkable + clickable as a
|
||||
specification (the doorways open, NPCs select, items pick up — all visible
|
||||
|
|
@ -238,14 +250,16 @@ patch.
|
|||
- **#80** — Camera on 2nd floor goes very dark
|
||||
- **#81** — Static building stabs don't react to atmospheric lighting
|
||||
- **#83** — Indoor multi-Z walking broken (cellars, 2nd floors, intermittent falling-stuck)
|
||||
- **#88** — Indoor static objects vibrate (suspected sub-step state corruption)
|
||||
- **#88** — Indoor static objects vibrate (suspected sub-step state corruption — A6.P2 maps to Finding 2 family)
|
||||
- **#90** — CellId ping-pong (workaround in place; remove during A6.P4)
|
||||
- **#95** — Portal-graph visibility blowup (filed 2026-05-21; **blocks the dungeon half of the M1.5 demo** but is NOT in A6 scope; either add a dedicated phase inside M1.5 to fix it OR promote the dungeon demo to post-M1.5)
|
||||
- **L-indoor** — Lighting indoors broken (file as new # during M1.5 kickoff)
|
||||
- **L-spotlight** — Items projecting spotlight on walls (file as new # during M1.5 kickoff)
|
||||
- **Stairs walk-through** — file as new # during M1.5 kickoff
|
||||
- **2nd-floor walking** — file as new # during M1.5 kickoff
|
||||
- **Cellar descent** — file as new # during M1.5 kickoff
|
||||
- **`TryFindIndoorWalkablePlane`** — synthesis workaround removal (Bug A's original goal, finally unblocked)
|
||||
- **Stairs walk-through** — captured + characterized by A6.P2 (Finding 2 family); fix in A6.P3
|
||||
- **2nd-floor walking** — captured + characterized by A6.P2 (Finding 2 — scen3 shows infinite CP-write ratio on flat 2nd-floor walk); fix in A6.P3
|
||||
- **Cellar descent** — same physics family as stairs; fix in A6.P3
|
||||
- **Indoor sling-out** (new symptom from A6.P1 scen4) — captured + mapped to A6.P2 Finding 3 (cell-resolver in ResolveCellId / CheckBuildingTransit); fix in A6.P3
|
||||
- **`TryFindIndoorWalkablePlane`** — synthesis workaround removal (Bug A's original goal, finally unblocked; A6.P4)
|
||||
|
||||
**Frozen phases during M1.5:** all M0 + M1 phases stay frozen. Plus
|
||||
specifically the recently-shipped A4 + #89 + #91 + #92 (today's work) — those
|
||||
|
|
|
|||
|
|
@ -21335,3 +21335,4 @@ ntdll!NtTerminateProcess+0xc:
|
|||
7748949c c20800 ret 8
|
||||
0:000>
|
||||
[BP4] find_collisions hit#10636 collide=Memory access error at '), dwo(poi(@esp+4)+0x174), dwo(@esp+8); .if (@$t0 >= 50000) { qd } .else { gc }'
|
||||
0:000>
|
||||
|
|
|
|||
|
|
@ -22534,3 +22534,4 @@ ntdll!NtTerminateProcess+0xc:
|
|||
7748949c c20800 ret 8
|
||||
0:000>
|
||||
[BP4] find_collisions hit#12596 collide=Memory access error at '), dwo(poi(@esp+4)+0x174), dwo(@esp+8); .if (@$t0 >= 50000) { qd } .else { gc }'
|
||||
0:000>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue