Shadow REQUEST_CHANGES on unfixable PR metadata deadlocks automerge indefinitely (#307) #369

Closed
opened 2026-07-08 16:01:54 +00:00 by igor · 1 comment
Collaborator

Diagnosis

PR joshtronic/igor.bot#307 is stuck in a permanent automerge deadlock. The bot correctly resolved the content problem (replaced the duplicate ergo-decedo post with rerun-until-green, CI green), but the PR's title/description remain the pipeline-generated ergo-decedo framing, which the shadow reviewer cannot see fixed from inside the PR. The reviewer keeps returning a blocking REQUEST_CHANGES, the rework round produces no actionable commits, the bot escalates to the human -- and from then on every single tick logs automerge refusing to merge an already-approved PR.

The agent itself flagged the root cause at 10:18: per the reviewer's own directive, auto-generated pipeline framing that "the author can't fix from inside the PR anyway" should be a COMMENT, not a blocking REQUEST_CHANGES. The reviewer issued the blocking verdict anyway, wasting ~11 min of Claude time (238s round 1 + 423s round 2) and leaving the PR wedged: approved by the human, but permanently un-mergeable by the shadow verdict.

Evidence

Jul 08 10:09:27 tick.sh[1428990]: [agent] review: joshtronic/igor.bot#307 head ee9a6321 -> REQUEST_CHANGES (ci=success, 22s)
Jul 08 10:18:20 tick.sh[1430052]: [agent] PR-review: binding rework produced no commits -- escalating to joshtronic
Jul 08 10:41:52 tick.sh[1444313]: [agent] automerge: joshtronic/igor.bot#307 approved but shadow verdict is REQUEST_CHANGES -- not merging

(that automerge line then repeats on every tick: 10:43, 10:46, 10:47, 10:49, 10:51, 10:53, 10:55, 10:57, 10:59 -- through the end of the window.)

What "fixed" looks like

When the only remaining defect is pipeline-generated PR title/description that the author provably cannot edit from inside the PR (metadata lives on the PR object, no helper exists), the shadow reviewer should return COMMENT rather than a blocking REQUEST_CHANGES -- as its own directive already prescribes. Alternatively, automerge should stop re-evaluating (and stop spamming the tick) once a PR has been escalated to the human, so a human-approved PR isn't held hostage by a stale shadow verdict it can never clear.

Note: distinct from the open "duplicate post (slug ergo-decedo)" issue, which is about the permalink collision/CI failure -- here CI is green and the content is correct; the stall is purely the reviewer-verdict/automerge interaction.


service: agent.service
severity: medium
window: 2026-07-08 10:00-11:00 (filed by the hourly logwatch pass)

## Diagnosis PR joshtronic/igor.bot#307 is stuck in a permanent automerge deadlock. The bot correctly resolved the *content* problem (replaced the duplicate `ergo-decedo` post with `rerun-until-green`, CI green), but the PR's title/description remain the pipeline-generated `ergo-decedo` framing, which the shadow reviewer cannot see fixed from inside the PR. The reviewer keeps returning a blocking `REQUEST_CHANGES`, the rework round produces no actionable commits, the bot escalates to the human -- and from then on every single tick logs automerge refusing to merge an already-approved PR. The agent itself flagged the root cause at 10:18: per the reviewer's own directive, auto-generated pipeline framing that "the author can't fix from inside the PR anyway" should be a `COMMENT`, not a blocking `REQUEST_CHANGES`. The reviewer issued the blocking verdict anyway, wasting ~11 min of Claude time (238s round 1 + 423s round 2) and leaving the PR wedged: approved by the human, but permanently un-mergeable by the shadow verdict. ## Evidence ``` Jul 08 10:09:27 tick.sh[1428990]: [agent] review: joshtronic/igor.bot#307 head ee9a6321 -> REQUEST_CHANGES (ci=success, 22s) Jul 08 10:18:20 tick.sh[1430052]: [agent] PR-review: binding rework produced no commits -- escalating to joshtronic Jul 08 10:41:52 tick.sh[1444313]: [agent] automerge: joshtronic/igor.bot#307 approved but shadow verdict is REQUEST_CHANGES -- not merging ``` (that automerge line then repeats on every tick: 10:43, 10:46, 10:47, 10:49, 10:51, 10:53, 10:55, 10:57, 10:59 -- through the end of the window.) ## What "fixed" looks like When the only remaining defect is pipeline-generated PR title/description that the author provably cannot edit from inside the PR (metadata lives on the PR object, no helper exists), the shadow reviewer should return `COMMENT` rather than a blocking `REQUEST_CHANGES` -- as its own directive already prescribes. Alternatively, automerge should stop re-evaluating (and stop spamming the tick) once a PR has been escalated to the human, so a human-approved PR isn't held hostage by a stale shadow verdict it can never clear. Note: distinct from the open "duplicate post (slug ergo-decedo)" issue, which is about the permalink collision/CI failure -- here CI is green and the content is correct; the stall is purely the reviewer-verdict/automerge interaction. --- service: agent.service severity: medium window: 2026-07-08 10:00-11:00 (filed by the hourly logwatch pass) <!-- agent:logwatch -->
igor added spent time 2026-07-08 16:01:54 +00:00
1 minute 35 seconds
Author
Collaborator

Resolved by #371 (merged 2026-07-09) — the review-directive.md change that downgrades un-fixable pipeline-generated PR framing from a blocking REQUEST_CHANGES to a COMMENT, which is exactly this issue's "what fixed looks like."

This stayed open only because #371's description linked #369 as a plain reference rather than using a Closes #369 keyword, so the merge didn't auto-close it. Closing now.

Resolved by #371 (merged 2026-07-09) — the `review-directive.md` change that downgrades un-fixable pipeline-generated PR framing from a blocking `REQUEST_CHANGES` to a `COMMENT`, which is exactly this issue's "what fixed looks like." This stayed open only because #371's description linked `#369` as a plain reference rather than using a `Closes #369` keyword, so the merge didn't auto-close it. Closing now.
igor closed this issue 2026-07-09 22:58:36 +00:00
Sign in to join this conversation.
No milestone
No assignees
1 participant
Notifications
Total time spent: 1 minute 35 seconds
igor
1 minute 35 seconds
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
joshtronic/igor#369
No description provided.