路线图
UltimateUI 的路线图以“可验证的 GUI 框架闭环”为优先级:先保证 WebKitGTK 上的 mount、update、event 和 wire 协议稳定,再扩展声明式 UI、样式系统和跨平台宿主。
当前状态
已完成的 alpha 基础:
- WebKitGTK 6.0 + JavaScriptCoreGTK 6.0 render host。
App.Create(...)、Mount、MountAsync、Update、UpdateAsync。- typed element catalog、style catalog、event catalog 和 source generators。
- 二进制 opcode frame、schema version handshake 和 TypeScript shim decoder。
- DOM mount/update 路径和
window.webkit.messageHandlers.uui事件回传。 NullRenderHost用于离线测试和 opcode golden frame。- Docusaurus 中英文文档站和
/spec/*.schema.json静态 schema。
Alpha: Runtime Hardening
目标:把当前 WebKitGTK 闭环变成可持续迭代的最小运行时。
- 扩展 DOM update transaction:child insert/move/remove、attribute diff、style diff。
- 完成 listener lifecycle:重复注册、移除、dispose 和 renderer 侧 listener 表清理。
- 增加错误传播:shim decode error、schema mismatch、JS evaluation failure 的统一诊断。
- 加强 WebKitGTK 生命周期:窗口关闭、main loop、取消、异常和资源释放路径。
- 补充 integration tests:文本、属性、样式、子节点、事件 payload、窗口关闭。
- 建立 wire compatibility 测试:schema hash、opcodes、shim bundle 与 native constants drift 检查。
Alpha: Declarative UI Layer
目标:在 imperative update 之上提供更自然的 C# UI 编程模型。
- 定义 component/render contract。
- 接入
NodeArena上的 keyed reconciliation。 - 使用 LIS reconciler 完成 child reorder 的最小 opcode 输出。
- 支持 state invalidation 和 batched updates。
- 明确 UI mutation threading model,并把 analyzer 规则落到可执行测试。
Beta: Styling And Controls
目标:让实际应用可以不用手写底层 style opcode。
- 扩展
spec/styles.json的 CSS 属性覆盖面。 - 增加 typed style value:keyword、color、length、string、array。
- 支持 class/style 的组合策略和复用 style fragments。
- 扩展元素目录:form、list、table、media、dialog、semantic layout。
- 扩展事件目录:focus、blur、change、submit、pointer、keyboard composition。
- 增加基础控件样例:button、input、form、list、table、modal。
Beta: Tooling And Documentation
目标:让贡献和应用接入成本降低。
- 完整 API reference 和 cookbook。
- Wire protocol 版本策略和迁移说明。
- 文档站加入架构图、frame 示例和 renderer event 示例。
- 增加
dotnet new模板或 sample scaffolding。 - 建立 CI:build、test、format、shim drift、docs build、schema validation。
- 发布 NuGet package metadata 和 README badges。
Release Candidate
目标:锁定 v1 公开 API。
- 冻结核心 namespace、public API 和 wire schema policy。
- 性能基准:mount throughput、update latency、event dispatch overhead。
- 内存与资源审计:handle lifetime、listener table、WebKit native handles。
- 错误消息和 diagnostics 稳定化。
- 打包 Linux x64 发行说明和依赖探测说明。
- 完成升级指南和 breaking-change policy。
v1
目标:Linux WebKitGTK 上的稳定可用版本。
- 稳定 WebKitGTK render host。
- 稳定 typed DOM + update + event 模型。
- 稳定 source-generator driven spec pipeline。
- NuGet 发布和文档站上线。
- 明确非目标:macOS、Windows 和 native WebProcessExtension fast path 不阻塞 v1。
Future Seats
v1 后再评估:
- macOS
WKWebViewrender host。 - Windows
WebView2render host。 - Native WebProcessExtension fast path。
- Accessibility tree helpers 和 focus management。
- DevTools/inspector integration。
- Hot reload 和 visual diagnostics。
Prioritization Rules
- 先稳定 runtime contract,再扩展 API surface。
- 先保证 WebKitGTK integration tests,再做跨平台抽象。
- 每个 spec 变化必须带 schema、generator、shim 和测试更新。
- 每个新控件必须有 mount、update 和 event 路径覆盖。
- 文档与代码同级维护;公开行为没有文档就不视为完成。