docs(physics): #347 closed WITHOUT a code change — retail's glide alternates exactly as ours does; AD-70 retired as a wrong inference
Some checks are pending
Headless portability / portable-headless (ubuntu-latest) (push) Waiting to run
Headless portability / portable-headless (windows-latest) (push) Waiting to run
Headless portability / linux-graphical (push) Waiting to run
Headless portability / linux-vulkan (push) Waiting to run

The round-2 cdb capture is decisive: during a live retail glide,
edge_slide fired ~1.5 times per find_transitional_position — the
arm/move alternation's exact signature (3 entries on the arming tick,
0 on the moving tick) — with cliff_slide in lockstep, step_down at
2.5x, step_up 0, and every stack sample on our identical call path.
cliff_slide's bytes match our port and ACE's (compare constant at
0x794610 verified 0.0), and the user could not distinguish the two
clients side by side. The "retail redirects within the tick" premise
misread round-1's set_sliding_normal cadence (per-event, not
per-tick, so its 1:1 ratio with edge never discriminated anything).

The alternation-tolerant assertion in Issue345SteepSlopeGlideTests is
therefore the CORRECT retail-shape pin from both sides; its comment
now cites the capture instead of calling the shape a residual. The
#269 note is honest the other way: the hope that a within-tick port
would explain that feel residual is withdrawn with the premise.

The temporary Scratch347 diagnostic is deleted. Capture evidence:
345-glide-stacks.cdb.log (repo root, untracked, cited from the
contract's RESOLUTION section).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Erik 2026-08-07 14:05:53 +02:00
parent 535f41bbdf
commit fa0c053ebf
5 changed files with 44 additions and 78 deletions

View file

@ -158,9 +158,30 @@ resolution.
---
## #347 — Steep-slope glide runs at HALF retail's rate: arm/move alternation instead of within-tick redirect
## #347 — Steep-slope glide alternation — CLOSED 2026-08-08: RETAIL DOES THE SAME; the "half-rate" premise was a wrong inference
**Status:** OPEN — MEDIUM (behavioral residual of the #345 fix, trace-backed).
**The round-2 cdb capture (`345-glide-stacks.cdb.log`) closes this without
a code change.** During the glide window retail fired ~145 edge_slide
entries per ~100 find_transitional_position calls — ~1.5 per player tick,
which is EXACTLY the arm/move alternation's signature (3 entries on the
arming tick, 0 on the moving tick). cliff_slide ran in strict lockstep,
step_down at ~2.5x edge (our 2-probe plan + edge's internal call), step_up
0, and the six stack samples show the identical call path
(transitional_insert -> find_transitional_position -> CPhysicsObj::
transition). Combined with cliff_slide's arms being byte-identical across
ACE/acdream/the raw binary (compare constant at 0x794610 verified 0.0) and
the user's side-by-side observation ("I cant detect any speed change from
retail"), the conclusion is that retail alternates exactly as we do —
dig-retries included. The original "retail redirects within the tick"
premise came from misreading the round-1 counters (set_sliding_normal's
cadence is per-event, not per-tick, so its 1:1 ratio with edge never
discriminated anything). AD-70 is retired as a wrong inference, not fixed.
The alternation-tolerant assertion in `Issue345SteepSlopeGlideTests` is
the CORRECT retail-shape pin and stays. Consequence for #269: the hope
that a within-tick port would explain the slope-slide feel residual is
withdrawn — #269 keeps its original "needs a live cdb A/B trace" plan.
**Original filing (premise since refuted):**
With #345 fixed, the glide works but alternates in a strict two-tick cycle:
the arming tick absorbs the whole request while the edge response sets the
sliding normal ((0.707,-0.707,0) on the conformance fixture), and only the