Skip to main content
Vibex 通过”权威运行时 + 类型化投影”让多个原生客户端保持一致。不要在客户端、Relay 或 UI 层创建第二份权威业务状态。

运行时关系

关键点是同一个 DesktopRuntime 内核有两种前端:apps/desktop 给它加一个 GPUI 窗口,apps/server 给它加一套守护进程生命周期。两者暴露完全相同的 Remote v2 网关。

主要 crate 与 app

数据流规则

事件带有权威序号和版本。客户端检测到 generation 或 cursor gap 时必须返回 resync_required,然后从权威运行时重新获取。文件写入还要遵循内容修订和 compare-and-swap(CAS)检查。 远程附件在建立流之前重新认证和授权。终端输入带工作区作用域、generation 检查和审计;不要保存原始终端字节。

项目与工作区模型

一个项目对应多个工作区。VibexWorktree 工作区不是”另一种模式”,而是同一项目下的另一个工作区。

持久化和恢复

SQLite 保存项目、工作区、会话、时间线、供应商配置、终端元数据和远程设备。 只存在于内存、重启即丢失: Agent 进程、终端会话内容、活动连接。数据库中的 running 只是上次观察到的状态,重启后必须重新探测,丢失的终端标记为 stale。

变更评审清单

  • 是否仍由权威运行时拥有唯一真相?
  • 新能力是否同时支持本地与配对运行时(经 BackendFacade),而不是只走本地路径?
  • 是否使用共享 DTO、错误和能力,而不是复制结构?
  • 是否为重连、序号间隙、撤销和恢复定义行为?
  • 是否脱敏日志、诊断资料和测试证据?

延伸阅读

  • docs/architecture/ui-boundary.md
  • docs/remote/protocol-v2.md
  • docs/platform/support-matrix.md
  • docs/operations/recovery-matrix.md