修复回合提交的修改永久性地阻塞了管道运行 - 没有文档记录的恢复路径

作者: jaime-oviedo创建于 2026年8月2日更新于 2026年9月21日
标签bugready-for-pr

2026-07-30 在一个生产运行的审查修复轮次中发现了这个问题。审查修复代理修改了其提交,而不是附加一个新的提交,从而产生了一个不属于运行保存的管道头的分支。一旦发生这种情况,就无法通过任何文档化的路径永久恢复运行: - `axi abort --run <id>` 在终端上(`失败`)的运行中不起作用 - 没有什么可中止的。 - `axi sync --recover` 以 `safety=blocked_recover_gate_diverged` 为理由拒绝。 - `axi sync --recover --keep-local` 也拒绝了,因为保护程序在执行 `--keep-local` 之前检查了 `gate-branch == recorded-head`。 我们找到的唯一出路是手动移动门库的分支引用或清除共享 `~/.no-mistakes` 状态中运行的监护记录 - 这不属于任务工作者(或其监督者)应该随机应变的范围。 我们当时通过直接发布已经经过本地验证的分支来解决这个问题,从而绕过了该 PR 的管道。 请求: (a) 让修复轮代理的提交步骤只能附加,这样这种分歧就不会发生; (b) 为这种特定的分歧形状(门分支与记录的头分歧,但分歧的提交是一个子集/有效的继续)提供一个真正的逃生通道。

内容来源: kunchenguid/no-mistakes