- Status: done
- Goal: Make everyday MoUI development faster and more diagnosable through a project-local dev loop, a usable Inspector, measurable performance budgets, and data-view primitives that scale beyond fixed-height demos.
- Non-goals: V1 does not claim in-process state-preserving hot reload, device-specific log streaming for every platform, or production readiness for experimental renderers. Those require matching host evidence and follow-up design work.
-
moui devcan run a one-shot build and a watch/restart loop for generated projects; Web projects expose refresh and a readable compile-error page. -
moui_devtoolsexposes structured Inspector sections and an overlay that can render them without reducing the existing snapshot APIs. - Performance tooling records build/layout/paint/present samples and checks percentile budgets from a checked-in baseline format.
- Data views provide variable-height virtualization with stable anchors and grid-oriented selection/editing/semantics primitives while preserving current fixed-height APIs.
- Each implementation slice is validated and committed before the next slice begins.
| Date | Decision |
|---|---|
| 2026-08-22 | Use a Node runner for long-lived watch/restart behavior; keep MoonBit CLI parsing and project generation thin. |
| 2026-08-22 | Treat state serialization as an optional file-based hook, not in-process hot reload. |
| 2026-08-22 | Preserve existing public APIs and add opt-in Inspector/performance/data-view APIs. |
| Date | Note |
|---|---|
| 2026-08-23 | moui dev CLI contract, generated project entrypoint, Node watch/restart runner, Web refresh/error overlay, and optional state-file hook implemented. |
| 2026-08-23 | Structured Inspector reports now expose View/Layout/Render/Semantics nodes, constraints, paint bounds, cache counters, event hit paths, effect/subscription lifecycle, JSON output, and a multi-line overlay. |
| 2026-08-23 | Runtime phase profiling, five native Skia workloads, percentile/resource guardrails, a MoonBit validator, PR catalog gates, and CI report upload implemented. |
| 2026-08-23 | Variable-height keyed list metrics, stable anchors, frozen grid viewport reuse, keyboard range selection, controlled cell editing, incremental keyed data, and committed grid/row/cell semantics implemented without changing fixed-height list APIs. |
| 2026-08-23 | Completed in four implementation commits: dce840305, 75324465f, 692696e1e, and 191439fce. |