Release v0.13.4
Bug 修复 - 原子提交暂存区安全防护 + 拆分提示词加固
修复 --split 模式下暂存区外的文件可能被静默提交的一类 bug。新增三层防护:LLM 响应验证、git pathspec 字面量强制执行以及子进程工作目录正确性修复。
修复
拆分提交暂存区安全防护
parse_split_response新增反向验证:LLM 返回的文件路径必须是暂存区文件的子集。 此前只做了一个方向的检查,导致幻觉或多余文件可能通过git add被暂存并提交stage_files新增GIT_LITERAL_PATHSPECS=1环境变量,防止 git 将路径中的括号 字符(如[locale])解释为 pathspec glob 模式并意外匹配其他文件unstage_all和stage_files的子进程调用现在设置current_dir(workdir), 确保无论进程工作目录如何,命令始终在正确的仓库中执行get_staged_files现在强制从磁盘重新加载 git index(index.read(true)), 确保在外部 git 进程(如git reset HEAD)修改后仍能返回准确状态
拆分提交提示词
- 加强禁止重复文件的约束:标记为
CRITICAL CONSTRAINTS并使用STRICTLY FORBIDDEN措辞,减少 LLM 违规 - 在用户消息顶部添加完整文件清单,让 LLM 在查看各文件 diff 前先获得全局视图
测试
- 新增 3 个
parse_split_response多余文件验证的单元测试 - 新增 3 个
stage_filesglob 路径行为以及unstage_all+stage_files组合的单元测试
升级
bash
# Homebrew
brew upgrade gcop-rs
# Cargo
cargo install gcop-rs
# pip
pip install --upgrade gcop-rs