gemini-cli 原子写入曾静默覆盖只读文件、切断硬链接,PR 详解修法

elberthc-byte · ghdev · 2026-10-14

google-gemini/gemini-cli 的 #29499 引入原子写入后,StandardFileSystemService.writeTextFile 开始静默覆盖只读文件并切断硬链接:rename(2) 只检查目录权限而不看目标文件的写权限位,0444 文件不再报 EACCES;同时 rename 换了 inode,编辑硬链接的一个名字会让其他名字留在旧内容上。

PR 用两个小守卫恢复原行为:

通过把 getFileMode() 改为 statIfExists(),模式与链接数来自同一次 stat,唯一新增的系统调用是 access。新文件不受影响。

原文链接 →

「编程与Agent」频道最新

更多「编程与Agent」频道 AI 资讯 →