You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
All cancelled runs are check_suite completions firing near-simultaneously for the same PR head (redundant overlapping runs).
Scope
Make main's caller robust by adopting PR #261's good ideas (dedup overlapping runs, skip no-PR check_suite events) without its breaking change β i.e. keep agent_ref: pr-review/stable. This reduces the cancellations/contention and supersedes the broken PR #261 with a correct config.
Implementation Checklist
.github/workflows/pr-review.yml: add a per-PR concurrency group (falls back to github.run_id for batch/dispatch/no-PR runs so they are never cancelled).
.github/workflows/pr-review.yml: add a job-level if: guard to skip check_suite completions with no associated PR.
Leave trigger event types and the permissions: block unchanged (thin-caller stub rules).
Tests to Write
No executable test framework exists for workflow YAML in this repo (CI ecosystem-detects Go/Node, neither present; .dev-lead/.github tests cover shell scripts only). Per the Phase 2 documentation/config exception, verification is via YAML parse + actionlint (if available) + the repo lint script. This exception will be noted in the Phase 6 report.
Test Command
bash ".dev-lead/scripts/dev-lead-lint.sh" (plus YAML parse + actionlint on the workflow)
Left trigger event types and the permissions: block unchanged (thin-caller stub rules).
Test Results
No executable test framework exists for workflow YAML in this repo (CI ecosystem-detects Go/Node β neither is present; .dev-lead/.github tests cover shell scripts only). Per the Phase 2 config/documentation exception, verification was done via:
diff --git a/.github/workflows/pr-review.yml b/.github/workflows/pr-review.yml
index 0c1377c..8f07c5a 100644
--- a/.github/workflows/pr-review.yml+++ b/.github/workflows/pr-review.yml@@ -43,8 +43,30 @@ permissions:
pull-requests: write
checks: read
+# Collapse redundant overlapping runs for the same PR. The high-frequency+# triggers (synchronize + the resulting check_suite completions) fire several+# times for one PR head; without this they spawn concurrent duplicate reviews+# (the source of the cancelled runs). Group per PR when one is identifiable;+# fall back to a unique run id for batch/dispatch/no-PR runs so those are never+# cancelled against each other.+concurrency:+ group: >-+ pr-review-${{+ github.event.pull_request.number+ || github.event.check_suite.pull_requests[0].number+ || inputs.pr_url+ || github.event.client_payload.pr_url+ || github.run_id+ }}+ cancel-in-progress: true+
jobs:
review:
+ # Skip check_suite completions with no associated PR (e.g. pushes to main):+ # there is nothing to review, so the run would be pure waste.+ if: >-+ github.event_name != 'check_suite'+ || github.event.check_suite.pull_requests[0] != null
uses: petry-projects/.github-private/.github/workflows/pr-review.yml@pr-review/stable
with:
agent_ref: pr-review/stable
cancel-in-progress: true only cancels runs within the same per-PR group; different PRs and batch/dispatch runs are isolated, so no legitimate review is cancelled by an unrelated trigger.
Activity
don-petry commentedon Jun 18, 2026
Dev-Lead Implementation Plan
Issue: #276 β [Fleet Monitor] petry-projects/markets β .github/workflows/pr-review.yml
Root-cause analysis
I inspected the last 15 runs of
pr-review.yml:failureruns (e.g.27731937315,27551012935) arepull_requestevents from the already-open PR feat: implement issue #252 β [Fleet Monitor] petry-projects/markets β pr-review.ymlΒ #261 (the prior fix attempt for the duplicate issue [Fleet Monitor] petry-projects/markets β pr-review.ymlΒ #252). They fail at the reusable's "Verify auth scopes" step because PR feat: implement issue #252 β [Fleet Monitor] petry-projects/markets β pr-review.ymlΒ #261 changedagent_ref: pr-review/stableβagent_ref: main.main's actualpr-review.ymlsucceeds on everycheck_suiterun β the workflow itself is healthy.cancelledruns arecheck_suitecompletions firing near-simultaneously for the same PR head (redundant overlapping runs).Scope
Make
main's caller robust by adopting PR #261's good ideas (dedup overlapping runs, skip no-PRcheck_suiteevents) without its breaking change β i.e. keepagent_ref: pr-review/stable. This reduces the cancellations/contention and supersedes the broken PR #261 with a correct config.Implementation Checklist
.github/workflows/pr-review.yml: add a per-PRconcurrencygroup (falls back togithub.run_idfor batch/dispatch/no-PR runs so they are never cancelled)..github/workflows/pr-review.yml: add a job-levelif:guard to skipcheck_suitecompletions with no associated PR.agent_ref: pr-review/stableand theuses: ...@pr-review/stablepin unchanged (do NOT repeat feat: implement issue #252 β [Fleet Monitor] petry-projects/markets β pr-review.ymlΒ #261'sagent_ref: mainmistake).permissions:block unchanged (thin-caller stub rules).Tests to Write
.dev-lead/.githubtests cover shell scripts only). Per the Phase 2 documentation/config exception, verification is via YAML parse +actionlint(if available) + the repo lint script. This exception will be noted in the Phase 6 report.Test Command
bash ".dev-lead/scripts/dev-lead-lint.sh"(plus YAML parse +actionlinton the workflow)don-petry commentedon Jun 18, 2026
Dev-Lead: Implementation Complete
Root cause (confirmed from run history)
failurerun in the monitored window was apull_requestevent from the open PR feat: implement issue #252 β [Fleet Monitor] petry-projects/markets β pr-review.ymlΒ #261 (the prior fix attempt for the duplicate issue [Fleet Monitor] petry-projects/markets β pr-review.ymlΒ #252). Those runs fail at the reusable's "Verify auth scopes" step because feat: implement issue #252 β [Fleet Monitor] petry-projects/markets β pr-review.ymlΒ #261 changedagent_ref: pr-review/stableβagent_ref: main.main'spr-review.ymlsucceeds on everycheck_suiterun β the workflow itself is healthy.cancelledruns are overlappingcheck_suitecompletions for the same PR head spawning concurrent duplicate reviews.Plan Execution
concurrencygroup (falls back togithub.run_idfor batch/dispatch/no-PR runs so they are never cancelled).if:guard to skipcheck_suitecompletions with no associated PR.agent_ref: pr-review/stableand the@pr-review/stablepin unchanged β deliberately NOT repeating feat: implement issue #252 β [Fleet Monitor] petry-projects/markets β pr-review.ymlΒ #261'sagent_ref: mainchange that causes the failures.permissions:block unchanged (thin-caller stub rules).Test Results
No executable test framework exists for workflow YAML in this repo (CI ecosystem-detects Go/Node β neither is present;
.dev-lead/.githubtests cover shell scripts only). Per the Phase 2 config/documentation exception, verification was done via:Files Changed
.github/workflows/pr-review.yml: added per-PR concurrency dedup + check_suite null-PR job guard;agent_refand reusable pin unchanged.Notes
agent_ref: main. Once this lands, PR feat: implement issue #252 β [Fleet Monitor] petry-projects/markets β pr-review.ymlΒ #261 should be closed/superseded β recommend opening a follow-up to close feat: implement issue #252 β [Fleet Monitor] petry-projects/markets β pr-review.ymlΒ #261 and the duplicate issue [Fleet Monitor] petry-projects/markets β pr-review.ymlΒ #252.cancel-in-progress: trueonly cancels runs within the same per-PR group; different PRs and batch/dispatch runs are isolated, so no legitimate review is cancelled by an unrelated trigger.feat: implement issue #276 β [Fleet Monitor] petry-projects/markets ββ¦