IU Core 960x — 06 Final report
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, containerpostgres(postgres:16), DBdirectus - 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— +55iu_tree_change_logprojection rows (the internal structure-event delivery batch). The text-as-code apply proof — +7dot_iu_command_runledger 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 39093de → 24c2885 (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_syncconfig 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.