Gate daemon frame witness publication
This commit is contained in:
parent
42a95780a8
commit
b9a322b8dc
2 changed files with 24 additions and 2 deletions
|
|
@ -199,10 +199,9 @@ static async Task<AetheriaRuntimeDaemonTickResult> TickAsync(
|
|||
authorityLeases).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
AetheriaRuntimeDaemonFrameStore.PublishFrame(node.StatePath, result.Frame);
|
||||
|
||||
if (publishWitnesses)
|
||||
{
|
||||
AetheriaRuntimeDaemonFrameStore.PublishFrame(node.StatePath, result.Frame);
|
||||
await PublishDaemonApiDocumentsAsync(node, result).ConfigureAwait(false);
|
||||
await PublishStateSurfacesAsync(node, options, result.Frame.PublishedAtUtc).ConfigureAwait(false);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9190,6 +9190,29 @@ static void RequireDaemonVersePublication(string root)
|
|||
"Daemon tick must pass the typed health document through surface builders instead of reopening its witness file.");
|
||||
}
|
||||
|
||||
var daemonTickStart = daemonHostSource.IndexOf(
|
||||
"static async Task<AetheriaRuntimeDaemonTickResult> TickAsync(",
|
||||
StringComparison.Ordinal);
|
||||
var daemonTickEnd = daemonTickStart >= 0
|
||||
? daemonHostSource.IndexOf("static async Task PublishCommittedCommandFactsAsync", daemonTickStart, StringComparison.Ordinal)
|
||||
: -1;
|
||||
var daemonTickBlock = daemonTickStart >= 0 && daemonTickEnd > daemonTickStart
|
||||
? daemonHostSource.Substring(daemonTickStart, daemonTickEnd - daemonTickStart)
|
||||
: "";
|
||||
var publishWitnessBlockStart = daemonTickBlock.IndexOf(
|
||||
"if (publishWitnesses)",
|
||||
StringComparison.Ordinal);
|
||||
var frameWitnessPublishIndex = daemonTickBlock.IndexOf(
|
||||
"AetheriaRuntimeDaemonFrameStore.PublishFrame(node.StatePath, result.Frame)",
|
||||
StringComparison.Ordinal);
|
||||
if (frameWitnessPublishIndex < 0 ||
|
||||
publishWitnessBlockStart < 0 ||
|
||||
frameWitnessPublishIndex < publishWitnessBlockStart)
|
||||
{
|
||||
throw new InvalidOperationException(
|
||||
"Daemon ticks must keep legacy frame witness writes inside the API publication cadence; managed frames carry per-tick state.");
|
||||
}
|
||||
|
||||
var snapshotHandlerStart = daemonHostSource.IndexOf(
|
||||
"server.OnCultNet<CultNetSnapshotRequestMessage>",
|
||||
StringComparison.Ordinal);
|
||||
|
|
|
|||
Loading…
Reference in a new issue