diff --git a/docs/ISSUES.md b/docs/ISSUES.md index c962f1a5..0d531831 100644 --- a/docs/ISSUES.md +++ b/docs/ISSUES.md @@ -71,6 +71,72 @@ actually steps at (Player_Move.cs / Creature GetRunRate usage). **Where:** GameWindow `TickRemoteMoveTo` + the L.3 M2 queue chase vs `MotionTableDispatchSink` dispatch speed. Related: TS-33 cadence rows. +## #165 — Remote entities penetrate walls ("swallowed a bit") before stopping + +**Status:** OPEN +**Severity:** MEDIUM (visual-only, remote view) +**Filed:** 2026-07-03 (user observation during the R2-R4 visual pass) +**Component:** physics, remote dead-reckoning + +**Description:** Observing a retail-client mover from acdream: when the +mover runs into a wall, the observed remote runs INTO the wall a bit — +"they get swallowed a bit by the wall" — instead of stopping flush at it +like the mover does on their own screen. The mover's client stops them at +the wall; ACE's UP stream reports at-the-wall positions; the acdream-side +remote body ends up partially inside the geometry. + +**Root cause / status:** Unknown — candidates, in suspicion order: +(1) dead-reckoning overshoot: between UPs the DR tick advances the body +along its velocity; if that segment's collision resolve doesn't stop at +the wall (or runs with a start position already server-snapped into +contact), the body tunnels until the next UP pulls it back; (2) the L.3 +M2 queue-chase walking toward a waypoint AT the wall with the remote's +cylinder ignoring the wall plane (check which resolve path the chase +uses and whether it carries the remote's ShadowEntry exclusions only — +#42 — or accidentally broader exclusions); (3) retail remotes collide via +the same per-cell shadow lists as the player (see +feedback_retail_per_cell_shadow_list) — verify our remote resolve +consults building/EnvCell geometry at all in the observed cells. +NOTE: capture first — ACDREAM_PROBE_RESOLVE on the remote's guid at a +wall shows whether the resolver reports Collided-but-position-inside or +never sees the wall. + +**Where:** GameWindow remote DR tick (`TickAnimations` player-remote +pipeline + queue chase), `PhysicsEngine.ResolveWithTransition` remote +callers. + +**Acceptance:** a retail mover pressed against a wall shows flush at the +wall from acdream, matching the retail-observer view side-by-side. + +## #166 — Slope-landing glide + bounce absent (retail "sled" on downhill jumps) + +**Status:** OPEN (post-R6 polish — user: "we could polish later") +**Severity:** LOW (feel/polish) +**Filed:** 2026-07-03 (user observation during the R2-R4 visual pass) +**Component:** physics, landing + +**Description:** In retail, jumping down a hill often lands with a short +glide (sled) and a bounce before settling; acdream lands clean and dead. +The user explicitly classified this as later polish — "a bit deeper +physics than this." + +**Root cause / status:** This is the REGISTER-PREDICTED composite of +three known deferred deviations: **AD-25** (landing wall-bounce velocity +reflection suppressed — its risk column literally names "slope-landing +momentum won't reproduce"), **AP-7** (`calc_friction` threshold 0.0 +without retail's 0.25-with-state-gate — sled deceleration differs), and +**TS-4** (Path-6 steep-poly slide-tangent shortcut — airborne-steep +contact chain diverges). Retiring those three rows IS this issue; do them +together against a retail cdb capture of a downhill jump (velocity + +contact-plane trace at landing). + +**Where:** `PlayerMovementController.cs:874` (AD-25 suppression), +`PhysicsBody.cs:307` (AP-7), `BSPQuery.cs:2001` (TS-4). + +**Acceptance:** side-by-side downhill jump: acdream glides/bounces like +retail; flat-ground landings unchanged; no micro-bounce death spiral +(the reason AD-25 exists) reintroduced. + ## #164 — UM action-replay dispatches drop the per-action Autonomous bit **Status:** OPEN (2026-07-03, filed during #161) diff --git a/docs/research/2026-07-03-r4-verify-session-handoff.md b/docs/research/2026-07-03-r4-verify-session-handoff.md index 5ccb7815..770d1a50 100644 --- a/docs/research/2026-07-03-r4-verify-session-handoff.md +++ b/docs/research/2026-07-03-r4-verify-session-handoff.md @@ -61,11 +61,16 @@ whole gate state — it is how both wedges were pinned. 3. ~~**#163 — strip the TEMPORARY diagnostics**~~ **DONE 2026-07-03** (`[autowalk-gate]` + clock, `[autowalk-feed]`, and the short-lived `[MOVETO-CANCEL]` probe; the durable ProbeAutoWalk family stays). -4. Then the **combined R2+R3+R4 visual-pass remainder** (jump/ledge - momentum, run-in-circles blend, stop settle, retail-observer view of - +Acdream) and **R5** (MovementManager facade + StickyManager + - ConstraintManager + full TargetManager — retires TS-39 + AP-79's - adapter). +4. ~~Combined R2+R3+R4 visual-pass remainder~~ **PASSED 2026-07-03, + user-verified** (jump/ledge momentum, run-in-circles blend, stop + settle, retail-observer view of +Acdream — all four "looks good"). + Two observations filed from the pass: **#165** (remote movers get + "swallowed" into walls a bit instead of stopping flush — remote-DR + collision, capture with PROBE_RESOLVE first) and **#166** + (slope-landing glide+bounce polish — the AD-25 + AP-7 + TS-4 + composite, post-R6 by user's call). NEXT SESSION ENTERS AT **R5** + (MovementManager facade + StickyManager + ConstraintManager + full + TargetManager — retires TS-39 + AP-79's adapter). ## Session gotchas worth keeping