brief.md、目标 Specs、comet-state.yaml 和 verification.md 记录任务已经确认和完成的内容;.comet/runtime/native/ 保存当前设备上的执行过程,可以在需要时重建。
自动恢复机制
每次继续 Change 时,Native 都会对照仓库状态和本机执行记录:- 找到 Change 实际所在的分支或 worktree;
- 读取最近一次完整写入的
comet-state.yaml; - 检查正在运行的任务、测试或 Verifier 是否已经中断;
- 重建缺失或过期的本机执行记录;
- 根据现有证据继续当前阶段,或回到需要重新验证的位置。
会话中断恢复
关闭终端、Agent 会话结束或进程意外退出后,Native 会把仍在运行的本机任务标记为中断,再判断哪些步骤可以安全重试。
恢复造成的重新验证归入执行恢复,实现失败和连续无进展计数保持不变。实际启动新的 Verifier 时,Verifier 尝试次数会正常增加。
跨设备继续
换设备前,先同步以下内容:- 项目代码;
- Change 中的
brief.md、目标 Specs 和comet-state.yaml; - 已经生成的
verification.md; - 使用自定义产物目录时对应的
.comet/config.yaml。
工作区恢复
Native 会扫描 Git 已登记的 worktree,优先选择与 Change 分支绑定一致的工作目录。即使你从仓库主目录开始,Runtime 也能找到 Change 实际所在的位置,并让 Agent 在该目录继续。 当前分支、worktree 类型或项目根与 Change 记录不一致时,Runtime 会暂停写入并返回预期目录。原目录仍然存在时,Agent 会切换到正确位置;worktree 已移除但分支仍然有效时,Native 可以重建 worktree。 以下情况需要你确认工作区:- 原分支已重命名或被其他工作接管;
- 存在多个同样匹配的工作目录;
- 原目录和分支已经丢失;
- 同一份 Change 状态在两个位置出现不同版本。
Archive 事务恢复
Archive 会依次更新正式 Spec、最终状态和验证报告,再把 Change 移入归档目录。Runtime 使用事务记录每一步,因此进程在中途退出后,可以从已经完成的步骤继续。 再次继续同一个 Archive 时,Native 会检查事务和实际文件:- 事务与文件一致时,从下一步继续;
- Change 已归档、工作区收尾失败时,保留归档结果,并返回 Git 恢复动作;
- active 和 archive 目录同时存在时,保留两侧内容并等待诊断;
- 多个 Change 修改同一份 Spec 时,等待你确定归档顺序。
recoveryArgs 检查实际 Git 状态,再继续 merge、push 或 PR 流程。
验证报告恢复
verification.md 把 comet-state.yaml 里的验收结论整理成可读报告。报告缺失、写入中断或版本落后时,Native 会根据当前状态重新生成。
报告文件丢失,但状态和本机执行记录仍能证明验证已经通过时,恢复只重建报告。Archive 前的本机执行记录也丢失时,Native 会返回 Verify,重新取得完整验收证据。
这一区分可以保留已经证明的结果,同时确保 Archive 使用当前设备和当前代码上可信的证据。
需要用户处理的情况
Native 会在自动判断可能造成错误覆盖、重复副作用或错误归档时暂停。常见情况如下:await-user 表示下一步需要你的选择;blocked 表示当前状态缺少安全推进路径。Runtime 会同时返回原因、负责处理的一方和允许执行的动作。
状态查看与诊断
正常恢复由 Native 自动完成。你想查看当前记录或排查阻塞时,可以运行:show 和 status 展示正式产物、工作区、验收进度和下一步。doctor 检查迁移、事务、目录和状态一致性。doctor --repair 只用于诊断结果明确提供修复动作的情况。
恢复过程中,让 Runtime 管理 comet-state.yaml、本机执行记录、锁和事务。按照 continuation、recoveryArgs 或 doctor 返回的动作继续,可以保留已经确认的进度和故障现场。
继续阅读:任务推进与中断恢复、Native 安全边界、多 Change 并行与冲突控制 和 产物与状态。
