CI Pipeline / best-practices (push) Successful in 9s
CI Pipeline / documentation (push) Successful in 4s
CI Pipeline / rust-surface (push) Failing after 15s
CI Pipeline / go-surface (push) Failing after 20s
Auto-version and Release / release (push) Successful in 29s
CI Pipeline / gitea-offline (push) Successful in 22s
CI Pipeline / lint (push) Failing after 1m3s
CI Pipeline / type-check (push) Failing after 48s
CI Pipeline / required-checks (push) Canceled after 0s
CI Pipeline / CI Pipeline / notify-event-bridge (push) Canceled after 0s
deploy / deploy (push) Canceled after 1m36s
CI Pipeline / unit-tests (push) Canceled after 1m42s
CI Pipeline / canary (push) Canceled after 1m41s
message_graph dichotomy contract — draft→approved→building→verifying→ closed in ONE process. Evidence: parity1f7a2664, Phase B7194f69a(pushed gitea/master); battery 12 tests replay 68 frozen-oracle cases VERBATIM; live parity 68/68 byte-identical; clippy 0; Python suite 9+9 under both RUNE_MG_CORE pins. Contract-walk script included (one- process clobber-hazard law).
52 lines
2.0 KiB
Python
52 lines
2.0 KiB
Python
#!/usr/bin/env python3
|
|
"""Open + walk + close the #2479 dichotomy-wave construction contract for
|
|
message_graph. Full lifecycle in ONE process (shared-store clobber hazard,
|
|
see notes-construction-intent-batch.md)."""
|
|
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/message_graph.py to FULL Rust (dichotomy factory, "
|
|
"issue #2479 tranche): doc-envelope FFI, ctypes loader, facade "
|
|
"delegation with RUNE_MG_CORE=python pin, frozen-truth battery, "
|
|
"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)
|
|
|
|
c = iface.close(cid, observed_evidence=[{
|
|
"kind": "port_evidence",
|
|
"detail": "message_graph parity port — parity 1f7a2664 "
|
|
"feat(message_graph): port to FULL Rust — dichotomy wave; "
|
|
"Phase B 7194f69a refactor(message_graph): Phase B "
|
|
"language-advantage pass — dichotomy wave (both pushed "
|
|
"gitea/master). Battery 12 tests replay 68 frozen-oracle "
|
|
"cases VERBATIM; live parity 68/68 byte-identical; clippy 0; "
|
|
"Python suite green under both pins (9+9).",
|
|
}], scope_files=[
|
|
"src/rune/message_graph.py",
|
|
"src/rune/mg_loader.py",
|
|
"src/rust/message_graph/src/lib.rs",
|
|
"src/rust/message_graph/src/branch_battery.rs",
|
|
"scripts/gen_message_graph_truth.py",
|
|
])
|
|
print("close:", json.dumps(c)[:400])
|
|
print("CONTRACT", cid, "closed" if c.get("success") else "CLOSE_FAILED")
|