docs: #341 round 2 — the flip survives a same-session ABA, property reads ruled out; AD-66 stays withheld
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 <noreply@anthropic.com>
This commit is contained in:
parent
712244b8aa
commit
00c03a33a5
1 changed files with 29 additions and 0 deletions
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue