KB-1F68

IU Core 960x — 01 Precheck, survey, backup, gates

4 min read Revision 1
iu-core960xdot-iu-cutter-v0.6precheckbackupdieu44

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 (ssh contabo), container postgres (postgres:16, server 16.13), DB directus, role directus.

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/110 DOT scan: 113/113 (table 16 / view 16 / function 40 / trigger 3 / config 7 / event_type 15 / route 16), every D9 class ok, D8 drift 0.
  • event_outbox: iu domain 68 rows — 44 structure_op_applied + 12 structure_piece_deprecated (immediate lane) + 12 composer rows (delayed lane). Route attempts 67 dry_run + 1 sent.
  • 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 -l reads 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_deliver calls + route repoint/restore).
  • sandbox/150 + sandbox/160BEGIN … 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.

Back to Knowledge Hub knowledge/dev/laws/dieu44-trien-khai/v0.6-iu-core-960x-delivery-textcode-import-surface-sync-acceptance-open-goal/01-precheck-survey-backup.md