KB-BB06

IU Core 4000x — 01 macro · scope · gates · disposition

5 min read Revision 1
iu-core4000xmacrogatesauto-refresh-triggernuxt-ui-package

01 — 4000x macro · scope · gates · disposition

1. Macro identity

IU_CORE_4000X_UI_RUNTIME_ACCEPTANCE_MONITORING_ROLLOUT_OPEN_GOAL — the follow-up to 3000x's PARTIAL_WITH_EXACT_GAP. Single 45–60 minute block, 4000x scale, parallel execution across UI / runtime / monitoring / acceptance / rollout / lessons.

2. Entry state (verified before any mutation)

  • Migrations 001–023 applied; runtime 010–330 applied.
  • DOT 136/136 (21 tables / 22 views / 50 functions / 3 triggers / 9 config / 15 event_type / 16 routes).
  • 60 enacted IUs / 163 envelope rows / current_drift.in_sync = true / cache_healthy = true.
  • Qdrant iu_core_iu_chunks: 61 points / 60 unique IUs / 1 multi-chunk unit (KT-B). Payload carries unit_id, chunk_index, chunk_count, axis_refs.{source,semantic,hierarchy}.
  • All write gates inert: composer / delivery / operator_runtime / structure_ops / vector_sync / three_axis_auto_refresh = false. (Routes master + worker remain true with dry_run on every route — 240x state.)
  • 1500x nuxt_assembly_contract.py is the spec a frontend developer needs; the VPS Nuxt repo at /opt/incomex/docker/nuxt-repo/web has zero IU Core source references (independently re-verified via grep).

3. Backup before any mutation

pg_dump -Fc of the live directus DB against the postgres container on vmi3080463:

  • File: /opt/incomex/backups/directus-pre-iucore-4000x-20260523T084654Z.dump
  • Size: 77 626 154 bytes
  • sha256: f18ae2f6512adabc186c84dbb87323e7f334c17e72f688e043915aca8a8970b7

4. What 4000x set out to close

# Slice What
A Migration 024 — auto-refresh trigger Wire 023's drift-gated refresh wrapper to the live IU lifecycle (statement-level AFTER triggers on information_unit + iu_metadata_tag).
B Deploy-ready Nuxt UI package Author a compliant Vue + composable + compose + runtimeConfig snippet under ui-package/nuxt-iu-three-axis/, against the 1500x assembly contract and the existing VPS Nuxt repo conventions.
C External healthcheck extension Extend dot_iu_external_healthcheck with the auto-refresh trigger surface (gate / fires / errors). New dot_iu_three_axis_envelope_trigger_status command.
D Real user flow smoke Re-prove Directus REST per-axis filters, Qdrant per-IU boundary, drift-gated refresh against the live cache.
E Tests + KB + commit +25 net tests (4000x suite) on top of 1113 baseline → 1138 total. Seven KB reports under this directory. AgentData upload + verify.

5. Mandatory gates (all PASS before any production mutation)

  1. Correct host + tools — MacBook repo /Users/nmhuyen/iu-cutter-build/repo/iu-cutter, psql / pg_dump / SSH all present.
  2. Target identity — postgres container on vmi3080463, db directus, host fingerprint via ssh contabo.
  3. Fresh backup with sha256 (§3).
  4. Nuxt container current state — docker inspect incomex-nuxt snapshot captured; no env / restart performed.
  5. Rollback paths exist before apply — sql/iu-core/rollback/024_…rollback.sql + sql/iu-core/runtime/rollback/340_…rollback.sql authored alongside the forward migration.
  6. DOT baseline clean — runtime/110 PASS at 136/136 before; PASS at 140/140 after migration 024 (table 21→22, function 50→51, trigger 3→5).
  7. Discover-first — every collection name / host / token / column name discovered from live catalog or container env; no string hardcoded in the new code (verified by TestNoHardcodedSecretOrConnector).
  8. Bounded + reversible — migration 024 = 1 table + 1 function + 2 triggers, all reversible by 024.rollback.sql. Runtime/340 = 1 audit row under actor='iu_lifecycle_trigger', reversible by delete-by-actor.
  9. Operator-runtime gate untouched (still false).
  10. Vector sync gate untouched (still false).
  11. Qdrant collection schema untouched — re-prove only, no reindex.
  12. Directus permissions untouched — re-prove only, no write.
  13. UI boundary preserved — Nuxt package is PG → Directus → Nuxt assembly; the Vue page uses $directus.readItems(...) or the composable's wrapper over useDirectus<>(readItems(...)) only.
  14. AgentData report upload+list+search verification path active (see doc 07).

6. Disposition

IU_CORE_4000X_UI_RUNTIME_ACCEPTANCE_PASS — 24 of 24 acceptance-matrix rows are either DONE (production-durable + verified) or DONE_WITH_EXTERNAL_BLOCKER (deploy-ready package authored; final copy + image rebuild + container restart is a frontend-developer / DevOps responsibility, intentionally outside IU Core macro scope per the 23-p3d UI boundary note).

Zero unsafe production state at exit. The auto-refresh trigger gate (iu_core.three_axis_auto_refresh_enabled) is false; the triggers are installed but inert until a future macro flips the gate. A controlled true → no-op UPDATE → false cycle was proven during runtime/340 and is the durable proof of trigger correctness.

Back to Knowledge Hub knowledge/dev/laws/dieu44-trien-khai/v0.6-iu-core-4000x-ui-runtime-acceptance-monitoring-rollout-open-goal/01-macro-and-gates.md