Rename daemon provider witnesses to record refs
This commit is contained in:
parent
8baf0dc6b2
commit
9d623a24c6
5 changed files with 83 additions and 46 deletions
|
|
@ -8773,10 +8773,12 @@ static void RequireDaemonVersePublication(string root)
|
|||
"[CultDocument(\"gamecult.aetheria.daemon_command_boundary\", \"gamecult.aetheria.daemon_command_boundary.v1\")]",
|
||||
"[CultDocument(\"gamecult.aetheria.daemon_frame\", \"gamecult.aetheria.daemon_frame.v1\")]",
|
||||
"[CultDocument(\"gamecult.aetheria.daemon_command\", \"gamecult.aetheria.daemon_command.v1\")]",
|
||||
"EveGuiSurfaceWitnessPath",
|
||||
"EveTuiSurfaceWitnessPath",
|
||||
"EditorGuiSurfaceWitnessPath",
|
||||
"EditorTuiSurfaceWitnessPath"
|
||||
"FrameRecordRef",
|
||||
"SoaViewRecordRef",
|
||||
"EveGuiSurfaceRecordRef",
|
||||
"EveTuiSurfaceRecordRef",
|
||||
"EditorGuiSurfaceRecordRef",
|
||||
"EditorTuiSurfaceRecordRef"
|
||||
};
|
||||
var missingDocumentSymbols = requiredDocumentSymbols
|
||||
.Where(symbol => !daemonDocuments.Contains(symbol, StringComparison.Ordinal))
|
||||
|
|
@ -8788,6 +8790,30 @@ static void RequireDaemonVersePublication(string root)
|
|||
string.Join(", ", missingDocumentSymbols));
|
||||
}
|
||||
|
||||
var forbiddenDaemonProviderDocumentSymbols = new[]
|
||||
{
|
||||
"StateWitnessPath",
|
||||
"FrameWitnessPath",
|
||||
"SoaWitnessPath",
|
||||
"HealthWitnessPath",
|
||||
"CommandBoundaryWitnessPath",
|
||||
"EveGuiSurfaceWitnessPath",
|
||||
"EveTuiSurfaceWitnessPath",
|
||||
"EditorGuiSurfaceWitnessPath",
|
||||
"EditorTuiSurfaceWitnessPath",
|
||||
"AssetManifestWitnessPath"
|
||||
};
|
||||
var daemonProviderDocumentHits = forbiddenDaemonProviderDocumentSymbols
|
||||
.Where(symbol => daemonDocuments.Contains(symbol, StringComparison.Ordinal) ||
|
||||
daemonEditorSurfaceBuilder.Contains(symbol, StringComparison.Ordinal))
|
||||
.ToArray();
|
||||
if (daemonProviderDocumentHits.Length > 0)
|
||||
{
|
||||
throw new InvalidOperationException(
|
||||
"Daemon provider advertisement still exposes witness-path vocabulary instead of managed record refs: " +
|
||||
string.Join(", ", daemonProviderDocumentHits));
|
||||
}
|
||||
|
||||
if (!daemonSoaDocuments.Contains("[CultDocument(\"gamecult.aetheria.daemon_soa_view\", \"gamecult.aetheria.daemon_soa_view.v1\")]", StringComparison.Ordinal))
|
||||
{
|
||||
throw new InvalidOperationException("Daemon SoA view is no longer a registered CultCache/CultNet document.");
|
||||
|
|
@ -9444,7 +9470,14 @@ static void RequireDaemonVersePublication(string root)
|
|||
"AetheriaRuntimeDaemonCommandBoundaryDocument commandBoundary",
|
||||
"\"editor.daemon\"",
|
||||
"\"Verse Provider\"",
|
||||
"\"Witnesses\"",
|
||||
"\"Managed Records\"",
|
||||
"\"aetheria.daemon.editor.records\"",
|
||||
"provider.FrameRecordRef",
|
||||
"provider.SoaViewRecordRef",
|
||||
"provider.HealthRecordRef",
|
||||
"provider.CommandBoundaryRecordRef",
|
||||
"provider.EveGuiSurfaceRecordRef",
|
||||
"provider.EditorGuiSurfaceRecordRef",
|
||||
"\"Designer Surfaces\"",
|
||||
"AetheriaRuntimeSurfaceDocument",
|
||||
"\"Typed Commands\"",
|
||||
|
|
|
|||
|
|
@ -450,25 +450,26 @@ public class DaemonRuntimeDocumentTests
|
|||
Assert.AreEqual("aetheria.daemon", providerAdvertisement.ProviderId);
|
||||
Assert.AreEqual("test-daemon", providerAdvertisement.DaemonId);
|
||||
Assert.AreEqual("cultmesh://aetheria.test/eve/providers/aetheria.daemon", providerAdvertisement.CultMeshAddress);
|
||||
Assert.AreEqual(AetheriaRuntimeDaemonFrameStore.GetFramePath(statePath), providerAdvertisement.FrameWitnessPath);
|
||||
Assert.AreEqual(AetheriaRuntimeDaemonPublicationStore.GetHealthPath(statePath), providerAdvertisement.HealthWitnessPath);
|
||||
Assert.AreEqual(AetheriaRuntimeVerseRecordKeys.DaemonFrameLatest.ToString(), providerAdvertisement.FrameRecordRef);
|
||||
Assert.AreEqual(AetheriaRuntimeVerseRecordKeys.DaemonSoaViewLatest.ToString(), providerAdvertisement.SoaViewRecordRef);
|
||||
Assert.AreEqual(AetheriaRuntimeVerseRecordKeys.DaemonHealth.ToString(), providerAdvertisement.HealthRecordRef);
|
||||
Assert.AreEqual(
|
||||
AetheriaRuntimeDaemonPublicationStore.GetCommandBoundaryPath(statePath),
|
||||
providerAdvertisement.CommandBoundaryWitnessPath);
|
||||
AetheriaRuntimeVerseRecordKeys.DaemonCommandBoundary.ToString(),
|
||||
providerAdvertisement.CommandBoundaryRecordRef);
|
||||
Assert.AreEqual(
|
||||
AetheriaRuntimeDaemonPublicationStore.GetGameSurfacePath(statePath),
|
||||
providerAdvertisement.EveGuiSurfaceWitnessPath);
|
||||
AetheriaRuntimeVerseRecordKeys.DaemonGameSurface.ToString(),
|
||||
providerAdvertisement.EveGuiSurfaceRecordRef);
|
||||
Assert.AreEqual(
|
||||
AetheriaRuntimeDaemonPublicationStore.GetGameTuiSurfacePath(statePath),
|
||||
providerAdvertisement.EveTuiSurfaceWitnessPath);
|
||||
AetheriaRuntimeVerseRecordKeys.DaemonGameTuiSurface.ToString(),
|
||||
providerAdvertisement.EveTuiSurfaceRecordRef);
|
||||
Assert.AreEqual(AetheriaRuntimeDaemonGameSurfaceBuilder.SurfaceId, providerAdvertisement.EveGuiSurfaceId);
|
||||
Assert.AreEqual(AetheriaRuntimeDaemonGameSurfaceBuilder.TuiSurfaceId, providerAdvertisement.EveTuiSurfaceId);
|
||||
Assert.AreEqual(
|
||||
AetheriaRuntimeDaemonPublicationStore.GetEditorSurfacePath(statePath),
|
||||
providerAdvertisement.EditorGuiSurfaceWitnessPath);
|
||||
AetheriaRuntimeVerseRecordKeys.DaemonEditorSurface.ToString(),
|
||||
providerAdvertisement.EditorGuiSurfaceRecordRef);
|
||||
Assert.AreEqual(
|
||||
AetheriaRuntimeDaemonPublicationStore.GetEditorTuiSurfacePath(statePath),
|
||||
providerAdvertisement.EditorTuiSurfaceWitnessPath);
|
||||
AetheriaRuntimeVerseRecordKeys.DaemonEditorTuiSurface.ToString(),
|
||||
providerAdvertisement.EditorTuiSurfaceRecordRef);
|
||||
Assert.AreEqual(AetheriaRuntimeDaemonEditorSurfaceBuilder.SurfaceId, providerAdvertisement.EditorGuiSurfaceId);
|
||||
Assert.AreEqual(AetheriaRuntimeDaemonEditorSurfaceBuilder.TuiSurfaceId, providerAdvertisement.EditorTuiSurfaceId);
|
||||
CollectionAssert.Contains(providerAdvertisement.PublishedSchemas, AetheriaRuntimeDaemonSchemas.Command);
|
||||
|
|
|
|||
|
|
@ -213,25 +213,25 @@ namespace GameCult.Aetheria.State.Verse
|
|||
public string PublishedAtUtc { get; set; } = "";
|
||||
|
||||
[Key(5)]
|
||||
public string StateWitnessPath { get; set; } = "";
|
||||
public string StateRecordRef { get; set; } = "";
|
||||
|
||||
[Key(6)]
|
||||
public string FrameWitnessPath { get; set; } = "";
|
||||
public string FrameRecordRef { get; set; } = "";
|
||||
|
||||
[Key(7)]
|
||||
public string SoaWitnessPath { get; set; } = "";
|
||||
public string SoaViewRecordRef { get; set; } = "";
|
||||
|
||||
[Key(8)]
|
||||
public string HealthWitnessPath { get; set; } = "";
|
||||
public string HealthRecordRef { get; set; } = "";
|
||||
|
||||
[Key(9)]
|
||||
public string CommandBoundaryWitnessPath { get; set; } = "";
|
||||
public string CommandBoundaryRecordRef { get; set; } = "";
|
||||
|
||||
[Key(10)]
|
||||
public string EveGuiSurfaceWitnessPath { get; set; } = "";
|
||||
public string EveGuiSurfaceRecordRef { get; set; } = "";
|
||||
|
||||
[Key(11)]
|
||||
public string EveTuiSurfaceWitnessPath { get; set; } = "";
|
||||
public string EveTuiSurfaceRecordRef { get; set; } = "";
|
||||
|
||||
[Key(12)]
|
||||
public string EveGuiSurfaceId { get; set; } = "aetheria.game";
|
||||
|
|
@ -240,10 +240,10 @@ namespace GameCult.Aetheria.State.Verse
|
|||
public string EveTuiSurfaceId { get; set; } = "aetheria.game.tui";
|
||||
|
||||
[Key(14)]
|
||||
public string EditorGuiSurfaceWitnessPath { get; set; } = "";
|
||||
public string EditorGuiSurfaceRecordRef { get; set; } = "";
|
||||
|
||||
[Key(15)]
|
||||
public string EditorTuiSurfaceWitnessPath { get; set; } = "";
|
||||
public string EditorTuiSurfaceRecordRef { get; set; } = "";
|
||||
|
||||
[Key(16)]
|
||||
public string EditorGuiSurfaceId { get; set; } = "aetheria.daemon.editor";
|
||||
|
|
@ -261,7 +261,7 @@ namespace GameCult.Aetheria.State.Verse
|
|||
public string CultMeshAddress { get; set; } = "cultmesh://aetheria.local/eve/providers/aetheria.daemon";
|
||||
|
||||
[Key(21)]
|
||||
public string AssetManifestWitnessPath { get; set; } = "";
|
||||
public string AssetManifestRecordRef { get; set; } = "";
|
||||
|
||||
public static AetheriaRuntimeDaemonProviderAdvertisementDocument Create(
|
||||
string stateFilePath,
|
||||
|
|
@ -274,18 +274,18 @@ namespace GameCult.Aetheria.State.Verse
|
|||
VerseId = string.IsNullOrWhiteSpace(verseId) ? "aetheria.local" : verseId,
|
||||
DaemonId = string.IsNullOrWhiteSpace(daemonId) ? "aetheria-daemon" : daemonId,
|
||||
PublishedAtUtc = DateTime.UtcNow.ToString("O"),
|
||||
StateWitnessPath = stateFilePath ?? "",
|
||||
FrameWitnessPath = AetheriaRuntimeStateBoundary.GetDaemonFramePath(stateFilePath ?? ""),
|
||||
SoaWitnessPath = AetheriaRuntimeStateBoundary.GetDaemonSoaViewPath(stateFilePath ?? ""),
|
||||
HealthWitnessPath = AetheriaRuntimeStateBoundary.GetDaemonHealthPath(stateFilePath ?? ""),
|
||||
AssetManifestWitnessPath = AetheriaRuntimeStateBoundary.GetDaemonAssetManifestPath(stateFilePath ?? ""),
|
||||
CommandBoundaryWitnessPath = AetheriaRuntimeStateBoundary.GetDaemonCommandBoundaryPath(stateFilePath ?? ""),
|
||||
EveGuiSurfaceWitnessPath = AetheriaRuntimeStateBoundary.GetDaemonGameSurfacePath(stateFilePath ?? ""),
|
||||
EveTuiSurfaceWitnessPath = AetheriaRuntimeStateBoundary.GetDaemonGameTuiSurfacePath(stateFilePath ?? ""),
|
||||
StateRecordRef = stateFilePath ?? "",
|
||||
FrameRecordRef = AetheriaRuntimeVerseRecordKeys.DaemonFrameLatest.ToString(),
|
||||
SoaViewRecordRef = AetheriaRuntimeVerseRecordKeys.DaemonSoaViewLatest.ToString(),
|
||||
HealthRecordRef = AetheriaRuntimeVerseRecordKeys.DaemonHealth.ToString(),
|
||||
AssetManifestRecordRef = AetheriaRuntimeVerseRecordKeys.DaemonAssetManifest.ToString(),
|
||||
CommandBoundaryRecordRef = AetheriaRuntimeVerseRecordKeys.DaemonCommandBoundary.ToString(),
|
||||
EveGuiSurfaceRecordRef = AetheriaRuntimeVerseRecordKeys.DaemonGameSurface.ToString(),
|
||||
EveTuiSurfaceRecordRef = AetheriaRuntimeVerseRecordKeys.DaemonGameTuiSurface.ToString(),
|
||||
EveGuiSurfaceId = AetheriaRuntimeDaemonGameSurfaceBuilder.SurfaceId,
|
||||
EveTuiSurfaceId = AetheriaRuntimeDaemonGameSurfaceBuilder.TuiSurfaceId,
|
||||
EditorGuiSurfaceWitnessPath = AetheriaRuntimeStateBoundary.GetDaemonEditorSurfacePath(stateFilePath ?? ""),
|
||||
EditorTuiSurfaceWitnessPath = AetheriaRuntimeStateBoundary.GetDaemonEditorTuiSurfacePath(stateFilePath ?? ""),
|
||||
EditorGuiSurfaceRecordRef = AetheriaRuntimeVerseRecordKeys.DaemonEditorSurface.ToString(),
|
||||
EditorTuiSurfaceRecordRef = AetheriaRuntimeVerseRecordKeys.DaemonEditorTuiSurface.ToString(),
|
||||
EditorGuiSurfaceId = AetheriaRuntimeDaemonEditorSurfaceBuilder.SurfaceId,
|
||||
EditorTuiSurfaceId = AetheriaRuntimeDaemonEditorSurfaceBuilder.TuiSurfaceId,
|
||||
CultMeshAddress = string.IsNullOrWhiteSpace(cultMeshAddress)
|
||||
|
|
|
|||
|
|
@ -45,17 +45,17 @@ namespace GameCult.Aetheria.State.Verse
|
|||
Metric("aetheria.daemon.editor.provider.provider", "Provider", provider.ProviderId),
|
||||
Metric("aetheria.daemon.editor.provider.daemon", "Daemon", provider.DaemonId),
|
||||
Metric("aetheria.daemon.editor.provider.transport", "CultMesh", provider.CultMeshAddress),
|
||||
Metric("aetheria.daemon.editor.provider.state", "State Witness", provider.StateWitnessPath)),
|
||||
Metric("aetheria.daemon.editor.provider.state", "State", provider.StateRecordRef)),
|
||||
Node(
|
||||
"aetheria.daemon.editor.witnesses",
|
||||
"aetheria.daemon.editor.records",
|
||||
"card",
|
||||
new[] { ("title", "Witnesses") },
|
||||
Metric("aetheria.daemon.editor.witnesses.frame", "Frame", provider.FrameWitnessPath),
|
||||
Metric("aetheria.daemon.editor.witnesses.soa", "SoA", provider.SoaWitnessPath),
|
||||
Metric("aetheria.daemon.editor.witnesses.health", "Health", provider.HealthWitnessPath),
|
||||
Metric("aetheria.daemon.editor.witnesses.commands", "Command Boundary", provider.CommandBoundaryWitnessPath),
|
||||
Metric("aetheria.daemon.editor.witnesses.game", "Game Surface", provider.EveGuiSurfaceWitnessPath),
|
||||
Metric("aetheria.daemon.editor.witnesses.editor", "Editor Surface", provider.EditorGuiSurfaceWitnessPath)),
|
||||
new[] { ("title", "Managed Records") },
|
||||
Metric("aetheria.daemon.editor.records.frame", "Frame", provider.FrameRecordRef),
|
||||
Metric("aetheria.daemon.editor.records.soa", "SoA", provider.SoaViewRecordRef),
|
||||
Metric("aetheria.daemon.editor.records.health", "Health", provider.HealthRecordRef),
|
||||
Metric("aetheria.daemon.editor.records.commands", "Command Boundary", provider.CommandBoundaryRecordRef),
|
||||
Metric("aetheria.daemon.editor.records.game", "Game Surface", provider.EveGuiSurfaceRecordRef),
|
||||
Metric("aetheria.daemon.editor.records.editor", "Editor Surface", provider.EditorGuiSurfaceRecordRef)),
|
||||
Node(
|
||||
"aetheria.daemon.editor.health",
|
||||
"card",
|
||||
|
|
|
|||
|
|
@ -27,6 +27,9 @@ namespace GameCult.Aetheria.State.Verse
|
|||
public static CultRecordKey DaemonCommandBoundary { get; } =
|
||||
new CultRecordKey("daemon:aetheria.command_boundary.v1");
|
||||
|
||||
public static CultRecordKey DaemonAssetManifest { get; } =
|
||||
new CultRecordKey("daemon:aetheria.asset_manifest.v1");
|
||||
|
||||
public static CultRecordKey VerseAuthorityPolicy { get; } =
|
||||
new CultRecordKey(AetheriaRuntimeVerseAuthorityPolicyDocument.DocumentKey);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue