base red: cmux-actions fixture RUNNER_POOLS holds every declared pool
Base-red-job: cmux-actions / Tests (expressions, matrix, every workflow fixture)
#32457 (bbb2b89006) moved the iOS kit picker's fallback in .github/workflows/cmux-next-ios-kit.yml to fromJSON(vars.RUNNER_POOLS).linux_8. That pool is declared in .github/runners.json and set live, so the workflow is right. The cmux-actions fixture, though, had RUNNER_POOLS = {"linux":"fleet-linux"} only, so the picker's runs-on came out null and 4 "iOS kit picker fallback" cases failed on feat-cmux-next.
Fix, test-only (the workflow is unchanged and nothing is pinned):
- The fixture
RUNNER_POOLSnow holds every pool declared in.github/runners.jsonat its first member, which is whatscripts/ci/runner_pools.pykeeps it at.linuxstaysfleet-linux, so trigger planning still sees a fleet candidate. - The iOS kit cases now test the pool reads: the eight vCPU pool, a moved pool being followed, the bounded LINUX_RUNNER 4/8/16 sizes, a fleet or invalid LINUX_RUNNER being rejected for the pool, and saved overflow reading
linux_16. I dropped the unset and empty variable cases: RUNNER_POOLS is required, and an unset one fails the run atfromJSON()(tests/runs_on_labels.py).
Checks: vitest run test/ passes 1032/1032 (4 failed before), tsc --noEmit passes, and tests/test_ci_no_single_size_pins.py is OK.
Agent session: agent session
๐ค Generated with Claude Code
![Autofix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/autofix-with-codesmith-dark-3x.png)
Open in [code]smith ยท Need help on this PR? Tag @codesmith-bot with what you need.
Summary by cubic
Fixes the cmux-actions fixture so the iOS kit picker fallback tests pass on feat-cmux-next.
#32457 moved the picker's fallback to fromJSON(vars.RUNNER_POOLS).linux_8, but the fixture variable held only linux, so the picker resolved to a null runs-on and four cases failed. The fixture now holds every pool declared in .github/runners.json at its first member โ what scripts/ci/runner_pools.py keeps them at โ and the iOS kit cases test the pool reads: the eight vCPU pool, a moved pool, the bounded LINUX_RUNNER 4/8/16 sizes, and saved overflow reading linux_16. The unset and empty variable cases are gone; RUNNER_POOLS is required and an unset one fails the run at fromJSON().
Test-only: the workflow is unchanged and nothing is pinned.