refactor(runtime): publish canonical entity object deltas
Issue stable Runtime identities at canonical registration, publish entity and inventory commits through one generation-stamped synchronous stream, and make graphical adapters borrow the same direct views and events as a no-window host. Preserve exact projection teardown and retail mutation order while removing App-side event reconstruction. Make the hard-recenter ordering fixture independent of the production two-millisecond frame budget so its injected-failure gate is deterministic. Co-authored-by: Codex <codex@openai.com>
This commit is contained in:
parent
d3e96ff912
commit
ce3ac310d9
23 changed files with 2352 additions and 666 deletions
|
|
@ -80,7 +80,7 @@ public sealed class LiveEntityHydrationControllerTests
|
|||
|
||||
RuntimeEntityRecord canonical = fixture.Canonical;
|
||||
Assert.False(fixture.Runtime.TryGetRecord(Guid, out _));
|
||||
Assert.Null(canonical.LocalEntityId);
|
||||
Assert.NotNull(canonical.LocalEntityId);
|
||||
Assert.Equal(0, fixture.Resources.RegisterCount);
|
||||
Assert.Empty(fixture.Materializer.Calls);
|
||||
|
||||
|
|
@ -134,7 +134,7 @@ public sealed class LiveEntityHydrationControllerTests
|
|||
fixture.Controller.OnCreate(spawn);
|
||||
RuntimeEntityRecord canonical = fixture.Canonical;
|
||||
Assert.False(fixture.Runtime.TryGetRecord(Guid, out _));
|
||||
Assert.Null(canonical.LocalEntityId);
|
||||
Assert.NotNull(canonical.LocalEntityId);
|
||||
|
||||
Assert.True(fixture.Controller.OnAppearance(ObjDesc(2, 0x04000022u)));
|
||||
|
||||
|
|
@ -522,7 +522,7 @@ public sealed class LiveEntityHydrationControllerTests
|
|||
|
||||
RuntimeEntityRecord canonical = fixture.Canonical;
|
||||
Assert.False(fixture.Runtime.TryGetRecord(Guid, out _));
|
||||
Assert.Null(canonical.LocalEntityId);
|
||||
Assert.NotNull(canonical.LocalEntityId);
|
||||
Assert.Equal(1, resources.RegisterCount);
|
||||
Assert.Equal(1, resources.UnregisterCount);
|
||||
|
||||
|
|
@ -852,7 +852,7 @@ public sealed class LiveEntityHydrationControllerTests
|
|||
RuntimeEntityRecord replacement = fixture.Canonical;
|
||||
Assert.Equal((ushort)2, replacement.Generation);
|
||||
Assert.Equal("replacement", replacement.Snapshot.Name);
|
||||
Assert.Null(replacement.LocalEntityId);
|
||||
Assert.NotNull(replacement.LocalEntityId);
|
||||
Assert.False(fixture.Runtime.TryGetRecord(Guid, out _));
|
||||
Assert.Equal(0, fixture.Runtime.PendingTeardownCount);
|
||||
}
|
||||
|
|
@ -1368,7 +1368,7 @@ public sealed class LiveEntityHydrationControllerTests
|
|||
fixture.Controller.OnCreate(Spawn(Generation: 1, PositionSequence: 1));
|
||||
|
||||
RuntimeEntityRecord canonical = fixture.Canonical;
|
||||
Assert.Null(canonical.LocalEntityId);
|
||||
Assert.NotNull(canonical.LocalEntityId);
|
||||
Assert.False(fixture.Runtime.TryGetRecord(Guid, out _));
|
||||
Assert.Equal(0, fixture.Resources.RegisterCount);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue