ci: keep cmux-next macOS jobs minis-first through retries
Merged
TE
12d ago+137+137+012345678901234567890123456789-83-83-01234567890123456789
Problem
Merged #16728 turned a busy owned side label into an immediate Blacksmith fallback. With the rescue still using its 90-second budget, most cmux-next Mac jobs never got a mini on their first attempt, and every retry used Blacksmith.
Change
- Keep trusted cmux-next Mac jobs on the owned
glaeda-side-*label while minis drain. Placement still records idle capacity, but an instantaneous busy result never routes a job away from the minis. - Keep manual retries and the rescue's second attempt minis-first. A later bot retry is the measured overflow route.
- Give cmux-next's owned-pool watch a 600-second queue budget before overflow. Other side-lane fallback behavior and fork PR routing remain unchanged.
- Keep the existing marker and rescue flow so a job that remains queued or is refused is observed and retried.
Tests
python3 tests/test_ci_side_lane_placement.pypython3 tests/test_ci_owned_pool_rescue.pypython3 tests/test_cmux_next_checks_workflow.pyactionlint .github/workflows/cmux-next.yml .github/workflows/ci-owned-pool-rescue.ymlgit diff --check
The first commit is the regression test; the second implements the routing and rescue change.
โ Whistle g1 ๐๏ธ
Run: run_cmux_next_minis_first_overflow_fix_20261002_2ac8a347
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.
Summary by cubic
Keeps trusted cmux-next macOS jobs on the owned glaeda-side-* label while the minis' pool drains, instead of routing them to Blacksmith the moment a mini is busy.
- Runs queue on the owned label for a 600-second rescue budget before overflowing.
- Manual retries and the bot's second attempt stay minis-first; only a cron/timer (bot) third attempt takes the Blacksmith overflow route.
- Placement records idle capacity but never turns a busy mini into an instant fallback; fork pull requests keep their Blacksmith route.