ci(cmux-next): preserve bot overflow after placement
Changelog
Fixed: bot rescue reruns now use the Blacksmith fallback after the owned-pool placement attempt.
What changed
A full rerun retains the successful macos-placement job output. The Mac jobs now consume that output only through attempt 2 or a non-rescue trigger, so a bot attempt 3 cannot inherit the stale side label.
Validation
python3 -m unittest tests.test_cmux_next_checks_workflow -q(39 passed)git diff --check
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.
Summary by cubic
Fixes bot rescue reruns of cmux-next macOS jobs so attempts past the second fall back to Blacksmith instead of reusing the stale side-label placement output.
Bot overflow
- Gated
runs-onandCMUX_NEXT_RUNNERon the attempt/actor rule for swift-test, daemon-test, generated-files, release-compile, and cmux-scheme-compile. - Added workflow tests asserting the gate.
[!NOTE]
Low Risk
CI workflow expression change only; affects macOS runner selection on bot reruns, not application code or secrets.
Overview
Fixes owned-pool rescue overflow for cmux-next macOS jobs when github-actions[bot] reruns a workflow after attempt 2.
Previously, runs-on and CMUX_NEXT_RUNNER always preferred needs.macos-placement.outputs.runner when present. A full rerun reuses the successful placement job’s outputs, so bot attempt 3+ could keep scheduling on the stale mini/side label instead of the intended Blacksmith fallback.
The expression now only honors placement output when github.run_attempt <= 2 or the trigger is not the bot—the same rule already used deeper in the fallback chain. swift-test, daemon-test, generated-files, release-compile, and cmux-scheme-compile are updated in both runs-on and CMUX_NEXT_RUNNER.
Adds test_bot_overflow_ignores_stale_placement_output in tests/test_cmux_next_checks_workflow.py to lock in the gated expression.
Reviewed by Cursor Bugbot for commit ae06d2d1ad40278d2ba8ae6bffcb0536c2a07ded. Bugbot is set up for automated code reviews on this repo. Configure here.