ci: give the wire-contract gate the sibling clone it needs (the hook and CI disagreed)
gates / gates (push) Failing after 34s
gates / gates (push) Failing after 34s
CI went red on the two G-1 commits while the local pre-push hook was GREEN — which this workflow's own alarm mail says outranks whatever the push was for, because it is a finding about the gates themselves. It was. CAUSE, reproduced rather than guessed: 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. The workflow already fetched the controller (for golden-currency) but not the agent, so the gate exited 2 INCONCLUSIVE. Reproduced locally by pointing the gate at a nonexistent agent path: same exit 2, same message. THE LESSON, and it is the reusable half: the pre-push hook runs on a workstation where every sibling is a real clone, so a gate that needs a sibling passes there and is inconclusive here. **The two automated homes are not interchangeable, and a NEW GATE MUST BE CHECKED IN BOTH.** Recorded in the step's own comment beside the fetch. Fixed by giving the gate what it needs. NOT by letting it skip when a sibling is absent — that is the fail-open shape, and it would leave the gate running in NEITHER home, which is the R-29 census failure this runner was built to end and which golden_currency_gate.py's docstring already warns about at length.
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user