Files
rune/scripts/close_contract_forge_client.py
T
Nick 31e87e612b
CI Pipeline / best-practices (push) Successful in 7s
CI Pipeline / documentation (push) Successful in 7s
CI Pipeline / rust-surface (push) Failing after 11s
CI Pipeline / go-surface (push) Failing after 14s
CI Pipeline / required-checks (push) Canceled after 0s
CI Pipeline / CI Pipeline / notify-event-bridge (push) Canceled after 0s
CI Pipeline / gitea-offline (push) Canceled after 18s
CI Pipeline / unit-tests (push) Canceled after 25s
Auto-version and Release / release (push) Canceled after 26s
CI Pipeline / lint (push) Canceled after 26s
CI Pipeline / canary (push) Canceled after 25s
deploy / deploy (push) Canceled after 15s
CI Pipeline / type-check (push) Canceled after 21s
chore(store): close forge_client dichotomy contract BUILDER-2026-10-12T02:17:44Z-8feb0d-factory-wave (parity 797bb63f, phase B dc20b9b2)
2026-10-12 03:47:57 +01:00

44 lines
1.7 KiB
Python

#!/usr/bin/env python3
"""Close the #2479 dichotomy-wave forge_client contract with SHA evidence.
Run on top of CURRENT master (a worktree store close never reaches master
by itself — build_basis/message_queue precedent)."""
import json
import sys
from pathlib import Path
sys.path.insert(0, str(Path(__file__).resolve().parents[1] / "src"))
from rune.construction_interface import ConstructionInterface
CID = sys.argv[1] if len(sys.argv) > 1 else ""
PARITY_SHA = sys.argv[2] if len(sys.argv) > 2 else ""
PHASEB_SHA = sys.argv[3] if len(sys.argv) > 3 else ""
if not (CID and PARITY_SHA and PHASEB_SHA):
sys.exit("usage: close_contract_forge_client.py <contract_id> <parity_sha> <phaseb_sha>")
iface = ConstructionInterface(builder="factory-wave")
c = iface.close(CID, observed_evidence=[{
"kind": "port_evidence",
"detail": (
f"forge_client GO dichotomy port — parity commit {PARITY_SHA}, "
f"Phase B commit {PHASEB_SHA}; parity 49/49 frozen rows vs live "
"oracle (scripts/gen_forge_client_truth.py), go test -race green, "
"gofmt/vet clean, Python oracle tests 18 passed."
),
}], scope_files=[
"src/rune/forge_client.py",
"src/go/forge_client/forge_client.go",
"src/go/forge_client/phaseb.go",
"src/go/forge_client/replay.go",
"src/go/forge_client/main.go",
"src/go/forge_client/truth_test.go",
"src/go/forge_client/phaseb_test.go",
"src/go/forge_client/truth.json",
"src/go/forge_client/go.mod",
"scripts/gen_forge_client_truth.py",
"scripts/open_contract_forge_client.py",
])
print("close:", json.dumps(c)[:400])
print("CONTRACT", CID, "closed" if c.get("success") else "CLOSE_FAILED")