diff --git a/.github/workflows/pr-base-repoint.yml b/.github/workflows/pr-base-repoint.yml index 5e882c3d..7bb67ac7 100644 --- a/.github/workflows/pr-base-repoint.yml +++ b/.github/workflows/pr-base-repoint.yml @@ -35,8 +35,19 @@ permissions: # One re-trigger in flight per PR. A second base re-point supersedes the first; # the older dispatch is answering a question about a base that no longer holds. +# +# The group is partitioned by event class because a body edit arrives ~2s after +# a base re-point on the same PR: sharing one group, it cancelled the re-point +# run before its dispatch step and then skipped itself, so no guard run ever +# reached a verdict. The guard is advisory — `rollup` is the only required +# context — so its red is an operator signal, not a merge gate. +# +# The key mirrors only the `changes.base` half of the job's `if:`, not the +# same-repo conjunct. Safe because a PR's head repo is fixed at creation: a +# fork PR's runs only ever share a group with other fork runs of the same PR, +# and every one of those skips. concurrency: - group: pr-base-repoint-${{ github.event.pull_request.number }} + group: pr-base-repoint-${{ github.event.pull_request.number }}-${{ github.event.changes.base != null && 'repoint' || 'edit' }} cancel-in-progress: true jobs: