{
  "version": 1,
  "messageId": "9475630e-5f2c-4b1c-8b36-2c0a9990cf8c",
  "from": "lead",
  "to": "live-controller",
  "kind": "message",
  "body": "V4 rehearsal blocker accepted: network gate PASS but V4 controller remained DISPOSABLE_V3/V3-target bound. V4 phrase cb18... is NON-AUTHORIZABLE; blocker SHA 9429231b07dba4a44bf58e9435859e4231ee9455e86fbf2ae7143c3ae9f4a27d, cleanup SHA 3745c9808143977f9c3255ed65d1a9a954538f2c440af8e8e03cd57e9d06498a. Current source now fixes binding: controller hardcodes `/live-transaction-preseal-v5-bound-controller/sealed-target.json`, passes that path into ConcreteLiveHost, and `_execute` receives target-derived expected approval; disposable approval stays test-only. Bootstrap hardcodes V5 preseal. Failing-first live-entrypoint integration is GREEN. Strict closure: 67 tests; Ruff 30 PASS; basedpyright 0/0/0; ty PASS; no-excuse 30 clean; LSP clean. Preserve V3/V4 bytes and receipts. Freeze NEW V5 immutable paths, NEW digest/phrase, manifest last, include V4 blocker and live attempt 1 failure supersessions. Run exact verifier. No rehearsal/live/approval use.",
  "timestamp": 1787873994380,
  "summary": "Freeze strict-green V5 bound-controller closure"
}
