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 的事件投递偶尔会延迟。设想这样一个顺序:
- 你推了提交 A;
- 很快又推了修正后的提交 B;
- 提交 A 对应的事件这时才姗姗来迟。
如果审查直接以事件里携带的那个提交为准,就可能去审已经被 B 取代的 A,给出针对旧代码的意见;在某些情况下,事件和实际状态对不上,结果是这次推送没有触发任何审查。
修复后的思路很简单:不管事件什么时候到、带的是哪个提交,审查都以 PR 此刻的最新提交为准。
对日常使用的影响
- 审查意见更可信。 评论对应的是你当前的代码,不用再去核对「它说的是不是旧版本」。
- 连续快速推送更放心。 习惯小步频繁提交的人,最容易碰到事件乱序,这次修复对他们最有感。
- 少了漏审。 以前偶尔出现推了代码却没动静的情况,现在应该明显减少。
如果你之前为了规避这个问题,养成了「推完再手动触发一次审查」的习惯,升级后可以观察一段时间,看看是否还有必要。
小结
这是一条偏底层的修复,平时不太显眼,但直接关系到审查结果靠不靠谱。2.1.312 之后,GitHub 推送事件就算迟到,Code Review 也会去审 PR 的当前提交,不会再拿旧代码说事或者悄悄漏掉一次审查。