From 2950cd5740793fff4685478c261685468e21e153 Mon Sep 17 00:00:00 2001 From: Erik Date: Sat, 16 May 2026 21:01:30 +0200 Subject: [PATCH] =?UTF-8?q?docs:=20rewrite=20handoff=20=E2=80=94=20M2=20re?= =?UTF-8?q?directed=20from=20"kill=20a=20drudge"=20to=20indoor=20walkabili?= =?UTF-8?q?ty?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit User chose fundamentals-first after M1 landed: indoor walking is untested (M1 only verified outdoor + doorway), indoor lighting is broken, camera clips into walls indoors. Better to fix indoor foundations before stacking combat on top. Three sub-phases proposed for the new M2: 1. Camera correctness (~1 day) 2. Indoor collision audit (~1 week) 3. Indoor lighting basics (~1-2 weeks) Combat ("Kill a drudge") slides to M3. Next session opens with superpowers:brainstorming to scope the demo scenario + agree on sub-phase boundaries + update the milestones doc + CLAUDE.md to formalize the reorder. Co-Authored-By: Claude Opus 4.7 (1M context) --- docs/research/2026-05-16-session-handoff.md | 66 ++++++++++++--------- 1 file changed, 37 insertions(+), 29 deletions(-) diff --git a/docs/research/2026-05-16-session-handoff.md b/docs/research/2026-05-16-session-handoff.md index 4336d55..bf40ff1 100644 --- a/docs/research/2026-05-16-session-handoff.md +++ b/docs/research/2026-05-16-session-handoff.md @@ -5,15 +5,24 @@ **M1 — "Walkable + clickable world" — ✅ LANDED on main at `fb92122`.** All four M1 demo targets work end-to-end retail-faithfully: -1. Walk through Holtburg without getting stuck (L.2 collision) +1. Walk through Holtburg without getting stuck (L.2 collision) — outdoor only verified 2. Open the inn door (B.4c) 3. Click an NPC and see dialogue (B.4b + Phase B.6) 4. Pick up an item from the ground (B.5 + Phase B.6) +**Important caveat:** the M1 demo specifically did NOT test: +- Walking around inside the inn (just the doorway) +- Going up stairs +- Indoor-to-indoor transitions +- Indoor lighting correctness + +These were assumed to "probably work" because outdoor walking does. They likely don't. + ## Main branch history (newest first) | SHA | Title | |---|---| +| `5d79dd3` | docs: session handoff 2026-05-16 (this doc; will be overwritten when you read this) | | `fb92122` | milestone: M1 landed; flip "currently working toward" to M2 | | `d640ed7` | feat(retail): Phase B.6 — server-driven auto-walk done right | | `b5da17d` | feat(retail): Commit B — retail-faithful AP cadence + screen-rect picker | @@ -31,52 +40,51 @@ Replaced the chain of Commit-B workarounds that compensated for ACE's `MoveToCha - **R-key dispatches by target type** — creature → SendUse, pickupable → SendPickUp, useable → SendUse, else toast. - **AP cadence reverted** to retail's two-branch `ShouldSendPositionEvent` gate (`acclient_2013_pseudo_c.txt:700233-700285`). Effective rates: 0 Hz idle, ~1 Hz smooth motion, per-event on cell/plane changes, 0 Hz airborne. `ApproxPlaneEqual` helper added. -Issues closed: **#63, #69, #74, #75**. Full diff was 1316 insertions / 199 deletions across 6 files. +Issues closed: **#63, #69, #74, #75**. ## New rules / preferences captured this session -1. **No workarounds without explicit approval.** CLAUDE.md "How to operate" section + feedback memory at `memory/feedback_no_workarounds.md`. Band-aids, grace periods, suppression flags, retry loops all forbidden unless the user explicitly approves or it's a deliberate new-feature design. User quote: *"we should have no workarounds unless I say so or we want a different feature."* +1. **No workarounds without explicit approval.** CLAUDE.md "How to operate" + `memory/feedback_no_workarounds.md`. Band-aids, grace periods, suppression flags, retry loops forbidden unless the user explicitly approves or it's a deliberate new-feature design. -2. **No milestone demo videos.** CLAUDE.md "milestone discipline" rule #3 + feedback memory at `memory/feedback_no_demo_videos.md`. Milestones land via text-only artifacts — pin a writeup in `2026-05-12-milestones.md`, flip the freeze list, advance the CLAUDE.md "currently working toward" line. User quote: *"pointless of recording videos, for what purpose?"* +2. **No milestone demo videos.** CLAUDE.md "milestone discipline" rule #3 + `memory/feedback_no_demo_videos.md`. Milestones land via text-only artifacts. -3. **Graceful client shutdown via `CloseMainWindow`.** CLAUDE.md "Logout-before-reconnect" section. `Stop-Process` is a hard kill — leaves ACE's session marked logged-in for ~3+ min before timeout. The graceful path runs the client's shutdown hook so the logout packet reaches ACE. +3. **Graceful client shutdown via `CloseMainWindow`.** CLAUDE.md "Logout-before-reconnect" section. `Stop-Process` is a hard kill — leaves ACE's session marked logged-in for ~3+ min before timeout. -## M2 — "Kill a drudge" — the next milestone +## Direction redirect at session end -**Demo scenario:** Equip a sword, walk to a drudge, swing, see damage in chat, watch the swing animation, drudge dies and drops loot, pick up the loot, open inventory and see it. +The originally-planned **M2 — "Kill a drudge"** is being **deferred** in favor of fundamentals-first work. User's stated reasoning: indoor walking, physics correctness, and lighting are all untested or broken, and building combat on top of an unverified-indoor foundation would compound problems. -**Phases in dependency order:** +**New M2 candidate — "Indoor walkability."** Demo scenario candidate: walk into the Holtburg inn, climb to the second floor, look around, walk back out — all with sensible camera + correct indoor lighting + collision-clean. Three sub-phases proposed: -1. **L.1b** — command router + motion-state cleanup (prereq for L.1c) -2. **L.1c** — combat animation wiring (draw/sheath, attack swings by stance/power/height, hit reactions, evades) -3. **F.3** — combat math + damage flow (mostly ACE-side; client surfaces results) -4. **F.5a** — visible-at-login dev panels (Attributes / Skills / Equipped / Inventory list, minimal ImGui surfaces, retail-skin deferred to M5) -5. **F.2** — polished Inventory panel reading `ItemRepository` (data already exists in F.2 base; M2 ships the visual surface) +| Phase | Scope | Estimate | +|---|---|---| +| Camera correctness | Sphere-cast from player to camera position; snap to first wall hit; lerp recovery when clear. Prevent camera from dipping below ground. Indoor-specific but applies everywhere. | ~1 day | +| Indoor collision audit | Walk every floor of the Holtburg inn (and a nearby small dungeon if time). Document each off-feeling spot — stairs, narrow halls, EnvCell-to-EnvCell transitions, EnvCell-to-outdoor seams. Fix scoped per finding. | ~1 week | +| Indoor lighting basics | Tightly scoped: torch-light pools + proper indoor ambient (dim). Defer fire/lamp/glow particles + dynamic-light count optimization to M5. Touches shader pipeline (modern bindless path) + per-object light selection. | ~1-2 weeks | -**First concrete step:** L.1b scope. I haven't read L.1b's spec or roadmap entry — that's the first action of the next session. +Order matters: camera fix first (you can't honestly audit collision while the camera fights you), then collision audit (find the bugs), then lighting (the visual unlock). -## Open issues worth tracking - -After this session's closures, the M1-deferred / post-M1 backlog is: - -- **#61** — AnimationSequencer link→cycle frame-0 flash on door swing. LOW (visual polish). -- **#64** — Local-player pickup animation does not render. LOW (observers see it). -- **#70** — Triangle apex/size DAT sprite. LOW (target indicator final polish). -- **#71** — WorldPicker Stage B polygon refine. LOW (Stage A sufficient). -- **#72** — cdb probe to confirm `omega.z = π/2` base rate. LOW (research). -- **#73** — Retail-message centralization. Per-feature, ongoing. - -None block M2. All M7 polish. +**This milestone has not been formally renamed in `docs/plans/2026-05-12-milestones.md` yet.** The doc still says "M2 — Kill a drudge." The next session should brainstorm the new milestone (using `superpowers:brainstorming`), agree on the demo scenario, scope the sub-phases, then update the milestones doc + CLAUDE.md to reflect the reorder. Combat slides to M3. ## Test baseline - Core.Net: 294/294 ✅ - Core: 1073/1081 (8 pre-existing Physics failures — BSPStepUp + MotionInterpreter; unchanged baseline) -- Visual-verified end-to-end on 2026-05-16 ## Environment reminders - ACE running locally on `127.0.0.1:9000` (testaccount / testpassword / `+Acdream` at `0x5000000A`). - DAT directory: `%USERPROFILE%\Documents\Asheron's Call`. -- Worktree branch `claude/vigilant-golick-9433e1` has the full 20-commit Phase B.6 history if you want to see how it got built; main has one squashed commit (`d640ed7`). -- WorldBuilder submodule needs `git submodule update --init references/WorldBuilder` when working in a fresh worktree. +- Worktree branch `claude/vigilant-golick-9433e1` has the full 20-commit Phase B.6 history; main has one squashed commit (`d640ed7`). +- WorldBuilder submodule needs `git submodule update --init references/WorldBuilder` in fresh worktrees. + +## Open issues worth tracking + +- **#61** — AnimationSequencer link→cycle frame-0 flash on door swing. LOW. +- **#64** — Local-player pickup animation does not render. LOW. +- **#70** — Triangle apex/size DAT sprite. LOW. +- **#71** — WorldPicker Stage B polygon refine. LOW. +- **#72** — cdb probe to confirm `omega.z = π/2` base rate. LOW. +- **#73** — Retail-message centralization. Per-feature, ongoing. + +None block the new indoor milestone. All M7 polish.