docs: R2-R4 visual pass PASSED (user-verified) - file #165 wall-swallow + #166 slope-landing sled; next entry R5

All four visual-pass items confirmed by the user's eyes (jump/ledge
momentum, run-in-circles blend, stop settle, retail-observer view of
+Acdream). Two observations filed from the pass:

- #165: retail movers observed from acdream penetrate walls a bit
  ("swallowed") instead of stopping flush - remote-DR collision class,
  PROBE_RESOLVE capture is the first investigative step.
- #166: downhill-jump landing glide+bounce (retail sled) absent - the
  register predicted this exact gap (AD-25 risk column) - composite of
  AD-25 + AP-7 + TS-4, retire together post-R6 per the user's
  "polish later" call.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Erik 2026-07-03 17:59:45 +02:00
parent b152321b43
commit 304327b0a4
2 changed files with 76 additions and 5 deletions

View file

@ -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)

View file

@ -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