Verify generic Electron host lifecycle
This commit is contained in:
parent
112641bf8c
commit
f7acd2152f
2 changed files with 16 additions and 8 deletions
|
|
@ -89,6 +89,11 @@ advertisements and typed command/receipt documents are the boundary.
|
|||
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.
|
||||
- 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.
|
||||
- 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
|
||||
|
|
@ -118,11 +123,9 @@ 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.
|
||||
- Move the remaining Electron host lifecycle and generic CultMesh client
|
||||
construction out of `Aetheria.Rts.Web/Electron/main.ts` into EveElectron.
|
||||
Aetheria should retain only provider daemon launch/development configuration
|
||||
and its asset protocol implementation until those become separately
|
||||
advertised provider capabilities.
|
||||
- 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.
|
||||
|
|
|
|||
|
|
@ -12,7 +12,8 @@ $windowPath = Join-Path $EveElectronRoot "src\window-host.mjs"
|
|||
$preloadPath = Join-Path $EveElectronRoot "src\eve-provider-preload.cjs"
|
||||
$preloadEntryPath = Join-Path $EveElectronRoot "src\eve-provider-preload-entry.cjs"
|
||||
$rendererRuntimePath = Join-Path $EveElectronRoot "src\eve-electron-renderer.mjs"
|
||||
foreach ($path in @($manifestPath, $packagePath, $shellPath, $windowPath, $preloadPath, $preloadEntryPath, $rendererRuntimePath)) {
|
||||
$liveHostPath = Join-Path $EveElectronRoot "src\live-provider-host.mjs"
|
||||
foreach ($path in @($manifestPath, $packagePath, $shellPath, $windowPath, $preloadPath, $preloadEntryPath, $rendererRuntimePath, $liveHostPath)) {
|
||||
if (-not (Test-Path -LiteralPath $path)) { throw "EveElectron owner path missing: $path" }
|
||||
}
|
||||
|
||||
|
|
@ -28,10 +29,14 @@ $main = Get-Content -LiteralPath (Join-Path $AetheriaRoot "Aetheria.Rts.Web\Elec
|
|||
$renderer = Get-Content -LiteralPath (Join-Path $AetheriaRoot "Aetheria.Rts.Web\Client\app.ts") -Raw
|
||||
$preloadEntry = Get-Content -LiteralPath $preloadEntryPath -Raw
|
||||
$rendererRuntime = Get-Content -LiteralPath $rendererRuntimePath -Raw
|
||||
foreach ($symbol in @("createEveElectronWindow", "registerEveWindowControls", "@gamecult/eve-electron")) {
|
||||
$liveHost = Get-Content -LiteralPath $liveHostPath -Raw
|
||||
foreach ($symbol in @("startEveElectronProviderHost", "@gamecult/eve-electron/live-provider-host")) {
|
||||
if (-not $main.Contains($symbol)) { throw "Aetheria Electron host does not consume owner symbol: $symbol" }
|
||||
}
|
||||
if (-not $main.Contains("eve-provider-preload-entry.cjs") -or -not $preloadEntry.Contains("installEveProviderBridge")) {
|
||||
if (-not $liveHost.Contains("eve-provider-preload-entry.cjs") -or
|
||||
-not $liveHost.Contains("registerEveProviderIpc") -or
|
||||
-not $liveHost.Contains("createEveElectronWindow") -or
|
||||
-not $preloadEntry.Contains("installEveProviderBridge")) {
|
||||
throw "Aetheria host does not consume EveElectron's standalone provider preload."
|
||||
}
|
||||
if (Test-Path -LiteralPath (Join-Path $AetheriaRoot "Aetheria.Rts.Web\Electron\preload.cjs")) {
|
||||
|
|
|
|||
Loading…
Reference in a new issue