KB-F085

IU Core 960x — 06 Final report

7 min read Revision 1
iu-core960xdot-iu-cutter-v0.6final-reportdieu44

IU Core — 960x delivery / text-as-code import / surface / sync — Final report

  • 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, container postgres (postgres:16), DB directus
  • Outcome: IU_CORE_960X_DELIVERY_TEXTCODE_IMPORT_SURFACE_SYNC_PASS

1. Final status

IU Core moved from "piece-native composer + auto-cut proof + operator-runtime mutation proven" to two production-grade firsts: the first controlled internal delivery seam BATCH, and the first durable text-as-code APPLY. Both are governed, bounded, reversible, internal-only. DOT stays 113/113. No unsafe production state exists; no forbidden action was taken.

2. What changed

  • Production (durable): runtime/300 — +55 iu_tree_change_log projection rows (the internal structure-event delivery batch). The text-as-code apply proof — +7 dot_iu_command_run ledger rows, net-zero piece movement (self-compensating reorder).
  • Repo (commit 24c2885): runtime/300_delivery_internal_batch.sql (+rollback), sandbox/150 + sandbox/160, text_as_code.py (+build_collection_apply_plan / ApplyOperation / CollectionApplyPlan / APPLY_IS_DESTRUCTIVE), test_iu_core_960x_textcode_delivery.py (+22).
  • KB (commit 5b743c0): 7 reports + text_as_code_apply_operator_proof.py.

3. Repo / branch / HEAD

Branch main; HEAD 39093de24c2885 (code) → 5b743c0 (KB). No push / merge / tag.

4. Production backup + gates

Gate 3 PASS — pg_dump -Fc /opt/incomex/backups/directus-pre-iucore-960x-20260522T135027Z.dump, 76,393,724 bytes, sha256 ee058a33e435b6c37aea346070f44b1bb1a1c5e0c4b7e4840c799ad9ca38f697, valid archive (3159 entries). All 18 mandatory gates PASS. See doc 01.

5. Current-state verification

Production verified at the 500x durable surface (DOT 113/113, iu=163, coll=3, membership=8, cmd_run=11, change_log=1, 959 tests) — no repair needed. The prior macro's reports carry the canonical 500x label; no naming drift remained. See doc 01.

6. Internal delivery seam — controlled batch

runtime/300 delivered the full DISCOVERED 55-event structure backlog through the internal sql_function consumer in one dry_run=false transaction; a re-delivery of the whole set added 0 rows (idempotent on event_ref). iu_tree_change_log 1 → 56, dead-letter 0, both routes + both gates restored. sandbox/150 9/9 proves the fail-closed contract. No external side effect is reachable. See doc 02.

7. Text-as-code import → apply gate

text_as_code.build_collection_apply_plan turns a desired composition manifest + a collection's live piece list into a non-destructive, governed add/remove/reorder plan. sandbox/160 8/8 proves the apply gate (reorder/remove/add/validate/digest). text_as_code_apply_operator_proof.py ran the FIRST durable apply through OperatorRuntime: a reverse-order reconciliation + its compensation, roundtripping iu_core.autocut.file-001 byte-identical (digest 3d51e759…). cmd_run 11 → 18. See doc 03.

8. OperatorRuntime coverage / piece flows / auto-cut

dot_iu_reorder_piece proven durably ×4 apply + ×1 refused; dot_iu_validate_collection ×2 verify; add/remove in sandbox/160; all 17 commands _assert_governed-clean (test-locked). Two piece-native flows exercised on the live durable collections; the auto-cut output iu_core.autocut.file-001 is now a first-class text-as-code apply target — auto-cut and piece-native authoring converge on the same composer model. See doc 04.

9. Sync / surface packages

AgentData-side sync complete (this macro's reports uploaded + verified). The Qdrant reindex contract is specified with an exact blocker (no connector module + no vector_sync gate in repo). The operator surface already exists as read-only v_* views + the dot_commands CLI; a Directus/Nuxt UI exposure is a documented deploy-gated runbook. See doc 05.

10. DOT / no-hardcode / five-layer

runtime/110 113/113 before and after — the macro adds data, not production-visible objects. No-hardcode PASS across all 5 new files (comment-excluded scan). Five-layer classified — PG real/additive, Directus none, Nuxt render-only, AgentData 7 reports, Qdrant plan-only. See doc 05.

11. Rollback / disable readiness

runtime/rollback/300 (the projection is truncatable + rebuildable); the durable apply is self-compensating + ledger rows deletable by actor; full gate-close disable path (delivery / composer / operator-runtime / master / worker). End-state: every IU Core write-gate inert. See docs 02, 03, 05.

12. Tests

981 passed (was 959; +22 in test_iu_core_960x_textcode_delivery.py). DOT inventory unchanged at 113 — no DOT-count test file needed editing.

13. KB / AgentData reports

7 reports under v0.6-iu-core-960x-delivery-textcode-import-surface-sync-acceptance-open-goal/, plus text_as_code_apply_operator_proof.py, uploaded to AgentData and verified by list_documents + get_document + search_knowledge.

14. Finding

F-960x-1 — the OperatorRuntime gate-window pattern is not concurrency-safe: two proof-driver instances racing on the dot_config gate toggles caused a refused compensation. Repaired in one governed transaction; the final production state is clean (digest 3d51e759… confirmed). The driver must run as a single instance. Recorded for doc 07.

15. Exact blockers

  • Qdrant connector — no IU-Core → Qdrant connector module and no gated vector_sync config key in the repo. AgentData-side sync + the Qdrant reindex contract are complete; the connector is a recorded next-macro slice. No unsafe production state results.
  • Directus/Nuxt UI — exposing the read-only v_* views as a UI is a deploy-gated integration outside this repo's scope; runbook recorded.

No carried production-apply gap. Every approved DURABLE branch (delivery batch, text-as-code apply) completed.

16. No forbidden action

No external downstream delivery; no uncontrolled production CUT; no destructive text-as-code import/apply; no broad lifecycle mutation; no ungoverned IU creation; no destructive cleanup; no deploy / restart; no daemon; no cron; no execution_enabled flip; no secret logged; no push / merge / tag. GPT handoff not used as task input.

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