{
  "version": 1,
  "messageId": "2b725917-3596-4554-8c74-c660cb132f21",
  "from": "transaction-rehearsal",
  "to": "lead",
  "kind": "message",
  "body": "V4 REHEARSAL STOPPED AT FIRST SEALED BLOCKER. Safe gates PASS: actual verifier `V4_NETWORK_GATE_PRESEAL_VERIFIED` with package `f0e2147a29222ccbcb57b85d3dd685984ca437f08798b0bd770a45e03d413dc2`, manifest `4bb3f6bab06a309c1b88137ec53da7bc8c6fabf831bac59867dc2117a55590b8`, closure `sha256:5fd35ead8a7bc3d07ca77bacda0c24b1a7a136c29790e4b78ac256688311d049`; real bwrap probe prints `BWRAP_NETWORK_ISOLATED`; direct host denies `network_namespace`; trace has 0 AF_INET connect successes. Exact blocker: closure worker `scripts/nutricoach_v150_controller_worker.py:19` imports/calls `execute_authorized`, but sealed controller SHA `15b49d121519a90b0012eb150578602a5c44ee948befd2a124afa94bfd2823e3` still has `PACKAGE_DIGEST = \"DISPOSABLE_V3\"` at line 27 and `SEALED_TARGET ... live-transaction-preseal-v3/sealed-target.json` at lines 37-39. V4 approval probe through the unmodified disposable entry returns `V4_DISPOSABLE_DENIED:wrong_approval`. Therefore no honest V4 full-success clone exists without monkeypatching the sealed controller; I stopped before all clone/fault/replay matrices. Live was never invoked/mutated: PID `571685`, start `2234547821498`, all four critical hashes unchanged, V4 ledger/execution absent; V3 hashes unchanged. Immutable blocker receipt `/home/cube/.hermes/migrations/nutricoach-v1.5.0-combined/live-transaction-rehearsal-v4-network-gate/rehearsal-blocker-receipt.json`, SHA256 `9429231b07dba4a44bf58e9435859e4231ee9455e86fbf2ae7143c3ae9f4a27d`. Cleanup receipt SHA256 `3745c9808143977f9c3255ed65d1a9a954538f2c440af8e8e03cd57e9d06498a`. Network trace SHA256 `02110d0862b480a24ed27e3cdaf8d0adcc81d14986bf0ad17e84c205ee6862b8`. Evidence root has exactly 5 mode-0444 files, zero dirs/clones/caches/disposable ledgers.",
  "timestamp": 1787873585842,
  "summary": "V4 stopped: sealed controller remains V3-bound"
}
