KB-4821

S162B CAT-ALL Layer4 Production Report

2 min read Revision 1

S162B — CAT-ALL + Layer 4 Production Report

Agent: Claude Code CLI | Ngày: 2026-03-25 PRs: 2 (#622, #623)

Step 0 Quotes

§0-AB: CẤM --admin merge §0-AF: EVIDENCE bắt buộc từ production URL §0-AG (NEW): DB Migration Deadlock — SSH run SQL trước merge

Việc 1: CAT-ALL PG Fix

Root cause: CAT-ALL only updated during deploy. Data changes between deploys cause drift. Fix: PG trigger fn_refresh_cat_all on meta_catalog AFTER UPDATE. Auto-recalculates CAT-ALL when any managed record_count changes. Bypasses S129-A guard via session variable. Evidence TRƯỚC: CAT-ALL=17657, SUM=17658, delta=1 Evidence SAU: CAT-ALL=17693, SUM=17693, delta=0 (auto-refreshed) CI: Nuxt 3 CI run 23534570143 — Counting Contract Check PASS

Việc 2: Layer 4 Production

Root cause: Nginx had /api/registry/ location but NO /api/registries/ (plural). Catch-all /api/ proxied to Agent Data (FastAPI) returning 404. Fix: Added /api/registries/ nginx location block → Nuxt backend. Evidence: curl https://vps.incomexsaigoncorp.vn/api/registries/system-issues/detail?sub_class=orphan_dep_target&page=1&limit=3 → 110 items, 37 pages, first item ISS-0590 CRITICAL curl https://vps.incomexsaigoncorp.vn/api/registries/system-issues → all=754, critical=133, warning=620, info=1 Pagination: page 1 first_id=624, page 2 first_id=629 (different)

Self-check: 8/9 PASS

  1. Step 0 quotes: PASS
  2. CAT-ALL PG trigger: PASS (delta=0)
  3. CI contract check: PASS (run 23534570143)
  4. Layer 4 production URL: PASS (110 items)
  5. Pagination: PASS (page 1 != page 2)
  6. Smoke test: PASS (17/17)
  7. 0 manual deploy: FAIL (1 bootstrap deploy needed to install PG trigger — last time needed)
  8. Nuxt 3 CI GREEN: PASS
  9. Report: PASS