10000x · 00 — PASS summary (Piece Platform DOT lifecycle + event-runtime foundation)
IU Core 10000x — Piece Platform DOT Lifecycle + Event Foundation (PASS)
Macro tag: IU_CORE_10000X_PIECE_PLATFORM_DOT_LIFECYCLE_PASS
Date: 2026-05-24
Repo: Huyen1974/iu-cutter — main post-commit
Parent commit: 46c3c33 (9000x)
This commit: d88d08b
Outcome
| Phase | Status |
|---|---|
| A. Baseline + repo verification + KB read | PASS |
| B. Dependency closure (DOT inventory + fn signatures) | PASS |
| C. Fresh pg_dump backup | PASS (79.4MB sha 054bd99c…) |
| D. dot_iu_supersede_piece wrapper for fn_iu_supersede | PASS |
| E. Migration 027 — fn_iu_piece_split + iu_split_set ledger | PASS (live) |
| F. Migration 028 — fn_iu_piece_merge + iu_merge_set ledger | PASS (live) |
| G. Sandbox refusal probes (18 branches across 260/270) | PASS (live) |
| H. Bounded live proof — 3 dry-runs on real enacted IU | PASS (no mutation) |
| I. Piece Event Runtime foundation seed (6 piece.* events) | PASS (live, inert) |
| J. DOT scan + runtime/280 catalog seed bumps | PASS (live) |
| K. Full test suite (1232 -> 1305, +73) | PASS |
| L. Regression — corpus / vsp / gates / production_documents | PASS unchanged |
| M. Author-mode-only event outbox + handler design | PASS (no DDL) |
What this macro added live to PG
- 2 new tables:
iu_split_set,iu_merge_set(append-only lineage ledgers; UNIQUE idempotency_key; rolled_back_at soft-rollback; min-2-children/sources CHECK). - 2 new functions:
fn_iu_piece_split,fn_iu_piece_merge(SECURITY DEFINER; pinned search_path; advisory lock; app.canonical_writer marker; NULL review_decision refusal; cutter_governance FK probe; content-policy refusal of empty body; dry-run early-return; sha256 idempotency). - 6 event types: piece.created/updated/split/merged/retired/superseded (INERT).
- 3 catalog rows: dot_iu_supersede_piece, dot_iu_split_piece, dot_iu_merge_piece.
What this macro did NOT touch
production_documentsQdrant collection: untouched.iu_vector_sync_point: 152 rows unchanged.iu_core_iu_chunksQdrant collection: 149 points unchanged.information_unit: 163 rows unchanged.- All 6 IU Core write gates remain
false. Retentionfalse. - PR #669: not merged. Nuxt: not deployed.
- No daemon / cron started for piece events.
DOT conformance D9 verdict (live)
| Class | Expected | Found | OK |
|---|---|---|---|
| table | 25 | 25 | t |
| view | 23 | 23 | t |
| function | 56 | 56 | t |
| trigger | 5 | 5 | t |
| config | 10 | 10 | t |
| event_type | 21 | 21 | t |
| route | 16 | 16 | t |
| TOTAL | 156 | 156 | t |
8000x: 146 -> 10000x: 156 (+10 = +2 tables, +2 functions, +6 event_types).
Test deltas
| Macro | Tests |
|---|---|
| 9000x baseline | 1232 |
| 10000x (this) | 1305 |
73 new tests in tests/test_iu_core_10000x_piece_lifecycle.py; 12 pre-existing pinning tests bumped.
Bounded live proof
3 dry-run calls on real enacted DIEU IU returned plan_ok (supersede) and dry_run_ok (split, merge). Post-proof: information_unit=163, vsp=152, iu_split_set=0, iu_merge_set=0, no iu_lifecycle_log rows in proof window — true read-only proof. Write-proof intentionally NOT executed: no SCRATCH IUs in corpus; constitution forbids broad production mutation. Sandbox 18 refusal branches are the strongest available substitute.
Discoveries
cutter_governance.review_decisionPK column isreview_decision_id, notid. Caught live by sandbox 260.8/270.8 probes; fixed in same macro before commit.cutter_governance.cut_change_setPK ischange_set_id.fn_iu_createsignature:(canonical_address, title, body, actor, unit_kind, section_type, owner_ref, publication_type, parent_ref).dot_iu_command_catalog.target_functionsis fn names only — listing a table breaks R280all_resolvable.
Carry-forward
- Add
iu_piece_event_outbox+ per-fn emit hooks (specified inops/piece-event-runtime-package-10000x/02-). cutter_agent/iu_core/piece_event_handler.pyworker.healthcheck.py8th surfacepiece_events_backlog.dot_iu_piece_event_dead_letter+dot_iu_piece_event_replay.- Optional write-proof under explicit governance approval.