KB-14FE

IU Core 500x durable — 02 Durable auto-cut to composer run (runtime/290)

4 min read Revision 1
dieu44iu-core-mvp500xdurable-autocutcomposerruntime-290v0.62026-05-22

02 — runtime/290: the first DURABLE integrated auto-cut → composer run

1. What it closes

The 500x integrated-autocut macro proved the auto-cut → composer flow non-durably (sandbox/140, BEGIN…ROLLBACK). Its doc 07 recorded the durable run as the next macro's first slice. runtime/290 commits it.

2. 290_durable_autocut_composer_run.sql

The SQL twin of sandbox/140, ending in COMMIT. A synthetic 3-section auto-cut output — three new_piece birth specs, byte-equivalent to the jsonb autocut_bridge.map_cut_to_compose_request produces for a 3-unit CutResult — is driven through fn_iu_compose on production.

  • Each piece is minted ONLY through the fn_iu_create birth gate inside fn_iu_compose — never a direct information_unit INSERT.
  • The composer gate is opened only inside the transaction and closed again before COMMIT — inert end-state.
  • Idempotent: a no-op when collection_key = 'iu_core.autocut.file-001' already exists.
  • The 3 canonical addresses are gen_random_uuid()-suffixed — no fixed IU identity is baked in. unit_kind/section_type are the composer vocabulary design_doc_section/section.

3. Durable footprint (bounded)

object before after
information_unit 160 163 (+3 birth-gate IUs)
iu_piece_collection 2 3 (+1 file, draft, inert)
iu_piece_membership 5 8 (+3, piece_order 0..2)
composer event_outbox rows 4 +4 (1 collection_created + 3 piece_added_to_collection) + 1 collection_rendered checkpoint

Collection 16ba77a5-4e42-440e-9522-ec60f7ec0665iu_core.autocut.file-001, kind file, lifecycle draft, source_axis_kind=composed, manifest_digest 3d51e7593c3887dba501e9c40f622a60. Minted IU ids 12aa37ad…, 15e224b9…, 236bdf6e….

4. Three-axis evidence

fn_iu_collection_render of the new collection: 3 active pieces, axis_b_tag_total = 3 (fn_iu_metadata_refresh ran inside fn_iu_compose for every minted piece), in_axis_c_tree = 0 (composed pieces are not in the structure-op tree — same as runtime/270). manifest_digest present (axis A).

5. Composer events — 'delayed' lane, no dedupe

R290_events verification: collection_created ×1 + piece_added_to_collection ×3 + collection_rendered ×1, all delivery_lane = delayed. The 3 piece_added rows are distinct — the 500x delayed-lane fix holds under the durable integrated path (the idx_event_outbox_idempotent partial index is WHERE delivery_lane='immediate', so the family on 'delayed' is never deduped).

6. No uncontrolled CUT

The cut is synthetic — a 3-section payload built inline in the SQL file. No orchestrator CUT phase ran; __execution_enabled__ was not touched. The collection is inert (draft) and never delivered.

7. Reversibility

runtime/rollback/290_durable_autocut_composer_run.rollback.sql — discovers the 3 minted IUs from the memberships (no baked-in uuid), removes the 3 memberships + the collection row, and soft-deletes the 3 IUs (deleted_at = now() — never a hard DELETE). event_outbox rows are append-only history and intentionally retained. The composer gate is left closed.

Back to Knowledge Hub knowledge/dev/laws/dieu44-trien-khai/v0.6-iu-core-500x-durable-autocut-operator-mutation-open-goal/02-durable-autocut-composer-run.md