Tracking issue for completing the Server-Driven UI (SDUI) runtime — the original north star: every UI surface is described by a schema, rendered generically by SchemaRenderer, visually editable at runtime, and persisted via draft→publish.
✅ Done
- Rendering engine:
SchemaRenderer + component registry (~140 types, lazy-loaded)
- Record detail pages: schema-driven (default synthesis
buildDefaultPageSchema + author assignment + slotted overrides); legacy DetailView retained behind a kill-switch
- Dashboards & reports: schema-driven and visually editable + draft/publish
- Runtime metadata persistence seam (ADR-0034) for view/report/dashboard
- Master-detail vertical (atomic write
inlineEdit, read-side relatedList, server roll-ups) — the worked SDUI sample for the record surface
- Metadata-generation lint + eval rubric (
objectstack lint --score/--eval)
🔴 P0 — close the write-side loop
🟠 P1 — unify list & navigation under schema
🟡 P2 — remaining page types & configurability
Suggested sequencing
P0-#1541 → #1542 first (rendering + synthesis + persistence seam are already in place; this makes "edit a record page in the browser and publish" real and reuses the existing live e2e harness), then #1543 (forms), then P1, then P2.
Tracking issue for completing the Server-Driven UI (SDUI) runtime — the original north star: every UI surface is described by a schema, rendered generically by
SchemaRenderer, visually editable at runtime, and persisted via draft→publish.✅ Done
SchemaRenderer+ component registry (~140 types, lazy-loaded)buildDefaultPageSchema+ author assignment + slotted overrides); legacy DetailView retained behind a kill-switchinlineEdit, read-siderelatedList, server roll-ups) — the worked SDUI sample for the record surfaceobjectstack lint --score/--eval)🔴 P0 — close the write-side loop
🟠 P1 — unify list & navigation under schema
🟡 P2 — remaining page types & configurability
Suggested sequencing
P0-#1541 → #1542 first (rendering + synthesis + persistence seam are already in place; this makes "edit a record page in the browser and publish" real and reuses the existing live e2e harness), then #1543 (forms), then P1, then P2.