IU Core 500x durable — 02 Durable auto-cut to composer run (runtime/290)
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_createbirth gate insidefn_iu_compose— never a directinformation_unitINSERT. - 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_typeare the composer vocabularydesign_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-ec60f7ec0665 — iu_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.