Skip to content

Code Review 不再审旧提交:2.1.312 修复 GitHub 推送事件迟到导致的误审 ​

把 Claude 的 Code Review 接到 GitHub 仓库之后,每次往 Pull Request 推新提交,它都会自动审一遍。但如果你遇到过「评论指出的问题我早就改了」或者「推了代码却没有任何审查」,原因可能就在这次修复里。

修复了什么 ​

CLI 2.1.312 的更新说明里写道:修复了当 GitHub 延迟送达 push 事件时,Code Review 审查过时的提交、或者干脆什么都没审的问题;现在它会审查 Pull Request 当前的提交。

问题是怎么出现的 ​

Code Review 依靠 GitHub 发来的事件得知「有新代码推上来了」。正常情况下事件几乎是实时的,但 GitHub 的事件投递偶尔会延迟。设想这样一个顺序:

  1. 你推了提交 A;
  2. 很快又推了修正后的提交 B;
  3. 提交 A 对应的事件这时才姗姗来迟。

如果审查直接以事件里携带的那个提交为准,就可能去审已经被 B 取代的 A,给出针对旧代码的意见;在某些情况下,事件和实际状态对不上,结果是这次推送没有触发任何审查。

修复后的思路很简单:不管事件什么时候到、带的是哪个提交,审查都以 PR 此刻的最新提交为准。

对日常使用的影响 ​

  • 审查意见更可信。 评论对应的是你当前的代码,不用再去核对「它说的是不是旧版本」。
  • 连续快速推送更放心。 习惯小步频繁提交的人,最容易碰到事件乱序,这次修复对他们最有感。
  • 少了漏审。 以前偶尔出现推了代码却没动静的情况,现在应该明显减少。

如果你之前为了规避这个问题,养成了「推完再手动触发一次审查」的习惯,升级后可以观察一段时间,看看是否还有必要。

小结 ​

这是一条偏底层的修复,平时不太显眼,但直接关系到审查结果靠不靠谱。2.1.312 之后,GitHub 推送事件就算迟到,Code Review 也会去审 PR 的当前提交,不会再拿旧代码说事或者悄悄漏掉一次审查。

Claude-cn.org,专注于 Claude Code 中文教程