---
name: merge-push-reoccupies-the-box
description: "The ff-push that CONCLUDES a golden run STARTS an automatic post-merge CI run on the same self-hosted box — so 'golden green, box is free' is false for the first several minutes after the merge. Measured 2026-08-04 by parent chain + run id."
metadata: 
  node_type: memory
  type: project
  originSessionId: a842d896-2d4b-467b-9e55-1c73ce231668
  modified: 2026-08-04T07:18:15.195Z
---

**HFENDULEAM hosts a self-hosted GitHub Actions runner** (`actions.runner.SaberMage-spt-core.hfenduleam`,
installed `C:\actions-runner`) that serves `BigscreenVR/spt-bs-core`. It is a **fourth actor on the
box that no agent steps off**, and it wakes on every push to main.

2026-08-04: doyle ff-pushed main to `4b37512` concluding golden 30873007187, then issued the build
lift. Within two minutes the box was compiling again — **not an agent's build**:

```
cargo 31352 -> rustup 42744 -> pwsh 1840 -> Runner.Worker.exe 31672
             -> Runner.Listener.exe 35028 -> RunnerService.exe -> services.exe
```

Run **30886843672**, `event=push`, `branch=main`, the automatic post-merge CI the ff-push itself
triggered. Job `unit (self-hosted, Windows, hfenduleam)` from `.github/workflows/ci.yml`, ref
`refs/heads/main`, compare `11169c1...4b37512`. Worker 00:13:02, cargo 00:13:21, fresh rustc still
spawning at 00:15:08 — actively compiling, not winding down. hertz reached the same identification
independently from the run side; **the two clocks agreeing to the second (Worker 00:13:02 local ==
job start 07:13:02Z) is the identification** — neither the parent chain nor the run id alone names
which cargo it is.

**THE MECHANISM:** the merge that ends a golden STARTS another run on the same box. Sequencing that
empties the box of *agents* does not empty it — **it empties after the post-merge run, not after the
golden.** Nobody scheduled the collision because nobody owns it: the golden is deliberate, this one
is automatic.

**It builds into the runner's OWN target** (`_work\spt-bs-core\spt-bs-core\target`), so there is no
pool contention with the main checkout or any `.worktrees/` lane — [[worktree-pool-claim-false-orphan]]
does not apply. **The contention is CPU only**, which is exactly what a timing arm cannot survive:
quiet-arm base rates, the -0.6s serve-window margin, and any `clippy --workspace` number.

**How to apply:** before starting a heavy build or ANY timing arm after a merge, check the box for a
live runner job — parent-chain a stray cargo (`Get-CimInstance Win32_Process`, walk
`ParentProcessId` to `Runner.Worker.exe`) or poll the run with `gh run view <id> --repo
BigscreenVR/spt-bs-core --json jobs` (never `status` — [[gh-run-status-field-freezes]]). Treat "the
golden went green" as the START of the occupied window, not the end of it. A peer's "zero cargo
running" is a reading of one instant; hertz's count came back 4 as he typed 0 and he corrected it
himself — [[audit-the-boring-claims]].
