docs(phys L.2g): slice 1 shipped handoff + B.4 gap discovery + plan-of-record
L.2g slice 1 is CODE-COMPLETE: parser + registry mutator + WorldSession dispatcher + GameWindow subscriber (4 commits:2459f28,d538915,536a608,108e386). Build clean, 6 new tests pass, baseline-stable across the full suite. Per-commit + final integration code reviews all approved. Visual verification deferred: while running the Holtburg-doorway test, Phase B.4's outbound Use handler turned out to be unwired. The wire builders (InteractRequests.BuildUse), classes (SelectionState, WorldPicker), input-action enums, and keybindings all exist — but GameWindow.OnInputAction has no case for SelectDblLeft, so the click silently does nothing. The inbound L.2g chain we just landed can't fire until something sends an outbound Use. This commit captures the handoff + reframes next-session work: * docs/research/2026-05-12-l2g-slice1-shipped-handoff.md (NEW) Full evidence: 4 shipped commits, end-to-end code flow, B.4 discovery explanation, 4 minor + 1 Important review notes (the Important one is a test-coverage gap that the B.4b visual test will settle automatically), reproducibility recipe, next-session pick. * CLAUDE.md "Currently in Phase L.2" paragraph: L.2g slice 1 code shipped; visual test deferred to B.4b. Next-phase-candidates list: L.2g slice 1 (now done) replaced with the B.4b candidate pointing at the slice scope. * docs/plans/2026-04-29-movement-collision-conformance.md L.2g section gains a "Current shipped slice (2026-05-12):" table listing the 4 commits. * docs/plans/2026-05-12-milestones.md M1 phase-list updated: L.2g slice 1 (code) shipped; B.4 renamed "B.4 / B.4b" with the gap-discovery note + B.4b shape. * docs/ISSUES.md New issue #57 (HIGH) for the B.4 interaction-handler gap. Promoted to Phase B.4b; will close as DONE (promoted to Phase B.4b) when B.4b's design spec lands. * Memory file project_interaction_pipeline.md (in personal memory dir, not in this commit) updated to reflect reality. Next session: Phase B.4b (~30-50 LOC, 1-2 subagent dispatches, ~30 min). Subscribe SelectDblLeft -> WorldPicker.Pick -> InteractRequests.BuildUse -> _liveSession.SendGameMessage. Same Holtburg-doorway visual test verifies both L.2g slice 1 and B.4b in one pass. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
108e3868a5
commit
aba6c9ac7f
5 changed files with 369 additions and 27 deletions
58
CLAUDE.md
58
CLAUDE.md
|
|
@ -618,16 +618,27 @@ acdream's plan lives in two files committed to the repo:
|
|||
approval.
|
||||
|
||||
**Currently in Phase L.2 (Movement & Collision Conformance).** L.2a slices
|
||||
1+2+3 + L.2d slice 1+1.5 shipped 2026-05-12. L.2d closed at the Holtburg
|
||||
site ("watch-and-wait" — no more slices until a new shape-fidelity bug
|
||||
shows up elsewhere); doorway blocker identified as a Door entity, not
|
||||
building BSP. L.2g (dynamic PhysicsState toggling — doors) brainstormed
|
||||
and design-spec'd 2026-05-12 evening; **the natural next step is the
|
||||
L.2g slice 1 implementation** (parse `SetState` 0xF74B, plumb new
|
||||
PhysicsState into ShadowObjectRegistry, verify Holtburg inn doorway).
|
||||
1+2+3 + L.2d slice 1+1.5 + L.2g slice 1 shipped 2026-05-12. L.2g slice 1
|
||||
is CODE-COMPLETE (parser + registry mutator + WorldSession dispatcher +
|
||||
GameWindow subscriber, 4 commits, build green, 6 new tests pass), but
|
||||
its visual verification is **deferred to the B.4b session** — clicking
|
||||
on a door does nothing today because Phase B.4's input-action handler
|
||||
was never wired (the wire builders and bindings exist, but
|
||||
`GameWindow.OnInputAction` has no case for `SelectDblLeft`, so the
|
||||
outbound Use never sends). **The natural next step is Phase B.4b —
|
||||
finish the outbound Use handler wiring** (subscribe `SelectDblLeft` →
|
||||
`WorldPicker.Pick` → `InteractRequests.BuildUse` → send), then re-run
|
||||
the Holtburg inn-doorway visual test which verifies both L.2g slice 1
|
||||
and B.4b in one pass. Estimated 30-50 LOC, ~30 min, 1-2 subagent
|
||||
dispatches.
|
||||
|
||||
L.2g slice 1 ship handoff: [`docs/research/2026-05-12-l2g-slice1-shipped-handoff.md`](docs/research/2026-05-12-l2g-slice1-shipped-handoff.md)
|
||||
— full evidence + the 4 minor review notes + the 1 Important test-coverage
|
||||
gap for `ShouldSkip` (the B.4b visual test's hex-dump will settle whether
|
||||
ACE sends `state=0x4` alone or `0x14`).
|
||||
Design spec: [`docs/superpowers/specs/2026-05-12-l2g-dynamic-physicsstate-design.md`](docs/superpowers/specs/2026-05-12-l2g-dynamic-physicsstate-design.md).
|
||||
Implementation plan: [`docs/superpowers/plans/2026-05-12-phase-l2g-slice1.md`](docs/superpowers/plans/2026-05-12-phase-l2g-slice1.md).
|
||||
L.2d ship handoff: [`docs/research/2026-05-13-l2d-slice1-shipped-handoff.md`](docs/research/2026-05-13-l2d-slice1-shipped-handoff.md).
|
||||
L.2a→L.2d handoff (now superseded by the L.2d ship): [`docs/research/2026-05-12-l2a-shipped-l2d-handoff.md`](docs/research/2026-05-12-l2a-shipped-l2d-handoff.md).
|
||||
|
||||
**Phase L.2a (Truth & Diagnostics) slices 1-3 shipped 2026-05-12.**
|
||||
Three commits land the L.2 "make every bad movement outcome explainable"
|
||||
|
|
@ -705,18 +716,25 @@ together comprise the streaming + rendering perf foundation for the
|
|||
project.
|
||||
|
||||
**Next phase candidates (in rough preference order):**
|
||||
- **L.2g slice 1 implementation — dynamic PhysicsState toggling for doors.**
|
||||
Direct continuation of tonight's L.2d slice 1.5 evidence: parse inbound
|
||||
`SetState (0xF74B)` wire message, plumb the new `PhysicsState` value into
|
||||
`ShadowObjectRegistry`'s cached entity state so the existing
|
||||
`CollisionExemption.IsExempt(...)` check sees up-to-date bits, and verify
|
||||
the Holtburg inn-door scenario walks through cleanly when the server flips
|
||||
Ethereal. Unblocks the M1 demo's *"open the inn door"* line. Spec:
|
||||
[`docs/superpowers/specs/2026-05-12-l2g-dynamic-physicsstate-design.md`](docs/superpowers/specs/2026-05-12-l2g-dynamic-physicsstate-design.md).
|
||||
**Note:** triage the 8 pre-existing test failures still hanging over the
|
||||
physics modules first (none introduced by L.2a/L.2d slices — verified by
|
||||
stash + rerun — but most touch code adjacent to where L.2g will plumb the
|
||||
new state mutator).
|
||||
- **Phase B.4b — finish the outbound Use handler wiring.**
|
||||
Direct M1 blocker discovered while running the L.2g slice 1 visual
|
||||
test: the wire builders (`InteractRequests.BuildUse`), classes
|
||||
(`SelectionState`, `WorldPicker`), input-action enum entries
|
||||
(`SelectDblLeft` etc.), and keybindings (LMB-dblclick → `SelectDblLeft`)
|
||||
all ship today, but `GameWindow.OnInputAction`'s switch has NO case
|
||||
for any of the `Select*` actions — clicking on a door fires the
|
||||
diagnostic `[input] SelectDblLeft Press` but nothing downstream
|
||||
listens. Memory file `project_interaction_pipeline.md` updated to
|
||||
reflect this reality. Shape: subscribe `InputAction.SelectDblLeft`
|
||||
→ build a world ray from current mouse → `WorldPicker.Pick(...)` →
|
||||
store in `_selection` → call `InteractRequests.BuildUse(seq, guid)`
|
||||
+ `_liveSession.SendGameMessage(body)`. Probably also subscribe
|
||||
`SelectLeft` for select-without-use and `UseSelected` for the R
|
||||
hotkey. Estimate: 30-50 LOC, 1-2 subagent dispatches, ~30 min.
|
||||
Verifies L.2g slice 1 in the same Holtburg-doorway visual test once
|
||||
it lands. Full context:
|
||||
[`docs/research/2026-05-12-l2g-slice1-shipped-handoff.md`](docs/research/2026-05-12-l2g-slice1-shipped-handoff.md)
|
||||
"Why the visual test is deferred" section.
|
||||
- **Triage the chronic open-issue list** in `docs/ISSUES.md` — #2 (lightning),
|
||||
#4 (sky horizon-glow), #28 (aurora), #29 (cloud thinness), #37 (humanoid
|
||||
coat), #50 (stray tree), #41 (remote-motion blips) have been open since
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue