---
name: mirror-repo-ci-dead
description: "SaberMage/spt-core (the `mirror` remote) has ZERO registered runners — CI there is dead; all runners live on origin BigscreenVR/spt-bs-core. Old PRs/runs stranded on the mirror cannot be rerun."
metadata: 
  node_type: memory
  type: project
  originSessionId: 8d605b6b-3ae2-438f-91d8-9d74a3a6a050
  modified: 2026-07-29T10:57:42.335Z
---

The repo has two remotes: `origin` = **BigscreenVR/spt-bs-core** (where main + the fleet's self-hosted runners live: hfenduleam, kitsubito) and `mirror` = **SaberMage/spt-core**.

**`repos/SaberMage/spt-core/actions/runners` → `total_count: 0`.** Runners were de-registered from the mirror after **2026-07-15** (last run with a real `runner_name` there). Anything still filed on the mirror — PRs, old runs — can never execute CI again.

**Why:** Verified 2026-07-29 while acting on doyle's GO to rerun the `tla` job of run 29005094533 (PR#65, spec/brain-handoff-pilot, created **2026-07-09** on the mirror). The rerun sat `queued` forever with no allocation.

**How to apply:**
- Before diagnosing a queued/never-starting run, check WHICH REPO it is on (`gh run view <id> -R <repo>`) and whether that repo has runners. A run queued with no runner looks identical to a busy-box wait.
- A stranded rerun becomes a **zombie**: status reads `queued` while `gh run cancel` refuses with *"Cannot cancel a workflow run that is completed"*. It cannot be cleared from the requesting side — abandon it.
- A finding sourced from a mirror run may be badly **stale-dated**. The "#65 blocked on java preflight" story came from a 2026-07-09 run; java and the tla2tools sha pin were never actually retested in the intervening weeks. Always read the run's `created_at`, not just its conclusion.
- Fix for stranded work: the branch usually already exists on origin (`git ls-remote --heads origin`) at the same sha — gate it with a PR on **origin**, don't try to revive the mirror run. `spec/brain-handoff-pilot` @cfd97a8 was already on origin with no PR.

Related: [[tla-spec-pilot-progress]], [[runner-online-but-deaf]] (different failure — that one is a registered-but-deaf runner; this one is no runner at all), [[quiet-window-predicate]].
