背景
ChangeTracker 当前主要跟踪通过 write_file 和 edit_file 产生的写入。运行时类型中已经包含 deleted 状态,但仓库还没有删除文件工具;同时,shell 命令可能创建、修改或删除文件,这些变化目前不会自动进入 checkpoint 或 rollback。
这会让 edit 模式下的失败回滚不完整:如果 agent 通过 shell 命令生成文件、删除文件或修改文件,即使运行失败,也可能留下未追踪的工作区变化。
目标
让变更追踪覆盖删除文件和可选的 shell 侧文件变更检测,使 checkpoint、trace 和 rollback 更接近真实工作区变化。
改动方向
先补齐文件工具层的删除能力,并让 ChangeTracker 能记录 created、modified、deleted 三类状态。对于 shell 侧变化,设计一个可选检测机制,例如命令执行前后扫描候选文件 hash 差异;该机制需要有明确开关、文件范围和性能边界,避免在大型仓库中造成不可接受的开销。
可能涉及模块
src/runtime/change-tracker.ts
src/runtime/types.ts
src/tool/fs
src/tool/bash/bash.tool.ts
src/agent/agent.ts
src/runtime/workspace-scanner.ts
tests/agent 和 tests/tool
任务清单
验收标准
建议标签
feature、runtime、safety
背景
ChangeTracker当前主要跟踪通过write_file和edit_file产生的写入。运行时类型中已经包含deleted状态,但仓库还没有删除文件工具;同时,shell 命令可能创建、修改或删除文件,这些变化目前不会自动进入 checkpoint 或 rollback。这会让 edit 模式下的失败回滚不完整:如果 agent 通过 shell 命令生成文件、删除文件或修改文件,即使运行失败,也可能留下未追踪的工作区变化。
目标
让变更追踪覆盖删除文件和可选的 shell 侧文件变更检测,使 checkpoint、trace 和 rollback 更接近真实工作区变化。
改动方向
先补齐文件工具层的删除能力,并让
ChangeTracker能记录 created、modified、deleted 三类状态。对于 shell 侧变化,设计一个可选检测机制,例如命令执行前后扫描候选文件 hash 差异;该机制需要有明确开关、文件范围和性能边界,避免在大型仓库中造成不可接受的开销。可能涉及模块
src/runtime/change-tracker.tssrc/runtime/types.tssrc/tool/fssrc/tool/bash/bash.tool.tssrc/agent/agent.tssrc/runtime/workspace-scanner.tstests/agent和tests/tool任务清单
writeFile权限保护的delete_file工具ChangeTracker支持记录删除文件的 before/after hash 与内容验收标准
deletedchange set建议标签
feature、runtime、safety