Record generic Electron asset ownership

This commit is contained in:
Meta Vens 2026-07-10 13:59:47 +01:00
commit cb9b2d1e54
3 changed files with 9 additions and 8 deletions

View file

@ -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.

View file

@ -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."

View file

@ -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" `