Neutralize Aetheria surface catalog ids
This commit is contained in:
parent
dc2159867c
commit
fbdf4626f6
6 changed files with 18 additions and 10 deletions
|
|
@ -476,7 +476,7 @@ export class AetheriaCultMeshClient {
|
|||
|
||||
private createViewportFeed() {
|
||||
return CultMesh.liveFeed<AetheriaRuntimeViewportFeedRequest, AetheriaRuntimeViewportFeedSnapshot>(
|
||||
"gamecult.aetheria.rts.viewport_feed.v1",
|
||||
"gamecult.aetheria.viewport_feed.v1",
|
||||
async (request, context) => {
|
||||
const objects = await this.queries.objectsViewport.execute(request.viewport, context);
|
||||
return this.createViewportFeedSnapshot(request, objects);
|
||||
|
|
|
|||
|
|
@ -2318,7 +2318,7 @@ export function describeAetheriaRuntimeRtsSurfaceCatalog(
|
|||
documents: AetheriaRuntimeGameDocuments = createAetheriaRuntimeGameDocuments(),
|
||||
): AetheriaRuntimeRtsSurfaceCatalogDiagnostic {
|
||||
return CultMesh.describeSurfaceCatalog(
|
||||
"gamecult.aetheria.rts.surfaces.v1",
|
||||
"gamecult.aetheria.surfaces.v1",
|
||||
[
|
||||
CultMesh.describeSurface(documents.daemonFrame),
|
||||
CultMesh.describeSurface(documents.daemonHealth),
|
||||
|
|
|
|||
|
|
@ -255,7 +255,7 @@ function isElectronSmokeReady(result: Record<string, unknown>): boolean {
|
|||
arrayValue(eveFieldSurface?.embeddedDocuments).some(slot =>
|
||||
objectValue(slot)?.slotId === "objects") &&
|
||||
stringValue(actor?.entityKey).length > 0 &&
|
||||
surfaceCatalog?.catalogId === "gamecult.aetheria.rts.surfaces.v1" &&
|
||||
surfaceCatalog?.catalogId === "gamecult.aetheria.surfaces.v1" &&
|
||||
arrayValue(surfaceCatalogIndex?.queries).length > 0 &&
|
||||
arrayValue(surfaceCatalogIndex?.operations).some(surface =>
|
||||
objectValue(surface)?.surfaceId === "gamecult.aetheria.pilot.set_move_vector.v1") &&
|
||||
|
|
|
|||
|
|
@ -834,7 +834,7 @@ export function describeAetheriaRuntimeRtsSurfaceCatalog(
|
|||
documents: AetheriaRuntimeGameDocuments = createAetheriaRuntimeGameDocuments(),
|
||||
): AetheriaRuntimeRtsSurfaceCatalogDiagnostic {
|
||||
return CultMesh.describeSurfaceCatalog(
|
||||
"gamecult.aetheria.rts.surfaces.v1",
|
||||
"gamecult.aetheria.surfaces.v1",
|
||||
[
|
||||
CultMesh.describeSurface(documents.daemonFrame),
|
||||
CultMesh.describeSurface(documents.daemonHealth),
|
||||
|
|
|
|||
|
|
@ -36,6 +36,14 @@ if ($LASTEXITCODE -gt 1) {
|
|||
Write-Error "Stage 7B verifier could not run rg for file-backed debug surface checks."
|
||||
}
|
||||
|
||||
$forbiddenRtsSurfaceContractHits = & rg -n 'gamecult\.aetheria\.rts\.(surfaces|viewport_feed)' Client Electron scripts/generate-rts-bindings.mjs 2>$null
|
||||
if ($LASTEXITCODE -eq 0) {
|
||||
Write-Error "Stage 7B verifier failed: Aetheria CultMesh surface catalog/feed ids must not be RTS-branded.`n$forbiddenRtsSurfaceContractHits"
|
||||
}
|
||||
if ($LASTEXITCODE -gt 1) {
|
||||
Write-Error "Stage 7B verifier could not run rg for RTS-branded surface contract checks."
|
||||
}
|
||||
|
||||
$required = @(
|
||||
'mapViewport',
|
||||
'objectsViewport',
|
||||
|
|
|
|||
|
|
@ -108,10 +108,10 @@ if (!Array.isArray(starbridge.waveForecast) || !starbridge.waveForecast.some(wav
|
|||
throw new Error("Starbridge session did not expose daemon-seeded wave forecast.");
|
||||
|
||||
const surfaceCatalog = client.surfaceCatalogDiagnostics();
|
||||
if (surfaceCatalog.catalogId !== "gamecult.aetheria.rts.surfaces.v1")
|
||||
throw new Error(`Unexpected RTS surface catalog id: ${surfaceCatalog.catalogId}`);
|
||||
if (!surfaceCatalog.surfaces.some(surface => surface.surfaceId === "gamecult.aetheria.rts.viewport_feed.v1" && surface.kind === "live-feed"))
|
||||
throw new Error("RTS surface catalog did not expose the viewport live feed.");
|
||||
if (surfaceCatalog.catalogId !== "gamecult.aetheria.surfaces.v1")
|
||||
throw new Error(`Unexpected Aetheria surface catalog id: ${surfaceCatalog.catalogId}`);
|
||||
if (!surfaceCatalog.surfaces.some(surface => surface.surfaceId === "gamecult.aetheria.viewport_feed.v1" && surface.kind === "live-feed"))
|
||||
throw new Error("Aetheria surface catalog did not expose the viewport live feed.");
|
||||
if (!surfaceCatalog.surfaces.some(surface => surface.surfaceId === "gamecult.aetheria.pilot.set_move_vector.v1" && surface.kind === "operation"))
|
||||
throw new Error("RTS surface catalog did not expose the move operation.");
|
||||
if (!surfaceCatalog.surfaces.some(surface =>
|
||||
|
|
@ -126,8 +126,8 @@ if (surfaceIndex.catalogId !== surfaceCatalog.catalogId)
|
|||
throw new Error("RTS surface catalog index did not preserve the catalog id.");
|
||||
if (!Array.isArray(surfaceIndex.operations) || surfaceIndex.operations.length < 2)
|
||||
throw new Error("RTS surface catalog index did not group operation surfaces.");
|
||||
if (!Array.isArray(surfaceIndex.liveFeeds) || !surfaceIndex.liveFeeds.some(surface => surface.surfaceId === "gamecult.aetheria.rts.viewport_feed.v1"))
|
||||
throw new Error("RTS surface catalog index did not group the viewport live feed.");
|
||||
if (!Array.isArray(surfaceIndex.liveFeeds) || !surfaceIndex.liveFeeds.some(surface => surface.surfaceId === "gamecult.aetheria.viewport_feed.v1"))
|
||||
throw new Error("Aetheria surface catalog index did not group the viewport live feed.");
|
||||
if (!Array.isArray(surfaceIndex.queries) || !surfaceIndex.queries.some(surface => surface.surfaceId === "gamecult.aetheria.objects_viewport.v1"))
|
||||
throw new Error("RTS surface catalog index did not group generated query surfaces.");
|
||||
if (!Array.isArray(surfaceIndex.documents) || !surfaceIndex.documents.some(surface => surface.surfaceId === "daemon:aetheria.frame.latest.v1"))
|
||||
|
|
|
|||
Loading…
Reference in a new issue