diag(physics): probe whether Runtime's world frame and App's origin ever disagree
#283 step 1: prove or disprove reachability before restructuring ownership.
Runtime rebases its world frame the instant an accepted Position carries
TeleportAdvanced (RuntimePhysicsState.ObserveLocalWorldFrame). App's
LiveWorldOriginState rebases only once StreamingOriginRecenterCoordinator
.Advance observes IsOriginRecenterRetirementComplete - many frames later,
after the old window has fully retired. Between those two edges the owners can
disagree by the source-to-destination landblock delta, and anything converted
in the gap lands a multiple of 192 m from the geometry App is building. Same
failure family as the zero-offset bug 670f307c fixed, with a wrong origin
rather than a missing one.
Reasoning has already closed most of the window: the recenter detaches EVERY
resident landblock before adopting the new origin, so old-origin collision is
retired first. What remains is the narrow gap between Runtime's flip and App's
BeginOriginRecenter, while old-origin geometry is still resident. Whether that
is ever actually hit is an empirical question, and the campaign rule is that a
restructure needs evidence, not a hypothesis.
ACDREAM_PROBE_WORLD_FRAME=1 emits one [world-frame] line per DISAGREEMENT at
DatLiveEntityProjectionMaterializer's landblock->world conversion - the exact
App-side counterpart of Runtime's TryGetWorldFrameOffset, and the site that
already holds both owners, so no new dependency is introduced. Silence across
a portal run is the evidence that #283 is unreachable and can close as a
permanent invariant instead of an ownership move.
Measurement only: the probe never gates placement, and the flag lives in
PhysicsDiagnostics with the rest of the ACDREAM_PROBE_* family per the
diagnostic-owner rule rather than as a scattered env read.
Complete Release solution: 10,836 passed / 4 skipped / 0 failed.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
0c14c4029c
commit
898ff18b26
3 changed files with 67 additions and 0 deletions
|
|
@ -546,6 +546,16 @@ public sealed class RuntimePhysicsState : IDisposable
|
|||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// #283: the landblock Runtime currently treats as world-frame (0,0), or
|
||||
/// 0 before the local-player Create publishes one. Read-only and
|
||||
/// diagnostic — App compares it against its own
|
||||
/// <c>LiveWorldOriginState</c> centre to detect the teleport-window
|
||||
/// disagreement described on
|
||||
/// <c>PhysicsDiagnostics.ProbeWorldFrameEnabled</c>.
|
||||
/// </summary>
|
||||
internal uint WorldFrameCenterLandblockId => _worldFrameCenterLandblockId;
|
||||
|
||||
/// <summary>
|
||||
/// #284: records that this session's local-player Create was accepted,
|
||||
/// independently of whether it carried a usable landblock. The frame is
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue