Record Aetheria playable world EveUnity proof
This commit is contained in:
parent
4a15c39079
commit
d7bcfab5f8
6 changed files with 69 additions and 2 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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",
|
||||
|
|
|
|||
|
|
@ -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 `
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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 `
|
||||
|
|
|
|||
|
|
@ -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",
|
||||
|
|
|
|||
Loading…
Reference in a new issue