ci: guard cmux-tui Linux pool selectors

Closed
TE
4d ago
+222-33

Fix-forward for #30622 at abf86a4d99b6b1211ea8c3a0612fdfba4f41e1ed.

The cmux-tui package Linux selectors now use the live RUNNER_POOLS.linux value only when it is a non-Blacksmith label, and reject Blacksmith-valued inputs before applying the measured overflow switch. This preserves the owner and fork branches while preventing stale pool values from bypassing the outage fallback.

The compile-runner guard now models the pool branch and the guarded input, covering both outage-switch and fork-routing contracts.

Validation:

  • python3 -m unittest tests.test_ci_linux_compile_runners tests.test_cmux_tui_artifacts_linux_runner_set tests.test_ci_portable_job_placement -q (46 passed)
  • git diff --check
  • tests.test_ci_blacksmith_linux_failover retains one unrelated base failure in cmux-next-chromium-currency.yml.

Agent session: agent session


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.


Summary by cubic

Fix-forward for #30622: guards the cmux-tui Linux pool selectors so a stale or Blacksmith-valued pool label can no longer pin jobs to an empty pool instead of the measured overflow fallback.

  • Rejects blacksmith-* values from inputs.linux_runner, vars.LINUX_RUNNER, and vars.RUNNER_POOLS.linux in the package workflow selectors.
  • The artifact daemon's Linux picker (REQUIRE_LIVE_CAPACITY=1) emits the fleet label only when a live online runner carries it; otherwise the daemon job takes the measured Blacksmith fallback.
  • The live runner read now lists the approved cmux-fleet-linux org group alongside glaeda-minis, proving fleet registration instead of trusting repository variables or snapshots.