Repository navigation
Description
Verified on branch / awaiting merge
Production implementation: dd5979c613b0fe8ebd9f7026f25001ceee9f8cee. Delivered head: dbae93e8f211d45a69cdffdb6afa3a33a0af0fa5; the subsequent diff contains documentation/acceptance evidence only. Exact-head CI: Engine CI and NuGet dependency graph passed; all six checks on this exact head are successful. All applicable acceptance conditions for this issue are verified; unavailable physical/manual device checks are explicitly scoped, not reported passed.
Owner: Shared presentation and domain-owned styles. Implementation commits: 63d4f7dc, f7dce89c.
Evidence: complete report, exact-head delivery attachment, portable test-case/raw-measurement/requirement indexes linked by the report. Specific proof: Architecture dependencies/API; Visual: frame-consistent Zoom/DPI/control matrix; Matched original/current native UI and viewport readback.
Commands: official tests/Invoke-EditorUiAcceptance.ps1 Contracts/Workflows/Visual/Lifecycle/Products with SDK-selected independent outputs; complete source/entry preparation; formal InnoEngine.Build scripts --ide for the three companions; tests/Invoke-WikiChecks.ps1; controlled public performance fixtures where applicable. The report records original command owners, TRX/binlogs, negative tests, failures, skips, input hashes and device limits.
Profiles overlap; do not sum their pass counts into a distinct-test claim. Windows-only sharing fixtures and Unix-only filesystem fixtures are scoped to the executing host. Real native contexts/simulated display metrics and hidden product feature journeys are not a claim of physical display, OS IME or manual Mac testing. No BGCS/vendor/package/generated-binding modification, parallel Core system, test hook, IVT or private reflection was used.
Keep this issue Open. PR #26 includes an individual Fixes #30 and will close it only when the user merges to master. No automatic merge or premature master-resolution claim.
Original defect, ownership and accepted work
The following baseline observations describe the issue as opened. The verification above supersedes intermediate pending checkpoints; original failed/negative logs remain preserved. Acceptance checkboxes are checked only after the exact delivery-head verification completes.
Parent and original requirement
Parent: #27. Work item E03 from the approved Editor UI closure plan and its original implementation/acceptance requirements.
Baseline facts and risks at issue creation
Shared metrics still own Browser-specific pane, column, breadcrumb and icon policies. The original three-layer style design is only partially implemented.
Owner and dependency boundary
Inno.Editor.ImGui shared styles/controls, Inno.Editor.Assets.ImGui Browser layout and Shader presentation.
Dependencies: #28.
Implementation
- Keep base visual values and genuinely reusable component metrics in the adapter.
- Move Browser-specific presentation policy to Assets presentation and Shader-specific values to its owner.
- Unify empty/error/busy/disabled feedback; retain 2:3 labels, single scroll owners and frame-consistent DPI/Zoom.
- Delete replaced members and update source/plugin callers, exports, references and Wiki; no forwarding facade.
Acceptance
- Shared presentation has no domain reverse dependencies or asset/model lists.
- Scale changes apply once per frame without duplicate scaling.
- Narrow/long-label/read-only/error controls remain readable across the required scale matrix.
- Widget file organization and English public XML remain valid.
- Avoid unrelated formatting; remove only verified redundant aliases/references.
Failure and lifecycle constraints
Preserve diagnostics, cancellation, atomic rollback/publication, Missing recovery and generation retirement. Reuse Core Events, Identity, IO, Serialization and History. Do not modify BGCS/vendor/generated code or add global/implicit imports, compatibility paths, IVT or private reflection.
Evidence and closure
Commits, exact commands, logs/TRX/data and remaining limits will be added during implementation. Until all acceptance passes this issue remains open. After verification mark Verified on branch / awaiting merge; add Fixes #30 with this issue's actual number to PR #26 only when complete. Close on merge to master, not on branch implementation.
Activity
FLwolfy commentedon Oct 27, 2026
Deep ownership review found additional E03 work before closure: the common palette/metrics still own Hierarchy-only rename/drop values, Console severity/card/toggle styling, Settings field padding, and Scene Tag/Layer colors. These are confirmed source ownership leaks, even though dependency rules are currently green. The remaining domain policies will move to internal styles in their actual presentation owners. Truly reusable card/header/section metrics will retain their values under neutral component names, with all callers and API documentation updated and no forwarding aliases. The active build will finish before source mutation; focused native geometry and Console tests plus the full architecture/Wiki gate will rerun afterward.
FLwolfy commentedon Oct 27, 2026
A real same-frame scale defect is now reproduced: e03/frame-style-before.trx fails because SetZoom(1.25) immediately changes active metrics from 1.0 inside an already drawing native frame. Native style application occurs at the frame presentation entry, so later controls can observe a different scale than earlier controls. The fix will keep requested values separate from the active session frame values, commit once at frame preparation, and preserve immediate standalone/headless metrics behavior. It will not add a second event system or public testing hook. Owner retirement and the existing native scale matrix will rerun.
FLwolfy commentedon Oct 27, 2026
Focused post-fix evidence: e03/all-native-frame-contracts.trx has 72 passes, including every ImGui test, actual SDL preparation/draw/retirement callbacks, same-frame Zoom/Density deferral, a suspended foreign-context case, immediate standalone metrics, and weak retirement when metrics outlive their session. SourceDebug solution compilation is clean (source-frame-final.log/binlog). Domain styles now belong to their real presentation owners; common values retain the same numbers under neutral card/header/section names. EditorLayer caches its draw/preparation delegates instead of allocating new instance delegates each frame. Full product, visual/workflow/lifecycle replay and final Wiki/CI are still pending; issue stays Open.
FLwolfy commentedon Oct 28, 2026
Closure review found remaining duplicate facade aliases in the actual presentation sources, for example TransformInspectionDrawer uses both UiDrawing and Ui for Inno.Editor.ImGui.ImGui; GameLayersSetting and InspectorTargetHeader retain three aliases for the same type. These are confirmed readability gaps in the approved E03 scope. I will consolidate duplicate aliases using C# syntax nodes (without rewriting string IDs, comments, declarations, call order, or public signatures), review the exact diff, and rerun the owning SDK graph and UI contracts. This is source cleanup within the existing owners, not an additional facade or compatibility layer. The issue remains Open pending its full visual and dependency acceptance.