托管代理不只是一个终端
一个托管代理组合了三种 identity:
- provider conversation
- Dure pane 与 agent record
- Git worktree 与 branch
Hmux 持有 provider process 和 PTY,Dure 通过 versioned protocol 以客户端
身份连接。正是这个 process boundary,使关闭应用窗口不会终止托管的本地代理。
重新连接
Dure 重新连接时,host 会发送 canonical screen snapshot 以及之后的输出。
客户端不需要重放完整 terminal log 才能绘制当前画面。
带 generation fence 的 controller lease 决定哪个客户端可以输入。其他客户端
可以只读观察,而不会悄悄抢走当前 controller 的键盘控制权。
Worktree 所有权
每个 worktree 代理都有自己的工作目录和 branch。这样可以隔离 Git index
与文件修改,但不能隔离 port、process、credential 或 network 等操作系统资源。
Worktree 不是安全 sandbox。代理能够执行什么,仍由 provider 的批准设置和
当前用户账号的权限决定。
三种不同的恢复
托管 pane 与普通 pane
即使直接在普通 terminal 中运行 agent CLI,Dure 也会从真实 process tree 与
terminal 证据中自动识别 provider 及其活动。你可以像平时一样使用终端,无需先
添加或手动注册代理。
自动识别不等于托管转换。托管 provider session 可以通过添加代理流程启动,
也可以在已审查的 terminal 状态下使用显示的转换操作。由于转换必须保留准确的
provider conversation 与 pane identity,因此只会在安全边界执行。
在 SSH 项目中依赖同样的保证之前,请先阅读当前限制。