diff --git a/docs/eve-migration-roadmap.md b/docs/eve-migration-roadmap.md index 97aa725..2d1f29f 100644 --- a/docs/eve-migration-roadmap.md +++ b/docs/eve-migration-roadmap.md @@ -87,13 +87,16 @@ advertisements and typed command/receipt documents are the boundary. - EveElectron owns the standalone preload entry and generic browser renderer bootstrap. Aetheria consumes those runtime bodies directly; its generated renderer API contract, product preload, preload copy script, and product IPC - registration are deleted. The Aetheria renderer entry now supplies only its - provider asset-URL boundary before mounting the generic runtime. + registration are deleted. - EveElectron owns the live main-process provider host: secure window creation, provider client construction, Eve IPC and receipt handling, provider readiness, renderer loading, and cleanup. Aetheria delegates that lifecycle and retains only daemon development launch, provider target configuration, its live smoke - scenario, and the asset protocol implementation. + scenario, and provider-owned asset records. +- EveElectron owns generic CultMesh asset reads and the `eve-asset` protocol. + The Aetheria renderer and main process contain no product asset transport; + the cold-daemon witness decodes a provider-owned world image through the + generic runtime path. - EveFlutter owns the generic Flutter clients and platform lifecycle. - Sai and Norn publish independent sidecar plugins. Sai serves retained Ink sessions and Norn serves graph projection and measurement through CultNet @@ -123,9 +126,6 @@ advertisements and typed command/receipt documents are the boundary. - Route browser and remaining runtimes through Odin's aggregated provider discovery rather than local catalogs or sibling paths; Unity's direct CultMesh Verse discovery is the working reference. -- Advertise browser/Electron asset resolution as a provider capability and move - the remaining Aetheria asset protocol reader behind EveElectron's generic - provider client. Keep daemon development launch configuration in Aetheria. - Expand world lowering only through generic surface contracts: entities, transforms, animation state, collision/navigation intent, cameras, effects, interaction prompts, and command boundaries. diff --git a/scripts/run-eveelectron-owner-smoke.ps1 b/scripts/run-eveelectron-owner-smoke.ps1 index 7c1695a..62131b8 100644 --- a/scripts/run-eveelectron-owner-smoke.ps1 +++ b/scripts/run-eveelectron-owner-smoke.ps1 @@ -21,7 +21,7 @@ $manifest = Get-Content -LiteralPath $manifestPath -Raw | ConvertFrom-Json if ($manifest.schema -ne "gamecult.eve.runtime_capability.v1" -or $manifest.runtimeId -ne "electron-shell" -or $manifest.owner -ne "EveElectron") { throw "EveElectron owner manifest identity is invalid." } -foreach ($feature in @("providerAdvertisements", "commandTransport", "surfaceTreeProjection", "securePreloadBridge", "windowLifecycle")) { +foreach ($feature in @("providerAdvertisements", "commandTransport", "surfaceTreeProjection", "securePreloadBridge", "windowLifecycle", "liveProviderHost", "providerAssets")) { if (-not (@($manifest.supportedFeatures) -contains $feature)) { throw "EveElectron owner manifest missing feature: $feature" } } @@ -35,6 +35,7 @@ foreach ($symbol in @("startEveElectronProviderHost", "@gamecult/eve-electron/li } if (-not $liveHost.Contains("eve-provider-preload-entry.cjs") -or -not $liveHost.Contains("registerEveProviderIpc") -or + -not $liveHost.Contains("registerEveAssetProtocol") -or -not $liveHost.Contains("createEveElectronWindow") -or -not $preloadEntry.Contains("installEveProviderBridge")) { throw "Aetheria host does not consume EveElectron's standalone provider preload." diff --git a/scripts/run-split-target-conformance-consumer-smoke.ps1 b/scripts/run-split-target-conformance-consumer-smoke.ps1 index b4546f5..4fda7f1 100644 --- a/scripts/run-split-target-conformance-consumer-smoke.ps1 +++ b/scripts/run-split-target-conformance-consumer-smoke.ps1 @@ -49,7 +49,7 @@ try { --expect-split-target EveElectron ` --expect-split-target-status EveElectron:graduated ` --expect-split-target-proof "EveElectron:EveElectron owner repository publishes the generic runtime package" ` - --expect-split-target-proof "EveElectron:EveElectron owns secure window and preload lifecycle" ` + --expect-split-target-proof "EveElectron:EveElectron owns secure window, preload, and generic CultMesh asset lifecycle" ` --expect-split-target EveTui ` --expect-split-target-status EveTui:incubating ` --expect-split-target-proof "EveTui:EveTui split handoff is machine-readable" `