diff --git a/docs/ISSUES.md b/docs/ISSUES.md index b949046a..72b086d1 100644 --- a/docs/ISSUES.md +++ b/docs/ISSUES.md @@ -210,6 +210,37 @@ offers a mechanical suspect for the harness flip below: the two assert shapes plausibly differ in what settle state the harness left (`r*N.z` vs `r`), which is test-ORDER state, not physics. +### MECHANISM RESOLVED, same morning — the trigger and the resting geometry are one family + +`CPolygon::adjust_sphere_to_plane` @0x00538210 (pseudo-C 322032): retail's +walkable placement solves the interpolation for the point where the sphere's +PERPENDICULAR distance to the walkable plane equals the RADIUS — the sphere +rests TANGENT to the slope. Consequences, closing the loop on the live A/B: + +- **Retail:** tangent rest (perp = r) makes the bare-radius trigger + (`dist < r − ε`) structurally INERT — equality minus epsilon. No fight, no + oscillation. The visible corollary: retail characters' feet float + vertically above a slope by `r·(secθ − 1)` — 2.7 cm on a 31° slope, ~20 cm + near the walkable limit — which matches AC's known slope look. +- **acdream:** planted rest (feet on surface, perp = r·N.z) makes OUR + retained trigger structurally inert here for the same reason. Each engine's + trigger matches its own resting geometry; both pairs are internally + coherent, and the live A/B's 84% fire rate is what happens when you mix + retail's trigger with our placement. +- **Therefore AD-66 is NOT a standalone row.** The faithful unit is the PAIR: + tangent placement + bare trigger, ported together — or our pair kept + together as one deliberate divergence. Porting either half alone + manufactures a fight neither engine has. +- The harness flip's suspect is strengthened: a tangent-rest start is stable + under the bare trigger, a planted start lifts once — which of the two the + harness settle leaves is plausibly order-dependent test state. + +**Queued decision (user, no urgency): port the retail pair (feet float +slightly on slopes, exactly like retail — a visible feel change gated by +eyes) or keep our pair (planted feet, one register row covering placement + +trigger together, AD-66 re-titled accordingly).** Retail-first says port; it +is deliberately not done silently because the difference is visible. + **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;