docs: close #32 — local edge-slide user-passed; AD-67 filed for the kept cell-id write

Both halves of #32 are now closed: remote at 204d0ae0 (user-passed
2026-08-04), local at 332045c7 (user-passed 2026-08-07 at the Rithwic
cliff, on the first launch whose capture printed the fixed binary's own
assembly path). The research doc carries the outcome banner: the live
capture landed in decision-table row 1 verbatim and Section 7's fix
shipped unchanged.

AD-67 records the one deliberate residual: the narrowed SetContactPlane
still writes ContactPlaneCellId, which retail writes only at
init_contact_plane (0x0050e8ca). Kept on the research doc's own advice —
our consumers want the current value — and not bundled into the fix
commit, where a second behaviour change would have made the user's
cliff gate ambiguous. AD section 49 -> 50.

Section 3.5's blast-radius items stay open as watch items, now strictly
MORE reachable than before the fix (last-known validity is narrower, so
the StopVelocity recovery and phase-3 reset take their invalid branches
more often). Carried onto Campaign S slice S4.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Erik 2026-08-07 00:38:02 +02:00
parent 9b9bb6515f
commit 1dc81710f3
3 changed files with 46 additions and 2 deletions

View file

@ -24,6 +24,35 @@ What does NOT go here:
- Every session: scan OPEN issues at start; promote/close anything we touched during the session before ending.
- Promoting to a Phase: mark as `DONE (promoted to Phase X)` + commit SHA where the Phase entry landed.
## #32 — CLOSED 2026-08-07: local edge-slide fixed at `332045c7`, USER-PASSED on its first genuine live run
**"Yes works now."** — the user at the Rithwic cliff, on the first launch that
actually contained the fix (assembly identity printed in the capture:
`acdream/src/AcDream.App/bin/Release/net10.0/AcDream.Core.dll`).
The player now slides along the rim instead of running off.
The fix is the `set_contact_plane` / `init_contact_plane` split
(`COLLISIONINFO::set_contact_plane` @0x00509d80 writes the contact group only;
`CTransition::init_contact_plane` @0x0050e850 seeds both), gated by
`Issue32LastKnownContactPlaneTests` (sabotage-verified pair + control).
Remote half was closed 2026-08-04 at `204d0ae0`; with this, the issue's
edge-slide family is done. **Register: AD-67 filed in the closeout commit**
the narrowed setter still writes `ContactPlaneCellId`, which retail writes only
in `init_contact_plane` (@0x0050e8ca); acdream's callers rely on the current
cell id.
**The blast-radius items from research §3.5 stay OPEN as watch items, now
strictly more reachable than before the fix:** last-known validity is
narrower, so `ValidateTransition`'s `StopVelocity` recovery and
`transitional_insert`'s phase-3 reset take their last-known-INVALID branches
more often. Nothing observed misbehaving in the passing session; check here
first if slope-feel or landing regressions appear. Carried into Campaign S's
S4 slice notes.
**The three prior update entries below record a wrong-binary detour** (the fix
was tested against a client that did not contain it) — retained as the record;
their verdicts are void and superseded by this closure.
## #32 UPDATE 2026-08-07, SECOND CORRECTION — the fix was NEVER IN THE TESTED BINARY; every conclusion in the entry below is void
**Root cause of the contradiction: two checkouts and a relative launch path.**
@ -11135,7 +11164,10 @@ retail counterpart, so "widen the budget" would be tuning an invented constant
## #32 — Retail edge-slide / cliff-slide / precipice-slide incomplete
**Status:** REMOTE HALF CLOSED — fixed `204d0ae0`, **user-passed 2026-08-04**
**Status:** CLOSED 2026-08-07 — both halves. Local half fixed `332045c7`
(set/init contact-plane split), user-passed 2026-08-07 at the Rithwic cliff;
see the closure entry near the top of this file. Remote half below.
**Original status line:** REMOTE HALF CLOSED — fixed `204d0ae0`, **user-passed 2026-08-04**
("it lands and slides correctly now"). A remote observed in acdream now slides
down a steep face under gravity instead of freezing on it and then blipping.
The three recorded gaps below (LeaveGround chatter bound, the `!Ok` airborne

File diff suppressed because one or more lines are too long

View file

@ -1,5 +1,16 @@
# Issue #32 (local half) — the player runs off cliff edges instead of stopping or sliding
**OUTCOME 2026-08-07 — Section 6's capture landed in decision-table ROW 1
verbatim** (six `branch2/steep-cliffslide` events at Rithwic, every one
`curN == lastN == (-0.954, 0.000, 0.301)`, `angle=0.0000`, `apply=False`,
outcome `degenerate-cross/last-known`), **the Section 7 fix shipped at
`332045c7`, and the user passed it live**: "Yes works now." One caveat for the
record: the first live "test" of the fix ran a stale checkout's binary and
produced a void failure verdict — see the #32 entries in `docs/ISSUES.md` for
that detour and the assembly-identity rule it produced. Section 3.5's
cell-id note is now register row **AD-67**; its blast-radius items are carried
as watch items on Campaign S slice S4.
**Date:** 2026-08-06
**Mode:** research / report-only. No production or test code was written or changed.
**Worktree:** `.claude/worktrees/peaceful-visvesvaraya-e0a196`, branch