KB-3BED
IU Core 60x Delivery/Non-reparent — 04 Controlled dry_run=false delivery proof
3 min read Revision 1
dieu44iu-core-mvp60xdry-run-falsedeliveryruntime-220v0.62026-05-22
04 — Controlled dry_run=false Delivery Proof
What runtime/220 does
220_delivery_dryrun_false_proof.sql runs the first controlled
dry_run=false delivery on production — the full route worker →
fn_iu_route_deliver → fn_iu_structure_consumer chain — for exactly ONE
event, against ONE internal sql_function target, in one BEGIN…COMMIT.
Bounded by construction:
- the ONLY route taken
enabled+dry_run=falseis thestructure_piece_deprecatedroute — every other route staysdry_run=true; - the delivery target is the internal
fn_iu_structure_consumer— no network, no secret, no external downstream side effect; - the delivery gate + the route allowlist are opened immediately before the
worker run and closed again inside the same transaction; the route is
repointed live and restored to its exact pre-run state in the same
transaction (originals captured by
\gsetfirst).
Execution evidence
| Stage | Result |
|---|---|
| P0 route pre | iu.structure_piece_deprecated.workflow — workflow/event_outbox, enabled=t dry_run=t |
| P1 pre-health | worker healthy=true, backlog_iu_events=1 (the deprecate event), delivery_enabled=false, projection_rows=0 |
| P2 route live | repointed → sql_function/fn_iu_structure_consumer, enabled=t dry_run=f (the trigger guard permitted it — route allowlisted) |
| P3 worker run | seen=1 dead_lettered=0 — processed the one structure_piece_deprecated event |
| P4 projection | iu_tree_change_log row — event_ref=8f1b6f03-21c9-4be9-a64f-42f59c19b3ac, operation_type=deprecate_piece, canonical_address=pilot.iu0.test-001, delivered_by=fn_iu_structure_consumer |
| P5 attempt | iu_route_attempt status=sent, delivered=true |
| verdict | delivery_ok=true — 1 projection row, 1 sent attempt, 0 open dead letters |
| P6 post | route restored to workflow/event_outbox/dry_run=true; delivery_enabled=false; allowlist empty |
Durable footprint
Exactly: one iu_tree_change_log row, one sent iu_route_attempt,
the advanced worker cursor. The route and both gates end exactly as before the
run. iu_route_attempt 44→45, iu_tree_change_log 0→1.
What stays blocked
- External delivery — the seam delivers only to the internal
fn_iu_structure_consumer; every non-sql_function target is refused. - The delivery gate ends closed, the allowlist empty — the seam is inert again. Re-delivery requires a sovereign macro to re-open it.
- Production CUT — no CUT executed;
execution_enablednot flipped.
Reversibility
iu_tree_change_log is truncatable — the projection rebuilds from
event_outbox. The route + both gates were already restored on COMMIT. To
re-deliver in error use fn_iu_route_dead_letter_replay.