Skip to content

fix(ci): update test_strix_quick_gate.sh's stale cron assertion from #1630 - #1750

Merged
seonghobae merged 2 commits into
mainfrom
fix/strix-quick-gate-stale-cron-assertion
Sep 3, 2026
Merged

fix(ci): update test_strix_quick_gate.sh's stale cron assertion from #1630#1750
seonghobae merged 2 commits into
mainfrom
fix/strix-quick-gate-stale-cron-assertion

Conversation

@seonghobae

Copy link
Copy Markdown
Contributor

Summary

The required exact-head-path-policy check was failing organization-wide on unrelated PRs (observed directly on .github#1476, whose own diff never touches this script or the scheduler workflow) with:

FAIL: scheduler wakes frequently enough to clear auto-merge PRs that become stale
after their initial PR events (missing 'cron: "*/30 * * * *"')

Root cause

#1630 deliberately lengthened pr-review-merge-scheduler.yml's repository-local heartbeat from a quarter-hourly cron: "*/30 * * * *" to an hourly cron: "30 * * * *" to reduce Actions-capacity pressure during the sustained organization-wide queue saturation. tests/test_actions_queue_saturation_scheduler_cadence.py was correctly updated at the time (it asserts the new string and explicitly asserts the old one is absent), but the parallel bash contract in scripts/ci/test_strix_quick_gate.sh was not, and kept asserting the literal old string.

This is a genuine, reproducible defect on protected main itself — confirmed by running the script directly against an unmodified, freshly cloned main (8c085835) before making any change: it failed with the identical message. Since exact-head-path-policy is a required check that runs this trusted base-branch script against every PR's own exact head, this silently blocked an unbounded number of unrelated PRs across the whole .github queue until fixed at the root.

Fix

Updated the one stale assertion from 'cron: "*/30 * * * *"' to 'cron: "30 * * * *"', matching the workflow's actual current value and the already-correct Python-side assertion. Also corrected an adjacent stale human-readable description ("scheduler isolates the 15-minute organization sweep from the separate 30-minute scheduled scan") to the current hourly/hourly cadence — both org-queue-sweep and this repository-local scan are now hourly.

Developer experience

  • bash scripts/ci/test_strix_quick_gate.sh — confirmed FAIL on unmodified main before the change, confirmed PASS after.
  • Full suite: coverage run -m pytest tests -q — all passed; coverage report --fail-under=100 — 100% on scripts/ci/; interrogate — 100%.
  • This is a bash-string-only fix with no Python production code touched, so the full-suite pass is a non-regression check, not evidence the fix itself works — the direct before/after script run is that evidence.

User experience

exact-head-path-policy stops failing organization-wide PRs on this assertion once this reaches protected main; any PR whose branch has already synced past this point (or syncs after) picks it up automatically. No workflow behavior change.

Related

  • .github#1630 — the cadence-lengthening change this assertion fell behind.
  • docs/doctoring/actions-queue-saturation-hourly-sweep.md — the original queue-saturation context.
  • Full reasoning, evidence, and risk assessment in docs/product-technical-gap-baseline.md's new 2026-09-02 entry.

🤖 Generated with Claude Code

https://claude.ai/code/session_015Gs7KmNvH75nxz1sL8mKjw


Generated by Claude Code

…1630

pr-review-merge-scheduler.yml's repository-local heartbeat was lengthened
from cron: "*/30 * * * *" to cron: "30 * * * *" by #1630 to reduce
Actions-capacity pressure during organization-wide queue saturation.
tests/test_actions_queue_saturation_scheduler_cadence.py was updated to
match at the time, but the parallel bash contract in
scripts/ci/test_strix_quick_gate.sh was not, and kept asserting the
literal old string -- a genuine, reproducible defect on protected main
itself (confirmed failing on a fresh unmodified main clone before this
change), not a symptom of any one PR being stale. Since exact-head-path-policy
runs this trusted base-branch script against every PR's own exact head,
this silently blocked an unbounded number of unrelated PRs across the
whole .github queue until fixed at the root.

Updates the one stale assertion to the current cron string and corrects
an adjacent stale "15-minute organization sweep / 30-minute scheduled
scan" description to the current hourly/hourly cadence.

Verified: bash scripts/ci/test_strix_quick_gate.sh -- FAIL before this
change on unmodified main, PASS after. Full suite: coverage run -m
pytest tests -q -- all passed; coverage report --fail-under=100 -- 100%
on scripts/ci/; interrogate -- 100%.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015Gs7KmNvH75nxz1sL8mKjw
@coderabbitai

coderabbitai Bot commented Sep 2, 2026

Copy link
Copy Markdown

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true

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.

seonghobae added a commit that referenced this pull request Sep 3, 2026
 (#1788)

PR #1779 changed strix.yml's concurrency group.format() expression from
the 2-argument form to the 3-argument form format('{0}-{1}-{2}', ...) to
restore PR-scoped concurrency (fixing a queue-saturation chicken-egg
problem) while keeping repository+event-class isolation. The bash
contract test scripts/ci/test_strix_quick_gate.sh was never updated to
match, so two assertions in assert_strix_workflow_pr_trigger_hardened()
kept checking for the old 2-argument format('{0}-{1}', ...) literal and
now fail on every PR regardless of that PR's own diff.

The parallel Python contract in
tests/test_required_workflow_queue_contract.py was already correctly
updated for the 3-argument form at the time of PR #1779 -- only the bash
side drifted, the same class of bug PR #1750 fixes for a stale cron
assertion in this same file.

Updated both stale assertions to the current 3-argument
format('{0}-{1}-{2}', ...) literal, preserving their semantic intent and
messages unchanged.


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

Co-authored-by: Claude <noreply@anthropic.com>
# Conflicts:
#	docs/product-technical-gap-baseline.md
@seonghobae
seonghobae marked this pull request as ready for review September 3, 2026 08:44
@seonghobae
seonghobae merged commit 9899c3d into main Sep 3, 2026
13 of 26 checks passed
@seonghobae
seonghobae deleted the fix/strix-quick-gate-stale-cron-assertion branch September 3, 2026 08:44

@devin-ai-integration devin-ai-integration 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.

✅ Devin Review: No Issues Found

Devin Review analyzed this PR and found no bugs or issues to report.

Devin Review

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants