Use reactive frame inputs for Verse projections
This commit is contained in:
parent
dd68efd9cd
commit
1f066b793b
3 changed files with 32 additions and 16 deletions
|
|
@ -10741,8 +10741,10 @@ static void RequireAetheriaRuntimeVerseClientContract(string root)
|
|||
"loadoutTemplatesDocument.Reactive()",
|
||||
"starbridgeScenarioDocument.Reactive()",
|
||||
"starbridgeSessionDocument.Reactive()",
|
||||
"latestFrameDocument.Reactive()",
|
||||
"BootstrapRuntimeCatalogSnapshot(),",
|
||||
"BootstrapLoadoutTemplatesDocument())",
|
||||
"projectionInputs.RequireFrame()",
|
||||
"projectionInputs.Catalog",
|
||||
"projectionInputs.LoadoutTemplates.Templates",
|
||||
"projectionInputs.StarbridgeScenario",
|
||||
|
|
@ -10787,6 +10789,13 @@ static void RequireAetheriaRuntimeVerseClientContract(string root)
|
|||
"Aetheria runtime Verse client Starbridge projection still polls sibling documents instead of sampling managed reactive projection inputs.");
|
||||
}
|
||||
|
||||
if (client.Contains("RequireFrameAsync", StringComparison.Ordinal) ||
|
||||
client.Contains("Aetheria().Daemon.LatestFrame.LatestAsync()", StringComparison.Ordinal))
|
||||
{
|
||||
throw new InvalidOperationException(
|
||||
"Aetheria runtime Verse client projected documents still bootstrap through one-shot latest-frame reads instead of the managed reactive projection inputs.");
|
||||
}
|
||||
|
||||
var requiredClientStateSymbols = new[]
|
||||
{
|
||||
"public Func<string, string> CreateEveSurfaceStateRefResolver()",
|
||||
|
|
@ -14766,7 +14775,9 @@ static void RequireRuntimeStateReaderOwnsUnityStateAcquisition(string root)
|
|||
var requiredManagedClientConnectionSymbols = new[]
|
||||
{
|
||||
"public AetheriaClientState State => _state;",
|
||||
"public AetheriaClientState Aetheria() => State;"
|
||||
"public AetheriaClientState Aetheria() => State;",
|
||||
"using var observedState = State.ReactiveObservedDaemon();",
|
||||
"observedState.TryCurrent(out var current)"
|
||||
};
|
||||
var missingManagedClientConnectionSymbols = requiredManagedClientConnectionSymbols
|
||||
.Where(symbol => !aetheriaClient.Contains(symbol, StringComparison.Ordinal))
|
||||
|
|
@ -14840,6 +14851,7 @@ static void RequireRuntimeStateReaderOwnsUnityStateAcquisition(string root)
|
|||
|
||||
var forbiddenDaemonClientBypassSymbols = new[]
|
||||
{
|
||||
".ReadAsync(State)",
|
||||
"return _verse.GetObservedDaemonStateAsync();",
|
||||
"return _verse.GetLatestAuthoritativeRunFrameAsync();",
|
||||
"return _verse.GetHealthAsync();",
|
||||
|
|
|
|||
Loading…
Reference in a new issue