07 — Static UI Preview v2 Deploy Report (Branch F)
title: 07 — Static UI Preview v2 Deploy Report (Branch F) date: 2026-05-31 status: DEPLOYED — HTTP 200 preview_url: https://vps.incomexsaigoncorp.vn/ui-preview/registries-pivot/v2/
07 — Static UI Preview v2 Deploy Report (Branch F)
Result
LIVE: https://vps.incomexsaigoncorp.vn/ui-preview/registries-pivot/v2/ — HTTP 200
(index.html 22,531 B + data.json 12,100 B), verified over HTTPS with host header. v1 untouched
and still live. Zero DB / Nuxt / Directus / Qdrant mutation.
Hosting (reuses existing infra — no nginx change)
- Host path:
/opt/incomex/docker/nginx/static/ui-preview/registries-pivot/v2/. - Served by the existing nginx
location /ui-preview/(conf.d/default.conf:118,root, not alias). No config edit, no reload needed. - Deploy: built locally
/tmp/rp_v2/,tar czf - | ssh contabo "mkdir -p …/v2 && tar xzf - -C …/v2". - Versioned beside
v1/(and_demo/ _master/ mow/). Rollback =rm -rf …/registries-pivot/v2/.
Connected data (read-only snapshot, not mock-invented)
data.json is generated from the live read snapshot (this run) + the Macro 1/2/3
contract. It IS the API response contract (doc 06), so preview and future endpoints share one
shape. The page does fetch('./data.json') with an inline fallback (works even if fetch fails).
Sections rendered (all 11 required + extras)
- Root summary + the 6 disagreeing totals (PIV-500 target 2,007,288 vs counts API 1,726,581 vs CAT-ALL 1,725,206 vs health Σ|gap| 991,501 …).
- Leaf-set count integrity state (160/152/3/5, FAILED honest, invariant closes).
- Current net_gap (+5,380, fluctuating note).
- Drift rows (CAT-023/006/007, source_model-aware verdicts).
- Missing-pivot summary (21/160 backed, 139 PIVOT_MISSING) + bundle table with engine proofs.
- Dynamic drilldown example (24 roots / 6 parents / 0 dangling / depth 3; edge list; leaf→substrate).
- Label grouping required (28/160 over ceiling; 23 label_code groups; display_policy seeds).
- Pin column (registry_pin pilot rows; scopes; "PG-backed not localStorage").
- Orphan/phantom warnings (orphan leaf 0, phantom candidate 1, LAW_DEFINITION_GAP banner).
- Final substrate panel (
fn_registries_pivot_node_substrate— model-B file path vs model-A table). - Directus/API expected endpoints (8) + GOOD-pattern callout.
- Legacy violation warning (file:line table, Đ28).
Style
OS-Agency, functional not decorative: tokens --g:#639922 --a:#ef9f27 --r:#e24b4a (matches
v1 and the master canvas). Persistent DRAFT banner + APPROVAL MODE: COMMIT_FORBIDDEN
banner; every PROPOSED/LEGACY/LIVE item tagged so a reviewer never mistakes a rehearsal for a
commit.
Honesty guards baked into the page
- Pins labelled "rehearsal pilots, not persisted".
- Every pivot/view/table tagged PROPOSED until committed.
- net_gap footnoted as a live moving target (CAT-023 race).
- FAILED status shown as-is, never hidden behind Σ|gap|.
Canonical KB updated
knowledge/dev/ui/registries-pivot/spec.md and review-log.md created/updated with
preview_url and this report reference.
Verdict
UI preview v2 DEPLOYED and verified. Static, versioned, rollbackable, zero mutation, connected to a real read snapshot.