Files
rune/scripts/close_contract_construction_patterns_builtin.py
T
Nick 8ed117abe2
CI Pipeline / best-practices (push) Successful in 8s
CI Pipeline / documentation (push) Successful in 7s
CI Pipeline / rust-surface (push) Failing after 15s
CI Pipeline / go-surface (push) Failing after 18s
Auto-version and Release / release (push) Successful in 30s
CI Pipeline / gitea-offline (push) Successful in 19s
CI Pipeline / type-check (push) Failing after 49s
CI Pipeline / lint (push) Failing after 1m6s
CI Pipeline / canary (push) Failing after 2m17s
deploy / deploy (push) Failing after 15m34s
CI Pipeline / unit-tests (push) Failing after 16m48s
CI Pipeline / required-checks (push) Failing after 2s
CI Pipeline / CI Pipeline / notify-event-bridge (push) Failing after 4s
chore(store): close construction_patterns_builtin dichotomy contract BUILDER-2026-10-12T13:29:58Z-e5c619-factory-wave (parity 4649df1c, phase B b50e8553)
2026-10-12 14:37:52 +01:00

56 lines
2.2 KiB
Python

#!/usr/bin/env python3
"""Close the #2479 dichotomy-wave construction contract for
construction_patterns_builtin. Full lifecycle 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/construction_patterns_builtin.py to FULL Rust (dichotomy "
"factory, issue #2479 tranche): frozen-oracle registry data, doc-envelope "
"FFI, ctypes loader (free via capability_scoring cs_free_string), facade "
"delegation with RUNE_CPB_CORE=python pin, frozen-truth branch battery, "
"live parity 100%, Phase B typed-registry pass. Plus audit fix: curator "
"-> curator-core alias (curator was FULL-Go since a95c6ce1 but the audit "
"miscounted it NOT TOUCHED).",
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)
c = iface.close(cid, observed_evidence=[{
"kind": "port_evidence",
"detail": "construction_patterns_builtin parity port — final SHAs after "
"rebase: parity 4649df1c, phase B b50e8553. Battery 19 cases "
"green, live parity 16/16, clippy 0.",
}], scope_files=[
"src/rune/construction_patterns_builtin.py",
"src/rune/cpb_loader.py",
"src/rust/construction_patterns_builtin/src/lib.rs",
"src/rust/construction_patterns_builtin/src/registry.rs",
"src/rust/construction_patterns_builtin/src/branch_battery.rs",
"src/rust/construction_patterns_builtin/frozen_cpb_patterns.json",
"src/rust/construction_patterns_builtin/frozen_cpb_truth.json",
"scripts/gen_construction_patterns_builtin_truth.py",
"scripts/check_cpb_parity.py",
])
print("close:", json.dumps(c)[:400])
print("CONTRACT", cid, "closed" if c.get("success") else "CLOSE_FAILED")