Record Aetheria playable world EveUnity proof

This commit is contained in:
Meta Vens 2026-07-09 21:11:01 +01:00
commit d7bcfab5f8
6 changed files with 69 additions and 2 deletions

View file

@ -986,6 +986,18 @@ Recently cut:
bootstrap, input, camera, scene sink, and command-envelope tests compile and
run through the Aetheria consumer project without making the Unity client
Aetheria-specific.
- Aetheria now also carries the real provider-side proof for the target shape:
a generic `EveUnityPlayableWorldRuntime` lowers the daemon-published 3D ARPG
world surface through the Aetheria Eve provider bridge, resolves
provider-owned playable-world asset refs, submits movement through the
advertised `gamecult.eve.command.v1` boundary, observes provider-owned
receipts, and refreshes from daemon snapshots without importing Aetheria
product authority into EveUnity. Eve records this as the
`aetheria-playable-world-consumer-proof` observed-provider move set in
`runtimes/incubating/eve-unity-scene/eveunity-scene-split-handoff.json`, and
the split-target plus Aetheria consumer smokes assert it from the conformance
export. The remaining blocker is live transport/rendered-frame proof from
the future EveUnity owner repo, not whether the Unity client is generic.
- Aetheria now has repeatable Unity package consumer-build evidence for the
Eve UI Toolkit runtime. `scripts/run-aetheria-unity-package-smoke.ps1`
verifies Aetheria's Unity `Packages/manifest.json` consumes Eve's surface and

View file

