IU Core 960x — 01 Precheck, survey, backup, gates
01 — Precheck, live survey, backup, gates
- Macro:
IU_CORE_960X_DELIVERY_TEXTCODE_IMPORT_SURFACE_SYNC_ACCEPTANCE_OPEN_GOAL - Date: 2026-05-22
- Host: MacBook/dev
/Users/nmhuyen/iu-cutter-build/repo/iu-cutter - Production: VPS
vmi3080463(sshcontabo), containerpostgres(postgres:16, server 16.13), DBdirectus, roledirectus.
1. Host + tools — Gate 1 PASS
MacBook host has git 2.39.5, python3 3.11.6, psql 14.17,
pg_dump 14.17 and SSH access to the VPS. SQL is applied by piping each
self-transacted file through
ssh contabo 'docker exec -i postgres psql -U directus -d directus -v ON_ERROR_STOP=1'.
2. Production identity — Gate 2 PASS
current_database = directus, server PostgreSQL 16.13. Pre-macro counts:
information_unit 163, iu_piece_collection 3,
iu_piece_membership 8, dot_iu_command_catalog 17,
dot_iu_command_run 11, iu_tree_change_log 1,
iu_route_attempt 68, iu_route_dead_letter open 0 — matches the
500x durable-autocut/operator-mutation final report exactly.
3. 500x state verification — no repair needed
Surveyed read-only before any change:
- Gates:
composer_enabled=false,delivery_enabled=false,operator_runtime_enabled=false,structure_ops_enabled=false,routes_master_enabled=true,route_worker_enabled=true,delivery_live_routes=''— the 500x end-state, every IU Core write-gate inert. runtime/110DOT scan: 113/113 (table 16 / view 16 / function 40 / trigger 3 / config 7 / event_type 15 / route 16), every D9 classok, D8 drift 0.event_outbox:iudomain 68 rows — 44structure_op_applied+ 12structure_piece_deprecated(immediate lane) + 12 composer rows (delayed lane). Route attempts 67dry_run+ 1sent.- baseline 959 tests pass locally before this macro's work.
Production was exactly at the 500x durable surface. No production repair needed.
4. Backup — Gate 3 PASS
pg_dump -Fc of the directus DB:
- Path:
/opt/incomex/backups/directus-pre-iucore-960x-20260522T135027Z.dump - Size: 76,393,724 bytes
- sha256:
ee058a33e435b6c37aea346070f44b1bb1a1c5e0c4b7e4840c799ad9ca38f697 - Verified:
pg_restore -lreads a valid archive, 3159 archive entries.
5. Package integrity — Gate 5 PASS
runtime/300_delivery_internal_batch.sql(+runtime/rollback/300) — self-transacted,CREATE-free /ALTER-free /DROP-free (data only: config toggles +fn_iu_route_delivercalls + route repoint/restore).sandbox/150+sandbox/160—BEGIN … ROLLBACK, zero durable footprint.text_as_code_apply_operator_proof.py— additive, reversible (self-compensating reorder), no uuid baked in.
6. Gate summary
All 18 mandatory gates PASS before the first production mutation: correct host+tools, target identity, fresh verified backup, DOT/no-hardcode baseline clean (113/113), package integrity, candidate scope discovery-selected, bounded+reversible operation, rollback file present before apply, registry/config-backed vocabulary, OperatorRuntime structurally unable to bypass governed SQL, auto-cut cannot run uncontrolled CUT, governed birth gate, tree consistency, worker/delivery controlled and internal-only, fail-closed non-destructive text-as-code apply, sync cannot overwrite external stores, known disable path, AgentData report path.