ci(nightly): prefer dedicated mini for variant preparation
Leo said: “BUT WE HAVE A DEDICATED F***ING MAC FOR THAT.”
This stacked follow-up gives only prepare-nightly-variant-primary and prepare-nightly-variant an opt-in preference for the dedicated M4 Pro mini. The selector is deliberately exact: repository manaflow-ai/cmux, NEXT track, attempt 1, and CI_NIGHTLY_ONLY_RUNNER == glaeda-nightly-only-m4pro. When the variable is unset (the current state until rollout and hook registration), existing light-placement and Linux overflow routes are unchanged. Forks, retries, other tracks, and non-matching values preserve their existing fallbacks.
This PR is stacked on #30113 at f70b3ddbddcefb359e6484276b977c3c47e51517; it does not modify #30113. After #30113 lands, rebase this single dedicated-routing commit onto the new feat-cmux-next tip before the pinned merge.
Validation:
python3 tests/test_nightly_dedicated_variant.py(4 passed)python3 tests/test_nightly_trusted_routing.py(34 passed)python3 tests/test_ci_portable_job_placement.py(30 passed)python3 tests/test_ci_nightly_off_blacksmith.pypassed- YAML parse and
git diff --checkpassed
Agent session: https://cmux.com/deeplink/agent?id=aid-cd7a5a0ee7f7c79a3232
🤖 Generated with Claude Code
![View with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/view-with-codesmith-dark-v3-3x.png)
![Autofix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/autofix-with-codesmith-dark-3x.png)
Need help on this PR? Tag @codesmith-bot with what you need.
Summary by cubic
Makes prepare-nightly-variant-primary and prepare-nightly-variant prefer a dedicated M4 Pro mini runner during NEXT-track nightly preparation. The routing is opt-in: it only applies on attempt 1 for manaflow-ai/cmux when CI_NIGHTLY_ONLY_RUNNER is set to glaeda-nightly-only-m4pro; all other forks, retries, tracks, and unset values keep the existing light-placement and Linux overflow fallbacks.
Adds tests covering the reservation selector, including assertion that only the two preparation jobs read it and that unset or non-matching contexts keep existing fallbacks.
- Allowlists
CI_NIGHTLY_ONLY_RUNNERin the runner label policy: only the exactglaeda-nightly-only-m4prolabel is accepted, and the variable counts as a no-hosted-Mac variable. - Propagates the variable through the health-report and repo-variables workflows so drift detection can check it.