diff --git a/.gitea/workflows/gates.yml b/.gitea/workflows/gates.yml index 4ee8d7d..1e82093 100644 --- a/.gitea/workflows/gates.yml +++ b/.gitea/workflows/gates.yml @@ -32,6 +32,26 @@ jobs: git checkout -q FETCH_HEAD echo "checked out $(git rev-parse HEAD)" + - name: Fetch the agent (wire-contract gate needs BOTH sibling repos) + # G-1's gate (scripts/wire_contract_gate.py) compares what one component EMITS against what + # the other can RECEIVE, so it needs the source of the controller AND the agent, not just a + # CHANGELOG. Without this the gate exits 2 (INCONCLUSIVE) and CI is red for ever. + # + # ⚠ THIS STEP WAS MISSING FOR ONE COMMIT AND CI WENT RED, exactly as the alarm mail below + # predicts: "if the local pre-push hook was GREEN, then CI and the hook disagree — that is a + # finding about the gates themselves". It was. The pre-push hook runs on a workstation where + # every sibling is a real clone, so a gate needing a sibling passes locally and is + # INCONCLUSIVE here; the two homes are NOT interchangeable and a new gate must be checked in + # both. Fixed by giving the gate what it needs — never by letting it skip, which would be + # the fail-open shape and would leave it running in NEITHER home (R-29). + run: | + git init -q ../felhom-agent + cd ../felhom-agent + git remote add origin http://gitea.gitea-system.svc.cluster.local:3000/admin/felhom-agent.git + git fetch -q --depth 1 origin main + git checkout -q FETCH_HEAD + echo "agent at $(git rev-parse --short=12 HEAD)" + - name: Fetch the controller CHANGELOG (golden-currency gate needs the sibling repo) # R-242's gate compares the newest RELEASED controller against the newest golden baked here, # and it reads the released version from the sibling clone's CHANGELOG.md — the same sibling