From 6f591e6ce31c827846789ec068df38bde2b96511 Mon Sep 17 00:00:00 2001 From: ssdfasd <2156608475@qq.com> Date: Sun, 5 Apr 2026 06:03:00 +0800 Subject: [PATCH] Tighten XCUI schema metadata validation --- docs/plan/XCUI_Phase_Status_2026-04-05.md | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/docs/plan/XCUI_Phase_Status_2026-04-05.md b/docs/plan/XCUI_Phase_Status_2026-04-05.md index f97a4c26..2060ab30 100644 --- a/docs/plan/XCUI_Phase_Status_2026-04-05.md +++ b/docs/plan/XCUI_Phase_Status_2026-04-05.md @@ -11,6 +11,7 @@ Old `editor` replacement is explicitly out of scope for this phase. - Phase 2 common/runtime batch committed and pushed as `ade5be3` (`Add XCUI runtime screen layer and demo textarea`). - Phase 3 has now produced a stable mixed batch across common/runtime/editor: - schema document definition data is now retained on `UIDocumentModel` and round-trips through the UI artifact path + - schema self-definition validation is now stricter around enum/document-only metadata combinations - engine runtime coverage was tightened again around `UISystem` and concrete document-host rendering - `LayoutLab` continues as the editor widget proving ground for tree/list/property-section style controls - the demo sandbox and editor bridge APIs were tightened again without touching the old editor replacement scope @@ -31,7 +32,7 @@ Old `editor` replacement is explicitly out of scope for this phase. Current gap: -- Minimal schema self-definition support is landed, but schema-driven validation for `.xcui` / `.xctheme` instances is still not implemented. +- Minimal schema self-definition support is landed, including consistency checks for enum/document-only schema metadata, but schema-driven validation for `.xcui` / `.xctheme` instances is still not implemented. - Shared widget/runtime instantiation is still thin and mostly editor-side. - Common widget primitives are still incomplete: multiline text editing, tree/list virtualization, property-grid composition, and native image/source-rect level APIs. @@ -128,11 +129,8 @@ Current gap: ## Next Phase -1. Expand schema rules just one level further inside `UIDocumentCompiler.cpp`: - - `allowedValues` only for `Enum` - - `documentKind` / `restrictDocumentKind` only for `Document` - - `restrictDocumentKind=true` requires explicit `documentKind` -2. Expand runtime/game-layer ownership from the current document host + layered `UISystem` into reusable menu/HUD stack patterns and engine runtime integration. -3. Promote the current editor-facing widget prototypes out of authored `LayoutLab` content and into reusable XCUI widget/runtime modules, then continue with toolbar/menu and more native shell-owned chrome. -4. Start the window-level compositor split in `new_editor` so the editor shell can run through `ImGuiHostCompositor` first and then grow a native XCUI compositor path on the same seam. +1. Expand runtime/game-layer ownership from the current document host + layered `UISystem` into reusable menu/HUD stack patterns and engine runtime integration. +2. Promote the current editor-facing widget prototypes out of authored `LayoutLab` content and into reusable XCUI widget/runtime modules, then continue with toolbar/menu and more native shell-owned chrome. +3. Start the window-level compositor split in `new_editor` so the editor shell can run through `ImGuiHostCompositor` first and then grow a native XCUI compositor path on the same seam. +4. Reduce remaining ImGui leakage in hosted preview surfaces and panel contracts after the compositor seam is in place. 5. Continue phased validation, commit, push, and plan refresh after each stable batch.