From ea86c958d342760cc9e3b5f0ae5bc6629c085fe2 Mon Sep 17 00:00:00 2001 From: Meta Vens Date: Thu, 9 Jul 2026 01:15:26 +0100 Subject: [PATCH] Declare edge runtime plugin limits --- docs/eve-migration-roadmap.md | 5 +++++ docs/renderer-parity.md | 4 ++-- tools/parity/parity-manifest.json | 28 ++++++++++++++++++++++++++++ 3 files changed, 35 insertions(+), 2 deletions(-) diff --git a/docs/eve-migration-roadmap.md b/docs/eve-migration-roadmap.md index a919fb9..a159532 100644 --- a/docs/eve-migration-roadmap.md +++ b/docs/eve-migration-roadmap.md @@ -280,6 +280,11 @@ Exit criteria: Recently cut: +- UIKit and Kotlin device-edge runtimes now declare unsupported Sai/Norn/TeX + plugin projection explicitly. They remain generic embedded-document and + device-edge proofs; plugin projection authority belongs to EveFlutter, + EveUnity, or future runtime-specific projection adapters instead of being + reported as unexplained active capability gaps. - The web reference no longer hardcodes the local provider list in `web/surface.js`. It loads `web/local-provider-catalog.json`, then opens advertisement-backed entries for Aetheria, Repixelizer, and Sai through the diff --git a/docs/renderer-parity.md b/docs/renderer-parity.md index 7d1a634..0f7dfad 100644 --- a/docs/renderer-parity.md +++ b/docs/renderer-parity.md @@ -35,8 +35,8 @@ proves the same contract at the CultMesh typed document sync layer. | Windows / Flutter | Active shared graphical smoke target | `flutter/eve_parity` loads exported `gamecult.eve.surface.v1` fixture JSON, including `embedded-surface`, and emits phone/tablet/desktop golden PNGs through `capture-flutter-parity.ps1` | Needs native window capture and tighter text/style normalization | | Linux / Flutter | Active shared graphical smoke target | Nightwing runs the Flutter parity goldens, including embedded surface slots, over SSH and returns phone/tablet/desktop PNGs | Needs native window capture and runner health checks | | Android / Flutter | Active shared graphical smoke target | The same Flutter parity app is built as an APK, installed on Periwinkle, and captured at phone/tablet/desktop plus native physical-panel orientations | Needs live provider picker and command transport beyond fixture assets | -| iOS / UIKit | Active native screenshot target | SSH capture stages selected fixture JSON, EveCanvas renders it, and emits a PNG from `/var/mobile/Library/EveCanvas/latest-screenshot.png`; `embedded-surface` is part of the required fixture matrix | Needs real scene composition for `vn.stage`, Repixelizer token fidelity, and responsive/simulator capture | -| Android / Kotlin device edge | Active lightweight renderer | Native APK consumes CultMesh dashboard/sensor documents and preserves `surface.slot` / `embeddedDocuments` identity in the dashboard renderer | Needs automated native dashboard capture | +| iOS / UIKit | Active native screenshot target | SSH capture stages selected fixture JSON, EveCanvas renders it, and emits a PNG from `/var/mobile/Library/EveCanvas/latest-screenshot.png`; `embedded-surface` is part of the required fixture matrix | Plugin projection is explicitly unsupported until EveIOS owns adapters; still needs provider picker and command transport | +| Android / Kotlin device edge | Active lightweight renderer | Native APK consumes CultMesh dashboard/sensor documents and preserves `surface.slot` / `embeddedDocuments` identity in the dashboard renderer | Plugin projection is explicitly unsupported; full graphical parity belongs to Flutter unless EveAndroid grows adapters | | Rust / CultMesh | Document-sync contract runtime | CultLib replicates the `gamecult.eve.surface.v1` embedded slot contract through typed document sync | Not a pixel renderer | | Fensalir Direct2D | External adapter spike, not active parity runtime | Fensalir has `src/Aquarium.EveSurface/EveSurfaceRuntime.cs`, reads an Eve broker, and lowers into `AquariumUiDocument` / `DirectWriteOverlay` | Needs recorded `gamecult.eve.surface.v1` fixture replay, command emission through the advertised boundary, DirectWrite/Direct2D token lowering, frame capture, and a clear reason to stay separate from Flutter for desktop UI | diff --git a/tools/parity/parity-manifest.json b/tools/parity/parity-manifest.json index 22c21e2..ebe9a61 100644 --- a/tools/parity/parity-manifest.json +++ b/tools/parity/parity-manifest.json @@ -667,6 +667,20 @@ "requiredFixtures": ["embedded-surface"], "pluginFixtures": ["sai-vn"], "supportedFeatures": ["embeddedDocuments"], + "unsupportedPlugins": [ + { + "pluginId": "sai.vn", + "reason": "UIKit smoke proves generic embedded document lowering and capture only; Sai VN projection belongs to EveFlutter/EveUnity or a future EveIOS projection adapter." + }, + { + "pluginId": "norn.graph", + "reason": "UIKit smoke preserves embed.norn as generic Eve structure; Norn graph projection is not implemented in this runtime." + }, + { + "pluginId": "tex.math", + "reason": "UIKit smoke preserves embed.tex as generic Eve structure; TeX projection is not implemented in this runtime." + } + ], "expectedPaths": ["Sources/EVEViewController.mm", "scripts/capture-eve-screenshot.ps1"], "expectedSourceSymbols": [ { @@ -741,6 +755,20 @@ "requiredFixtures": ["embedded-surface"], "pluginFixtures": ["sai-vn"], "supportedFeatures": ["cultmesh-dashboard-documents", "sensor-uplink", "embeddedDocuments"], + "unsupportedPlugins": [ + { + "pluginId": "sai.vn", + "reason": "Kotlin device edge is a lightweight CultMesh/sensor dashboard proof; Sai VN projection belongs to Flutter, Unity, or a future Android projection adapter." + }, + { + "pluginId": "norn.graph", + "reason": "Kotlin device edge preserves embed.norn as generic Eve structure; Norn graph projection is not implemented in this runtime." + }, + { + "pluginId": "tex.math", + "reason": "Kotlin device edge preserves embed.tex as generic Eve structure; TeX projection is not implemented in this runtime." + } + ], "expectedPaths": ["android/app/src/main/java/org/gamecult/eve/MainActivity.kt", "scripts/build-android.ps1"], "expectedSourceSymbols": [ {