KB-4C42

IU Core 500x durable — 01 Precheck, survey, backup, gates

4 min read Revision 1
dieu44iu-core-mvp500xdurable-autocutprecheckbackup-gatev0.62026-05-22

01 — Precheck, live survey, backup, gates

  • Macro: IU_CORE_500X_DURABLE_AUTOCUT_OPERATOR_MUTATION_TEXTCODE_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

MacBook host has git, python3, psql, pg_dump 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'. Gate 1 PASS.

2. Production identity

current_database = directus, server PostgreSQL 16.13, information_unit 160, iu_piece_collection 2, iu_piece_membership 5, dot_iu_command_catalog 17, dot_iu_command_run 4 — matches the 500x integrated-autocut/operator-runtime final report exactly. Gate 2 PASS.

3. 500x state verification

Surveyed read-only before any change:

  • Gates: composer_enabled=false, delivery_enabled=false, operator_runtime_enabled=false, routes_master_enabled=true, route_worker_enabled=true, structure_ops_enabled=false, delivery_live_routes='' — the 500x end-state, unchanged.
  • runtime/110 DOT scan: 113/113, every D9 class ok, D8 drift 0.
  • Composer events: 4 on the 'delayed' lane. Route attempts 59 dry_run + 1 sent (the historical 60x internal proof). Dead-letter open 0.
  • dot_iu_command_run 4 rows — the 540x operator-runtime read-only proof (runtime_540x_proof).
  • sandbox/130 re-run on the live schema: 9/9. sandbox/140 (integrated auto-cut → composer, BEGIN…ROLLBACK): 6/6.
  • baseline 932 tests pass locally before this macro's work.

Production was exactly at the 500x integrated-autocut/operator-runtime surface. No production repair needed.

4. 500x / 540x naming hygiene

The prior macro's 7 AgentData reports lived under a 500x directory but carried 540x titles and tags. Repaired: each report's title + tags normalised to the canonical 500x family label (revision 1 → 2), content preserved byte-identical, no duplicate document created. Verified via list_documents + search_knowledge. See doc 05.

5. Package integrity

runtime/290_durable_autocut_composer_run.sql (+ runtime/rollback/290) — present, self-transacted; CREATE-free (data only: INSERT … ON CONFLICT gate toggle + one fn_iu_compose call); no ALTER / DROP / DELETE. Gate 5 PASS.

6. Backup — Gate 3 PASS

pg_dump -Fc of the directus DB:

  • Path: /opt/incomex/backups/directus-pre-iucore-500x-durable-20260522T112557Z.dump
  • Size: 76,196,481 bytes
  • sha256: 6527301b77a7d051495088ceffed0590eda20943efcbdb4b632bdf6d48452cab
  • Verified: pg_restore -l reads a valid archive (dbname: directus), 3159 archive entries.

7. Gate summary

All 16 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-backed vocabulary, runtime structurally unable to bypass governed SQL, auto-cut cannot run uncontrolled CUT, governed birth gate, tree consistency, worker dry-run-only, fail-closed text-as-code import, known disable path, AgentData report path.

Back to Knowledge Hub knowledge/dev/laws/dieu44-trien-khai/v0.6-iu-core-500x-durable-autocut-operator-mutation-open-goal/01-precheck-survey-backup.md