@ -142,6 +142,18 @@
"destinationOwner": "EveUnity",
"replacementProof": "Unity scene input emits gamecult.eve.command.v1 intents through typed provider surface documents, a provider-snapshot client session, IEveUnitySceneProviderSurfaceSource, IEveUnitySceneCommandSink, IEveUnitySceneCommandReceiptSource, and advertised command boundaries, then observes provider receipts and refreshes from provider documents/snapshots instead of mutating local world truth."
},
{
"id": "aetheria-playable-world-consumer-proof",
"stage": "observed-provider-proof",
"observedProviderPaths": [
"E:\\Projects\\Aetheria\\Assets\\Scripts\\Tests\\DaemonRuntimeDocumentTests.cs",
"E:\\Projects\\Aetheria\\Packages\\org.gamecult.aetheria.eve-runtime\\Runtime\\AetheriaEveUnitySceneProviderBridge.cs",
"E:\\Projects\\Aetheria\\Packages\\org.gamecult.aetheria.state\\Runtime\\AetheriaRuntimeDaemonGameSurfaceBuilder.cs",
"E:\\Projects\\Aetheria\\Packages\\org.gamecult.aetheria.state\\Runtime\\AetheriaRuntimeDaemonOperationsClient.cs"
],
"destinationOwner": "Aetheria",
"replacementProof": "Aetheria proves a generic EveUnity playable-world runtime can lower the daemon-published 3D ARPG surface, resolve provider-owned asset refs, submit movement through the advertised command boundary, observe provider receipts, and refresh from provider-owned daemon snapshots without making EveUnity import Aetheria product code."
},
{
"id": "unity-scene-capture-lifecycle",
"stage": "capture",

View file

@ -80,6 +80,7 @@ try {
--expect-command-boundary-coverage aetheria:aetheria.daemon.editor:unity-uitoolkit:covered:EveUnity:unity-uitoolkit `
--expect-command-boundary-coverage aetheria:aetheria.daemon.editor:electron-shell:covered:EveElectron:electron-shell `
--expect-command-boundary-coverage aetheria:aetheria.daemon.editor:tui:covered:EveTui:tui `
--expect-split-target-proof "EveUnity:Aetheria daemon 3D ARPG world lowers through a generic EveUnity playable-world client" `
--expect-runtime-capture-artifact unity-uitoolkit:json-projection:gamecult.eve.unity_uitoolkit_projection.v1:aetheria:aetheria.daemon.game `
--expect-runtime-capture-artifact unity-scene:json-projection:gamecult.eve.unity_scene_projection.v1:aetheria:aetheria.daemon.game `
--expect-runtime-capture-artifact electron-shell:json-projection:gamecult.eve.electron_shell_projection.v1:aetheria:aetheria.daemon.game `
@ -94,6 +95,10 @@ try {
--expect-split-handoff-move EveUnity:unity-scene:unity-scene-runtime-body:current:exists:EveUnitySceneSurfaceLowerer.cs `
--expect-split-handoff-move EveUnity:unity-scene:unity-scene-world-surface-lowering:current:exists:EveUnitySceneSurfaceLowerer.cs `
--expect-split-handoff-move EveUnity:unity-scene:unity-scene-command-transport:current:exists:EveUnitySceneSurfaceLowerer.cs `
--expect-split-handoff-move EveUnity:unity-scene:aetheria-playable-world-consumer-proof:observed-provider:exists:Assets/Scripts/Tests/DaemonRuntimeDocumentTests.cs `
--expect-split-handoff-move EveUnity:unity-scene:aetheria-playable-world-consumer-proof:observed-provider:exists:Packages/org.gamecult.aetheria.eve-runtime/Runtime/AetheriaEveUnitySceneProviderBridge.cs `
--expect-split-handoff-move EveUnity:unity-scene:aetheria-playable-world-consumer-proof:observed-provider:exists:AetheriaRuntimeDaemonGameSurfaceBuilder.cs `
--expect-split-handoff-move EveUnity:unity-scene:aetheria-playable-world-consumer-proof:observed-provider:exists:AetheriaRuntimeDaemonOperationsClient.cs `
--expect-split-handoff-move EveUnity:unity-uitoolkit:aetheria-unity-consumer-boundary:observed-provider:exists:Packages/manifest.json `
--expect-split-handoff-move EveUnity:unity-uitoolkit:aetheria-unity-consumer-boundary:observed-provider:exists:GameCult.Eve.UnityUIToolkit.csproj `
--expect-split-handoff-move EveUnity:unity-uitoolkit:aetheria-unity-consumer-boundary:observed-provider:exists:Aetheria.State.Unity/AetheriaRuntimeCatalogClient.cs `

View file

@ -50,6 +50,7 @@ $expectedMoveSets = @{
"unity-scene-norn-plugin-projection" = "plugin-projection"
"unity-scene-tex-plugin-projection" = "plugin-projection"
"unity-scene-command-transport" = "command"
"aetheria-playable-world-consumer-proof" = "observed-provider-proof"
"unity-scene-capture-lifecycle" = "capture"
}
@ -61,7 +62,8 @@ foreach ($id in $expectedMoveSets.Keys) {
if ($moveSet.stage -ne $expectedMoveSets[$id]) {
throw "EveUnity scene split handoff move set $id has unexpected stage: $($moveSet.stage)"
}
if ($moveSet.destinationOwner -ne "EveUnity") {
$expectedDestinationOwner = if ($id -eq "aetheria-playable-world-consumer-proof") { "Aetheria" } else { "EveUnity" }
if ($moveSet.destinationOwner -ne $expectedDestinationOwner) {
throw "EveUnity scene split handoff move set $id has unexpected destination owner: $($moveSet.destinationOwner)"
}
if (-not $moveSet.replacementProof) {
@ -81,7 +83,29 @@ foreach ($id in $expectedMoveSets.Keys) {
}
}
if ($observedProviderPaths.Count -ne 0) {
throw "EveUnity scene split handoff move set $id must not treat provider product paths as generic scene runtime source"
if ($id -ne "aetheria-playable-world-consumer-proof") {
throw "EveUnity scene split handoff move set $id must not treat provider product paths as generic scene runtime source"
}
foreach ($providerPath in $observedProviderPaths) {
if (-not [System.IO.Path]::IsPathRooted($providerPath)) {
throw "Aetheria playable-world consumer proof path must be absolute: $providerPath"
}
if (-not (Test-Path -LiteralPath $providerPath)) {
throw "Aetheria playable-world consumer proof path is missing: $providerPath"
}
}
}
}
$aetheriaConsumerProof = $moveSets | Where-Object { $_.id -eq "aetheria-playable-world-consumer-proof" } | Select-Object -First 1
foreach ($requiredObservedPath in @(
"E:\Projects\Aetheria\Assets\Scripts\Tests\DaemonRuntimeDocumentTests.cs",
"E:\Projects\Aetheria\Packages\org.gamecult.aetheria.eve-runtime\Runtime\AetheriaEveUnitySceneProviderBridge.cs",
"E:\Projects\Aetheria\Packages\org.gamecult.aetheria.state\Runtime\AetheriaRuntimeDaemonGameSurfaceBuilder.cs",
"E:\Projects\Aetheria\Packages\org.gamecult.aetheria.state\Runtime\AetheriaRuntimeDaemonOperationsClient.cs"
)) {
if (-not (@($aetheriaConsumerProof.observedProviderPaths) -contains $requiredObservedPath)) {
throw "Aetheria playable-world consumer proof missing required observed provider path: $requiredObservedPath"
}
}

View file

@ -43,6 +43,7 @@ try {
--expect-split-target-proof "EveUnity:EveUnity split handoff is machine-readable" `
--expect-split-target-proof "EveUnity:Unity scene split handoff is machine-readable" `
--expect-split-target-proof "EveUnity:Unity scene lifecycle contract is machine-readable" `
--expect-split-target-proof "EveUnity:Aetheria daemon 3D ARPG world lowers through a generic EveUnity playable-world client" `
--expect-runtime-capture-artifact unity-uitoolkit:json-projection:gamecult.eve.unity_uitoolkit_projection.v1:aetheria:aetheria.daemon.game `
--expect-runtime-capture-artifact unity-uitoolkit:json-projection:gamecult.eve.unity_uitoolkit_projection.v1:eve.world-smoke:eve.world-smoke.surface `
--expect-runtime-capture-artifact unity-scene:json-projection:gamecult.eve.unity_scene_projection.v1:aetheria:aetheria.daemon.game `
@ -59,6 +60,10 @@ try {
--expect-split-handoff-move EveUnity:unity-scene:unity-scene-norn-plugin-projection:current:exists:NornGraphUnitySceneProjectionAdapter.cs `
--expect-split-handoff-move EveUnity:unity-scene:unity-scene-tex-plugin-projection:current:exists:TeXMathUnitySceneProjectionAdapter.cs `
--expect-split-handoff-move EveUnity:unity-scene:unity-scene-command-transport:current:exists:EveUnitySceneSurfaceLowerer.cs `
--expect-split-handoff-move EveUnity:unity-scene:aetheria-playable-world-consumer-proof:observed-provider:exists:Assets/Scripts/Tests/DaemonRuntimeDocumentTests.cs `
--expect-split-handoff-move EveUnity:unity-scene:aetheria-playable-world-consumer-proof:observed-provider:exists:Packages/org.gamecult.aetheria.eve-runtime/Runtime/AetheriaEveUnitySceneProviderBridge.cs `
--expect-split-handoff-move EveUnity:unity-scene:aetheria-playable-world-consumer-proof:observed-provider:exists:AetheriaRuntimeDaemonGameSurfaceBuilder.cs `
--expect-split-handoff-move EveUnity:unity-scene:aetheria-playable-world-consumer-proof:observed-provider:exists:AetheriaRuntimeDaemonOperationsClient.cs `
--expect-split-handoff-move EveUnity:unity-scene:unity-scene-capture-lifecycle:current:exists:eveunity-capture-contract.mjs `
--expect-split-handoff-move EveUnity:unity-uitoolkit:aetheria-unity-consumer-boundary:observed-provider:exists:Packages/manifest.json `
--expect-split-handoff-move EveUnity:unity-uitoolkit:aetheria-unity-consumer-boundary:observed-provider:exists:GameCult.Eve.UnityUIToolkit.csproj `

View file

@ -660,6 +660,15 @@
"scripts/run-aetheria-unity-scene-editmode-tests.ps1"
]
},
{
"description": "Aetheria daemon 3D ARPG world lowers through a generic EveUnity playable-world client without Aetheria runtime authority.",
"status": "passed",
"evidencePaths": [
"runtimes/incubating/eve-unity-scene/eveunity-scene-split-handoff.json",
"scripts/run-eveunity-scene-split-handoff-smoke.ps1",
"scripts/run-aetheria-unity-scene-editmode-tests.ps1"
]
},
{
"description": "Unity scene graph projection lowerer plus Sai, Norn, and TeX projection adapters exist without claiming provider simulation, plugin semantics, or capture ownership.",
"status": "passed",