From 8baf0dc6b2c220af3399185333b8c8a4ab6e079c Mon Sep 17 00:00:00 2001 From: Meta Vens Date: Sun, 28 Jun 2026 07:02:31 +0100 Subject: [PATCH] Advertise daemon records through CultMesh refs --- Aetheria.State.Verify/Program.cs | 45 ++++++++++---- .../AetheriaProviderAdvertisementProjector.cs | 58 +++++++++---------- 2 files changed, 63 insertions(+), 40 deletions(-) diff --git a/Aetheria.State.Verify/Program.cs b/Aetheria.State.Verify/Program.cs index 080a3773f..d9961d7e0 100644 --- a/Aetheria.State.Verify/Program.cs +++ b/Aetheria.State.Verify/Program.cs @@ -9020,7 +9020,7 @@ static void RequireDaemonVersePublication(string root) var requiredProviderAdvertisementSymbols = new[] { "private const string DaemonCommandBoundaryId = \"aetheria.daemon.commands\"", - "private const string DaemonWitnessTransport = \"cultcache-witness\"", + "private const string DaemonRecordTransport = \"cultmesh-record\"", "AetheriaRuntimeDaemonSchemas.ProviderAdvertisement", "AetheriaRuntimeDaemonSchemas.Frame", "AetheriaRuntimeDaemonSchemas.SoaView", @@ -9029,15 +9029,15 @@ static void RequireDaemonVersePublication(string root) "AetheriaRuntimeDaemonSchemas.GameSurface", "AetheriaRuntimeDaemonSchemas.EditorSurface", "AetheriaRuntimeDaemonSchemas.Command", - "AetheriaRuntimeStateBoundary.GetDaemonProviderPath(statePath)", - "AetheriaRuntimeStateBoundary.GetDaemonFramePath(statePath)", - "AetheriaRuntimeStateBoundary.GetDaemonSoaViewPath(statePath)", - "AetheriaRuntimeStateBoundary.GetDaemonHealthPath(statePath)", - "AetheriaRuntimeStateBoundary.GetDaemonCommandBoundaryPath(statePath)", - "AetheriaRuntimeStateBoundary.GetDaemonGameSurfacePath(statePath)", - "AetheriaRuntimeStateBoundary.GetDaemonGameTuiSurfacePath(statePath)", - "AetheriaRuntimeStateBoundary.GetDaemonEditorSurfacePath(statePath)", - "AetheriaRuntimeStateBoundary.GetDaemonEditorTuiSurfacePath(statePath)", + "AetheriaRuntimeVerseRecordKeys.DaemonProviderAdvertisement.ToString()", + "AetheriaRuntimeVerseRecordKeys.DaemonFrameLatest.ToString()", + "AetheriaRuntimeVerseRecordKeys.DaemonSoaViewLatest.ToString()", + "AetheriaRuntimeVerseRecordKeys.DaemonHealth.ToString()", + "AetheriaRuntimeVerseRecordKeys.DaemonCommandBoundary.ToString()", + "AetheriaRuntimeVerseRecordKeys.DaemonGameSurface.ToString()", + "AetheriaRuntimeVerseRecordKeys.DaemonGameTuiSurface.ToString()", + "AetheriaRuntimeVerseRecordKeys.DaemonEditorSurface.ToString()", + "AetheriaRuntimeVerseRecordKeys.DaemonEditorTuiSurface.ToString()", "public const string DaemonGameSurfaceKey = \"eve:surface:aetheria.daemon.game\"", "public const string DaemonGameTuiSurfaceKey = \"eve:surface:aetheria.daemon.game.tui\"", "public const string DaemonEditorSurfaceKey = \"eve:surface:aetheria.daemon.editor\"", @@ -9053,10 +9053,33 @@ static void RequireDaemonVersePublication(string root) if (missingProviderAdvertisementSymbols.Length > 0) { throw new InvalidOperationException( - "Odin-visible provider advertisement no longer points at daemon-owned Verse witnesses: " + + "Odin-visible provider advertisement no longer points at managed daemon CultMesh records: " + string.Join(", ", missingProviderAdvertisementSymbols)); } + var forbiddenProviderAdvertisementSymbols = new[] + { + "DaemonWitnessTransport", + "AetheriaRuntimeStateBoundary.GetDaemonProviderPath(statePath)", + "AetheriaRuntimeStateBoundary.GetDaemonFramePath(statePath)", + "AetheriaRuntimeStateBoundary.GetDaemonSoaViewPath(statePath)", + "AetheriaRuntimeStateBoundary.GetDaemonHealthPath(statePath)", + "AetheriaRuntimeStateBoundary.GetDaemonCommandBoundaryPath(statePath)", + "AetheriaRuntimeStateBoundary.GetDaemonGameSurfacePath(statePath)", + "AetheriaRuntimeStateBoundary.GetDaemonGameTuiSurfacePath(statePath)", + "AetheriaRuntimeStateBoundary.GetDaemonEditorSurfacePath(statePath)", + "AetheriaRuntimeStateBoundary.GetDaemonEditorTuiSurfacePath(statePath)" + }; + var forbiddenProviderAdvertisementHits = forbiddenProviderAdvertisementSymbols + .Where(symbol => providerAdvertisement.Contains(symbol, StringComparison.Ordinal)) + .ToArray(); + if (forbiddenProviderAdvertisementHits.Length > 0) + { + throw new InvalidOperationException( + "Odin-visible provider advertisement still advertises daemon sidecar paths instead of managed CultMesh records: " + + string.Join(", ", forbiddenProviderAdvertisementHits)); + } + var requiredTickSymbols = new[] { "VerseId", diff --git a/Aetheria.State/AetheriaProviderAdvertisementProjector.cs b/Aetheria.State/AetheriaProviderAdvertisementProjector.cs index 98e5f6de7..ad4c3cd14 100644 --- a/Aetheria.State/AetheriaProviderAdvertisementProjector.cs +++ b/Aetheria.State/AetheriaProviderAdvertisementProjector.cs @@ -12,7 +12,7 @@ public static class AetheriaProviderAdvertisementProjector public const string DaemonEditorTuiSurfaceKey = "eve:surface:aetheria.daemon.editor.tui"; public const string ProviderId = "aetheria"; private const string DaemonCommandBoundaryId = "aetheria.daemon.commands"; - private const string DaemonWitnessTransport = "cultcache-witness"; + private const string DaemonRecordTransport = "cultmesh-record"; public static EveProviderAdvertisementState Build( AetheriaVerseHostSettings settings, @@ -74,57 +74,57 @@ public static class AetheriaProviderAdvertisementProjector }, new EveProviderWitness { - Kind = DaemonWitnessTransport, - Ref = AetheriaRuntimeStateBoundary.GetDaemonProviderPath(statePath), - Summary = "Aetheria daemon-owned provider advertisement" + Kind = DaemonRecordTransport, + Ref = AetheriaRuntimeVerseRecordKeys.DaemonProviderAdvertisement.ToString(), + Summary = "Aetheria daemon-owned provider advertisement record" }, new EveProviderWitness { - Kind = DaemonWitnessTransport, - Ref = AetheriaRuntimeStateBoundary.GetDaemonFramePath(statePath), - Summary = "Aetheria daemon simulation frame" + Kind = DaemonRecordTransport, + Ref = AetheriaRuntimeVerseRecordKeys.DaemonFrameLatest.ToString(), + Summary = "Aetheria daemon latest simulation frame record" }, new EveProviderWitness { - Kind = DaemonWitnessTransport, - Ref = AetheriaRuntimeStateBoundary.GetDaemonSoaViewPath(statePath), - Summary = "Aetheria daemon SoA view for thin clients" + Kind = DaemonRecordTransport, + Ref = AetheriaRuntimeVerseRecordKeys.DaemonSoaViewLatest.ToString(), + Summary = "Aetheria daemon latest SoA view record for thin clients" }, new EveProviderWitness { - Kind = DaemonWitnessTransport, - Ref = AetheriaRuntimeStateBoundary.GetDaemonHealthPath(statePath), - Summary = "Aetheria daemon health publication" + Kind = DaemonRecordTransport, + Ref = AetheriaRuntimeVerseRecordKeys.DaemonHealth.ToString(), + Summary = "Aetheria daemon health record" }, new EveProviderWitness { - Kind = DaemonWitnessTransport, - Ref = AetheriaRuntimeStateBoundary.GetDaemonCommandBoundaryPath(statePath), - Summary = "Aetheria daemon typed command boundary" + Kind = DaemonRecordTransport, + Ref = AetheriaRuntimeVerseRecordKeys.DaemonCommandBoundary.ToString(), + Summary = "Aetheria daemon typed command boundary record" }, new EveProviderWitness { - Kind = DaemonWitnessTransport, - Ref = AetheriaRuntimeStateBoundary.GetDaemonGameSurfacePath(statePath), - Summary = "Aetheria daemon game Eve GUI surface" + Kind = DaemonRecordTransport, + Ref = AetheriaRuntimeVerseRecordKeys.DaemonGameSurface.ToString(), + Summary = "Aetheria daemon game Eve GUI surface record" }, new EveProviderWitness { - Kind = DaemonWitnessTransport, - Ref = AetheriaRuntimeStateBoundary.GetDaemonGameTuiSurfacePath(statePath), - Summary = "Aetheria daemon game Eve TUI surface" + Kind = DaemonRecordTransport, + Ref = AetheriaRuntimeVerseRecordKeys.DaemonGameTuiSurface.ToString(), + Summary = "Aetheria daemon game Eve TUI surface record" }, new EveProviderWitness { - Kind = DaemonWitnessTransport, - Ref = AetheriaRuntimeStateBoundary.GetDaemonEditorSurfacePath(statePath), - Summary = "Aetheria daemon editor Eve GUI surface" + Kind = DaemonRecordTransport, + Ref = AetheriaRuntimeVerseRecordKeys.DaemonEditorSurface.ToString(), + Summary = "Aetheria daemon editor Eve GUI surface record" }, new EveProviderWitness { - Kind = DaemonWitnessTransport, - Ref = AetheriaRuntimeStateBoundary.GetDaemonEditorTuiSurfacePath(statePath), - Summary = "Aetheria daemon editor Eve TUI surface" + Kind = DaemonRecordTransport, + Ref = AetheriaRuntimeVerseRecordKeys.DaemonEditorTuiSurface.ToString(), + Summary = "Aetheria daemon editor Eve TUI surface record" } ], Surfaces = @@ -170,7 +170,7 @@ public static class AetheriaProviderAdvertisementProjector new EveProviderCommandRef { Command = DaemonCommandBoundaryId, - Transport = DaemonWitnessTransport, + Transport = "cultmesh", Summary = "Aetheria daemon typed command boundary" }, new EveProviderCommandRef