06.3 远端会话、Bridge 与同步能力
关注源码
src/remote/RemoteSessionManager.tssrc/bridge/bridgeMain.tssrc/cli/transports/*src/server/*src/services/policyLimits/*src/services/remoteManagedSettings/*src/services/settingsSync/*
两种远端能力
1. Remote Session
RemoteSessionManager.ts 主要处理:
- WebSocket 订阅远端会话事件
- HTTP 发送用户消息
- CCR 发起的 permission request/response
- reconnect / disconnect 状态回调
它把远端 agent 会话投影成本地可消费的 message + permission stream。
2. Bridge / CCR
bridgeMain.ts 负责桥接运行时本身:
- 环境注册
- session spawn
- work item heartbeat
- backoff / reconnect / give-up
- session worktree 生命周期
- remote control 会话循环
可以把它理解成“把本地 CLI 进程变成可被远端控制的工作节点”。
cli/transports 和 server 的位置
cli/transports/*负责不同传输协议的结构化 I/O。server/*负责 direct connect / server-side session 创建。
这两层让“远端交互”不绑定某一个协议实现。
平台控制项为什么单独服务化
下面这些能力没有散落在入口或 UI 里,而是独立成服务:
policyLimitsremoteManagedSettingssettingsSyncteamMemorySync
这样做的价值是:
- 平台控制和产品交互解耦
- 组织级策略不会污染 query/runtime 主代码
- 同步与安全检查可独立演化
设计上的关键点
1. 远端运行与本地运行共享消息/任务心智模型
即使执行位置不同,最终仍会被转译成:
- message stream
- permission flow
- task state
2. bridge 是独立运行时,不是简单 WebSocket client
它不仅收发消息,还负责 session 管理、工作分配、失败恢复与子进程生命周期。
3. 平台策略被服务化
策略限制、托管设置、同步系统都通过服务模块进入启动和运行时,而不是 scattered if/else。