HN讨论 · 身份未知
AI 编码代理执行破坏性 shell 命令时缺一套覆盖未跟踪文件的安全网
使用 AI 编码代理时,代理运行的清理类命令可能删除未提交、未跟踪或仓库之外的文件,现有 git、沙箱和检查点都覆盖不到。作者构建了一个在命令执行前快照受影响文件、可撤销误删的工具,指向开发者对代理操作兜底保护的具体需求。
查看原始信号hn:49371211
目标用户
使用 Claude Code 等 AI 编码代理、让代理在真实项目目录中执行 shell 命令的开发者。
潜在需求
开发者需要一个不替代 git 的兜底机制,在代理命令运行前自动快照将要触及的文件,以便误删后能恢复 git、沙箱和检查点保护不到的数据。
发生场景
编码代理整理项目时运行清理类 shell 命令,可能删除未跟踪、被 .gitignore 忽略或仓库之外的文件;git checkout、git clean、git reset --hard 等命令也可能由代理触发并清空未提交工作。
来源证据
Do-over 接入 Claude Code hooks,在命令运行前快照将要触及的文件,目的是保护 git 未覆盖的未跟踪、被忽略及仓库外文件。
Hello HN, I built this after a coding agent deleted my files while tidying a project. Do-over plugs into Claude Code's hooks and snapshots what a command is about to touch right before it runs. I know what you're thinking. Why don't you just commit more often? This tool doesn't seek to replace git. What it does is: [1] Protect the stuff git doesn't protect: your untracked/ignored files and files that exist outside your repo (which is how a guy lost 50GB of data - Claude code issue tracker) [2]https://news.ycombinator.com/item?id=49371211
为什么值得留意
这条信号把“AI 代理删文件”从模糊担忧拆成可定位的缺口:真正风险点是 git 覆盖范围之外的文件,以及代理把 git 本身当作破坏工具。作者已给出一种可行解法,并用真实事故说明现有措施为何不够,适合继续观察用户是否愿意为这类保护付费或采用。
已有方案
- git
- 沙箱
- 检查点
未满足部分
- git 不保护未跟踪、被忽略和仓库之外的文件
- 代理可执行 git checkout .、git clean -fd、git reset --hard 等破坏性 git 命令,使 git 本身成为删除来源
- 开发者忘记提交时 git 无法提供保护
- 沙箱和检查点等现有手段仍覆盖不到这类最后一公里风险
可能延伸 · 模型推测
- 将命令前快照机制抽象成与 Claude Code 解耦的通用 agent shell 安全层(模型推测)
- 在执行前展示受影响文件清单,让开发者先确认再允许代理运行(模型推测)
- 把快照恢复扩展到容器或远程开发环境(模型推测)
目前未知
- 信号来自项目作者自述,尚无独立用户测试结果
- 只有一个评论且为作者请求反馈,无法判断实际采用情况
- 快照机制在大型项目上的性能影响未提及
继续核实
- Claude Code 等代理用户中,因破坏性 shell 命令丢失未提交文件的频率和损失有多大?
- 现有 sandbox/checkpoint 方案在什么具体环节失效,导致仍需要命令前快照?
- 开发者对“命令前自动快照”这类额外安全步骤的接受度和性能敏感度如何?
主题词
ai coding agentsshell command safetyfile recoveryuntracked filesdestructive git commands