ci(owned-pool guard): a RUNNER_POOLS read isn't an owned pool
Summary
CI fast guards has failed since https://github.com/manaflow-ai/cmux/pull/32457 landed on feat-cmux-next, which made nearly every runner selection read vars.RUNNER_POOLS. The guard counts vars.RUNNER_POOLS as able to take an owned pool, so it reported 116 workflows as unwatched. That failure makes the macOS admission gate refuse app builds and app tests on pull requests to main. feat-cmux-next has its own copy of the guard: https://github.com/manaflow-ai/cmux/pull/32649.
scripts/ci/runner_pools.py rejects any pool member that isn't an ephemeral Blacksmith label, so these reads can't land on an owned Mac. This stops counting them. fast-checks.yml was watched only because of that read, so its entry is removed, as the guard's other check requires. The rescue does nothing for a run with no owned job, so no routing changes.
Testing
python3 tests/test_ci_owned_pool_sources.py with origin/feat-cmux-next at 25db34421e:
- Base: fails
test_every_owned_workflow_is_watched. - Head: 9 tests pass.
python3 tests/test_ci_owned_pool_rescue.py has the same 2 SpendLess errors locally on base and head (KeyError: 'file', this Mac's Python 3.9), so CI is the check for those.
The _POOL_READ_WHY entries in feat-cmux-next's copy of the rescue become unnecessary; they do no harm and are left for that branch.
Changelog
No entry: CI only.
Base 21dcc2b27b2ed014d723067ed253702e914d97ca, head 681b9ddd2c3e27517934f421141c64ea48de867b. Agent: Claude Code.
š¤ Generated with Claude Code
Summary by CodeRabbit
- Bug Fixes
- Updated CI workflow classification: fast checks are no longer treated as side-lane workflows by the rescue process.
- Runner pool configuration alone no longer marks a workflow as owned. Other eligible pool-switch, policy, and extra configuration variables continue to count toward owned-workflow classification.