KB-61AF

Registries-Pivot Preview — Access Verification & Fix Pass (2026-05-31)

8 min read Revision 1
registries-pivotpreviewaccess-verificationarchitecturereport2026-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 over https://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.html present (HTTP 200, 22,531 B) — title Registries-Pivot — Connected Static Preview v2 (DRAFT).
  • data.json present (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 inline render() consumes.
  • Relative paths correct: fetch target is ./data.json (relative, same dir). No localhost, 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 inline INLINE snapshot 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.json parses 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-pivotCATCH-ALL behavior:

  • It is served by the generic Nuxt /knowledge/[…slug] knowledge-document renderer (title Knowledge Document - Incomex AI Portal).
  • Proof of catch-all: a deliberately nonexistent slug /knowledge/this-route-does-not-exist-xyz123 ALSO 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-pivot slug resolves a stored KB document (the knowledge-registries-pivot data 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.md update (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/.