Skip to content

ADR 0092: Visual UI track (layout designer) — separate major program line in CIDE

Status: Accepted (direction)
Date: 2026-04-24

ADR Role
0022 visual UI dev surface (AXAML / Blazor) — WinForms-oriented reference, placement on MFD

Context

Visual designer / live preview for Avalonia (AXAML), Blazor, and (optionally) Razor is not “one sprint feature”: preview host, isolation, text sync, tree, property grid, eventually drag-and-drop. It needs its own planning horizon and explicit MVP slicing, or it competes with critical IDE path or gets lost without an owner.

Discussion (2026-04-24): record a track in ADR so backlog and talk are clear — this is CIDE Visual UI track (working name); UX and placement details stay in 0022.


Decision

  1. Accept direction of a separate major program line Visual UI in Cascade IDE: visual work with declarative user UI markup (primarily .NET stack in CIDE focus), with backlog and done criteria by phase aligned with 0022.

  1. Canonical product/UX ADR for this line — 0022 (attention model, MFD, no second TopLevel for preview, MVP / next / later phases, non-goals). 0092 answers “how to run it as a track”, not “how it looks in cockpit” — on conflict, 0022 wins for product rules.

  1. Stack order (priority plan, not dates):
  2. First wave (target): Avalonia / AXAML — closer to existing CIDE host, predictable preview contour.
  3. Second wave: Blazor — separate host (browser / WebView / isolate), harder design-time boundaries; same IDE-level user scenario per 0022 §4.
  4. Razor (MVC/Pages) and adjacent: not mandatory MVP of track; separate decision (spike / epic) — often HTML+templates, not visual control tree — otherwise blurs track boundary.

  1. Agent and contract link: track orthogonal to 0008 and 0052: as stable snapshots/commands for design surface appear (file open, preview mode, node selection) — MCP/CLI extensions added deliberately with same JSON parity requirement, without duplicating logic. Track not blocked on “all agent tools first.”

  1. Boundary with other tracks: do not put EICAS/HUD, “cloud inline”, and other contours listed in 0022 as non-goals for attention zone into this track; do not confuse Cockpit UI (CIDE instruments) with user application designer0066.

Consequences

Pros Cons / risks
Clear bucket: “in Visual UI track / outside track” Need discipline not to inflate track with “all UI in the world”
0022 stays single product-rules place; 0092 does not duplicate phase table Two ADRs — but less “process vs product” drift
Avalonia → Blazor → (opt.) Razor order lowers simultaneous stack explosion risk 0022 open questions (minimal v1 per tech, MFD tab, two-way sync) — still in 0022; track does not auto-close them

Open questions

  • Explicit backlog/label names (GitLab line / tags) — repo discretion; ADR fixes semantic name Visual UI / design surface with 0022.
  • SDK / plugins (0024): if designer ever moves to extension — separate ADR, not 0092.

Rejected alternatives

  • Treat designer as only part of Markdown preview or WebView ADR — rejected: different subject (author Markdown vs user AXAML/Blazor).
  • Extend 0022 with “how to run backlog” table — possible, but moved to 0092 so 0022 stays short product ADR.