Files
rune/scripts/open_contract_forge_client.py

37 lines
1.3 KiB
Python

#!/usr/bin/env python3
"""Open the #2479 dichotomy-wave construction contract for forge_client (GO port).
Full lifecycle walk in ONE process (shared-store clobber hazard)."""
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
iface = ConstructionInterface(builder="factory-wave")
r = iface.submit_need(
"Port src/rune/forge_client.py to FULL Go (dichotomy factory, issue "
"#2479 tranche): name-preserving port of _request (noise-vs-signal "
"retry semantics), NullAdapter, GiteaForgejoAdapter and "
"create_forge_client with HTTP/sleep/env behind injectable seams, "
"frozen-truth battery generated against the live Python oracle, live "
"parity 100%, Phase B language-advantage pass.",
origin="builder",
)
print("submit_need:", json.dumps(r)[:400])
if not r.get("success"):
print("NEED FAILED — aborting")
sys.exit(1)
cid = r["ids"]["contract_id"]
print("contract_id:", cid)
for phase in ("approved", "building", "verifying"):
t = iface.transition(cid, phase)
print(f"transition->{phase}:", json.dumps(t)[:300])
if not t.get("success"):
sys.exit(1)
print("CONTRACT", cid, "IN VERIFYING (close happens at delivery with SHAs)")