---
name: a-previous-run-completing-is-not-a-box-free-signal
description: Gating local cargo on "CI run X completed" is not a box-free signal; a new push can occupy the runner in the same minute.
metadata:
  type: feedback
---
hertz 2026-09-24, #331 H2: I queued a local compile to start the instant post-merge run 35988140031 completed (10:38:56Z). todlando's W2 PR #252 had pushed and its Windows unit leg started at ~10:39Z on the same box. doyle's STOP arrived about a minute late, my cargo overlapped the runner leg from 10:38:56 to 10:40:08, and my own leg died on 0xc0000142 STATUS_DLL_INIT_FAILED (contention, VOID).

**Why:** a gate keyed on ONE run's terminal state answers "is that run done". It does not answer "is the runner idle". Every push, PR or rerun between my read and my start re-occupies the box, and the single-slot Windows runner also serves golden.

**How to apply:** the box-free predicate is "no queued or in_progress run on ANY ref targets this runner" (`gh run list --status in_progress` plus `--status queued`, unfiltered by branch), read immediately before the first cargo. It is not the completion of the run you were waiting on. When the gater owns sequencing, wait for their explicit "box free" message instead of automating the gate. Kin: [[dispatch-window-legs-must-name-the-golden-box]], [[a-job-list-read-early-in-a-run-is-not-the-runs-job-set]], [[link-exit-0xc0000142-under-load-reads-as-a-toolchain-repair]].
