Skip to content

Workspace zh

pawaca edited this page Aug 30, 2026 · 1 revision

工作区

上游工作区目录管理系统在 Edge 中的适配。

上游参考:工作区

上游提供了什么

WorkspaceRegistryctx.workspaceRegistry)将稳定的 UUID 与工作目录关联,每个工作区携带显示标题和有序的 session 账本。操作包括创建、重命名、删除、排序、关联/分离 session 和归档 session。状态通过 storageDomain 持久化。

Edge 改了什么

直接复用 WorkspaceRegistry

原封安装。所有工作区逻辑——身份、成员关系、排序、session 账本、归档——都是上游代码。

传输桥 CRUD 广播

instance.ts 中每个工作区变更操作在完成后手动广播 host/workspace-changedhost/workspace-removed WebSocket 帧。上游通过进程内的 Connection 插件完成此操作;Edge 用显式的 broadcast() 调用替代传输。

传输桥 默认工作区初始化

首次 DO 激活时(无已有工作区状态),Edge 在 /workspace 创建默认工作区。此路径与 Computer VFS 文件存储根目录一致。

Edge 没有改什么

  • 工作区身份(branded UUID)、路径规范化、唯一性规则
  • Session 成员关系和关联逻辑
  • 排序语义(insertBefore
  • 归档 session 集合管理
  • 持久化格式(storageDomain 记录)

性能特征

工作区列表读取

工作区状态存在 storageDomain(DO KV 后端)中。注册表在启动后将完整列表缓存在内存中。列表读取是 O(1) 的内存缓存读取。变更操作是单键 KV 写入。

CRUD 广播开销

每个工作区变更产生一个 WebSocket 帧广播。由于工作区操作不频繁(用户发起),开销可忽略。上游通过不同传输广播相同帧。

架构总结

组件 分类 Edge 代码
WorkspaceRegistry 复用 一行 ctx.plugin() 调用
CRUD 广播 桥接 每次变更的 broadcast()
默认工作区 桥接 首次启动时创建 /workspace

关键观察:WorkspaceRegistry 完全是上游代码。Edge 只加了上游 Connection 插件会提供的 WebSocket 广播,以及为 VFS 根目录创建默认工作区。

English

中文

Clone this wiki locally