fix: complete retail parity stability pass
All checks were successful
CI / linux-portable (push) Successful in 3m41s
CI / windows-gate (push) Successful in 6m49s
CI / release (push) Successful in 3m22s

This commit is contained in:
Erik 2026-08-28 20:01:39 +02:00
parent d3df4cb20a
commit f7aa8e0eb7
131 changed files with 7765 additions and 1190 deletions

View file

@ -356,6 +356,48 @@ public sealed class RuntimePlacementPresentationSinkTests
Assert.Equal(priorVisible, record.IsSpatiallyVisible);
}
[Fact]
public void ExecutorCompleted_PoseOnlySupersessionDoesNotSnapSidecarBack()
{
Fixture fixture = Fixture.Create();
LiveEntityRecord record = fixture.Materialize(Spawn(Guid, 1, SourceCell));
WorldEntity entity = record.WorldEntity!;
var body = new PhysicsBody
{
Position = entity.Position,
Orientation = entity.Rotation,
};
record.Canonical.SetPhysicsBody(body);
RuntimePlacementProjectionSnapshot stale = Placement(
fixture,
record,
RuntimePlacementProjectionKind.ExecutorCompleted,
body.Position,
body.Orientation);
// #323: StoreAcceptedDestinationPose has this exact shape — it moves
// the retained body without changing cell or PlacementCommitVersion.
// A delayed initial-create receipt must acknowledge without restoring
// the older pose to the graphical sidecar.
var currentPosition = body.Position + new Vector3(25f, 10f, 3f);
Quaternion currentOrientation = Quaternion.CreateFromAxisAngle(
Vector3.UnitZ,
0.75f);
body.Position = currentPosition;
body.Orientation = currentOrientation;
entity.SetPosition(currentPosition);
entity.Rotation = currentOrientation;
Assert.True(fixture.Sink.TryApply(in stale));
Assert.Equal(currentPosition, entity.Position);
Assert.Equal(currentOrientation, entity.Rotation);
Assert.Equal(stale.Token.ExactCellId, record.FullCellId);
Assert.Equal(
stale.Token.PlacementCommitVersion,
record.Canonical.PlacementCommitVersion);
}
[Fact]
public void Place_RejectsStaleCanonicalVersionsWithoutChangingSidecar()
{