From 0462cacadc2ef52e091529d61b97ed67a33c3df5 Mon Sep 17 00:00:00 2001 From: Meta Vens Date: Thu, 9 Jul 2026 12:32:05 +0100 Subject: [PATCH] Clarify nested plugin projection authority --- docs/parity-testing-harness.md | 13 ++++++------ docs/plugin-architecture.md | 10 +++++++++- docs/repo-strategy.md | 6 ++++-- .../eve-runtime-capability.json | 2 +- .../eve-electron/eve-runtime-capability.json | 6 +++--- .../eve-tui/eve-runtime-capability.json | 6 +++--- .../eve-runtime-capability.json | 6 +++--- tools/parity/parity-manifest.json | 20 +++++++++---------- 8 files changed, 40 insertions(+), 29 deletions(-) diff --git a/docs/parity-testing-harness.md b/docs/parity-testing-harness.md index 1c6cc31..b0b49fa 100644 --- a/docs/parity-testing-harness.md +++ b/docs/parity-testing-harness.md @@ -149,10 +149,10 @@ this plugin yet" from "plugin semantics belong in Eve core." Consumer smokes can assert them with `--expect-runtime-plugin-gap `. The same claims are exported as `runtimePluginProjectionCoverage[]`, including positive `supported` projection adapters and declared `unsupported` gaps. This -lets runtime and plugin owners consume one ledger for "Unity UI Toolkit supports -Sai/Norn projection" and "Unity scene/Electron do not have generic plugin -projection yet" instead of walking nested runtime records. Consumer smokes can -assert entries with +lets runtime and plugin owners consume one ledger for "Unity UI Toolkit has +projection adapters for Sai/Norn sidecar-advertised output" and "Unity +scene/Electron do not have generic plugin projection yet" instead of walking +nested runtime records. Consumer smokes can assert entries with `--expect-runtime-plugin-projection `. Provider surface plugin requirements are also joined with runtime projection support as `providerRuntimePluginProjectionCoverage[]`. These records answer @@ -186,8 +186,9 @@ id, plugin id, plugin owner, plugin status, availability, required capabilities, optional capabilities, and missing capabilities so provider and plugin owners can consume requirement coverage without reconstructing the provider/plugin join. `availability: optional-nested` means the parent surface -can host that independent plugin when available; it is not a parent-plugin -dependency. Consumer smokes can assert them with +can compose that independent plugin when available; it is not a parent-plugin +dependency and it does not move nested semantics into the parent plugin. +Consumer smokes can assert them with `--expect-provider-plugin-requirement `. Plugin-owner smokes should use the optional availability field when proving that Sai's required VN plugin is distinct from optional nested Norn or TeX surfaces. diff --git a/docs/plugin-architecture.md b/docs/plugin-architecture.md index 9d4b1ca..3b72062 100644 --- a/docs/plugin-architecture.md +++ b/docs/plugin-architecture.md @@ -452,6 +452,13 @@ scene, but ownership stays with their plugins. Each plugin publishes a renderer-independent sidecar ABI; runtimes only declare whether they can project that plugin's advertised capabilities. +Runtime projection support is not plugin hosting. A Unity, Electron, Flutter, +TUI, or web client may provide an adapter for sidecar-advertised Norn or TeX +output, but the sidecar daemon and plugin ABI remain runtime independent. If a +Sai surface deploys with nested Norn or TeX, Sai composes the slots and keeps VN +stage authority; Norn and TeX still publish, validate, lower, and receive +commands through their own plugin contracts. + Norn plugin responsibilities: - define `embed.norn` semantics; @@ -572,7 +579,8 @@ Renderer clients own projection: - Unity UI Toolkit may lower the same surface as a native 2D UI document. - Unity full-scene renderer may place dialogue in world space or cinematic scene space. -- Godot may lower the same plugin semantics into Godot controls or scene nodes. +- Godot may lower the same plugin-advertised surface into Godot controls or + scene nodes. The shared command path: diff --git a/docs/repo-strategy.md b/docs/repo-strategy.md index 00e5081..403055f 100644 --- a/docs/repo-strategy.md +++ b/docs/repo-strategy.md @@ -38,8 +38,10 @@ Anything else is guilty until it can explain why it protects a core invariant. - `Sai`: owner for the VN/Ink plugin once `sai.vn` graduates. - `Norn`: owner for graph plugin semantics once `norn.graph` graduates. - `EveUnity`, `EveGodot`, `EveFlutter`, `EveElectron`, and similar runtime - repos: native projection, platform build glue, plugin projection adapters, captures, and - runtime tests. + repos: native projection, platform build glue, plugin projection adapters, + captures, and runtime tests. Runtime plugin projection adapters lower + sidecar-advertised output; they do not host Sai, Norn, TeX, or any other + plugin's semantic authority. - `EveConformance`: fixture corpus, parity runner, capability matrix, screenshot/report artifacts, plugin packs, and CI orchestration once the harness stops thrashing. diff --git a/packages/org.gamecult.eve.unity-uitoolkit/eve-runtime-capability.json b/packages/org.gamecult.eve.unity-uitoolkit/eve-runtime-capability.json index cca7310..82cd14b 100644 --- a/packages/org.gamecult.eve.unity-uitoolkit/eve-runtime-capability.json +++ b/packages/org.gamecult.eve.unity-uitoolkit/eve-runtime-capability.json @@ -38,7 +38,7 @@ "unsupportedPlugins": [ { "pluginId": "tex.math", - "reason": "Unity UI Toolkit currently preserves embed.tex as generic Eve structure; no TeX projection adapter exists in this runtime." + "reason": "Unity UI Toolkit currently preserves embed.tex as generic Eve structure; no adapter exists for the TeX sidecar-advertised projection in this runtime." } ], "commandTransport": { diff --git a/runtimes/incubating/eve-electron/eve-runtime-capability.json b/runtimes/incubating/eve-electron/eve-runtime-capability.json index d9b8928..de58ea4 100644 --- a/runtimes/incubating/eve-electron/eve-runtime-capability.json +++ b/runtimes/incubating/eve-electron/eve-runtime-capability.json @@ -22,15 +22,15 @@ "unsupportedPlugins": [ { "pluginId": "sai.vn", - "reason": "Electron provider-shell skeleton exists, but no Sai projection adapter exists in this runtime." + "reason": "Electron provider-shell skeleton exists, but no adapter exists for Sai sidecar-advertised VN projection in this runtime." }, { "pluginId": "norn.graph", - "reason": "Electron provider-shell skeleton exists, but no Norn graph projection adapter exists in this runtime." + "reason": "Electron provider-shell skeleton exists, but no adapter exists for Norn sidecar-advertised graph projection in this runtime." }, { "pluginId": "tex.math", - "reason": "Electron provider-shell skeleton exists, but no TeX projection adapter exists in this runtime." + "reason": "Electron provider-shell skeleton exists, but no adapter exists for TeX sidecar-advertised math projection in this runtime." } ], "worldSurfaceLowering": [ diff --git a/runtimes/incubating/eve-tui/eve-runtime-capability.json b/runtimes/incubating/eve-tui/eve-runtime-capability.json index e45a410..5948988 100644 --- a/runtimes/incubating/eve-tui/eve-runtime-capability.json +++ b/runtimes/incubating/eve-tui/eve-runtime-capability.json @@ -23,15 +23,15 @@ "unsupportedPlugins": [ { "pluginId": "sai.vn", - "reason": "TUI provider-shell skeleton exists, but no Sai terminal projection adapter exists in this runtime." + "reason": "TUI provider-shell skeleton exists, but no terminal adapter exists for Sai sidecar-advertised VN projection in this runtime." }, { "pluginId": "norn.graph", - "reason": "TUI provider-shell skeleton exists, but no Norn graph terminal fallback exists in this runtime." + "reason": "TUI provider-shell skeleton exists, but no terminal fallback exists for Norn sidecar-advertised graph projection in this runtime." }, { "pluginId": "tex.math", - "reason": "TUI provider-shell skeleton exists, but no TeX terminal fallback exists in this runtime." + "reason": "TUI provider-shell skeleton exists, but no terminal fallback exists for TeX sidecar-advertised math projection in this runtime." } ], "worldSurfaceLowering": [ diff --git a/runtimes/incubating/eve-unity-scene/eve-runtime-capability.json b/runtimes/incubating/eve-unity-scene/eve-runtime-capability.json index 02a81f4..8adcb80 100644 --- a/runtimes/incubating/eve-unity-scene/eve-runtime-capability.json +++ b/runtimes/incubating/eve-unity-scene/eve-runtime-capability.json @@ -22,15 +22,15 @@ "unsupportedPlugins": [ { "pluginId": "sai.vn", - "reason": "Unity scene graph projection exists, but no Sai VN scene projection adapter for sidecar-advertised capabilities exists in this runtime." + "reason": "Unity scene graph projection exists, but no scene adapter exists for Sai sidecar-advertised VN projection in this runtime." }, { "pluginId": "norn.graph", - "reason": "Unity scene graph projection exists, but no Norn graph scene-space or UI overlay adapter exists in this runtime." + "reason": "Unity scene graph projection exists, but no scene-space or UI overlay adapter exists for Norn sidecar-advertised graph projection in this runtime." }, { "pluginId": "tex.math", - "reason": "Unity scene graph projection exists, but no TeX scene-space or UI overlay adapter exists in this runtime." + "reason": "Unity scene graph projection exists, but no scene-space or UI overlay adapter exists for TeX sidecar-advertised math projection in this runtime." } ], "worldSurfaceLowering": [ diff --git a/tools/parity/parity-manifest.json b/tools/parity/parity-manifest.json index df6ad0c..9d81e53 100644 --- a/tools/parity/parity-manifest.json +++ b/tools/parity/parity-manifest.json @@ -741,15 +741,15 @@ "unsupportedPlugins": [ { "pluginId": "sai.vn", - "reason": "Electron provider-shell skeleton exists, but no Sai projection adapter exists in this runtime." + "reason": "Electron provider-shell skeleton exists, but no adapter exists for Sai sidecar-advertised VN projection in this runtime." }, { "pluginId": "norn.graph", - "reason": "Electron provider-shell skeleton exists, but no Norn graph projection adapter exists in this runtime." + "reason": "Electron provider-shell skeleton exists, but no adapter exists for Norn sidecar-advertised graph projection in this runtime." }, { "pluginId": "tex.math", - "reason": "Electron provider-shell skeleton exists, but no TeX projection adapter exists in this runtime." + "reason": "Electron provider-shell skeleton exists, but no adapter exists for TeX sidecar-advertised math projection in this runtime." } ], "worldSurfaceLowering": [ @@ -832,15 +832,15 @@ "unsupportedPlugins": [ { "pluginId": "sai.vn", - "reason": "TUI provider-shell skeleton exists, but no Sai terminal projection adapter exists in this runtime." + "reason": "TUI provider-shell skeleton exists, but no terminal adapter exists for Sai sidecar-advertised VN projection in this runtime." }, { "pluginId": "norn.graph", - "reason": "TUI provider-shell skeleton exists, but no Norn graph terminal fallback exists in this runtime." + "reason": "TUI provider-shell skeleton exists, but no terminal fallback exists for Norn sidecar-advertised graph projection in this runtime." }, { "pluginId": "tex.math", - "reason": "TUI provider-shell skeleton exists, but no TeX terminal fallback exists in this runtime." + "reason": "TUI provider-shell skeleton exists, but no terminal fallback exists for TeX sidecar-advertised math projection in this runtime." } ], "worldSurfaceLowering": [ @@ -925,15 +925,15 @@ "unsupportedPlugins": [ { "pluginId": "sai.vn", - "reason": "Unity scene graph projection exists, but no Sai VN scene projection adapter for sidecar-advertised capabilities exists in this runtime." + "reason": "Unity scene graph projection exists, but no scene adapter exists for Sai sidecar-advertised VN projection in this runtime." }, { "pluginId": "norn.graph", - "reason": "Unity scene graph projection exists, but no Norn graph scene-space or UI overlay adapter exists in this runtime." + "reason": "Unity scene graph projection exists, but no scene-space or UI overlay adapter exists for Norn sidecar-advertised graph projection in this runtime." }, { "pluginId": "tex.math", - "reason": "Unity scene graph projection exists, but no TeX scene-space or UI overlay adapter exists in this runtime." + "reason": "Unity scene graph projection exists, but no scene-space or UI overlay adapter exists for TeX sidecar-advertised math projection in this runtime." } ], "worldSurfaceLowering": [ @@ -1401,7 +1401,7 @@ "unsupportedPlugins": [ { "pluginId": "tex.math", - "reason": "Unity UI Toolkit currently preserves embed.tex as generic Eve structure; no TeX projection adapter exists in this runtime." + "reason": "Unity UI Toolkit currently preserves embed.tex as generic Eve structure; no adapter exists for the TeX sidecar-advertised projection in this runtime." } ], "worldSurfaceLowering": [