0.3.0-alpha.2 Session 与恢复迁移
影响范围
本源码候选新增 RunResult.operation,并把 operation 快照写入 pause/finish RunState。CLI 的 --json-events 最终 run_result 同步增加 operation 字段。现有字段和退出码不删除。
Session 迁移
旧版直接存放在 session.dir/<id>.jsonl 的 schema v3 文件会在首次打开时迁移:
- 校验文件和会话 id;
- 创建
<id>.jsonl.v3.backup原文备份; - 原子写入版本化目标并重新打开校验;
- 最后把原公开路径切换为目标文件的稳定链接。
迁移支持消息、模型/思考/工具集变更、压缩、分支摘要、自定义数据、标签、名称和主 lane 移动。无法无损表达的条目会返回 session_migration_unsupported,原公开文件保持不变。
回滚
- 停止所有使用该 Session 的进程。
- 保留版本化目标和 RunState 作为审计证据。
- 验证
.v3.backup与预期摘要一致。 - 使用备份恢复旧文件名,再切回
0.2.0-rc.1。
不要在 writer 存活时删除 .open.lock 或 RunState .lock。无法确认外部副作用是否完成时,保持暂停并由业务负责人核验。