fix(scripts): queue-watch waits on no checks this repository never runs
Merged
DA
11d ago+51+51+01234567890123456789-29-29-01234567890123456789
What
scripts/queue-watch.sh defaulted its extra required checks to Cursor Bugbot and Cursor Security Agent: Security Reviewer. Neither check runs on this repository (none appears in the check rollup of a merged PR such as #1825), so a plain --press kept waiting for them until it timed out. Workers had to run it with QUEUE_WATCH_EXTRA_REQUIRED_CHECKS="" to get around this.
- The default is now no extra checks. The watcher already reads the
mainruleset'srequired_status_checkscontexts from the base ref on every tick (baseRef.rules). Those are TypeScript checks, Postgres migrations and store, and Tests 1ā4, and they are what gate the merge queue.QUEUE_WATCH_EXTRA_REQUIRED_CHECKSstill works as an opt-in, one name per line. Of the two options in the task, I picked this one over "wait only on an extra check once it appears" because it is simpler and can't hang. - The header now explains how to merge here.
mainmerges only through its merge queue, andgh pr mergedoes not enter that queue. The press is the GraphQLenqueuePullRequestmutation, and a stacked PR merges withgh stack merge. The header also documents the env var in the synopsis.
No doc under docs/, .claude/skills/, or AGENTS.md mentioned the old default, so nothing else changed.
Tests
- New
scripts/queue-watch.test.mjscase: with the env var unset and only the ruleset's contexts reported, the watcher reachesREADYafter one read. Without the fix this test fails: the watcher keeps waiting and hits the scripted unreadable read. - Ran it read-only against real PRs: unarmed runs on merged #1825 and #1848 reported
MERGED, and on open PRs it reached the gate without pressing anything. ./scripts/check.shexits 0.
This is not a Mac or UI change, so ./scripts/verify.sh does not apply and was not run.
š¤ Generated with Claude Code