Two unescaped <tenant> placeholders in regulated/ats.mdx and regulated/bd.mdx
were parsed as JSX and broke the MDX/static-export build. With the build
failing, the shipped image carried only the home hub, so every deep topic
(/architecture, /consensus, /sdk/quickstart, ...) fell through the SPA index
fallback and rendered the hub instead of its own page. Escaping the
placeholders restores the export: generateStaticParams now emits all 458
topic pages (architecture.html, consensus.html, sdk/quickstart.html, ...),
each distinct, which the hanzoai/spa server resolves directly (verified with
the real spa binary locally — /architecture -> 'Architecture | Lux Docs', no
longer the hub).
CI: rebuild on the luxfi self-hosted ARC pool (runs-on: lux-build) and push
ghcr.io/luxfi/lux-docs:latest — the exact image the live deployment pulls.
GitHub-hosted runners are billing-blocked for luxfi. Removed the old
ubuntu-latest deploy.yml (billing-blocked) and the cross-org workflow-sanity
call that luxfi/docs cannot resolve (startup_failure).
- Add packageManager field to package.json for pnpm version consistency
- Remove explicit pnpm version from workflow (reads from packageManager)
- Add .nojekyll file to prevent Jekyll processing of _next directory
- Add .nojekyll generation step to deploy workflow
- Inlined @luxfi/brand/styles/docs.css to app/global.css
- Removed file:../brand dependency that fails in CI
- Pinned @hanzo/docs packages to exact versions (avoid 16.3.0)
- Fixed toSource() to toFumadocsSource() for npm packages