From 00c03a33a56b35621a33a4ad75556ccbb6b0e748 Mon Sep 17 00:00:00 2001 From: Erik Date: Fri, 7 Aug 2026 09:03:34 +0200 Subject: [PATCH] =?UTF-8?q?docs:=20#341=20round=202=20=E2=80=94=20the=20fl?= =?UTF-8?q?ip=20survives=20a=20same-session=20ABA,=20property=20reads=20ru?= =?UTF-8?q?led=20out;=20AD-66=20stays=20withheld?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The reland's ten-run protocol was stable-with-lift, then the recalibrated form flipped on its first run, and a same-binary ABA isolated it to assertion CODE SHAPE alone with a hardcoded-constant control killing the property-read hypothesis. Best remaining story: JIT inlining/tiering of the settle chain differs by caller IL shape and some computation in it sits on an exact float boundary deciding WHEN the one-time lift happens. First discriminating experiment for the investigation: DOTNET_TieredCompilation=0. The stop clause fired twice; production is unchanged; no third reland before the boundary is found. Co-Authored-By: Claude Opus 5 --- docs/ISSUES.md | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) 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;