docs(phys L.2a): handoff + next-session prompt + CLAUDE.md / plan-of-record updates
Documents the L.2a-slice-1/2/3 ship for the next session and updates the project's source-of-truth docs to reflect current state. New files: - docs/research/2026-05-12-l2a-shipped-l2d-handoff.md — full cold-start handoff: what shipped, three findings (L.2e cell-id format gap, L.2c wall-slide working, L.2d sub-direction = CBuildingObj port), branch state, diagnostic surface inventory, files changed, open concerns, cold-start checklist, reproduction recipe. - docs/research/2026-05-12-l2d-next-session-prompt.md — terse copy-paste prompt for the next Claude Code session. Modified: - docs/plans/2026-04-29-movement-collision-conformance.md — added "Current sub-direction" note under L.2d capturing the evidence-driven call: building-mesh fidelity issue, not door-state-toggle. - CLAUDE.md — updated "Currently between phases" → "Currently in Phase L.2"; added L.2a shipped paragraph; added ACDREAM_PROBE_RESOLVE / ACDREAM_PROBE_CELL to Diagnostic env vars; prepended L.2d brainstorm to next-phase candidates list. No code changes in this commit. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
a068292f2a
commit
eb401e8cac
4 changed files with 288 additions and 2 deletions
46
CLAUDE.md
46
CLAUDE.md
|
|
@ -526,8 +526,31 @@ acdream's plan lives in two files committed to the repo:
|
|||
acceptance criteria. Do not drift from the spec without explicit user
|
||||
approval.
|
||||
|
||||
**Currently between phases.** Phase C.1.5b just shipped; next phase is
|
||||
the user's call from the candidate list below.
|
||||
**Currently in Phase L.2 (Movement & Collision Conformance).** L.2a slices
|
||||
1+2+3 shipped 2026-05-12 (this evening); the natural next step is the
|
||||
L.2d slice 1 brainstorm / design spec. Cold-start prompt for the next
|
||||
session: [`docs/research/2026-05-12-l2d-next-session-prompt.md`](docs/research/2026-05-12-l2d-next-session-prompt.md).
|
||||
Full handoff: [`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"
|
||||
diagnostic foundation. Slice 1 (`ebef820`) adds runtime-toggleable
|
||||
`ACDREAM_PROBE_RESOLVE` (one `[resolve]` line per
|
||||
`PhysicsEngine.ResolveWithTransition` call) + `ACDREAM_PROBE_CELL` (one
|
||||
`[cell-transit]` line per `PlayerMovementController.CellId` change),
|
||||
both backed by a new `AcDream.Core.Physics.PhysicsDiagnostics` static
|
||||
class and mirrored as DebugPanel checkboxes. Slice 2 (`e0c08bc`) extends
|
||||
the `[resolve]` line with `obj=0x...` attribution. Slice 3 (`a068292`)
|
||||
populates the previously-stub `CollisionInfo.CollideObjectGuids` /
|
||||
`LastCollidedObjectGuid` (declared in `TransitionTypes.cs` but never
|
||||
written anywhere) at the per-object iteration in `FindObjCollisions`,
|
||||
so the slice-2 promise is now actually delivered. Visual-verified at
|
||||
the Holtburg Town doorway: probes captured 140 wall hits attributed to
|
||||
`obj=0xA9B47900` (landblock-baked static = the building itself,
|
||||
**NOT** a door entity), confirming L.2d sub-direction as **port
|
||||
`CBuildingObj` collision + per-cell walkability** rather than door-
|
||||
state-toggle. Plus a definitive L.2e finding: player `CellId` tracked
|
||||
as bare low byte (`0x00000029`) with no landblock prefix.
|
||||
|
||||
**Phase C.1.5b (per-part PES transforms + dat-hydrated entity DefaultScript)
|
||||
shipped 2026-05-12.** Closes issue #56. `SetupPartTransforms.Compute(setup)`
|
||||
|
|
@ -585,6 +608,13 @@ together comprise the streaming + rendering perf foundation for the
|
|||
project.
|
||||
|
||||
**Next phase candidates (in rough preference order):**
|
||||
- **L.2d slice 1 brainstorm + spec** (`docs/research/2026-05-12-l2d-next-session-prompt.md`).
|
||||
Direct continuation of tonight's L.2a evidence: port `CBuildingObj` collision
|
||||
+ per-cell walkability so doorway gaps are walkable. Unblocks "walk into a
|
||||
building" + sets up G.3 dungeon streaming. **Note:** triage the 8 pre-existing
|
||||
test failures first (none introduced by L.2a slices — verified by stash + rerun
|
||||
— but most touch movement/physics code L.2d will evolve). See the handoff doc's
|
||||
"Open concerns" 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
|
||||
|
|
@ -744,6 +774,18 @@ via `PlayerMovementController.ApplyServerRunRate`) or from
|
|||
diagnostics (`[UM_RAW]`, `[SCFAST]`, `[SCFULL]`, `[SETCYCLE]`,
|
||||
`[FWD_WIRE]`, `[OMEGA_DIAG]`, `[SEQSTATE]`, `[PARTSDIAG]`,
|
||||
`[VEL_DIAG]`, `[UPCYCLE]`). Heavy.
|
||||
- `ACDREAM_PROBE_RESOLVE=1` — L.2a slice 1+2+3 (2026-05-12). One
|
||||
`[resolve]` line per `PhysicsEngine.ResolveWithTransition` call:
|
||||
input + target + output position/cell, ok-vs-partial, grounded-in,
|
||||
contact-plane status, wall normal if hit, **responsible entity
|
||||
guid** (post-slice-3 attribution plumbing), env flag, walkable
|
||||
polygon valid. Heavy (~30 Hz × every entity). Runtime-toggleable
|
||||
via the DebugPanel "Diagnostics" section if `ACDREAM_DEVTOOLS=1`.
|
||||
- `ACDREAM_PROBE_CELL=1` — L.2a slice 1 (2026-05-12). One
|
||||
`[cell-transit]` line per `PlayerMovementController.CellId`
|
||||
change: old → new cell, world position, reason tag
|
||||
(`resolver` / `teleport`). Low volume — only fires on actual cell
|
||||
crossings. Runtime-toggleable via the same DebugPanel section.
|
||||
- *(retired 2026-05-05 by L.3 M2/M3)* `ACDREAM_INTERP_MANAGER` was an
|
||||
env-var gate on an experimental per-tick remote motion path. L.3 M2
|
||||
(commit 40d88b9) replaced both gates (`OnLivePositionUpdated` +
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue