docs/app/layout.tsx referenced ZenMono without importing it and without @hanzo/font in its dependencies at all, so the docs site could not compile: tsc reports "Cannot find name 'ZenMono'" on the bare tree. Both faces are imported from the package now, and the package is declared. The README hero card still asked for Inter.
The docs job died at INSTALL, before any of the rest was visible:
postinstall: hanzo-mdx
Error [ERR_MODULE_NOT_FOUND]: Cannot find package '@hanzo/docs-core'
This package was mid-migration to the @hanzo toolchain and several pieces were
simply never finished. Each one only became visible once the one before it was
fixed, so they are listed in the order they surfaced:
1. @hanzo/docs-core undeclared — @hanzo/mdx imports it, so postinstall crashed.
2. `hanzo-mdx` with NO ARGUMENTS reports "generated files" and writes nothing.
It needs `source.config.ts .source`, the form luxfi/consensus uses. Both the
build and postinstall scripts were bare.
3. zod ^3 — @hanzo/mdx 14.2.x calls `z.looseObject`, which is zod 4:
`TypeError: z.looseObject is not a function`. Nothing in docs/ imports zod
directly (0 files), so it exists only for this toolchain; moved to ^4.2.1,
matching mpc which runs the same generator.
4. `import { docs } from "@/.source"` is a DIRECTORY import and the generator
emits no index — it writes browser/dynamic/server.ts. Now "@/.source/server".
5. @hanzo/docs undeclared — next.config.mjs imports @hanzo/docs/mdx/next.
6. app/global.css imported `fumadocs-ui/style.css`, an upstream package that is
not a dependency here. Now @hanzo/docs-ui/style.css, as consensus has it.
7. RootProvider, DocsLayout, DocsPage and defaultMdxComponents were imported
from `@hanzo/ui`, which exports NONE of them — checked at runtime, all five
names including `loader` come back undefined. That is the
"Element type is invalid … got: undefined" build failure. They live in
@hanzo/docs-ui, where consensus already gets them.
8. docs.toFumadocsSource() does not exist on the @hanzo runtime; loader now
comes from @hanzo/docs/core/source with toSource().
9. react-day-picker, react-resizable-panels and flexsearch were undeclared
peers. PINNED to what @hanzo/ui asks for (^9, ^2) — installing latest gives
react-resizable-panels 4, where `PanelGroup` no longer exists.
Verified as a fresh checkout would run it, with node_modules and .source deleted:
pnpm install --frozen-lockfile OK (was ERR_MODULE_NOT_FOUND)
.source after install generated by postinstall
pnpm build OK
Co-authored-by: Hanzo Dev <[email protected]>
- Update mdx-components to import from @hanzo/ui/content (general)
- Keep TypeTable import from @hanzo/ui/docs/components (docs-specific)
- Update @hanzo/ui to ^5.3.26
Consolidate to single @hanzo/docs package with subpath exports:
- @hanzo/docs/core/* for core functionality
- @hanzo/docs/ui/* for UI components
- @hanzo/docs/mdx/* for MDX processing
Uses hanzo-docs CLI instead of fumadocs-mdx for build commands.
Use Hanzo's own documentation framework fork for better integration
with existing @hanzo/ui components and consistent theming.
- Replace fumadocs-core with @hanzo/docs-core
- Replace fumadocs-ui with @hanzo/docs-ui
- Replace fumadocs-mdx with @hanzo/docs-mdx
Clean architecture following Go principles:
- factory.go: Pure Go implementation (default, no CGO)
- factory_cgo.go: C++ optimized version when CGO=1
- orderbook.go: Standalone Go orderbook implementation
- cpp_orderbook.go: C++ bindings for high performance
Also includes:
- Vault execution integration with orderbook
- dex-api-server command for REST/WebSocket API
- E2E test scripts for API validation
- Documentation site scaffolding