diff --git a/Aetheria.State.Verify/Program.cs b/Aetheria.State.Verify/Program.cs index 684d40049..5eafec108 100644 --- a/Aetheria.State.Verify/Program.cs +++ b/Aetheria.State.Verify/Program.cs @@ -1500,6 +1500,31 @@ static void RequireNoDeadRuntimeProjectionClasses(string root) "Active architecture docs must not point future work at deleted runtime-specific shared authorities: " + string.Join("; ", docHits)); } + + var daemonRuntimeSpecificHookPhrases = new[] + { + "daemon RTS viewport", + "Daemon RTS viewport", + "temporary RUDP RTS viewport", + "RUDP RTS viewport", + "daemon RTS command", + "Daemon RTS command" + }; + var hookPhraseHits = Directory.EnumerateFiles(activeDocsRoot, "*.md", SearchOption.AllDirectories) + .SelectMany(path => + { + var text = File.ReadAllText(path); + return daemonRuntimeSpecificHookPhrases + .Where(phrase => text.Contains(phrase, StringComparison.Ordinal)) + .Select(phrase => $"{Path.GetRelativePath(root, path)} contains {phrase}"); + }) + .ToArray(); + if (hookPhraseHits.Length > 0) + { + throw new InvalidOperationException( + "Active architecture docs must describe daemon RUDP hooks as client-neutral compatibility, not RTS-specific daemon authority: " + + string.Join("; ", hookPhraseHits)); + } } } diff --git a/Aetheria.State/docs/stage-7-client-surface-inventory.md b/Aetheria.State/docs/stage-7-client-surface-inventory.md index f4329ecf1..d7bbc3f5f 100644 --- a/Aetheria.State/docs/stage-7-client-surface-inventory.md +++ b/Aetheria.State/docs/stage-7-client-surface-inventory.md @@ -229,12 +229,12 @@ Done: - `scripts/generate-rts-bindings.mjs` derives schema ids, command kind ids, and slot maps from the C# MessagePack document declarations into `aetheria-rts-generated-bindings.ts` for daemon command, daemon frame, daemon - health, RTS viewport payloads, nested daemon snapshot payloads, Verse + health, game viewport payloads, nested daemon snapshot payloads, Verse authority policy, authority rule, and authority lease; - `AetheriaRuntimeGameViewportDocuments` owns typed viewport projection over local daemon frame state, including controlled-unit visibility union, status, inventory, and gravity influence intersections; -- daemon RUDP snapshot handling delegates RTS viewport construction to +- daemon RUDP snapshot handling delegates game viewport construction to `AetheriaRuntimeGameViewportDocuments` instead of carrying map projection logic inline; - `Aetheria.State.AuthoritySmoke` verifies the projection behavior against a @@ -275,7 +275,7 @@ Remaining: 3. Replace the remaining semantic command construction arrays with a CultMesh TS typed document writer once that primitive is available locally. 4. Narrow Electron preload/main IPC behind a typed runtime facade. -5. Keep the daemon RTS viewport handler only as temporary compatibility plumbing +5. Keep the daemon local viewport handler only as temporary compatibility plumbing until no client or diagnostic path depends on it. 6. Keep the verifier checking for old public generic surfaces and transport wrapper layout leaks: diff --git a/Aetheria.State/docs/stage-7-thin-client-staged-implementation-plan.md b/Aetheria.State/docs/stage-7-thin-client-staged-implementation-plan.md index 7e47b7a4d..1b7d6d3e7 100644 --- a/Aetheria.State/docs/stage-7-thin-client-staged-implementation-plan.md +++ b/Aetheria.State/docs/stage-7-thin-client-staged-implementation-plan.md @@ -334,7 +334,7 @@ Build: - Project the map viewport in TS from the frame document. - Use controlled-unit visibility union for fog of war. - Include objects, status, inventory, gravity influences, and body views. -- Keep remote RTS viewport document handling as daemon compatibility only. +- Keep remote game viewport document handling as daemon compatibility only. Outputs: diff --git a/Aetheria.State/docs/verse-authority-implementation-plan.md b/Aetheria.State/docs/verse-authority-implementation-plan.md index 63affb284..5e0e088c9 100644 --- a/Aetheria.State/docs/verse-authority-implementation-plan.md +++ b/Aetheria.State/docs/verse-authority-implementation-plan.md @@ -736,7 +736,7 @@ Current artifacts: using the same typed projection facade. - `Packages/org.gamecult.aetheria.state/Runtime/AetheriaRuntimeGameViewportDocuments.cs` owns typed map viewport projection over local daemon frame state. -- `Aetheria.State.Daemon/Program.cs` delegates the temporary RUDP RTS viewport +- `Aetheria.State.Daemon/Program.cs` delegates the temporary RUDP game viewport snapshot hook to the shared projection API. - `Aetheria.Rts.Web/scripts/verify-stage7b-rts-client.ps1` fails if public generic APIs return or if the Electron transport wrapper regains document @@ -753,7 +753,7 @@ Remaining Stage 7B work: canonical peer health surface. 3. Replace the remaining semantic command construction arrays with a CultMesh TS typed document writer once that primitive is available locally. -4. Delete or narrow the daemon RTS viewport RUDP hook once no compatibility +4. Delete or narrow the daemon local viewport RUDP hook once no compatibility client or diagnostic path depends on it. Stop line: