|
|
@@ -1460,3 +1460,29 @@ M0 完成了本地 Trace API、运行恢复、工具确认、文件账本、Side
|
|
|
**后续示例合同**:[`application-reference-contract.md`](./application-reference-contract.md)
|
|
|
|
|
|
---
|
|
|
+
|
|
|
+## Decision 27: Recursive revision 3 与 revision 2 只读退役
|
|
|
+
|
|
|
+**日期**:2026-07-17
|
|
|
+
|
|
|
+**状态**:M2 实施决策;对 Recursive revision 2 的后续写入行为取代早期兼容预期。
|
|
|
+
|
|
|
+### 背景
|
|
|
+
|
|
|
+TaskProgress 会改变 Recursive 任务的完成门禁、Validator 输入和回溯合同。如果直接扩展 revision 2,历史 Trace 在续跑时将静默获得创建时不存在的行为。
|
|
|
+
|
|
|
+### 决策
|
|
|
+
|
|
|
+- 新 Recursive 根 Trace 和全部本地子 Trace 统一使用 `agent_mode_revision=3`。
|
|
|
+- revision 3 强制使用显式版本的 TaskProtocol 和 TaskProgress。
|
|
|
+- 历史 Recursive revision 2 Trace 仅保留查看、事件读取和导出;`run/stop/rewind/approval/reflect/compact` 等写入操作统一返回 `recursive_revision_2_read_only`。
|
|
|
+- 不提供隐式或离线迁移,不删除历史 Trace。
|
|
|
+- Legacy 和非应用 revision 3 继续使用现有 Runner;M3 的 ApplicationRuntime 仍然只是装配层。
|
|
|
+
|
|
|
+### 后果
|
|
|
+
|
|
|
+- 恢复入口必须在任何 Trace 状态修改、LLM 或工具调用前执行版本门禁。
|
|
|
+- revision 2 的读取语义保持不变,但不再承担可执行协议的兼容成本。
|
|
|
+- TaskProgress 及其新完成门禁只存在于 revision 3。
|
|
|
+
|
|
|
+---
|