Base: 3b1a0cfc9b74fbf61cdf4bb2b9e69802eca3158d Head: 84f8fa363294b9e3de2bbfa92d5902d73a86db4f
Two defects found by using the merge queue to deliver PR #3, not by reading the code.
1. branches: filters skipped merge-queue refs
Filters were matched against the ref's literal name, so a job gated on [main] skipped on refs/merge-queue/N.
Observed live on run 2002: PR #3 was gated by verify-pr alone; verify, package and deploy-production all skipped, the merge landed on main, and no run fired on main afterwards. So a queue merge shipped code that was never packaged, never deployed, and never saw cargo fmt, clippy -D warnings, the full test suite or test_pr_pipeline.py. The queue's CI was strictly weaker than the branch's, which inverts the point of the gate. Deploying #3 required a manual akurai_run_queue on the merged SHA (run 2003) to make up the difference.
branches is now matched against the branch the ref is going to become. The existing queue_targets_default computation — an independently approved merge commit the queue is about to land on the default branch — is hoisted above the filter and yields an effective_branch. This mirrors exactly the native-executor trust exception that already sat directly below it, on the same ref, for the same reason. Only merge-queue refs whose entry's PR targets the default branch qualify; every other ref matches on its own name, unchanged.
2. Skip reasons named neither cause nor culprit
A job filtered out by branches: reported Git ref is not allowed for this job, and anything downstream reported dependency did not succeed — which reads as a test failure. On run 2001 that sent me looking for a break that did not exist: verify-pr had passed exit 0 and the real cause was the branch filter.
Now: job is limited to branches ["main"] and this run is on "feature", and dependency "verify" is skipped.
Tests
- A
branches: [main]native job succeeds on a realrefs/merge-queue/Nwhose approved PR targets main. - An unrelated ref is still skipped, with the reason naming both the filter and the actual ref.
335 passing; clippy --all-targets and fmt --check clean.
Note on this PR's own delivery
The running controller is 3b1a0cfc, which predates fix 1 — so this PR's own merge-queue run will again skip verify/package/deploy-production, and will again need a manual run on the merged SHA to deploy. From the next merge onward the queue does the full pipeline by itself.
🤖 Generated with Claude Code
https://claude.ai/code/session_01FRtUmfFA7yWCFpX9dCaXvz