Skip to content

fix(runner): distinct concurrency group for verify.runner.yml variant (Closes #236) - #248

Merged
dngioidev merged 1 commit into
mainfrom
fix/236-verify-runner-concurrency
Jul 23, 2026
Merged

fix(runner): distinct concurrency group for verify.runner.yml variant (Closes #236)#248
dngioidev merged 1 commit into
mainfrom
fix/236-verify-runner-concurrency

Conversation

@dngioidev

Copy link
Copy Markdown
Owner

What

The scaffolded runner-variant workflow verify.runner.yml (dropped beside an existing verify.yml for the review-and-swap window) was name: verify and shared concurrency.group: ${{ github.workflow }}-${{ github.ref }} with the incumbent. Both resolved to the same verify-<ref> group with cancel-in-progress: true, so committing both during review silently cancelled the runner variant's jobs — they never dispatched to the local runner (#236, found during the #227 dogfood).

Fix

  • Template plugin/templates/runner/workflows/verify.yml — distinct concurrency group verify-runner-${{ github.ref }} (keeps cancel-in-progress: true, still self-cancels stale runs per ref). Safe before and after the swap; can never collide with a name: verify incumbent.
  • plugin/scripts/runner/init.mjs — when it drops the variant beside an existing verify.yml, logs an explicit collision note: the two run as separate "verify" checks until the operator swaps, and the runner jobs are no longer cancelled.
  • Docsdocs/guides/runner-adoption.md reframed from "don't coexist" to "safe to coexist during review; still swap to finish", runbook row + follow-up list updated.
  • No change to this repo's own live .github/workflows/verify.yml (already cut over).

Tests

tests/runner.test.mjs — assert the scaffolded verify.yml and the verify.runner.yml variant use the distinct group (not the bare colliding group), and that the init collision note appears when an existing verify.yml is present. Existing assertions intact.

Gates

  • pnpm verify — 424/424 green
  • claude plugin validate ./plugin --strict — green

Closes #236
Refs #180

🤖 Generated with Claude Code

https://claude.ai/code/session_01SATRHKa6mDHDuirhP6QuwL

The scaffolded runner-variant workflow (`verify.runner.yml`, dropped beside an
existing `verify.yml` for the review-and-swap window) was `name: verify` and
shared `concurrency.group: ${{ github.workflow }}-${{ github.ref }}` with the
incumbent verify.yml. Both resolved to the same `verify-<ref>` group with
`cancel-in-progress: true`, so committing both silently cancelled the runner
variant's jobs — they never dispatched to the local runner.

Give the runner variant a distinct concurrency group
(`verify-runner-${{ github.ref }}`, keeping cancel-in-progress) so it can
coexist safely during review without cancelling the incumbent. `forge:init
--runner` now logs an explicit collision note when it drops the variant beside
an existing verify.yml (two "verify" checks run until the swap; runner jobs are
no longer cancelled). Docs updated to reflect safe coexistence + the swap as end
state.

Tests: assert the scaffolded/variant workflow uses the distinct group (not the
bare colliding group) and that the init collision note appears when a verify.yml
is present. pnpm verify 424/424, claude plugin validate --strict green.

Closes #236
Refs #180

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SATRHKa6mDHDuirhP6QuwL
@dngioidev
dngioidev merged commit ffdc06c into main Jul 23, 2026
4 of 5 checks passed
@dngioidev
dngioidev deleted the fix/236-verify-runner-concurrency branch July 23, 2026 18:50
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.

Runner: verify.runner.yml collides with verify.yml on concurrency when both present (same name "verify")

1 participant