KB-2B84

07 — Static UI Preview v2 Deploy Report (Branch F)

4 min read Revision 1
registries-pivotui-preview-v2deployedstaticzero-mutationrollbackableos-agency2026-05-31

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)

  1. 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 …).
  2. Leaf-set count integrity state (160/152/3/5, FAILED honest, invariant closes).
  3. Current net_gap (+5,380, fluctuating note).
  4. Drift rows (CAT-023/006/007, source_model-aware verdicts).
  5. Missing-pivot summary (21/160 backed, 139 PIVOT_MISSING) + bundle table with engine proofs.
  6. Dynamic drilldown example (24 roots / 6 parents / 0 dangling / depth 3; edge list; leaf→substrate).
  7. Label grouping required (28/160 over ceiling; 23 label_code groups; display_policy seeds).
  8. Pin column (registry_pin pilot rows; scopes; "PG-backed not localStorage").
  9. Orphan/phantom warnings (orphan leaf 0, phantom candidate 1, LAW_DEFINITION_GAP banner).
  10. Final substrate panel (fn_registries_pivot_node_substrate — model-B file path vs model-A table).
  11. Directus/API expected endpoints (8) + GOOD-pattern callout.
  12. 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.

Back to Knowledge Hub knowledge/dev/reports/architecture/registries-pivot-macro2-3-combined-ui-api-legacy-acceptance-2026-05-31/07-static-ui-preview-v2-deploy-report.md