diff --git a/docs/ISSUES.md b/docs/ISSUES.md index e9e732b4..b414e249 100644 --- a/docs/ISSUES.md +++ b/docs/ISSUES.md @@ -307,6 +307,35 @@ TERRAIN — the prime suspect is the outdoor ground placement rather than the ported BSP walkable solve, which should already be tangent if the port of @0x00538210 is faithful). AD-69's seam-frame correction rides along. +### RELAND ROUND 2, 2026-08-07 night — the flip survives a same-session ABA; property reads ruled out + +The bare-radius reland ran its ten-run protocol: round 1 was STABLE-WITH-LIFT +(10/10 identical, delta 0.07976 = the predicted formula). The recalibrated +golden's FIRST run then showed NO lift, and a same-binary same-session ABA +nailed it: + +| assertion shape after the identical Tick(5) | observed Z | +|---|---| +| original one-line `Assert.Equal(latched, body.Position)` | 57.61359 — LIFTED | +| 3 float compares + a live `ContactPlane.Normal.Z` read first | 57.53383 — NOT lifted | +| same 3-compare shape, read replaced by a HARDCODED constant | 57.53383 — NOT lifted | +| reverted to the original one-liner, same session | 57.61359 — LIFTED again | + +The physics completes before any of this code runs; no async in the path; +the hardcoded-constant control kills the property-side-effect hypothesis. +What remains is codegen-shape sensitivity: the test method's IL shape +plausibly changes JIT inlining/tiering of the settle/tick chain it calls, +and SOMEWHERE in that chain a computation sits on an exact float boundary +that decides whether the one-time lift happens during the HARNESS SETTLE +(→ absorbed ticks latch exact) or on the first absorbed tick (→ observed +lift). Finding that boundary is the investigation; until it is found and +made robust, AD-66 stays withheld — the stop clause fired twice and the +production tree is unchanged. Do NOT attempt a third reland without first +locating the boundary-sensitive computation (per-tick instrumented settle +trace, tiering pinned via DOTNET_TieredCompilation=0 as the first +discriminating experiment: if the flip vanishes with tiering off, the +boundary is real and the fix is making the trigger robust to it). + **Hypotheses deliberately NOT chased at 04:00:** a property-read side effect (reading `body.ContactPlane` between tick and assert — should be impossible); xUnit execution-order/parallelism interacting with harness or engine state;