返回 DeepSeek-Reasonix
DSH_EXECUTION_MIGRATION.zh-CN.md
根目录 / docs / DSH_EXECUTION_MIGRATION.zh-CN.md
1 # Harness 风格执行机制迁移
2
3 本文定义从 `main-v2@986a6bc967` 改造后的现行行为,文件新鲜度和恢复语义参考 DeepSeek Harness `master@c291e7961a`。Reasonix 保留 Go 运行时、权限、沙箱、Goal、Plan、检查点和多代理,不引入 Cordis 插件框架。
4
5 ## 现行行为
6
7 - 结构化文件修改要求宿主观察过当前版本;任意成功文本窗口即可,成功写入会刷新版本。
8 - 工具按实际执行顺序生效;同批 `read → edit → edit → bash` 可完成,普通失败不取消后续独立调用。
9 - 大文件读取只受当前输出与资源限制;分页可选,不阻止命令、网络、其他文件或终答。
10 - 已启动但没有可靠结果的调用记录为持久 `unknown` 事实,只提供检查建议,不禁用工具,不自动重放。
11 - 完成由模型判断。`complete_step`、`review_report`、读取策略回执、最终就绪证明、操作结算、Auto Guard 审查和恢复确认卡均已退役。
12 - 连续相同调用在第 3、5、8 次收到不含参数的提醒,调用仍会执行。
13
14 三个边界是有意设计:窗口读取不代表全文审阅;bash 和 MCP 不受文件观察策略约束;未知外部副作用不再有宿主强制的防重复执行保证。
15
16 文件操作使用稳定错误码:`FS_NOT_OBSERVED` 要求先读取当前窗口,
17 `FS_STALE_VERSION` 表示外部变更后需要重读,`FS_NOT_FOUND` 表示源不存在,
18 `FS_ALREADY_EXISTS` 表示受保护的创建或移动发生冲突。这些都只是当前调用失败,
19 不会建立全局待满足操作。
20
21 ## 兼容表
22
23 | 旧数据或接口 | 当前处理 |
24 | --- | --- |
25 | `source_token` 参数 | 兼容解码器可接受,但授权忽略,公开 schema 不再出现。 |
26 | ReadCompletion、ReadPause、证明回执 | 历史会话解码和保存保持原值,不能激活门禁。 |
27 | `complete_step`、`review_report`、读取回执调用 | 返回一次普通 `tool_retired`。 |
28 | Auto Guard sidecar 与配置 | 仅作历史读取,不连接 executor,当前配置保存不再写入。 |
29 | 工具恢复查询 | 返回 `retired=true` 的不可变事实。 |
30 | 工具恢复动作 | 稳定返回 `tool_recovery_retired`,不重放操作。 |
31
32 工具集合和描述发生变化,升级后的第一次 provider 请求会有一次预期的前缀缓存失效;之后工具顺序和新前缀保持稳定。Desktop 继续校验壳与服务契约摘要,不支持不兼容版本混用。
33
34 ## 七项问题验证
35
36 | 问题 | 旧触发 | 新断言 |
37 | --- | --- | --- |
38 | #9994、#9995、#10067、#10103 | 编辑后 bash 或再次编辑被证据状态永久阻断 | 成功写入刷新观察,bash 独立;读改跑再改可连续重复三次。 |
39 | #10053 | 有界读取或纯读取产生必须补齐的全文债务 | 大文件只读一个窗口即可运行 bash 并终答。 |
40 | #10085 | 同一 provider batch 的读取不能授权写入 | 每次调用成功后同步更新观察,后续调用立即看到。 |
41 | #10153 | `outcome_unknown` 安装跨会话网络/工具屏障 | 未知事实只记录一次,后续诊断或相同调用走普通权限。 |
42
43 本地测试还覆盖未观察覆盖拒绝、重读恢复、同大小且恢复 mtime 的外部替换、权限变化、别名、并发写者和不可覆盖创建。编码、缓冲区、notebook、符号、移动和 multi-edit 继续由原工具测试覆盖。Windows 原生文件身份提供 Windows-only 测试,必须在 Windows 主机运行;仅交叉编译不算验收。
44
45 ## 删除范围
46
47 运行时已移除全文读取债务与续读门禁、source-token 授权、prepared/applied/settled 操作状态推进、证明驱动 todo、最终就绪恢复、重复调用拒绝、证据增益 progress/storm 干预和可连接的 Auto Guard reviewer。旧 provider/session 类型只在兼容解码或只读历史展示需要时保留。
48
49 文件发布顺序为:解析目标、权限/沙箱/范围检查、加锁、取得当前源并比较观察、计算修改、发布前再次比较、按原路由发布、更新观察、返回真实结果。ACP 没有原子条件写入,本地检查也无法阻止最终检查后任意外部进程写入,因此两者都不宣称通用 CAS。
50
50 lines MARKDOWN