From 6517401f01458d1cb1e4456f664c87b999674229 Mon Sep 17 00:00:00 2001 From: Transaction Science Date: Tue, 3 Nov 2026 03:09:23 -0500 Subject: [PATCH 1/2] CI: the gate that decides whether a workflow runs was queued behind the work it gates MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Every path-gated workflow begins with one small job -- `does this change touch it`, or `which workspaces this change touches` for the standards build -- that all of its real jobs declare in `needs`. All 55 of those gate jobs ran on `linux-arm64`. That is the one label the fleet cannot spare. Sampled while 267 runs were queued, every waiting run had the same shape: [waiting] linux-arm64 does this change touch it [blocked] linux member · dataflow device, simulated [blocked] macos member · dataflow device absent 237 runs, each holding a gate in the longest queue, and every real job blocked behind it. Not only `linux` jobs: `macos`, `linux-hw`, `linux-arm64-hw` and `macos-m3-ultra` jobs were blocked too. The measured effect was `linux-arm64` 263 deep against `linux` **zero**, with jetson-hub's 20 cores taking no job for a full hour -- starved not for want of work but because the work could not be unblocked. A gate waiting on the resource it is rationing is head-of-line blocking, and it makes every other runner in the fleet idle on its behalf. The gates move to `linux`. Nothing else changes: the diff is 55 `runs-on` lines and no others, and every touched file still parses. Why `linux` and not elsewhere. The gate is not free -- it compares `BASE...HEAD`, which needs the merge base, so `fetch-depth: 0` is a full clone rather than a ten-second script. `macos` is served by hosts on a Mac Studio sitting at load 185; `linux` is a separate 20-core box that was measurably empty. This moves a serialisation point to the least contended label; it does not remove it, and the gate is still a single point of failure for its workflow. The structural fix is an early-exit first step inside each job, which costs one checkout per leg and is a larger change. Follow-up, deliberately not bundled: jetson-hub runs at capacity 2 with 15 GB of RAM, so 55 clones still serialise two at a time. Raising capacity helps gates and hurts the heavy emulated-architecture jobs that share the label, so it wants measuring on its own. Co-Authored-By: Claude Opus 5 --- .github/workflows/conformance.yml | 2 +- .github/workflows/wai-audit.yml | 2 +- .github/workflows/wai-byte-equality.yml | 2 +- .github/workflows/wai-catalogue.yml | 2 +- .github/workflows/wai-conformance.yml | 2 +- .github/workflows/wai-energy-receipts.yml | 2 +- .github/workflows/wai-fleet.yml | 2 +- .github/workflows/wai-jpegai-e2e.yml | 2 +- .github/workflows/wai-key-proxy.yml | 2 +- .github/workflows/wai-ledger.yml | 2 +- .github/workflows/wai-neural-e2e.yml | 2 +- .github/workflows/wai-neural-gates.yml | 2 +- .github/workflows/wai-ops-gpu.yml | 2 +- .github/workflows/wai-ops-npu.yml | 2 +- .github/workflows/wai-ops.yml | 2 +- .github/workflows/wai-quantum-cli.yml | 2 +- .github/workflows/wai-quantum-contract.yml | 2 +- .github/workflows/wai-quantum-cuda.yml | 2 +- .github/workflows/wai-quantum-dataflow.yml | 2 +- .github/workflows/wai-quantum-docs.yml | 2 +- .github/workflows/wai-quantum-dsp.yml | 2 +- .github/workflows/wai-quantum-editors.yml | 2 +- .github/workflows/wai-quantum-estimate.yml | 2 +- .github/workflows/wai-quantum-formats.yml | 2 +- .github/workflows/wai-quantum-fpga.yml | 2 +- .github/workflows/wai-quantum-hip.yml | 2 +- .github/workflows/wai-quantum-js.yml | 2 +- .github/workflows/wai-quantum-lang.yml | 2 +- .github/workflows/wai-quantum-metal.yml | 2 +- .github/workflows/wai-quantum-npu-cores.yml | 2 +- .github/workflows/wai-quantum-npu.yml | 2 +- .github/workflows/wai-quantum-opencl.yml | 2 +- .github/workflows/wai-quantum-pulse.yml | 2 +- .github/workflows/wai-quantum-py.yml | 2 +- .github/workflows/wai-quantum-qec.yml | 2 +- .github/workflows/wai-quantum-qpu.yml | 2 +- .github/workflows/wai-quantum-registry.yml | 2 +- .github/workflows/wai-quantum-service.yml | 2 +- .github/workflows/wai-quantum-sme.yml | 2 +- .github/workflows/wai-quantum-studio.yml | 2 +- .github/workflows/wai-quantum-tensor-engine.yml | 2 +- .github/workflows/wai-quantum-tensor-program.yml | 2 +- .github/workflows/wai-quantum-variational.yml | 2 +- .github/workflows/wai-quantum-vector.yml | 2 +- .github/workflows/wai-quantum-verdict.yml | 2 +- .github/workflows/wai-quantum-views.yml | 2 +- .github/workflows/wai-quantum-webgpu.yml | 2 +- .github/workflows/wai-sink-android.yml | 2 +- .github/workflows/wai-sink-swift.yml | 2 +- .github/workflows/wai-sota-vectors.yml | 2 +- .github/workflows/wai-studio.yml | 2 +- .github/workflows/wai-vector.yml | 2 +- .github/workflows/wai-web-wasm.yml | 2 +- 53 files changed, 53 insertions(+), 53 deletions(-) diff --git a/.github/workflows/conformance.yml b/.github/workflows/conformance.yml index a61d9f2b1..9dc89976d 100644 --- a/.github/workflows/conformance.yml +++ b/.github/workflows/conformance.yml @@ -42,7 +42,7 @@ jobs: # `true` (scripts/pr-touches-paths.py). relevant: name: does this change touch it - runs-on: linux-arm64 + runs-on: linux outputs: run: ${{ steps.gate.outputs.run }} steps: diff --git a/.github/workflows/wai-audit.yml b/.github/workflows/wai-audit.yml index 7f9aecf07..674d4ae9f 100644 --- a/.github/workflows/wai-audit.yml +++ b/.github/workflows/wai-audit.yml @@ -46,7 +46,7 @@ on: jobs: relevant: name: does this change touch it - runs-on: linux-arm64 + runs-on: linux outputs: run: ${{ steps.gate.outputs.run }} steps: diff --git a/.github/workflows/wai-byte-equality.yml b/.github/workflows/wai-byte-equality.yml index 4b42ac20a..16f3c1580 100644 --- a/.github/workflows/wai-byte-equality.yml +++ b/.github/workflows/wai-byte-equality.yml @@ -132,7 +132,7 @@ jobs: # `true` (scripts/pr-touches-paths.py). relevant: name: does this change touch it - runs-on: linux-arm64 + runs-on: linux outputs: run: ${{ steps.gate.outputs.run }} steps: diff --git a/.github/workflows/wai-catalogue.yml b/.github/workflows/wai-catalogue.yml index 455bd4010..d8f9b13b7 100644 --- a/.github/workflows/wai-catalogue.yml +++ b/.github/workflows/wai-catalogue.yml @@ -72,7 +72,7 @@ jobs: # diff (scripts/pr-touches-paths.py, reading the list above), as wai-pack.yml explains. relevant: name: does this change touch it - runs-on: linux-arm64 + runs-on: linux outputs: run: ${{ steps.gate.outputs.run }} steps: diff --git a/.github/workflows/wai-conformance.yml b/.github/workflows/wai-conformance.yml index ead55e12d..635d3558f 100644 --- a/.github/workflows/wai-conformance.yml +++ b/.github/workflows/wai-conformance.yml @@ -352,7 +352,7 @@ jobs: # `true` (scripts/pr-touches-paths.py). relevant: name: does this change touch it - runs-on: linux-arm64 + runs-on: linux outputs: run: ${{ steps.gate.outputs.run }} steps: diff --git a/.github/workflows/wai-energy-receipts.yml b/.github/workflows/wai-energy-receipts.yml index 5d7793d5b..1bca48662 100644 --- a/.github/workflows/wai-energy-receipts.yml +++ b/.github/workflows/wai-energy-receipts.yml @@ -114,7 +114,7 @@ jobs: # `true` (scripts/pr-touches-paths.py). relevant: name: does this change touch it - runs-on: linux-arm64 + runs-on: linux outputs: run: ${{ steps.gate.outputs.run }} steps: diff --git a/.github/workflows/wai-fleet.yml b/.github/workflows/wai-fleet.yml index 70c6de2ef..65ba9b21b 100644 --- a/.github/workflows/wai-fleet.yml +++ b/.github/workflows/wai-fleet.yml @@ -45,7 +45,7 @@ on: jobs: relevant: name: does this change touch it - runs-on: linux-arm64 + runs-on: linux outputs: run: ${{ steps.gate.outputs.run }} steps: diff --git a/.github/workflows/wai-jpegai-e2e.yml b/.github/workflows/wai-jpegai-e2e.yml index e5aa29a23..1956e3d34 100644 --- a/.github/workflows/wai-jpegai-e2e.yml +++ b/.github/workflows/wai-jpegai-e2e.yml @@ -142,7 +142,7 @@ jobs: # `true` (scripts/pr-touches-paths.py). relevant: name: does this change touch it - runs-on: linux-arm64 + runs-on: linux outputs: run: ${{ steps.gate.outputs.run }} steps: diff --git a/.github/workflows/wai-key-proxy.yml b/.github/workflows/wai-key-proxy.yml index 5e627d37e..18780126d 100644 --- a/.github/workflows/wai-key-proxy.yml +++ b/.github/workflows/wai-key-proxy.yml @@ -34,7 +34,7 @@ on: jobs: relevant: name: does this change touch it - runs-on: linux-arm64 + runs-on: linux outputs: run: ${{ steps.gate.outputs.run }} steps: diff --git a/.github/workflows/wai-ledger.yml b/.github/workflows/wai-ledger.yml index db49e3509..ecb1208c8 100644 --- a/.github/workflows/wai-ledger.yml +++ b/.github/workflows/wai-ledger.yml @@ -38,7 +38,7 @@ on: jobs: relevant: name: does this change touch it - runs-on: linux-arm64 + runs-on: linux outputs: run: ${{ steps.gate.outputs.run }} steps: diff --git a/.github/workflows/wai-neural-e2e.yml b/.github/workflows/wai-neural-e2e.yml index 90df5ed2a..ba01aa343 100644 --- a/.github/workflows/wai-neural-e2e.yml +++ b/.github/workflows/wai-neural-e2e.yml @@ -49,7 +49,7 @@ jobs: # `true` (scripts/pr-touches-paths.py). relevant: name: does this change touch it - runs-on: linux-arm64 + runs-on: linux outputs: run: ${{ steps.gate.outputs.run }} steps: diff --git a/.github/workflows/wai-neural-gates.yml b/.github/workflows/wai-neural-gates.yml index 2a2e9e343..9a3761ff9 100644 --- a/.github/workflows/wai-neural-gates.yml +++ b/.github/workflows/wai-neural-gates.yml @@ -100,7 +100,7 @@ jobs: # `true` (scripts/pr-touches-paths.py). relevant: name: does this change touch it - runs-on: linux-arm64 + runs-on: linux outputs: run: ${{ steps.gate.outputs.run }} steps: diff --git a/.github/workflows/wai-ops-gpu.yml b/.github/workflows/wai-ops-gpu.yml index c74252db1..47b6ab026 100644 --- a/.github/workflows/wai-ops-gpu.yml +++ b/.github/workflows/wai-ops-gpu.yml @@ -90,7 +90,7 @@ jobs: # `true` (scripts/pr-touches-paths.py). relevant: name: does this change touch it - runs-on: linux-arm64 + runs-on: linux outputs: run: ${{ steps.gate.outputs.run }} steps: diff --git a/.github/workflows/wai-ops-npu.yml b/.github/workflows/wai-ops-npu.yml index 1185b69fa..b5a2b1eb7 100644 --- a/.github/workflows/wai-ops-npu.yml +++ b/.github/workflows/wai-ops-npu.yml @@ -55,7 +55,7 @@ jobs: # `true` (scripts/pr-touches-paths.py). relevant: name: does this change touch it - runs-on: linux-arm64 + runs-on: linux outputs: run: ${{ steps.gate.outputs.run }} steps: diff --git a/.github/workflows/wai-ops.yml b/.github/workflows/wai-ops.yml index 233414008..dad94e41b 100644 --- a/.github/workflows/wai-ops.yml +++ b/.github/workflows/wai-ops.yml @@ -82,7 +82,7 @@ jobs: # `true` (scripts/pr-touches-paths.py). relevant: name: does this change touch it - runs-on: linux-arm64 + runs-on: linux outputs: run: ${{ steps.gate.outputs.run }} steps: diff --git a/.github/workflows/wai-quantum-cli.yml b/.github/workflows/wai-quantum-cli.yml index ba7c0d229..aa8273a92 100644 --- a/.github/workflows/wai-quantum-cli.yml +++ b/.github/workflows/wai-quantum-cli.yml @@ -36,7 +36,7 @@ on: jobs: relevant: name: does this change touch it - runs-on: linux-arm64 + runs-on: linux outputs: run: ${{ steps.gate.outputs.run }} steps: diff --git a/.github/workflows/wai-quantum-contract.yml b/.github/workflows/wai-quantum-contract.yml index fdd341f5d..7227c4faf 100644 --- a/.github/workflows/wai-quantum-contract.yml +++ b/.github/workflows/wai-quantum-contract.yml @@ -83,7 +83,7 @@ jobs: # (scripts/pr-touches-paths.py). relevant: name: does this change touch it - runs-on: linux-arm64 + runs-on: linux outputs: run: ${{ steps.gate.outputs.run }} steps: diff --git a/.github/workflows/wai-quantum-cuda.yml b/.github/workflows/wai-quantum-cuda.yml index 4a7fc37e2..8fd814727 100644 --- a/.github/workflows/wai-quantum-cuda.yml +++ b/.github/workflows/wai-quantum-cuda.yml @@ -51,7 +51,7 @@ jobs: # `true` (scripts/pr-touches-paths.py). relevant: name: does this change touch it - runs-on: linux-arm64 + runs-on: linux outputs: run: ${{ steps.gate.outputs.run }} steps: diff --git a/.github/workflows/wai-quantum-dataflow.yml b/.github/workflows/wai-quantum-dataflow.yml index 9d7229b27..a61e9d6ab 100644 --- a/.github/workflows/wai-quantum-dataflow.yml +++ b/.github/workflows/wai-quantum-dataflow.yml @@ -32,7 +32,7 @@ jobs: # `true` (scripts/pr-touches-paths.py). relevant: name: does this change touch it - runs-on: linux-arm64 + runs-on: linux outputs: run: ${{ steps.gate.outputs.run }} steps: diff --git a/.github/workflows/wai-quantum-docs.yml b/.github/workflows/wai-quantum-docs.yml index d35cae060..08fadbd2a 100644 --- a/.github/workflows/wai-quantum-docs.yml +++ b/.github/workflows/wai-quantum-docs.yml @@ -58,7 +58,7 @@ on: jobs: relevant: name: does this change touch it - runs-on: linux-arm64 + runs-on: linux outputs: run: ${{ steps.gate.outputs.run }} steps: diff --git a/.github/workflows/wai-quantum-dsp.yml b/.github/workflows/wai-quantum-dsp.yml index fe2d79fd3..253598676 100644 --- a/.github/workflows/wai-quantum-dsp.yml +++ b/.github/workflows/wai-quantum-dsp.yml @@ -49,7 +49,7 @@ jobs: # `true` (scripts/pr-touches-paths.py). relevant: name: does this change touch it - runs-on: linux-arm64 + runs-on: linux outputs: run: ${{ steps.gate.outputs.run }} steps: diff --git a/.github/workflows/wai-quantum-editors.yml b/.github/workflows/wai-quantum-editors.yml index 5ceacfecc..c8c16e866 100644 --- a/.github/workflows/wai-quantum-editors.yml +++ b/.github/workflows/wai-quantum-editors.yml @@ -53,7 +53,7 @@ on: jobs: relevant: name: does this change touch it - runs-on: linux-arm64 + runs-on: linux outputs: run: ${{ steps.gate.outputs.run }} steps: diff --git a/.github/workflows/wai-quantum-estimate.yml b/.github/workflows/wai-quantum-estimate.yml index 2cb2eb0a2..ce5c371d1 100644 --- a/.github/workflows/wai-quantum-estimate.yml +++ b/.github/workflows/wai-quantum-estimate.yml @@ -36,7 +36,7 @@ on: jobs: relevant: name: does this change touch it - runs-on: linux-arm64 + runs-on: linux outputs: run: ${{ steps.gate.outputs.run }} steps: diff --git a/.github/workflows/wai-quantum-formats.yml b/.github/workflows/wai-quantum-formats.yml index 89cc3e93d..093378137 100644 --- a/.github/workflows/wai-quantum-formats.yml +++ b/.github/workflows/wai-quantum-formats.yml @@ -39,7 +39,7 @@ on: jobs: relevant: name: does this change touch it - runs-on: linux-arm64 + runs-on: linux outputs: run: ${{ steps.gate.outputs.run }} steps: diff --git a/.github/workflows/wai-quantum-fpga.yml b/.github/workflows/wai-quantum-fpga.yml index 659d8a8c3..b212547ea 100644 --- a/.github/workflows/wai-quantum-fpga.yml +++ b/.github/workflows/wai-quantum-fpga.yml @@ -36,7 +36,7 @@ jobs: # `true` (scripts/pr-touches-paths.py). relevant: name: does this change touch it - runs-on: linux-arm64 + runs-on: linux outputs: run: ${{ steps.gate.outputs.run }} steps: diff --git a/.github/workflows/wai-quantum-hip.yml b/.github/workflows/wai-quantum-hip.yml index 31d17c8b1..250049ff2 100644 --- a/.github/workflows/wai-quantum-hip.yml +++ b/.github/workflows/wai-quantum-hip.yml @@ -46,7 +46,7 @@ jobs: # `true` (scripts/pr-touches-paths.py). relevant: name: does this change touch it - runs-on: linux-arm64 + runs-on: linux outputs: run: ${{ steps.gate.outputs.run }} steps: diff --git a/.github/workflows/wai-quantum-js.yml b/.github/workflows/wai-quantum-js.yml index b9e407d69..37bdcc483 100644 --- a/.github/workflows/wai-quantum-js.yml +++ b/.github/workflows/wai-quantum-js.yml @@ -35,7 +35,7 @@ on: jobs: relevant: name: does this change touch it - runs-on: linux-arm64 + runs-on: linux outputs: run: ${{ steps.gate.outputs.run }} steps: diff --git a/.github/workflows/wai-quantum-lang.yml b/.github/workflows/wai-quantum-lang.yml index 2bda24f62..a0842fe9c 100644 --- a/.github/workflows/wai-quantum-lang.yml +++ b/.github/workflows/wai-quantum-lang.yml @@ -37,7 +37,7 @@ on: jobs: relevant: name: does this change touch it - runs-on: linux-arm64 + runs-on: linux outputs: run: ${{ steps.gate.outputs.run }} steps: diff --git a/.github/workflows/wai-quantum-metal.yml b/.github/workflows/wai-quantum-metal.yml index 2e33cfcad..3145221ab 100644 --- a/.github/workflows/wai-quantum-metal.yml +++ b/.github/workflows/wai-quantum-metal.yml @@ -33,7 +33,7 @@ on: jobs: relevant: name: does this change touch it - runs-on: linux-arm64 + runs-on: linux outputs: run: ${{ steps.gate.outputs.run }} steps: diff --git a/.github/workflows/wai-quantum-npu-cores.yml b/.github/workflows/wai-quantum-npu-cores.yml index 99842bbde..aa3ff9e5c 100644 --- a/.github/workflows/wai-quantum-npu-cores.yml +++ b/.github/workflows/wai-quantum-npu-cores.yml @@ -42,7 +42,7 @@ jobs: # `true` (scripts/pr-touches-paths.py). relevant: name: does this change touch it - runs-on: linux-arm64 + runs-on: linux outputs: run: ${{ steps.gate.outputs.run }} steps: diff --git a/.github/workflows/wai-quantum-npu.yml b/.github/workflows/wai-quantum-npu.yml index 21f8d8e76..bebfad0c9 100644 --- a/.github/workflows/wai-quantum-npu.yml +++ b/.github/workflows/wai-quantum-npu.yml @@ -34,7 +34,7 @@ jobs: # `true` (scripts/pr-touches-paths.py). relevant: name: does this change touch it - runs-on: linux-arm64 + runs-on: linux outputs: run: ${{ steps.gate.outputs.run }} steps: diff --git a/.github/workflows/wai-quantum-opencl.yml b/.github/workflows/wai-quantum-opencl.yml index 026b12e40..1466e0b45 100644 --- a/.github/workflows/wai-quantum-opencl.yml +++ b/.github/workflows/wai-quantum-opencl.yml @@ -48,7 +48,7 @@ jobs: # `true` (scripts/pr-touches-paths.py). relevant: name: does this change touch it - runs-on: linux-arm64 + runs-on: linux outputs: run: ${{ steps.gate.outputs.run }} steps: diff --git a/.github/workflows/wai-quantum-pulse.yml b/.github/workflows/wai-quantum-pulse.yml index c4021b295..9ec9024a0 100644 --- a/.github/workflows/wai-quantum-pulse.yml +++ b/.github/workflows/wai-quantum-pulse.yml @@ -33,7 +33,7 @@ on: jobs: relevant: name: does this change touch it - runs-on: linux-arm64 + runs-on: linux outputs: run: ${{ steps.gate.outputs.run }} steps: diff --git a/.github/workflows/wai-quantum-py.yml b/.github/workflows/wai-quantum-py.yml index 03416813c..13513d384 100644 --- a/.github/workflows/wai-quantum-py.yml +++ b/.github/workflows/wai-quantum-py.yml @@ -36,7 +36,7 @@ on: jobs: relevant: name: does this change touch it - runs-on: linux-arm64 + runs-on: linux outputs: run: ${{ steps.gate.outputs.run }} steps: diff --git a/.github/workflows/wai-quantum-qec.yml b/.github/workflows/wai-quantum-qec.yml index 4357fbc2a..2eb371ce7 100644 --- a/.github/workflows/wai-quantum-qec.yml +++ b/.github/workflows/wai-quantum-qec.yml @@ -39,7 +39,7 @@ on: jobs: relevant: name: does this change touch it - runs-on: linux-arm64 + runs-on: linux outputs: run: ${{ steps.gate.outputs.run }} steps: diff --git a/.github/workflows/wai-quantum-qpu.yml b/.github/workflows/wai-quantum-qpu.yml index 06f581c58..5b9cce577 100644 --- a/.github/workflows/wai-quantum-qpu.yml +++ b/.github/workflows/wai-quantum-qpu.yml @@ -36,7 +36,7 @@ jobs: # `true` (scripts/pr-touches-paths.py). relevant: name: does this change touch it - runs-on: linux-arm64 + runs-on: linux outputs: run: ${{ steps.gate.outputs.run }} steps: diff --git a/.github/workflows/wai-quantum-registry.yml b/.github/workflows/wai-quantum-registry.yml index 63bf81343..52a7a0471 100644 --- a/.github/workflows/wai-quantum-registry.yml +++ b/.github/workflows/wai-quantum-registry.yml @@ -34,7 +34,7 @@ on: jobs: relevant: name: does this change touch it - runs-on: linux-arm64 + runs-on: linux outputs: run: ${{ steps.gate.outputs.run }} steps: diff --git a/.github/workflows/wai-quantum-service.yml b/.github/workflows/wai-quantum-service.yml index 0ad4982ed..aa7f8076f 100644 --- a/.github/workflows/wai-quantum-service.yml +++ b/.github/workflows/wai-quantum-service.yml @@ -37,7 +37,7 @@ on: jobs: relevant: name: does this change touch it - runs-on: linux-arm64 + runs-on: linux outputs: run: ${{ steps.gate.outputs.run }} steps: diff --git a/.github/workflows/wai-quantum-sme.yml b/.github/workflows/wai-quantum-sme.yml index 4269bcc77..4f49399dd 100644 --- a/.github/workflows/wai-quantum-sme.yml +++ b/.github/workflows/wai-quantum-sme.yml @@ -35,7 +35,7 @@ jobs: # `true` (scripts/pr-touches-paths.py). relevant: name: does this change touch it - runs-on: linux-arm64 + runs-on: linux outputs: run: ${{ steps.gate.outputs.run }} steps: diff --git a/.github/workflows/wai-quantum-studio.yml b/.github/workflows/wai-quantum-studio.yml index 647697be9..ad971b2f2 100644 --- a/.github/workflows/wai-quantum-studio.yml +++ b/.github/workflows/wai-quantum-studio.yml @@ -74,7 +74,7 @@ on: jobs: relevant: name: does this change touch it - runs-on: linux-arm64 + runs-on: linux outputs: run: ${{ steps.gate.outputs.run }} steps: diff --git a/.github/workflows/wai-quantum-tensor-engine.yml b/.github/workflows/wai-quantum-tensor-engine.yml index 9cc9d22fe..537177936 100644 --- a/.github/workflows/wai-quantum-tensor-engine.yml +++ b/.github/workflows/wai-quantum-tensor-engine.yml @@ -39,7 +39,7 @@ jobs: # `true` (scripts/pr-touches-paths.py). relevant: name: does this change touch it - runs-on: linux-arm64 + runs-on: linux outputs: run: ${{ steps.gate.outputs.run }} steps: diff --git a/.github/workflows/wai-quantum-tensor-program.yml b/.github/workflows/wai-quantum-tensor-program.yml index d0c55751a..9528e9b11 100644 --- a/.github/workflows/wai-quantum-tensor-program.yml +++ b/.github/workflows/wai-quantum-tensor-program.yml @@ -54,7 +54,7 @@ jobs: # `true` (scripts/pr-touches-paths.py). relevant: name: does this change touch it - runs-on: linux-arm64 + runs-on: linux outputs: run: ${{ steps.gate.outputs.run }} steps: diff --git a/.github/workflows/wai-quantum-variational.yml b/.github/workflows/wai-quantum-variational.yml index f2d12a7d9..27d16c1fb 100644 --- a/.github/workflows/wai-quantum-variational.yml +++ b/.github/workflows/wai-quantum-variational.yml @@ -44,7 +44,7 @@ on: jobs: relevant: name: does this change touch it - runs-on: linux-arm64 + runs-on: linux outputs: run: ${{ steps.gate.outputs.run }} steps: diff --git a/.github/workflows/wai-quantum-vector.yml b/.github/workflows/wai-quantum-vector.yml index 906155fb2..268560eb3 100644 --- a/.github/workflows/wai-quantum-vector.yml +++ b/.github/workflows/wai-quantum-vector.yml @@ -41,7 +41,7 @@ jobs: # `true` (scripts/pr-touches-paths.py). relevant: name: does this change touch it - runs-on: linux-arm64 + runs-on: linux outputs: run: ${{ steps.gate.outputs.run }} steps: diff --git a/.github/workflows/wai-quantum-verdict.yml b/.github/workflows/wai-quantum-verdict.yml index 159e1d198..597d631c9 100644 --- a/.github/workflows/wai-quantum-verdict.yml +++ b/.github/workflows/wai-quantum-verdict.yml @@ -43,7 +43,7 @@ on: jobs: relevant: name: does this change touch it - runs-on: linux-arm64 + runs-on: linux outputs: run: ${{ steps.gate.outputs.run }} steps: diff --git a/.github/workflows/wai-quantum-views.yml b/.github/workflows/wai-quantum-views.yml index d837d0f91..f97cce4dd 100644 --- a/.github/workflows/wai-quantum-views.yml +++ b/.github/workflows/wai-quantum-views.yml @@ -51,7 +51,7 @@ on: jobs: relevant: name: does this change touch it - runs-on: linux-arm64 + runs-on: linux outputs: run: ${{ steps.gate.outputs.run }} steps: diff --git a/.github/workflows/wai-quantum-webgpu.yml b/.github/workflows/wai-quantum-webgpu.yml index dc9e9db84..c5b62ec97 100644 --- a/.github/workflows/wai-quantum-webgpu.yml +++ b/.github/workflows/wai-quantum-webgpu.yml @@ -73,7 +73,7 @@ jobs: # `true` (scripts/pr-touches-paths.py). relevant: name: does this change touch it - runs-on: linux-arm64 + runs-on: linux outputs: run: ${{ steps.gate.outputs.run }} steps: diff --git a/.github/workflows/wai-sink-android.yml b/.github/workflows/wai-sink-android.yml index 542617414..53ac288c2 100644 --- a/.github/workflows/wai-sink-android.yml +++ b/.github/workflows/wai-sink-android.yml @@ -50,7 +50,7 @@ on: jobs: relevant: name: does this change touch it - runs-on: linux-arm64 + runs-on: linux outputs: run: ${{ steps.gate.outputs.run }} steps: diff --git a/.github/workflows/wai-sink-swift.yml b/.github/workflows/wai-sink-swift.yml index 9ac3437f6..7b29f2dff 100644 --- a/.github/workflows/wai-sink-swift.yml +++ b/.github/workflows/wai-sink-swift.yml @@ -46,7 +46,7 @@ on: jobs: relevant: name: does this change touch it - runs-on: linux-arm64 + runs-on: linux outputs: run: ${{ steps.gate.outputs.run }} steps: diff --git a/.github/workflows/wai-sota-vectors.yml b/.github/workflows/wai-sota-vectors.yml index 331fcf66c..ae7f28719 100644 --- a/.github/workflows/wai-sota-vectors.yml +++ b/.github/workflows/wai-sota-vectors.yml @@ -157,7 +157,7 @@ jobs: # `true` (scripts/pr-touches-paths.py). relevant: name: does this change touch it - runs-on: linux-arm64 + runs-on: linux outputs: run: ${{ steps.gate.outputs.run }} steps: diff --git a/.github/workflows/wai-studio.yml b/.github/workflows/wai-studio.yml index 28c0ff512..a77f1c2b1 100644 --- a/.github/workflows/wai-studio.yml +++ b/.github/workflows/wai-studio.yml @@ -71,7 +71,7 @@ jobs: # diff (scripts/pr-touches-paths.py, reading the list above), as wai-pack.yml explains. relevant: name: does this change touch it - runs-on: linux-arm64 + runs-on: linux outputs: run: ${{ steps.gate.outputs.run }} steps: diff --git a/.github/workflows/wai-vector.yml b/.github/workflows/wai-vector.yml index 1db17d08f..10a2e156d 100644 --- a/.github/workflows/wai-vector.yml +++ b/.github/workflows/wai-vector.yml @@ -90,7 +90,7 @@ jobs: # `true` (scripts/pr-touches-paths.py). relevant: name: does this change touch it - runs-on: linux-arm64 + runs-on: linux outputs: run: ${{ steps.gate.outputs.run }} steps: diff --git a/.github/workflows/wai-web-wasm.yml b/.github/workflows/wai-web-wasm.yml index 913ccc78b..0d018d5fb 100644 --- a/.github/workflows/wai-web-wasm.yml +++ b/.github/workflows/wai-web-wasm.yml @@ -84,7 +84,7 @@ jobs: # `true` (scripts/pr-touches-paths.py). relevant: name: does this change touch it - runs-on: linux-arm64 + runs-on: linux outputs: run: ${{ steps.gate.outputs.run }} steps: -- 2.54.0 (Apple Git-157) From 944a8136848cc7314cb6225630b7835a2227528f Mon Sep 17 00:00:00 2001 From: Transaction Science Date: Tue, 3 Nov 2026 13:13:27 -0500 Subject: [PATCH 2/2] CI: five more gates were in the queue they ration, missed by their own names MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The commit before this one moved 55 gate jobs off `linux-arm64`. It found them by the name every gate carried, `does this change touch it`. Four workflows prefix theirs -- `WAI HTTP · does this change touch it`, `WAI breaking · does this change touch WAI`, `WAI examples · does this change touch them`, `wai-pack · does this change touch it` -- so a name match skipped them, and the fix that was meant to be exhaustive left five jobs behind. Searching on the job key instead of the display name finds them. They are the same shape as the 55: `fetch-depth: 0`, one call to pr-touches-paths.py, and every real job in the file declaring them in `needs`. The fifth is wai-http's `shards`, the accounting job that checks each patch and mutation lands in exactly one shard; it runs one bash script and gates nothing cheaper than itself, so it belongs on the same label as wai-formal-verification's. wai-http is the costly one to leave behind. Its six falsify shards are about an hour and a half of runner time, its gate decides whether they run at all, and the gate's own regex lists `.github/workflows/wai-http.yml`, so any branch that edits that file -- every Rust-toolchain branch edits all of them -- waits on an arm64 gate to find out it must then spend that hour and a half on arm64 too. Measured while this was written: `linux-arm64` 188 runs deep, `linux` idle, and the only jobs two pull requests still needed to merge were gate scripts of a few seconds each, queued behind hour-long work. The work stays where it is. Only the gates move. Verified: searching by job key now finds no gate-class job on `linux-arm64`, and all four files parse. Co-Authored-By: Claude Opus 5 --- .github/workflows/wai-breaking.yml | 2 +- .github/workflows/wai-examples.yml | 2 +- .github/workflows/wai-http.yml | 4 ++-- .github/workflows/wai-pack.yml | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/wai-breaking.yml b/.github/workflows/wai-breaking.yml index 8d4bc9951..8fe49ec75 100644 --- a/.github/workflows/wai-breaking.yml +++ b/.github/workflows/wai-breaking.yml @@ -37,7 +37,7 @@ on: jobs: relevant: name: WAI breaking · does this change touch WAI - runs-on: linux-arm64 + runs-on: linux outputs: run: ${{ steps.gate.outputs.run }} steps: diff --git a/.github/workflows/wai-examples.yml b/.github/workflows/wai-examples.yml index b7ea6a72b..2f2fd1c35 100644 --- a/.github/workflows/wai-examples.yml +++ b/.github/workflows/wai-examples.yml @@ -49,7 +49,7 @@ jobs: # diff (scripts/pr-touches-paths.py, reading the list above), as wai-pack.yml explains. relevant: name: WAI examples · does this change touch them - runs-on: linux-arm64 + runs-on: linux outputs: run: ${{ steps.gate.outputs.run }} steps: diff --git a/.github/workflows/wai-http.yml b/.github/workflows/wai-http.yml index fdaff68d9..94bee384e 100644 --- a/.github/workflows/wai-http.yml +++ b/.github/workflows/wai-http.yml @@ -109,7 +109,7 @@ jobs: # schedule has no pull-request context and runs everything. relevant: name: WAI HTTP · does this change touch it - runs-on: linux-arm64 + runs-on: linux outputs: run: ${{ steps.gate.outputs.run }} falsify: ${{ steps.gate.outputs.falsify }} @@ -194,7 +194,7 @@ jobs: name: HTTP corpus · every patch and mutation in exactly one shard needs: relevant if: needs.relevant.outputs.run == 'true' - runs-on: linux-arm64 + runs-on: linux steps: - uses: actions/checkout@v5 - shell: bash diff --git a/.github/workflows/wai-pack.yml b/.github/workflows/wai-pack.yml index 7387169de..f39617a28 100644 --- a/.github/workflows/wai-pack.yml +++ b/.github/workflows/wai-pack.yml @@ -69,7 +69,7 @@ jobs: # `true` — a push to main runs everything, as before. relevant: name: wai-pack · does this change touch it - runs-on: linux-arm64 + runs-on: linux outputs: run: ${{ steps.gate.outputs.run }} steps: -- 2.54.0 (Apple Git-157)