#!/usr/bin/env python3 """Close the #2479 dichotomy-wave construction contract for intent_continuity with SHA evidence.""" 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] iface = ConstructionInterface(builder="factory-batch-b") c = iface.close(cid, observed_evidence=[{ "kind": "port_evidence", "detail": "intent_continuity dichotomy completion — parity 5893a37c " "feat(intent_continuity): port to FULL Rust — dichotomy wave; " "Phase B 6f9e0cfa refactor(intent_continuity): Phase B " "language-advantage pass — dichotomy wave (both pushed " "gitea/master). Battery 2 tests replay the 16-case frozen " "oracle truth VERBATIM (every transition/branch incl. error " "envelopes, stubbed clock); live parity 16/16 frozen + 40/40 " "fuzz seeds (RUNE_IC_CORE auto vs =python); pytest 26 passed " "(intent_continuity + await_intent); clippy -D warnings " "clean. Divergences the fuzz caught pre-landing: KeyError " "double-quoting, create_detour validation order (parent " "existence before classification), and PARK-by-id vs the " "oracle's PARK-the-looked-up-object semantics when " "id==parent_intent.", }], scope_files=[ "src/rune/intent_continuity.py", "src/rune/ic_loader.py", "src/rust/intent_continuity/src/lib.rs", "src/rust/intent_continuity/src/branch_battery.rs", "src/rust/intent_continuity/frozen_ic_truth.json", "scripts/gen_intent_continuity_truth.py", "scripts/walk_contract_intent_continuity.py", "scripts/close_contract_intent_continuity.py", ]) print("close:", json.dumps(c)[:300]) print("CONTRACT", cid, "closed" if c.get("success") else "CLOSE_FAILED")