Skip to content

ci: ready_for_review runs review but never cancels - #2353

Merged
heskew merged 1 commit into
mainfrom
review-ready-noncancelling
Aug 26, 2026
Merged

ci: ready_for_review runs review but never cancels#2353
heskew merged 1 commit into
mainfrom
review-ready-noncancelling

Conversation

@heskew

@heskew heskew commented Aug 26, 2026

Copy link
Copy Markdown
Member

Follow-up to #2348, from @kriszyp's finding on harper-pro#767: the label-opted ready_for_review event shared the eligible concurrency group, so on a bot-authored PR it could cancel the trusted labeler's in-flight review and then be rejected by author-based authorization (non-labeled events authorize against the PR author, not the labeler) — leaving no completed review.

Fix: the cancelling set (concurrency predicate) excludes ready_for_review; the running set (job gate) keeps it. Trusted-author ready-flips still get their review — they just can't kill anyone else's. The two predicates now deliberately diverge, with the comment explaining why (cancelling ⊆ running). Revisit if the reusable gains persisted-label authorization.

Merge order: before #2330/#2331 (they carry this fix and must stay byte-identical to main).

🤖 Generated with Claude Code

https://claude.ai/code/session_01S94XethbGXpAb4DRKMD4kt

kriszyp follow-up finding on the harper-pro twin (harper-pro#767): the
label-opted ready_for_review event sat in the shared eligible
concurrency group, so on a bot-authored PR it could cancel the trusted
labeler's in-flight review and then be rejected by author-based
authorization — no completed review. The cancelling set (concurrency
predicate) now excludes ready_for_review; the running set (job gate)
keeps it. Revisit if the reusable gains persisted-label authorization.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01S94XethbGXpAb4DRKMD4kt
@gemini-code-assist

Copy link
Copy Markdown
Contributor

Note

Gemini is unable to generate a review for this pull request due to the file types involved not being currently supported.

@heskew
heskew merged commit 5698aca into main Aug 26, 2026
38 of 42 checks passed
@heskew
heskew deleted the review-ready-noncancelling branch August 26, 2026 23:18
heskew added a commit that referenced this pull request Aug 27, 2026
Codex follow-up on #2353: ready_for_review is a non-labeled event, so
the ALWAYS_ON arm of the concurrency predicate still placed it in the
shared cancelling group in always-on mode — a label-opted bot PR's
ready-flip could cancel the labeler's in-flight review and then fail
author-based authorization. The cancelling set now excludes
ready_for_review in BOTH modes; the job gates are unchanged
(ready-flips run review, in their own run_id group).


Claude-Session: https://claude.ai/code/session_01S94XethbGXpAb4DRKMD4kt

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant