网络路径上的 Edit 与 NotebookEdit 修复:UNC、WSL、/net 不再误改文件
如果你的项目放在网络共享或跨系统目录里,比如 Windows 的 UNC 共享(\\server\share)、从 Windows 访问的 WSL 目录,或 Linux 上的 /net 自动挂载,那么 2.1.321 这组修复和你直接相关。
修复前会出什么问题
在这些网络路径上,Claude Code 的文件编辑工具有几种「看起来成功、实际改坏」的情况:
- Edit 改错位置:文件里有多处相同文本时,本该因为匹配不唯一而报错,结果却直接改了第一处;
- 空
old_string覆盖整个文件:一次空匹配的编辑,把整个文件替换成了新内容; - 把 Notebook 当纯文本改:对
.ipynb用 Edit 时,按文本方式写入,可能破坏 JSON 结构; - NotebookEdit 误删首个单元格:调用时没有指定单元格,结果删除或覆盖了笔记本的第一个 cell。
这些问题只在网络路径上出现,本地磁盘行为正常,所以排查时很容易误以为是模型「乱改」。
2.1.321 之后
上述几种情况在网络路径上已与本地磁盘保持一致:多处匹配会要求更精确的上下文,空匹配不会再整文件替换,Notebook 会按单元格结构处理,未指定单元格的 NotebookEdit 不再动第一个 cell。
使用建议
- 尽快升级:
claude update或重新安装最新版本; - 网络目录务必用 Git:在共享盘上工作时,编辑前后用
git diff检查,出问题可以快速回滚; - WSL 用户优先在 Linux 文件系统内工作:把仓库放在
~/而不是/mnt/c/,或从 Windows 端通过\\wsl$访问时多留意改动; - Notebook 先备份:重要的
.ipynb在让 Claude 大改前先提交一次。
小结
这是一组「静默数据损坏」类修复,不需要改配置,但影响面不小。项目放在共享盘、WSL 或网络挂载上的朋友,建议今天就升级。