report: record the CI breakage the new gate caused, and its fix
gates / gates (push) Successful in 18s

CI checks out one repo shallow, so the golden-currency gate found no sibling
controller clone, exited 2 (INCONCLUSIVE) and turned CI red on every push.
Caught by pulling the run status rather than assuming it. Fixed by fetching
the controller repo in CI - not by letting the gate skip, which would have been
fail-open and would have left it running in neither of its automated homes.
Runs 244 and 245 confirm green.

Also records the reusable lesson: the pre-push hook and CI do not see the same
filesystem, so a gate that reads a sibling repo can pass locally and break CI.
This commit is contained in:
2026-08-07 13:16:32 +02:00
parent 6f25e02828
commit 10af63d0b0
+17 -3
View File
@@ -212,9 +212,19 @@ is already on the wire and dropped), **R-248** (a behaviour-changing flag visibl
**Updated:** **R-242** (recurred within a day; bake half now gated, vouch half explicitly still open),
**R-244** (measured), **R-245** (re-filed as decided). **Highest register ID moves R-245 → R-248.**
**CI:** `felhom.eu` runs to be confirmed by `head_sha` after the final push (below). **`--no-verify`
was used exactly once**, on commit `3ca9a7bbe6e5`, to push past the gate's own conviction — §9.11's
explicit question, answered.
**CI — and the gate broke it, which I caught by checking rather than assuming.** Runs **241**
(`3ca9a7bbe6e5`) and **243** (`7850469d5b78`) **failed**. 241 is expected and correct — the gate was
legitimately red at that commit, and CI saw it. **243 was not**: CI checks out ONE repo, shallow, so
the gate found no sibling controller clone, exited **2 (INCONCLUSIVE)** and turned CI red on every
push. **A permanently-red CI is the detector-nobody-hears failure that workflow exists to prevent.**
**Fixed by giving the gate what it needs, not by letting it skip** (`6f25e02828c8`): a depth-1 fetch
of the controller repo in CI, plain `git`, no JavaScript-action step. A skip would have been the
fail-open shape this project keeps removing — and the gate would then have run in **neither** of its
two automated homes. **Verified green: runs 244 and 245 (`6f25e02828c8`) both success.**
**`--no-verify` was used exactly once**, on commit `3ca9a7bbe6e5`, to push past the gate's own
conviction — §9.11's explicit question, answered. Every later push was clean.
**No controller or agent change**, as scoped. R-247's fix is a controller change and is therefore
filed rather than made.
@@ -230,3 +240,7 @@ filed rather than made.
five minutes first.
- **The hub's `EscrowStatus.Stale` field is serialised and has no consumer anywhere.** It is dead
weight on the wire until R-247 gives it one.
- **A new gate can break CI in a way the local run cannot show**, because CI's checkout is narrower
than a workstation's. That cost one red CI here and was caught only by pulling the run status. Worth
remembering the next time a gate reads a sibling repo — the pre-push hook and CI do **not** see the
same filesystem.