edit | blame | history | raw

2026-06-24 Cate架构分析

用户目标

分析开源项目 0-AI-UG/cate 的技术结构,重点解释它如何把浏览器、终端等内在结构不同的应用放在同一张画布上展现,并输出为一份带详细结构图的项目文档,为 Mindraw 后续增强画布元素能力提供参考。

已完成事项

  • 查阅 Mindraw 项目索引和研发前置讨论规则,确认本轮只做架构分析和文档沉淀,不修改运行代码。
  • 通过 GitHub API 和 raw 源码读取 Cate 关键文件,分析基线固定为 main 分支 commit 538db77b1c8734fe6d9af45213dd48417625c49d,版本 1.3.2
  • 分析 Cate 的 PanelStateCanvasNodeStateDockLayoutNodePanel registryCanvasPanelCanvasNodeTerminalPanelBrowserPanel、终端 IPC 和浏览器 session/proxy 结构。
  • 新增架构分析文档,并登记到 INDEX.md

关键决策

  • 文档放在 02-P/architecture/cate-canvas-heterogeneous-app-analysis.md,因为它属于后续 Mindraw 架构判断和技术路径参考。
  • 结论采用“画布几何与应用运行时分离”的架构原则:画布承载统一容器,容器承载 panel,panel 自己管理运行时。
  • 对 Mindraw 的建议是先做可控 HTML app 元素和 InteractiveElementHost,不直接优先做完整浏览器元素;终端元素必须分离画布元素 id 与运行时 session id。

文件变更

  • 新增:02-P/architecture/cate-canvas-heterogeneous-app-analysis.md
  • 修改:INDEX.md
  • 新增:.codex-sessionhistory/2026-06-24-Cate架构分析.md

未决问题

  • 未对 Tauri 内嵌真实浏览器能力做技术验证,文档中将其列为后续需要单独验证的技术点。
  • 未进入 Mindraw 代码实现设计,本轮仅完成外部项目分析和迁移建议。

后续建议

  • 若进入实现阶段,先补一份 Mindraw InteractiveElementHost 方案设计,覆盖数据模型、事件仲裁、预览/激活状态机、HTML MVP 和终端 MVP。
  • 对 Tauri 侧 PTY 管理和 iframe/html sandbox 能力分别做 spike,再决定是否推进完整浏览器元素。