IU Core 240x Composer — 03 Composer proof: sandbox/100 + runtime/250
03 — Composer proof: sandbox/100 + runtime/250
sandbox/100 — full composer proven BEGIN…ROLLBACK
sandbox/100_piece_native_composer_probe.sql exercises the whole
migration-015 layer on the real production schema, one BEGIN … ROLLBACK,
zero durable rows. The composer gate is opened only inside the aborted
transaction. Result: 12/12 probes pass.
| Probe | Result |
|---|---|
| M1 gate-closed refusal | a mutating fn RAISEs insufficient_privilege while shut |
| M2 collection create | an empty collection is minted |
| M3 compose file from scratch | a 3-piece file composed, 3 pieces minted via the birth gate |
| M4 compose workflow from steps | a 2-step workflow composed, each step a minted IU |
| M5 add existing piece | an existing IU appended at order 3 → 4 pieces |
| M6 reorder piece | last piece moved to order 0; render confirms |
| M7 remove piece + renumber | a piece removed → 3 remain, contiguous |
| M8 render ordered | render returns 3 pieces, order 0..2 |
| M9 validate fail-closed | healthy file ok=true; empty collection ok=false |
| M10 manifest deterministic | two refreshes yield an identical digest |
| M11 healthcheck | corpus healthcheck runs |
| M12 composed piece three-axis | a composed piece is in v_iu_metadata_envelope AND v_iu_content_group |
Two real bugs caught + fixed during the proof: (1) fn_iu_collection_validate
text[] || text operator mis-resolution (malformed array literal) → fixed
with array_append; (2) fn_iu_collection_remove_piece left an order gap →
fixed to renumber remaining pieces contiguous.
runtime/250 — the first durable composer pilot
runtime/250 committed the first durable composer use with a minimal,
fully-reversible footprint:
- discovery-driven: the document with the most IUs (
DIEU-35) + its first 3 pieces bysort_order, resolved live — no doc code / uuid baked; - assembled by
fn_iu_composewith existing pieces only → 0 IUs minted; - the composer gate opened only for this one transaction, closed before COMMIT;
- the collection is
draftlifecycle — inert, no event, no delivery.
Committed: iu_core.composer.pilot-doc-001 (document, draft, digest
909ea67e8b9e7dd72da242cbbee02510), 3 active memberships,
fn_iu_collection_validate → ok=true. Durable footprint:
+1 iu_piece_collection, +3 iu_piece_membership.
Production state preserved
Post-mutation: information_unit 158 (0 minted), iu_structure_operation 57,
iu_metadata_tag 330, event_outbox iu 56, iu_route_attempt 56,
iu_tree_change_log 1 — all unchanged. iu_piece_collection=1,
iu_piece_membership=3. All gates closed (composer_enabled=false,
structure_ops_enabled=false, delivery_enabled=false).
Rollback / disable readiness
rollback/015 (drops the 16 objects + gate; refuses non-empty tables);
runtime/rollback/250 (deletes the 3 memberships + 1 collection;
information_unit untouched); the composer gate closable.