Skip to content

test(dev-lead): guard the #443 concurrency fix (cancel-in-progress: false) - #1221

Merged
don-petry merged 6 commits into
mainfrom
test/dev-lead-concurrency-guard-443
Jul 14, 2026
Merged

don-petry merged 6 commits into
mainfrom
test/dev-lead-concurrency-guard-443

Conversation

@don-petry

@don-petry don-petry commented Jul 14, 2026 •

Copy link
Copy Markdown
Collaborator

#443 (multi-label issue creation cancels dev-lead dispatch) was already fixed by #450 (2026-06-06) — separate per-issue/per-PR concurrency lanes with cancel-in-progress: false, so same-lane issues:labeled events queue behind the active run instead of cancelling the dev-lead-triggered pickup. (#443 was filed 2026-06-11 from pre-fix incident evidence.)

This adds a regression guard so the fix can't be silently reverted: asserts the reusable keeps cancel-in-progress: false, has no cancel-in-progress: true, and routes issue events to the dev-lead-issue-<n> lane. 3/3 green.

🤖 Generated with Claude Code

https://claude.ai/code/session_01Juznz5V6su81ffSND8fg7s

Summary by CodeRabbit

  • Tests
    • Added regression coverage for development workflow concurrency settings and per-issue routing.
    • Included the new checks in the automated lint workflow.

…alse)

