KB-3848

§2.1-2.3 K0 Timeline + K1 Official Channels

6 min read Revision 1
s176pg-reconfigk0k1investigate

§2.1-2.3 K0 TIMELINE/RETENTION + K1 OFFICIAL CHANNELS

Part of: PG Reform Tools — S176 mission Prev: 01-kien-truc.md ← | → Next: 03-k2-bypass-writers.md Khối điều tra: K0 (timeline + retention) + K1 (official channels)


§2.1 Mốc thời gian (K0)

Mốc Ngày Sprint Ghi chú
Migration MySQL → PG hoàn tất 2026-03-13 S115 PR #496/#497/#498. Chỉ swap infra, KHÔNG có audit app-layer writers
2 bảng log system_issues + registry_changelog ra đời 2026-03-10 S108 PR #471 WATCHDOG + #473 SELFHEAL. KS.2 verify: CREATE mới hoàn toàn, KHÔNG phải reset
DOT 100% ban hành 2026-03-30 S148 HP v4.4.0 BAN HÀNH, NT-03 trong 11 nguyên tắc
Luật DOT v5.0 (Điều 35) S155 2026-04 67 domain rules, 271 DOT tools
Hiến pháp v4.5.0 + Điều 33 v2.0 2026-04-13 S176 +Kiến trúc 4 DB + 5 ngoại lệ + 1 password GSM

Cửa sổ điều tra khả thi:

  • H3 (sau DOT 100%): 2026-03-30 → 2026-04-13 = 14 ngày (vi phạm hiện tại, fix ngay)
  • H2 (thời MySQL): 2025-12-07 → 2026-03-13 = 96 ngày (qua directus_activity 102k rows)
  • H1 (trước cả MySQL→PG): không có log runtime, chỉ git history
  • (KS.2) "Cửa sổ 4 tháng tối": 2025-12-07 → 2026-03-10 = 93 ngày — trước khi self-healing layer ra đời, không có system_issues/registry_changelog → mọi vi phạm thời kỳ này KHÔNG được log

§2.2 Retention log thực tế (K0)

Nguồn Min Max Retention Ghi chú
directus_activity 2025-12-07 2026-04-13 ~128 ngày 102,496 rows. Xuyên H2↔H3
directus_revisions 2025-12-07 ~128 ngày 97,219 rows
system_issues 2026-03-10 2026-04-12 ~34 ngày 1,069 rows. KS.2: ngày sinh hợp lệ S108-SELFHEAL, không phải reset
registry_changelog 2026-03-10 2026-04-13 ~34 ngày 20,614 rows. KS.2: ngày sinh hợp lệ S108-WATCHDOG
entity_audit_queue 2026-03-20 2026-03-20 1 row Không có producer? Bảng dormant
dot_tools.last_executed per-DOT timestamp 157/272 = cùng timestamp 2026-03-31 08:08:57.064Z (bulk backfill, KHÔNG tin được)
dot_run_log KHÔNG TỒN TẠI NT12 "DOT cặp" không có backing log runtime
PG WAL archive OFF wal_keep_size=0, archive_mode=off, dir 81M
kb_documents_history 90 ngày Auto-cleanup fn_kb_history_cleanup()
kb_audit_log 180 ngày Auto-cleanup fn_kb_audit_cleanup()

Phát hiện quan trọng:

  • Không có dot_run_log → NT12 verify bằng grep + filesystem, không có runtime log
  • PG WAL archive OFF → không thể replay DDL quá khứ, cửa sổ duy nhất nhìn lại = directus_activity (128 ngày)
  • PG database size = 270 MB total → mọi query aggregate dưới 1 giây, scan toàn bộ rất nhanh
  • last_executed bulk-backfill: 157/272 DOT có timestamp giống nhau đến mili-giây → bằng chứng registry rỗng ruột, không dùng để verify "DOT có chạy không"

§2.3 Con đường ghi PG chính thức (K1)

272 DOT trong dot_tools:

  • Tier A (kiểm tra): 49
  • Tier B (ghi/hành động): 223
  • 42 cặp DOT trùng tên (DOT-NNN vs DOT_SEMANTIC) → unique thực ≈ 230
  • coverage_status='complete': chỉ 13/272 (4.8%)
  • 75% DOT KHÔNG khai trigger_type
  • Chỉ 4/272 dual-trigger
  • 75/223 writer có paired_dot = 33.6% → 148 writer KHÔNG có verifier (NT12 vi phạm 66%)
  • 100% pair khai thì khai đúng
  • 38/38 DOT infrastructure.schema paired=None (toàn bộ lớp bootstrap không có verifier)
  • 60/272 (22%) record có file_path=NULL — KS.3 giải thích 14 trong số này, còn 46 chưa biết (dự đoán thuộc cụm MATRIX + KG + MISC)

3 con đường ghi PG hiện tại:

  1. Directus REST API (~56 script trong dot/bin/) — chuẩn L1 theo NT13 PG FIRST
  2. Direct psql/docker exec postgres (12 script) — schema bootstrap, gọi function. Một số đăng ký, một số bypass
  3. PG function gateway fn_* (79 functions) — fn_transition_lifecycle, fn_bulk_transition, fn_gov_retire_cascade, fn_law_retire_cascade — đã có sẵn "phôi" gateway, chỉ DOT-111/112 dùng

3 vùng buộc đi thẳng PG (không thể qua Directus):

  1. Schema bootstrap DDLdot-pg-*-ensure, dot-schema-*-apply (Directus REST không expose CREATE TABLE)
  2. PG function call — refresh, transition lifecycle (Directus REST không expose function call)
  3. Normative law tablesdot-nrm-* (PG-only, không có collection Directus)

Đây là 3 vùng buộc ngoại lệ, hợp pháp hoá trong Điều 33 §13 (E1, E2, E3).

Pattern an toàn:

  • 47 occurrences ON CONFLICT / 29 file — idempotent tốt
  • 12 file vẫn còn pattern SELECT-then-INSERT (race risk): dot-orphan-scanner, dot-gov-seed, dot-nrm-enact, dot-collection-health, dot-matrix-declare, dot-collection-create, dot-pivot-declare, dot-schema-dot-origin-ensure, dot-birth-trigger-setup...

15 script trong dot/bin/ KHÔNG match dot_tools qua file_path (§0-AY):

  • 2 không có metadata: dot-cron-matrix-setup, dot-script-lint (KS.3 làm rõ: dot-script-lint CÓ metadata DOT_SCRIPT_LINT nhưng file_path rỗng)
  • 13 L1 yếu: dot-nrm-* × 10, dot-doc-* × 3 — metadata CÓ code DOT_NRM_*/DOT_DOC_* nhưng file_path=NULL

File 02 — §2.1-2.3 K0+K1 | Index | S176 | Living doc