第35章 Orca 会话恢复机制解析:工作区状态与 Agent 进程持久化
第35章:会话恢复
退出 Orca,重新打开,一切如旧——工作树、分屏、回滚缓冲区、聚焦标签页,分秒不差。
关闭 Orca 时,下次启动会完全重建工作区:所有打开的工作树、每个终端的分屏布局、各面板的回滚缓冲区、你之前聚焦的标签页。你不需要记哪些 agent 在哪个分支上运行——那是 Orca 该操心的事。
重启 Orca,会话——终端、分屏、回滚缓冲区、聚焦标签页——原样恢复。
恢复的内容
* 打开的工作树 —— 侧边栏中你打开的所有工作树。 * 标签页与分屏 —— 每个工作树的面板布局,包括嵌套分屏以及哪个标签页被聚焦。 * 运行中的 agent 进程 —— 你正在运行的 agent 在 Orca 退出后继续运行。后台 daemon 持有 PTY,因此关闭应用窗口不会杀掉 Claude Code、Codex 或其他 agent CLI。下次启动时,Orca 会热重连到同一组进程。 * 终端回滚缓冲区 —— 每个终端的缓冲区,包括 Orca 关闭期间产生的输出。 * 聚焦的工作树与标签页 —— Orca 打开时呈现你关闭时的视图。
不恢复的内容
Host 死机时 daemon 也会终止,因此任何导致整机宕机的事件——重启、OS 更新、内核 panic、强制断电——都会终止所有运行中的 agent。下次启动时,工作树、标签页、分屏和最后记录的回滚缓冲区会恢复,但 agent 进程本身已丢失。在任意标签页中重新运行 agent 即可继续。
Orca 关闭期间 daemon 崩溃,对其持有的会话产生同样效果,但布局和回滚缓冲区在下次启动时仍会恢复。
恢复何时发生
会话恢复在每次启动时运行。具体情况取决于 daemon 是否存活:
Daemon 存活 → agent 继续运行:
* Cmd-Q —— 常规退出方式。agent 在后台继续工作。 * 自动更新器重启 —— Orca 重启以安装更新;agent 不受影响。 * 应用崩溃 —— 如果 Orca 本身崩溃,daemon 保持会话存活,以便下次启动时热重连。
Daemon 终止 → agent 消失,布局仍恢复:
* Host 重启 —— 笔记本重启、OS 更新、内核 panic、强制断电。工作树、标签页、分屏和最后持久化的回滚缓冲区在下次启动时仍会恢复。
后续步骤
* Agent 与会话 —— 状态指示点以及 agent 会话的生命周期。 * 标签页、面板与分屏布局 —— 你将恢复的布局是如何构建的。