the-custodian/docs/changes/netkingdom-target-2026-10-16/native-preflight-r1/run.py
codex cf59a5f9ab
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
Reject generated-only commits / generated-commit-guard (push) Successful in 7s
Retain native preflight and independent signer rollout reviews
2026-10-16 21:28:42 +02:00

17 lines
1.3 KiB
Python

"""Coordinator invokes after wrapper review. No remote file, shell interpolation or credential reads."""
import datetime,hashlib,json,subprocess
from pathlib import Path
P=Path(__file__).parent
source=(P/'preflight.py').read_text();payload=(P/'payload.json').read_text()
program='PAYLOAD='+repr(json.loads(payload))+'\n'+source
try:
r=subprocess.run(['ssh','-o','BatchMode=yes','-o','ConnectTimeout=12','railiance01','python3','-'],input=program,capture_output=True,text=True,timeout=480)
try:result=json.loads(r.stdout) if r.returncode==0 else {'refused':'sanitized-ssh-failure'}
except ValueError:result={'refused':'sanitized-remote-output-shape'}
result['transport']={'exit_code':r.returncode,'stderr_present':bool(r.stderr)}
except (OSError,subprocess.TimeoutExpired):result={'refused':'sanitized-transport-unconfirmed'}
result['collector_sha256']=hashlib.sha256(source.encode()).hexdigest()
result['payload_sha256']=hashlib.sha256(payload.encode()).hexdigest()
result['local_completed_at']=datetime.datetime.now(datetime.timezone.utc).isoformat()
(P/'live-preflight.json').write_text(json.dumps(result,indent=2,sort_keys=True)+'\n')
print(json.dumps({'receipt':str(P/'live-preflight.json'),'refused':result.get('refused'),'dry_runs':result.get('dry_runs',[]),'held_fence':result.get('held_fence',False)}))