The dev-lead multi-label issue-pickup race (#443) was fixed by #450's per-issue/
per-PR concurrency lanes with cancel-in-progress:false — same-lane labeled events
queue behind the active run instead of cancelling it, so the dev-lead-triggered
pickup always finishes. Add a regression guard that fails if anyone reintroduces
cancel-in-progress:true or drops the per-issue lane.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Juznz5V6su81ffSND8fg7s
Copilot AI review requested due to automatic review settings July 14, 2026 04:37
@don-petry
don-petry requested a review from a team as a code owner July 14, 2026 04:37
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, you can upgrade your account or add credits to your account and enable them for code reviews in your settings.

@coderabbitai

coderabbitai Bot commented Jul 14, 2026 •

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@don-petry, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 58 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 24859b0b-5702-4c5b-8e3b-95869ee84128

📥 Commits

Reviewing files that changed from the base of the PR and between 1f1c814 and a432d86.

📒 Files selected for processing (2)
  • .github/workflows/lint.yml
  • tests/test_dev_lead_concurrency_guard.bats
📝 Walkthrough

Walkthrough

Adds a Bats regression suite that validates dev-lead concurrency configuration and issue-based lane routing, and registers the suite in the lint workflow.

Changes

Dev-lead concurrency validation

Layer / File(s) Summary
Concurrency guard regression tests
tests/test_dev_lead_concurrency_guard.bats
Adds assertions for cancel-in-progress: false, rejects cancel-in-progress: true, and verifies per-issue lane routing.
Lint workflow test registration
.github/workflows/lint.yml
Adds the new Bats suite to the lint job’s test command.

Estimated code review effort: 2 (Simple) | ~10 minutes

Possibly related PRs

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the dev-lead concurrency regression guard and the cancel-in-progress false behavior.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch test/dev-lead-concurrency-guard-443

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request adds a new BATS test file, tests/test_dev_lead_concurrency_guard.bats, to prevent regression of concurrency settings in the dev-lead reusable workflow. The reviewer noted that using [ "$status" -ne 0 ] to assert that a pattern is not found can cause false passes if the target file is missing or if grep fails for other reasons. They recommended asserting an exit status of exactly 1 instead.

Comment thread tests/test_dev_lead_concurrency_guard.bats Outdated

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a Bats regression test intended to prevent a silent revert of the dev-lead concurrency fix from #450 by asserting cancel-in-progress: false and per-issue concurrency lane routing in the reusable workflow.

Changes:

  • Introduces tests/test_dev_lead_concurrency_guard.bats to assert cancel-in-progress: false is present and cancel-in-progress: true is absent in dev-lead-reusable.yml.
  • Adds an assertion that issue-triggered events route to the dev-lead-issue-<n> concurrency lane.

Comment thread tests/test_dev_lead_concurrency_guard.bats
Comment thread tests/test_dev_lead_concurrency_guard.bats
Comment thread tests/test_dev_lead_concurrency_guard.bats
Comment thread tests/test_dev_lead_concurrency_guard.bats
@don-petry

Copy link
Copy Markdown
Collaborator Author

Dev-Lead — review-changes (applied)

Changes committed and pushed.

@don-petry
don-petry enabled auto-merge (squash) July 14, 2026 04:49
coderabbitai[bot]
coderabbitai Bot previously approved these changes Jul 14, 2026
@don-petry
don-petry disabled auto-merge July 14, 2026 04:52
@don-petry

Copy link
Copy Markdown
Collaborator Author

Dev-Lead — review-changes (applied)

Changes committed and pushed.

@don-petry
don-petry disabled auto-merge July 14, 2026 04:57
@don-petry

Copy link
Copy Markdown
Collaborator Author

Dev-Lead — waiting on PR blockers (intent: review-changes)

PR: #1221
No changes were committed, but the PR still has blocking checks or reviews (failing or cancelled checks, or changes-requested reviews). The retry cron will re-attempt automatically. Next attempt after: 2026-07-14T05:29:23Z

@don-petry

Copy link
Copy Markdown
Collaborator Author

Note

@don-petry I reviewed this PR and no code changes were needed, but it still has blocking checks or reviews (failing or cancelled checks, or changes-requested reviews), so I cannot mark it done yet. I'll re-check automatically.
Next attempt after: 2026-07-14T05:29:23Z

@don-petry
don-petry enabled auto-merge (squash) July 14, 2026 04:59
@donpetry-bot

donpetry-bot commented Jul 14, 2026 •

Copy link
Copy Markdown
Contributor
Superseded by automated re-review at a432d862ed12559fbe3948be61f632fd5cbf6bc8 — click to expand prior review.

Review — fix requested (cycle 1/3)

The automated review identified the following issues. Please address each one:

Findings to fix

Automated review — NEEDS HUMAN REVIEW

Risk: LOW
Reviewed commit: 20efbd45e16498ba3c2046c022b6070f91610243
Review mode: triage-approved (single reviewer)

Summary

Test-only PR adding a Bats regression guard (tests/test_dev_lead_concurrency_guard.bats) for the #443/#450 dev-lead concurrency fix, plus a one-line registration in the lint workflow's bats suite. The assertions were verified against the current .github/workflows/dev-lead-reusable.yml: cancel-in-progress: false (line 65) and the per-issue dev-lead-issue- lane (line 60) are both present, so the guard is accurate. The earlier gemini-code-assist feedback (assert grep exit status exactly 1 instead of -ne 0 for the negative case) has been applied. Escalating only because the template-drift CI check is red.

Linked issue analysis

No linked issues via closing references. The PR body references #443 (multi-label issue creation cancelling dev-lead dispatch), which was already fixed by #450; this PR adds the regression guard so the fix cannot be silently reverted. The guard substantively covers the referenced problem: presence of cancel-in-progress: false, absence of cancel-in-progress: true, and per-issue lane routing.

Findings

  • No security concerns: no auth/secrets/crypto changes, no new dependencies, no script logic — read-only grep assertions in a Bats test plus a test-list registration in lint.yml.
  • Secret scan: gitleaks CI check passed. The run_secret_scanning MCP tool was not available in this environment (noted, not blocking).
  • Test quality: negative assertion uses [ "$status" -eq 1 ] (exact grep no-match), addressing the prior gemini-code-assist comment about false passes when the target file is missing.
  • Blocking: the template-drift CI check fails on .github/workflows/dev-lead.yml (committed blob abf3975d2fe3 != expected dd5cfab97a29). This is NOT caused by this PR — template-drift passed on this PR's original commit (93a65ef, 04:40 UTC) and began failing only after the merge from main (1f1c814, 04:54 UTC), and this PR touches neither dev-lead.yml, standards/, nor the seed script. Fix is org-side: re-seed via scripts/seed-repo-template.sh (edit standards/, not the template). Once template-drift is green, this PR is safe to approve.

CI status

All checks green except template-drift (fail, pre-existing drift unrelated to this PR — see Findings). Passing: Lint, bats (includes the new suite), shellcheck ×2, ShellCheck, CodeQL (actions + python), Secret scan (gitleaks), Agent Security Scan, SonarCloud (quality gate passed, 0 issues), agent-shield, holdout-guard, test-deletion guard, unit-tests, gh-aw-compile, template validators, CodeRabbit (approved). Dependabot/dependency-audit jobs skipped (not applicable).


Reviewed automatically by the PR-review agent (single-reviewer mode: fable 5). Reply if you need a human review.

Additional tasks

  1. Resolve all unresolved review thread comments from other reviewers
  2. Ensure all CI checks pass after your changes
  3. Rebase on the target branch if behind
  4. Do NOT modify files unrelated to the findings above

The review cascade will automatically re-review after new commits are pushed.

@don-petry
don-petry disabled auto-merge July 14, 2026 06:04
@sonarqubecloud

Copy link
Copy Markdown

@don-petry
don-petry enabled auto-merge (squash) July 14, 2026 06:06
@don-petry
don-petry disabled auto-merge July 14, 2026 06:08
@don-petry

Copy link
Copy Markdown
Collaborator Author

Dev-Lead — fix-bot-comment (no-changes)

Agent reasoning
1. **Copilot review thread (resolved):** The test file had already been added to `.github/workflows/lint.yml` (line 114), making it executable in CI. Replied and resolved the thread.
**Files changed:** 
- `.github/workflows/lint.yml` (already added `tests/test_dev_lead_concurrency_guard.bats` to the bats job)
- `tests/test_dev_lead_concurrency_guard.bats` (new regression guard test)
**Result:**
- ✅ SonarCloud Quality Gate: Passed (0 new issues)
- ✅ All CI checks: Passed  
- ✅ All review threads: Resolved
- ✅ No Tier 1 blockers
The PR is ready.

@don-petry
don-petry enabled auto-merge (squash) July 14, 2026 06:09

@donpetry-bot donpetry-bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Automated review — APPROVED ✓

Risk: LOW
Reviewed commit: a432d862ed12559fbe3948be61f632fd5cbf6bc8
Review mode: triage-approved (single reviewer)

Summary

Test-only PR adding a Bats regression guard (tests/test_dev_lead_concurrency_guard.bats, 27 lines) for the #443/#450 dev-lead concurrency fix, plus a one-line registration in lint.yml's bats file list. All three assertions were re-verified against the current .github/workflows/dev-lead-reusable.yml: cancel-in-progress: false (line 65), no cancel-in-progress: true anywhere, and the per-issue dev-lead-issue- lane (line 60). The prior review (sha 20efbd4) escalated solely because the template-drift check was red from pre-existing drift merged in from main — template-drift now passes on this head, and the only changes since the prior reviewed SHA are merges from main (no test-file changes). All 5 review threads (grep ERE \s portability, CI registration, comment casing, negative-assertion exit code) are resolved and applied in the final test.

Linked issue analysis

No linked issues via closing references. The PR body references #443 (multi-label issue creation cancelling dev-lead dispatch), already fixed by #450 (separate per-issue/per-PR concurrency lanes with cancel-in-progress: false). This PR adds the regression guard so that fix cannot be silently reverted; the three assertions substantively cover the referenced problem.

Findings

  • No security concerns: no auth/secrets/crypto/dependency changes; read-only grep assertions in a Bats test plus a test-list registration in lint.yml.
  • Secret scan: gitleaks CI check passed. The run_secret_scanning MCP tool was not available in this environment (noted, not blocking).
  • Prior review's single blocking finding (template-drift failure, pre-existing and unrelated to this PR) is resolved — template-drift is green on this head.
  • Test quality: negative assertion uses exact exit-status 1, patterns use POSIX [[:space:]] (ERE-safe), and the new suite is registered in lint.yml so it actually runs in CI (bats check green, 3/3).
  • Triage assessment confirmed: LOW risk, nothing missed.

CI status

All verification checks green: Lint, bats (includes the new suite), shellcheck/ShellCheck, CodeQL (actions + python), Secret scan (gitleaks), Agent Security Scan, SonarCloud (quality gate passed), agent-shield, holdout-guard, guard, unit-tests, gh-aw-compile, template-drift, validate-personas, validate-agent-profiles. CodeRabbit approved. The only cancelled runs are dev-lead / dispatch and dev-lead / ci-relay automation lanes (superseded agent runs, not required checks); dependency-audit jobs skipped (not applicable).


Reviewed automatically by the PR-review agent (single-reviewer mode: fable 5). Reply if you need a human review.

@don-petry
don-petry merged commit cae96e8 into main Jul 14, 2026
32 of 43 checks passed
@don-petry
don-petry deleted the test/dev-lead-concurrency-guard-443 branch July 14, 2026 06:11

@donpetry-bot donpetry-bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Automated review — APPROVED ✓

Risk: LOW
Reviewed commit: a432d862ed12559fbe3948be61f632fd5cbf6bc8
Review mode: triage-approved (single reviewer)

Summary

Test-only PR adding a Bats regression guard (tests/test_dev_lead_concurrency_guard.bats) for the #443/#450 dev-lead concurrency fix, plus a one-line registration in the lint workflow's bats file list. All three assertions were verified against the current .github/workflows/dev-lead-reusable.yml: cancel-in-progress: false (line 65), no cancel-in-progress: true anywhere, and the per-issue dev-lead-issue- lane (line 60). The prior review's sole blocker — a red template-drift check caused by pre-existing drift on main, unrelated to this PR — is now green at the current head after the merge from main.

Linked issue analysis

No linked issues via closing references. The PR body references #443 (multi-label issue creation cancelling dev-lead dispatch), already fixed by #450; this PR adds the regression guard so that fix cannot be silently reverted. The guard substantively covers the referenced problem: presence of cancel-in-progress: false, absence of cancel-in-progress: true, and per-issue lane routing.

Findings

  • Prior review (cycle 1, sha 20efbd4) escalated only because template-drift was red from unrelated drift on main; that check is SUCCESS at the current head. Changes since the prior reviewed SHA are merges from main only — the PR's own diff is unchanged. Resolved.
  • No security concerns: no auth/secrets/crypto changes, no new dependencies, no executable logic — read-only grep assertions in a Bats test plus a test-list registration in lint.yml.
  • Secret scan: gitleaks CI check passed. The run_secret_scanning MCP tool was not available in this environment (noted, not blocking).
  • All 5 review threads are resolved: bot feedback was applied (POSIX [[:space:]] instead of \s in grep -E, exact-status [ "$status" -eq 1 ] for the negative assertion, lint.yml registration, comment casing fix).
  • Triage assessment confirmed: low-risk, well-scoped, guard assertions verified accurate against the target workflow.

CI status

All required checks green (SonarCloud, CodeQL, agent-shield / AgentShield, dependency-audit / Detect ecosystems). Also passing: Lint, bats (includes the new suite), shellcheck, ShellCheck, CodeQL actions+python, Secret scan (gitleaks), Agent Security Scan, SonarCloud quality gate (0 new issues), holdout-guard, guard, unit-tests, template-drift, gh-aw-compile, validate-agent-profiles, validate-personas, CodeRabbit (approved). The cancelled dev-lead / dispatch and dev-lead / ci-relay entries are the org's own automation runs superseded by newer same-lane events (non-required, not verification checks — ironically the exact queueing behavior this PR's guard protects). Dependency-audit ecosystem jobs skipped (not applicable).


Reviewed automatically by the PR-review agent (single-reviewer mode: fable 5). Reply if you need a human review.

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.

3 participants