Registries-Pivot Preview — Access Verification & Fix Pass (2026-05-31)
title: Registries-Pivot Preview — Access Verification & Fix Pass date: 2026-05-31 status: PASS — preview verified accessible, no fix required, production route clarified mutation: NONE (read-only verification + KB authoring only) host: contabo VPS (vmi3080463)
Registries-Pivot Preview — Access Verification & Fix Pass (2026-05-31)
Trigger
User reported: "cannot access the Registries-Pivot information."
Prior macro state: v2 static preview deployed at /ui-preview/registries-pivot/v2/;
production route /knowledge/registries-pivot NOT implemented; no production Nuxt change.
Verdict
PASS. The static preview v2 is live, healthy, and was never broken. No static fix was required. The reported inaccessibility is a URL-confusion issue, not a deployment fault: the production address renders a generic knowledge document, while the actual interactive material lives at the preview URL.
Correct URL for the user to open:
https://vps.incomexsaigoncorp.vn/ui-preview/registries-pivot/v2/ (trailing slash required)
Hard Gate 0 — confirmed
- Host = contabo VPS (
vmi3080463); served overhttps://vps.incomexsaigoncorp.vn. - nginx static preview path serves correctly (HTTP 200 on
…/v2/,…/v2/index.html,…/v2/data.json). - Production app untouched: homepage
/→ HTTP 200, 256,361 B. - Zero PG / Directus / Qdrant mutation. No production Nuxt change. No route implementation.
- The only writes performed: two KB documents (this report + review-log update) — explicitly requested.
URL verification matrix
| # | URL | HTTP | Content-Type | Size | Expected? |
|---|---|---|---|---|---|
| 1 | …/ui-preview/registries-pivot/v2/ |
200 | text/html | 22,531 B | ✅ yes — preview shell |
| 2 | …/ui-preview/registries-pivot/v2/index.html |
200 | text/html | 22,531 B | ✅ yes — identical to (1) |
| 3 | …/ui-preview/registries-pivot/v2/data.json |
200 | application/json | 12,100 B | ✅ yes — valid JSON |
| 4 | …/ui-preview/registries-pivot/v1/ |
200 | text/html | 11,337 B | ✅ yes — v1 untouched |
| 5 | …/knowledge/registries-pivot |
200 | text/html | 1,751,516 B | ⚠️ catch-all knowledge-doc renderer, NOT the pivot surface |
| — | / (homepage, site health) |
200 | text/html | 256,361 B | ✅ yes — production untouched |
| — | …/v2 (no trailing slash) |
301 → …/v2/ |
— | — | ✅ normal nginx dir redirect |
Static-file inspection (served bytes = filesystem truth via nginx)
(Note: MCP read_file allowlist is /opt/incomex/docs, /opt/incomex/dot/specs, /var/log/nginx
— it does NOT cover the nginx static dir, so the authoritative inspection is the HTTP-served
content, which nginx serves verbatim from /opt/incomex/docker/nginx/static/ui-preview/registries-pivot/v2/.)
index.htmlpresent (HTTP 200, 22,531 B) — titleRegistries-Pivot — Connected Static Preview v2 (DRAFT).data.jsonpresent (HTTP 200, 12,100 B) — valid JSON, 13 top-level keys:meta, root_summary, count_integrity, drift_rows, missing_pivots, drilldown_example, label_grouping, pins, orphan_phantom, substrate_examples, api_endpoints, legacy_violations, good_pattern— exactly the fields the inlinerender()consumes.- Relative paths correct: fetch target is
./data.json(relative, same dir). Nolocalhost, no absolute host, no production/api/runtime dependency. - No missing assets: page is fully self-contained — inline
<style>and inline<script>, zero external CSS/JS. The only external request is./data.json. - Robust fetch with fallback:
fetch('./data.json').then(r=>r.ok?r.json():Promise.reject()).then(render).catch(()=>render(INLINE))— an identical inlineINLINEsnapshot is embedded, so the page renders correctly even if data.json fails to load. This makes a "blank page" essentially impossible from a data error.
Browser-like checks
- Page contains the title
Registries-Pivot — Connected Static Preview v2 (DRAFT). ✅ - Draft banner is generated at runtime:
DRAFT — design review only · static host · zero DB/Nuxt/Directus mutation · laws: …. ✅ data.jsonparses as valid JSON; all JS-consumed fields present. ✅- No JS syntax error encountered; no fetch path mismatch. ✅
- TLS: valid Let's Encrypt cert (issuer E7, CN=vps.incomexsaigoncorp.vn, valid
2026-05-01 → 2026-07-30),
ssl_verify_result: 0. A browser will not show a security warning. (Ruled out the most common silent "cannot access" cause.)
Result: no error found. No static fix applied. No backup needed (nothing edited).
Production route clarification
Route /knowledge/registries-pivot → CATCH-ALL behavior:
- It is served by the generic Nuxt
/knowledge/[…slug]knowledge-document renderer (titleKnowledge Document - Incomex AI Portal). - Proof of catch-all: a deliberately nonexistent slug
/knowledge/this-route-does-not-exist-xyz123ALSO returns HTTP 200 with the same ~1.75 MB shell (soft-404 within the SPA). The route does not 404 at the HTTP layer for unknown slugs. - The real
registries-pivotslug resolves a stored KB document (theknowledge-registries-pivotdata key is present in the Nuxt payload; integrity/pivot terms appear in the rendered body), so it shows a document, not the interactive OS-agency pivot surface. - Classification: exists only as a generic document view (catch-all). The dedicated interactive Registries-Pivot surface is NOT implemented in production Nuxt.
Why the user should use the preview now: the preview at /ui-preview/registries-pivot/v2/ is the
only place that renders the connected Registries-Pivot OS-agency surface (count integrity, drift,
missing pivots, drill-down, label grouping, pins, orphan/phantom, substrate, API contract, legacy
violations). The production route currently shows only a static knowledge document.
Which future macro implements the production route: per the roadmap, production implementation is
gated on RG1+RG2 (ratify + commit the six-object view foundation), then RG7 (8 Directus/Nuxt
API endpoints over the committed views) and RG8 (the Nuxt shell at /knowledge/registries-pivot),
followed by RG9 (redirect/retire legacy /knowledge/registries + CI). None of those are done; all
require human approval first (current approval state: COMMIT_FORBIDDEN_NO_APPROVAL).
Root cause of "cannot access"
Not a deployment fault. Most likely the user opened the production address
/knowledge/registries-pivot (expecting the interactive surface) and saw only a generic knowledge
document — or did not have the exact preview URL. The preview itself is fully reachable, TLS-valid,
and self-healing via inline fallback.
Fixes made
None. The preview required no change. (No file was edited, so no backup was taken.)
Forbidden-compliance
- No PG mutation. ✅
- No Directus mutation. ✅
- No Qdrant / vector write. ✅
- No production Nuxt change. ✅
- No route implementation. ✅
- No legacy retirement. ✅
- No fake approval. ✅
- No event/job execution. ✅
- Only writes: this report +
review-log.mdupdate (requested KB authoring). ✅
Next macro
RG1+RG2 ratification (human approval to commit the six-object view foundation) → then
RG7 API endpoints + RG8 Nuxt shell to stand up the real production route
/knowledge/registries-pivot. Until then, the canonical user-facing URL is the preview:
https://vps.incomexsaigoncorp.vn/ui-preview/registries-pivot/v2/.