Skip to content

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_allstage_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_files glob 路径行为以及 unstage_all + stage_files 组合的单元测试

升级

bash
# Homebrew
brew upgrade gcop-rs

# Cargo
cargo install gcop-rs

# pip
pip install --upgrade gcop-rs