100 Commits
Author SHA1 Message Date
Hanzo Dev 8f74e3d4f2 Name the OLAP store Hanzo Datastore
Co-authored-by: Hanzo Dev <dev@hanzo.ai>
2026-07-26 16:17:47 -07:00
Hanzo Dev c62b8f61a9 Name the OLAP store Hanzo Datastore
The product is hanzoai/datastore. ClickHouse is its upstream, named where
provenance is the subject and nowhere else.

Co-authored-by: Hanzo Dev <dev@hanzo.ai>
2026-07-26 16:16:17 -07:00
hanzo-dev 8b027e9dc0 docs: Ask AI on the landing page + default to enso
- Mount AISearch panel + floating "Ask AI" trigger in the home layout
  (parity with /docs) so the landing page has it too.
- Default the docs-AI model to `enso` (was zen-coder-flash/zen5) —
  matches hanzo.chat/hanzo.app; override via HANZO_AI_MODEL.

Fresh buildId also busts the cached "Powered by Inkeep AI" chat chunk
(the Inkeep rebrand shipped in 7ed5e4c but lingers in already-open tabs).
2026-07-23 23:19:20 -07:00
hanzo-dev 7ed5e4c7ab rip Inkeep from docs — 100% native Hanzo AI (rag-api + api.hanzo.ai/v1)
docs.hanzo.ai's AI chat now runs entirely on our own stack. The live
/api/chat route was already native (Hanzo gateway) but ungrounded — it
now retrieves from our rag-api index before answering, and cites sources:

  - retrieval: rag-api /query — native index over the docs
  - generation: Hanzo gateway (api.hanzo.ai/v1, zen-coder-flash)
  - sources: provideLinks tool, populated from the indexed metadata

Purged Inkeep repo-wide (only our stack, one way):
  - removed the dead third-party Inkeep handler (lib/inkeep -> lib/ai)
  - widget credit "Powered by Inkeep AI" -> "Powered by Hanzo AI"
  - create-app generator: dead `inkeep` provider -> native `hanzo`
    (installs the ai/hanzo registry bundle; INKEEP_API_KEY -> HANZO_API_KEY)
  - 4 legacy *-docs apps: de-Inkeeped schema, fixed dangling imports

Zero `inkeep` references remain in the codebase.
2026-07-23 22:20:25 -07:00
Hanzo Dev 86cfc46fc5 Merge branch 'fix/dead-docs-links' — dead-link + build-guard fixes, product-path redirects 2026-07-19 20:03:34 -07:00
Hanzo Dev dd02e4e34b openapi-specs: bot machines move to /v1/compute/bots
cloud split the noun: /v1/bots is the run the bot runtime executes, and a
kind=bot machine plus its agent binding is compute, under visor's namespace.
These published specs described the machine at the run's path.

Applied surgically rather than re-copied from hanzoai/openapi: these snapshots
have drifted from that source, so a wholesale copy would sweep in unrelated
changes.
2026-07-15 22:45:56 -07:00
Hanzo Dev b7bb2df25a docs(usage): drop the routing paper citation — the paper does not exist
The Smart-routing page closed with "For the methodology and full numbers:" and a
card linking papers.hanzo.ai/hanzo-router. That URL 404s, and no such paper
exists: ~/work/hanzo/papers holds 25 sources, none about routing, and the 77
papers published on papers.hanzo.ai contain nothing on routing, model selection
or routing cost.

So the sentence "We never publish fabricated benchmarks" was followed by a link
to a fabricated citation. The card is removed and the lead-in now says what is
actually true of each number on the page: the 89% mix is a worked illustration,
the RouterBench figure is a third-party public result, and there is no Hanzo
paper to cite.

The zen-router model card stays — huggingface.co/zenlm/zen-router resolves (200).
2026-07-15 22:22:33 -07:00
Hanzo Dev 1c5f134acd fix(build): guard the services-nav generator on the catalog API, not the import
The generator's contract is that it never breaks the build: if the catalog is
unavailable it keeps the committed meta.json and exits 0. The guard tested the
wrong thing — that `import("@hanzo/products")` resolved — so it only held when
nothing was installed.

`@hanzo/products` on the public registry is an unrelated package (a Svelte
component library), which resolves fine and exports no catalog. The import then
succeeded, `docsCoverage` destructured to undefined, and `build:pre` died with
`TypeError: docsCoverage is not a function` — taking the whole docs build with
it, since it is the first command in the chain.

Checking the API the generator actually calls makes the guard match its contract
for both cases: absent, or present but not the catalog.

Note for whoever owns the catalog: apps/docs declares `@hanzo/products: ^0.1.0`,
which resolves to that unrelated third-party package. Nothing else imports it.
It cannot supply the taxonomy this script wants, so the dependency is worth
removing or repointing at the real catalog — a call for the dependency owner,
not this fix.
2026-07-15 22:22:20 -07:00
Hanzo Dev 6c4804ad73 fix(build): declare the env the docs build reads so turbo stops stripping it
turbo runs tasks in strict env mode (2.x default): a task only sees the env
vars declared for it. `build` declared none, so every var the deploy workflow
exports was dropped before the build ran:

  NEXT_EXPORT   -> next.config gates `output: 'export'` on it. Stripped, the
                   build emits no out/, and the next workflow step is
                   `wrangler pages deploy out`.
  HANZO_DOCS_SYNC -> pre-build gates the project-docs sync on it. Stripped, the
                   sync runs — the workflow sets it to 0 precisely so the
                   committed snapshot is used instead.
  NODE_OPTIONS  -> the heap ceiling the workflow raises for this build.

`turbo run build --filter=docs --dry=json` reported envMode "strict" with
configured [] and passthrough null; it now lists NEXT_EXPORT, HANZO_DOCS_SYNC
and NODE_OPTIONS.

This regressed in 6167d746c, which moved NEXT_EXPORT and NODE_OPTIONS out of the
app's build script — where they were inline and immune to turbo's env filter —
into the workflow's env block.

The two vars that select what is built (NEXT_EXPORT, HANZO_DOCS_SYNC) belong in
`env`, where they also key the cache: a non-export build and an export build are
not interchangeable artifacts. NODE_OPTIONS only shapes how the build runs, so
it is passThroughEnv and stays out of the hash. The wildcards cover the rest of
the HANZO_DOCS_*/HANZO_SEARCH_* knobs the build scripts read, so the next one
added does not silently vanish.
2026-07-15 22:22:04 -07:00
Hanzo Dev f26ccae373 fix(docs): alias the bare product paths hanzo.ai links (/network, /node, /self-host)
hanzo.ai's Network, Node and Cloud CTAs link bare paths on docs.hanzo.ai that
never had pages: /network, /network/quickstart, /node, /node/quickstart and
/self-host all 404. Route them to their canonical pages through _redirects, the
one mechanism this site has for HTTP redirects (the static export ignores
next.config redirects()), extending the existing bare-product-path list rather
than adding thin duplicate pages.

The network and self-host story is the same page — content/docs/network.mdx,
"the AI cloud you can run yourself". Running a node is the Node Operator Guide
under proof-of-ai, the one node doc whose live/roadmap table matches the shipped
source. Neither product has a separate quickstart page and neither has a
verified standalone start sequence to write one from, so the guessed /quickstart
children resolve to the canonical page, which opens with its own start steps.

Every target in the file is verified to resolve to real content.
2026-07-15 20:29:40 -07:00
hanzo-dev 38e2600661 ci: route linux/amd64 jobs to hanzo-build-linux-amd64 ARC scale set
Claude-Session: https://claude.ai/code/session_01RFrWpXc1BsqfrFYMbyDusJ
2026-07-10 21:52:53 -07:00
hanzo-dev 5c63bfd14a ci: route linux/amd64 jobs to hanzo-build-linux-amd64 ARC scale set
Claude-Session: https://claude.ai/code/session_01RFrWpXc1BsqfrFYMbyDusJ
2026-07-10 21:52:53 -07:00
Hanzo DevandGitHub 6eee5c255c docs: debrand SigNoz -> O11y across hanzoai project docs (#37)
Drop "signoz"/"SigNoz" branding in favor of "o11y"/"O11y" across the
ported hanzoai observability docs (file/dir names, prose, headings,
env vars, ClickHouse db names, config keys, Go package paths).

- Consolidate the sloppily-migrated twin trees: signoz/ -> o11y/ and
  signoz-otel-collector/ -> otel-collector/ (union content, keep o11y's
  unique config/ + RFC, restore missing readme-assets, drop the branded
  duplicates from the project nav).
- Rename signoz-named paths (signoz-ingester.service, pours/deployment/
  signoz/, signoz.tf.json, readme-assets/signoz-hero-*.png, ...).
- Case-correct content pass (SIGNOZ->O11Y, SigNoz->O11y, signoz->o11y);
  SIGNOZ_* env vars -> O11Y_*; ClickHouse signoz_* -> o11y_*; fork Go
  package pkg/signoz -> pkg/o11y; module hanzoai/signoz-otel-collector
  -> hanzoai/otel-collector.
- Fix pre-existing broken "github.com/Hanzo O11y/..." download URLs and a
  SIGNOZ_VERSION/O11Y_VERSION ARG mismatch left by an earlier partial pass.

Kept (upstream attribution / external wire contracts):
- honest "Fork of SigNoz" attribution lines + github.com/SigNoz/* release
  and import URLs, signoz.io / charts.signoz.io / support@signoz.io.
- upstream Docker images signoz/signoz[-otel-collector|-standalone] and
  the signoz/signoz helm coordinate.
- OpAMP resource attribute signoz.collector.id, foundry.signoz.io/*
  annotation keys, and the CloudintegrationtypesCredentials API schema
  fields sigNozApiKey/sigNozApiUrl (serialized wire), and the ClickHouse
  "play" share URLs (functional base64 payloads).
2026-07-09 13:08:01 -07:00
Hanzo DevandGitHub 08f4064bc7 docs: debrand SigNoz -> O11y across hanzoai project docs (#37)
Drop "signoz"/"SigNoz" branding in favor of "o11y"/"O11y" across the
ported hanzoai observability docs (file/dir names, prose, headings,
env vars, ClickHouse db names, config keys, Go package paths).

- Consolidate the sloppily-migrated twin trees: signoz/ -> o11y/ and
  signoz-otel-collector/ -> otel-collector/ (union content, keep o11y's
  unique config/ + RFC, restore missing readme-assets, drop the branded
  duplicates from the project nav).
- Rename signoz-named paths (signoz-ingester.service, pours/deployment/
  signoz/, signoz.tf.json, readme-assets/signoz-hero-*.png, ...).
- Case-correct content pass (SIGNOZ->O11Y, SigNoz->O11y, signoz->o11y);
  SIGNOZ_* env vars -> O11Y_*; ClickHouse signoz_* -> o11y_*; fork Go
  package pkg/signoz -> pkg/o11y; module hanzoai/signoz-otel-collector
  -> hanzoai/otel-collector.
- Fix pre-existing broken "github.com/Hanzo O11y/..." download URLs and a
  SIGNOZ_VERSION/O11Y_VERSION ARG mismatch left by an earlier partial pass.

Kept (upstream attribution / external wire contracts):
- honest "Fork of SigNoz" attribution lines + github.com/SigNoz/* release
  and import URLs, signoz.io / charts.signoz.io / support@signoz.io.
- upstream Docker images signoz/signoz[-otel-collector|-standalone] and
  the signoz/signoz helm coordinate.
- OpAMP resource attribute signoz.collector.id, foundry.signoz.io/*
  annotation keys, and the CloudintegrationtypesCredentials API schema
  fields sigNozApiKey/sigNozApiUrl (serialized wire), and the ClickHouse
  "play" share URLs (functional base64 payloads).
2026-07-09 13:08:01 -07:00
Hanzo DevandGitHub 175750c0b9 docs: present V8 · Open Edition — category-first IA, decentralized spine, API-ref separated (#36)
Ground docs.hanzo.ai in HIP-0127 (V8 · Open Edition). The spine: "the AI cloud
you can run yourself" — one unified binary, hanzo.network is the cloud, category-
first descent by the eight movements, API reference as its own separated surface.

- Sidebar (content/docs/meta.json): flat ~85-item dump with overlapping
  ad-hoc labels → the eight canonical movements from openapi/capabilities.yaml
  (Identity & Trust · Intelligence · Data · Streams · Observability · Commerce ·
  Platform · Applications), as icon-bearing separators (---[Icon]Name---). Files
  stay flat — no URL/back-link breakage. openapi/sdks/api removed from the root
  descent; they remain the dedicated top-nav surfaces.
- Top nav (components/layouts/shared.tsx): add Docs + Network; API and SDKs kept
  as separated surfaces.
- Landing (app/(home)/page.tsx): hero → decentralized spine; ecosystem grid →
  the eight movements (category-first); breadth stats bar + models/SDKs/MCP
  panels making the full surface visible. Every number traces to a source:
  67 caps / 8 movements (capabilities.yaml), 157 models (ai/conf/models.yaml),
  706 connectors (cloud/.../catalog.json), 6 SDK langs (openapi/CLAUDE.md).
- Docs home (content/docs/index.mdx): 69-services pitch → the run-it-yourself
  spine + the eight-movements grid.
- New content/docs/network.mdx: hanzo.network / self-host — one binary, BYO GPU
  or K8s, mine on any device (TEE/CC), free for public+OSS, the language seam is
  the wire not FFI.
- New content/docs/architecture/philosophy.mdx: the engineering pedagogy —
  one-and-one-way, decomplect, one contract → N SDKs → thin CLIs, ZAP-native.
- architecture/index.mdx: "ten categories" → the eight movements; link
  philosophy + network.

Content review only — do not merge yet.
2026-07-08 14:16:58 -07:00
Hanzo DevandGitHub d87077cfb8 docs: present V8 · Open Edition — category-first IA, decentralized spine, API-ref separated (#36)
Ground docs.hanzo.ai in HIP-0127 (V8 · Open Edition). The spine: "the AI cloud
you can run yourself" — one unified binary, hanzo.network is the cloud, category-
first descent by the eight movements, API reference as its own separated surface.

- Sidebar (content/docs/meta.json): flat ~85-item dump with overlapping
  ad-hoc labels → the eight canonical movements from openapi/capabilities.yaml
  (Identity & Trust · Intelligence · Data · Streams · Observability · Commerce ·
  Platform · Applications), as icon-bearing separators (---[Icon]Name---). Files
  stay flat — no URL/back-link breakage. openapi/sdks/api removed from the root
  descent; they remain the dedicated top-nav surfaces.
- Top nav (components/layouts/shared.tsx): add Docs + Network; API and SDKs kept
  as separated surfaces.
- Landing (app/(home)/page.tsx): hero → decentralized spine; ecosystem grid →
  the eight movements (category-first); breadth stats bar + models/SDKs/MCP
  panels making the full surface visible. Every number traces to a source:
  67 caps / 8 movements (capabilities.yaml), 157 models (ai/conf/models.yaml),
  706 connectors (cloud/.../catalog.json), 6 SDK langs (openapi/CLAUDE.md).
- Docs home (content/docs/index.mdx): 69-services pitch → the run-it-yourself
  spine + the eight-movements grid.
- New content/docs/network.mdx: hanzo.network / self-host — one binary, BYO GPU
  or K8s, mine on any device (TEE/CC), free for public+OSS, the language seam is
  the wire not FFI.
- New content/docs/architecture/philosophy.mdx: the engineering pedagogy —
  one-and-one-way, decomplect, one contract → N SDKs → thin CLIs, ZAP-native.
- architecture/index.mdx: "ten categories" → the eight movements; link
  philosophy + network.

Content review only — do not merge yet.
2026-07-08 14:16:58 -07:00
d525baac8a docs: Stripe-style 'Browse by product' landing + canonical naming (SQL not DB) (#35)
- services/index.mdx rebuilt as a Stripe-'Browse by product'-style grid: a
  one-binary hero (One API key. One binary. api.hanzo.ai) + get-started cards,
  then 10 canonical category sections (AI & Models, Compute, Data, Network,
  Security & Identity, Observability, Platform, Web3, Apps, Developer Tools),
  45 product cards. Names + one-line descriptions are DERIVED from the canonical
  console product registry (@hanzo/products) so docs align with console + hanzo.ai.
  All 44 internal links verified to resolve; OSS/standalone forks link out.
- Naming fix (per CTO): 'Hanzo DB' -> 'Hanzo SQL'. Renamed services/db.mdx ->
  services/sql.mdx (git mv, /docs/services/sql), title + body normalized, 0
  residual 'Hanzo DB'; meta.json 'db' -> 'sql'.
- Removed the duplicate 'Getting Started' (section header + page): the page title
  is now 'Introduction' under the 'Getting Started' section.

Follow-ups (scoped, not in this PR): top-nav header (Fumadocs layout), authoring
the ~10 canonical products with no page yet (playground, secrets, projects, ...),
per-OSS-fork external doc merges, and de-duping the top-level vs services/ pages.

Co-authored-by: Hanzo AI <ai@hanzo.ai>
2026-07-08 11:54:36 -07:00
409e60c590 docs: Stripe-style 'Browse by product' landing + canonical naming (SQL not DB) (#35)
- services/index.mdx rebuilt as a Stripe-'Browse by product'-style grid: a
  one-binary hero (One API key. One binary. api.hanzo.ai) + get-started cards,
  then 10 canonical category sections (AI & Models, Compute, Data, Network,
  Security & Identity, Observability, Platform, Web3, Apps, Developer Tools),
  45 product cards. Names + one-line descriptions are DERIVED from the canonical
  console product registry (@hanzo/products) so docs align with console + hanzo.ai.
  All 44 internal links verified to resolve; OSS/standalone forks link out.
- Naming fix (per CTO): 'Hanzo DB' -> 'Hanzo SQL'. Renamed services/db.mdx ->
  services/sql.mdx (git mv, /docs/services/sql), title + body normalized, 0
  residual 'Hanzo DB'; meta.json 'db' -> 'sql'.
- Removed the duplicate 'Getting Started' (section header + page): the page title
  is now 'Introduction' under the 'Getting Started' section.

Follow-ups (scoped, not in this PR): top-nav header (Fumadocs layout), authoring
the ~10 canonical products with no page yet (playground, secrets, projects, ...),
per-OSS-fork external doc merges, and de-duping the top-level vs services/ pages.

Co-authored-by: Hanzo AI <ai@hanzo.ai>
2026-07-08 11:54:36 -07:00
5d4864a592 docs(architecture): one-binary framing + N=7 fault model + faithful shipped status (#34)
Corrects the plugin-platform + architecture-index pages on two axes:

1. One-binary reality. The pages framed Hanzo Cloud as 'many services, each its
   own repo/image, deployed independently, behind a gateway/ingress tier.' That
   is the pre-unification story. hanzoai/cloud is ONE Go binary (cmd/cloud): IAM,
   KMS, ingress, billing, MPC, o11y, agents, etc. are native clients/* subsystems
   compiled in, served under /v1, mapped to hanzoai/openapi — no separate gateway
   (there is no clients/gateway; routing is native clients/ingress). This is the
   unified cloud binary (HIP-0106), already substantially shipped. The plugin
   platform is reframed as NOT a re-layering: same one binary; plugins just become
   PLACED so nodes specialize (run a dynamic subset) — horizontal scale without
   fragmenting back into services. Remaining standalone apps (Sign/Dataroom/
   Captable) noted honestly as being absorbed, not the end state.

2. Fault model corrected to N=7 / 5-of-7 quorum / f=2 (matches the fixed HIP-0125
   + LaTeX paper + shipped controlplane's 1-based N=7). Fixes the impossible
   'five-voter tolerating two failures' (BFT needs N>=3f+1=7, quorum 2f+1=5).

3. Faithful proposed-vs-shipped: the Quasar engine + seven-voter ceremony are
   built and tested but deliberately kept OUT of the live serving path (behind
   -tags controlplane); placement does not yet drive serving; no cloud.Register
   runtime yet. Added a 'dynamic scaling lives in the data plane, voter set is
   fixed by design' explanation (BFT cost grows with voters; N data nodes scale
   unbounded).

Co-authored-by: Hanzo AI <ai@hanzo.ai>
2026-07-08 11:40:59 -07:00
aa7f60aa03 docs(architecture): one-binary framing + N=7 fault model + faithful shipped status (#34)
Corrects the plugin-platform + architecture-index pages on two axes:

1. One-binary reality. The pages framed Hanzo Cloud as 'many services, each its
   own repo/image, deployed independently, behind a gateway/ingress tier.' That
   is the pre-unification story. hanzoai/cloud is ONE Go binary (cmd/cloud): IAM,
   KMS, ingress, billing, MPC, o11y, agents, etc. are native clients/* subsystems
   compiled in, served under /v1, mapped to hanzoai/openapi — no separate gateway
   (there is no clients/gateway; routing is native clients/ingress). This is the
   unified cloud binary (HIP-0106), already substantially shipped. The plugin
   platform is reframed as NOT a re-layering: same one binary; plugins just become
   PLACED so nodes specialize (run a dynamic subset) — horizontal scale without
   fragmenting back into services. Remaining standalone apps (Sign/Dataroom/
   Captable) noted honestly as being absorbed, not the end state.

2. Fault model corrected to N=7 / 5-of-7 quorum / f=2 (matches the fixed HIP-0125
   + LaTeX paper + shipped controlplane's 1-based N=7). Fixes the impossible
   'five-voter tolerating two failures' (BFT needs N>=3f+1=7, quorum 2f+1=5).

3. Faithful proposed-vs-shipped: the Quasar engine + seven-voter ceremony are
   built and tested but deliberately kept OUT of the live serving path (behind
   -tags controlplane); placement does not yet drive serving; no cloud.Register
   runtime yet. Added a 'dynamic scaling lives in the data plane, voter set is
   fixed by design' explanation (BFT cost grows with voters; N data nodes scale
   unbounded).

Co-authored-by: Hanzo AI <ai@hanzo.ai>
2026-07-08 11:40:59 -07:00
Hanzo DevandGitHub 08af7071c7 docs(api): sync OpenAPI reference to 69 services, svc-free naming (#33)
Bring the docs API reference in line with the source of truth
(hanzoai/openapi): 69 services, zero `/v1/*svc` paths, unified `cloud`
binary (HIP-0106). The committed openapi-specs snapshot had drifted to
38 services because the `openapi-specs/` .gitignore rule silently hid
newly-synced specs from git — CI cannot clone the private openapi repo
and falls back to this checked-in snapshot, so it must be tracked and
complete.

- Sync openapi-specs/ from hanzoai/openapi via scripts/sync-openapi.sh:
  31 new service specs (admin, affiliates, agents, authors, authz,
  automations, billing, crm, do, eval, exec, framework, functions, git,
  graph, integrations, kb, notify, observe, plan, plugin, product,
  projects, prompts, provisioning, referrals, security, tasks, templates,
  tracker, websearch) + 6 refreshed (cloud, hanzo, platform, pubsub,
  visor, zt). All 69 now tracked as the CI snapshot.
- Regenerate the API reference index (meta.json) via
  scripts/gen-openapi-pages.ts — 69 pages; the per-service .mdx stay
  gitignored (CI regenerates them from the committed specs).
- Add curated cards for all 31 new services to content/docs/openapi/index.mdx
  and fix the 38-services counts to 69.
- Cross-link the new agents/functions/tasks guides to their API reference
  (scripts/link-api-refs.ts).
- Fix stale service-surface counts in prose: docs index (33+→69),
  services index (40+→69), hanzo-openapi skill (26→69, drop stale
  33KB/v4.0.0 claims).
- Stop ignoring openapi-specs/: these are the committed CI snapshot;
  ignoring them is what caused the drift.

Verified: zero kmssvc/paassvc/projectsvc/s3svc and zero /v1/*svc across
docs; specs==meta==source of truth==69; all 70 specs parse; generator
runs clean and deterministic.
2026-07-08 08:54:21 -07:00
Hanzo DevandGitHub a1c8fe471f docs(api): sync OpenAPI reference to 69 services, svc-free naming (#33)
Bring the docs API reference in line with the source of truth
(hanzoai/openapi): 69 services, zero `/v1/*svc` paths, unified `cloud`
binary (HIP-0106). The committed openapi-specs snapshot had drifted to
38 services because the `openapi-specs/` .gitignore rule silently hid
newly-synced specs from git — CI cannot clone the private openapi repo
and falls back to this checked-in snapshot, so it must be tracked and
complete.

- Sync openapi-specs/ from hanzoai/openapi via scripts/sync-openapi.sh:
  31 new service specs (admin, affiliates, agents, authors, authz,
  automations, billing, crm, do, eval, exec, framework, functions, git,
  graph, integrations, kb, notify, observe, plan, plugin, product,
  projects, prompts, provisioning, referrals, security, tasks, templates,
  tracker, websearch) + 6 refreshed (cloud, hanzo, platform, pubsub,
  visor, zt). All 69 now tracked as the CI snapshot.
- Regenerate the API reference index (meta.json) via
  scripts/gen-openapi-pages.ts — 69 pages; the per-service .mdx stay
  gitignored (CI regenerates them from the committed specs).
- Add curated cards for all 31 new services to content/docs/openapi/index.mdx
  and fix the 38-services counts to 69.
- Cross-link the new agents/functions/tasks guides to their API reference
  (scripts/link-api-refs.ts).
- Fix stale service-surface counts in prose: docs index (33+→69),
  services index (40+→69), hanzo-openapi skill (26→69, drop stale
  33KB/v4.0.0 claims).
- Stop ignoring openapi-specs/: these are the committed CI snapshot;
  ignoring them is what caused the drift.

Verified: zero kmssvc/paassvc/projectsvc/s3svc and zero /v1/*svc across
docs; specs==meta==source of truth==69; all 70 specs parse; generator
runs clean and deterministic.
2026-07-08 08:54:21 -07:00
hanzo-dev 34d2b778e6 chore(docs): regenerate pnpm-lock.yaml for merged deps + new doc apps
The unified-architecture + openapi content branches added workspace deps
(openapi-sampler, @hanzo/docs-base-ui in packages/openapi) and three new
apps (engine-docs, ml-docs, router-docs) without updating the lockfile,
which broke `pnpm install --frozen-lockfile` used by every deploy-*.yml.
Regenerated with the pinned pnpm@11.1.0 (lockfile-only); frozen validation
now passes.

Claude-Session: https://claude.ai/code/session_01XsNmNwzHUSKXfN7gYruUsM
2026-07-08 07:00:02 -07:00
hanzo-dev cc0bd07355 chore(docs): regenerate pnpm-lock.yaml for merged deps + new doc apps
The unified-architecture + openapi content branches added workspace deps
(openapi-sampler, @hanzo/docs-base-ui in packages/openapi) and three new
apps (engine-docs, ml-docs, router-docs) without updating the lockfile,
which broke `pnpm install --frozen-lockfile` used by every deploy-*.yml.
Regenerated with the pinned pnpm@11.1.0 (lockfile-only); frozen validation
now passes.

Claude-Session: https://claude.ai/code/session_01XsNmNwzHUSKXfN7gYruUsM
2026-07-08 07:00:02 -07:00
hanzo-dev 890ab5717c docs: redirect /docs/{startups,deploy} → real pages (QA 404 fix)
getting-started references /docs/startups + /docs/deploy but those slugs 404
(the mdx pages didn't survive an earlier merge). Redirect to the pages that
carry the content: getting-started ($5/startup on-ramp) + services/paas (deploy).
2026-07-08 06:51:20 -07:00
hanzo-dev cbf29a2672 docs: redirect /docs/{startups,deploy} → real pages (QA 404 fix)
getting-started references /docs/startups + /docs/deploy but those slugs 404
(the mdx pages didn't survive an earlier merge). Redirect to the pages that
carry the content: getting-started ($5/startup on-ramp) + services/paas (deploy).
2026-07-08 06:51:20 -07:00
Hanzo Dev d9ec2c8993 docs: add Integrations & Extensions catalog (#26)
Document how to install/connect every Hanzo surface — browser, IDEs,
desktop, Office, design, comms, business, dev, productivity, and
industry verticals. Every surface shares one foundation: the
@hanzo/ai gateway (api.hanzo.ai /v1) + @hanzo/iam identity — sign in
once or paste one hk- key.

New nav group 'Integrations & Extensions' (content/docs/apps/) with an
index + 10 category pages, registered in content/docs/meta.json under
Platform & Services. Downloadable installers link the actual v1.9.31
release assets from github.com/hanzoai/extension/releases.
2026-07-08 06:48:47 -07:00
Hanzo Dev c2161466dd docs: add Integrations & Extensions catalog (#26)
Document how to install/connect every Hanzo surface — browser, IDEs,
desktop, Office, design, comms, business, dev, productivity, and
industry verticals. Every surface shares one foundation: the
@hanzo/ai gateway (api.hanzo.ai /v1) + @hanzo/iam identity — sign in
once or paste one hk- key.

New nav group 'Integrations & Extensions' (content/docs/apps/) with an
index + 10 category pages, registered in content/docs/meta.json under
Platform & Services. Downloadable installers link the actual v1.9.31
release assets from github.com/hanzoai/extension/releases.
2026-07-08 06:48:47 -07:00
hanzo-dev becfa8f259 fix(docs): repair two broken internal links
- spec: remove dead 'Components' nav item (/docs/components) — spec renders
  only synced HIPs (index + hip-*.mdx via scripts/sync-hips.ts), it has no
  components section, so the route 404s. Drop now-unused ComponentIcon import.
- tasks-docs: point home 'REST API' link at /docs/sdk/api (the real REST API
  reference) instead of the non-existent /docs/api.
2026-07-08 06:46:24 -07:00
hanzo-dev 32f769a72d fix(docs): repair two broken internal links
- spec: remove dead 'Components' nav item (/docs/components) — spec renders
  only synced HIPs (index + hip-*.mdx via scripts/sync-hips.ts), it has no
  components section, so the route 404s. Drop now-unused ComponentIcon import.
- tasks-docs: point home 'REST API' link at /docs/sdk/api (the real REST API
  reference) instead of the non-existent /docs/api.
2026-07-08 06:46:24 -07:00
Hanzo DevandHanzo AI dad7c044d5 fix(ci): docs deploy workflows target the online ARC runner (hanzo-build-linux-amd64) (#24)
All 14 hanzo docs deploy-*.yml used runs-on: [self-hosted, linux, amd64] — a label triplet the ARC scale-set runners (which advertise only their set-name hanzo-build-linux-amd64) do NOT carry, so every docs deploy queued until the next push cancelled it. Result: docs.hanzo.ai served a stale build for ~1 week; merged doc changes (redirects, new product pages) never deployed. Aligns these with the repo's already-correct lint/test/release workflows. deploy-liquid-docs.yml intentionally not touched.

Co-authored-by: Hanzo AI <ai@hanzo.ai>
2026-07-08 06:46:24 -07:00
Hanzo DevandHanzo AI ee1922cde7 fix(ci): docs deploy workflows target the online ARC runner (hanzo-build-linux-amd64) (#24)
All 14 hanzo docs deploy-*.yml used runs-on: [self-hosted, linux, amd64] — a label triplet the ARC scale-set runners (which advertise only their set-name hanzo-build-linux-amd64) do NOT carry, so every docs deploy queued until the next push cancelled it. Result: docs.hanzo.ai served a stale build for ~1 week; merged doc changes (redirects, new product pages) never deployed. Aligns these with the repo's already-correct lint/test/release workflows. deploy-liquid-docs.yml intentionally not touched.

Co-authored-by: Hanzo AI <ai@hanzo.ai>
2026-07-08 06:46:24 -07:00
Hanzo DevandHanzo AI 59d335530e fix(docs): resolve /docs/api 404 via canonical CF Pages redirect to /docs/openapi (#23)
The API reference is the single-page OpenAPI reference at /docs/openapi.
/docs/api (and /api, /api-reference) returned 404 because they were never
routes, and the /api redirect declared in next.config redirects() is dead:
docs.hanzo.ai deploys as a static export (out/) to Cloudflare Pages, which
ignores next.config redirects() and middleware (proven live: /api and
/tutorials both 404 despite being declared there).

Add public/_redirects -- the mechanism CF Pages actually honors, exactly like
the existing public/_headers -- as the single source of truth for redirects:
  /docs/api, /docs/api/*, /api, /api/*, /api-reference, /api-reference/* -> /docs/openapi
  /tutorials, /tutorials/* -> /docs/services  (migrated from the dead config)
Remove the now-dead redirects() block from next.config so there is one
mechanism, not two.

Also fix two broken internal links in services/chat.mdx that pointed at
non-existent pages:
  /docs/api/pricing -> /docs/services/pricing
  /docs/models      -> /docs/chat/models

Verified with `wrangler pages dev` against the exact _redirects file:
/docs/api -> 301 -> /docs/openapi (200); the real /docs/api-keys page is not
over-captured (passes through, no redirect).

Co-authored-by: Hanzo AI <ai@hanzo.ai>
2026-07-08 06:46:24 -07:00
Hanzo DevandHanzo AI 1c77ff7ac3 fix(docs): resolve /docs/api 404 via canonical CF Pages redirect to /docs/openapi (#23)
The API reference is the single-page OpenAPI reference at /docs/openapi.
/docs/api (and /api, /api-reference) returned 404 because they were never
routes, and the /api redirect declared in next.config redirects() is dead:
docs.hanzo.ai deploys as a static export (out/) to Cloudflare Pages, which
ignores next.config redirects() and middleware (proven live: /api and
/tutorials both 404 despite being declared there).

Add public/_redirects -- the mechanism CF Pages actually honors, exactly like
the existing public/_headers -- as the single source of truth for redirects:
  /docs/api, /docs/api/*, /api, /api/*, /api-reference, /api-reference/* -> /docs/openapi
  /tutorials, /tutorials/* -> /docs/services  (migrated from the dead config)
Remove the now-dead redirects() block from next.config so there is one
mechanism, not two.

Also fix two broken internal links in services/chat.mdx that pointed at
non-existent pages:
  /docs/api/pricing -> /docs/services/pricing
  /docs/models      -> /docs/chat/models

Verified with `wrangler pages dev` against the exact _redirects file:
/docs/api -> 301 -> /docs/openapi (200); the real /docs/api-keys page is not
over-captured (passes through, no redirect).

Co-authored-by: Hanzo AI <ai@hanzo.ai>
2026-07-08 06:46:24 -07:00
Hanzo Dev 849db60e86 chore: OSS attribution — Fumadocs (MIT) LICENSE + NOTICE 2026-07-08 06:46:24 -07:00
Hanzo Dev d2527d6350 chore: OSS attribution — Fumadocs (MIT) LICENSE + NOTICE 2026-07-08 06:46:24 -07:00
hanzo-dev c57a017aa6 docs(cloud): add 43 product pages the console deep-links to (fixes 404s)
console.hanzo.ai deep-links each product to docs.hanzo.ai/docs/<slug>; ~43 of
those slugs had no page and 404'd. Add real, accurate Fumadocs pages for every
one — Data (sql/vector/kv/search/datastore/docdb/storage/base/memory), Compute
(gpus/machines/edge/pipelines/registry/networks/blockchain), Observability
(metrics/logs/traces/sessions/dashboards), Evaluation (datasets/experiments/
scores/score-configs/annotation-queues), Security (iam/kms/authz/mpc/zero-trust),
Platform (api/gateway/console/integrations), Commerce (billing/referrals), and
AI (agents/prompts/embeddings/marketplace/ai-studio/crawl).

Each page: real /v1 examples with Bearer hk- auth, grounded in the actual
product repos + the console registry — no placeholder/coming-soon. Wired into
the sidebar nav (meta.json).
2026-07-08 06:46:24 -07:00
hanzo-dev 0843837142 docs(cloud): add 43 product pages the console deep-links to (fixes 404s)
console.hanzo.ai deep-links each product to docs.hanzo.ai/docs/<slug>; ~43 of
those slugs had no page and 404'd. Add real, accurate Fumadocs pages for every
one — Data (sql/vector/kv/search/datastore/docdb/storage/base/memory), Compute
(gpus/machines/edge/pipelines/registry/networks/blockchain), Observability
(metrics/logs/traces/sessions/dashboards), Evaluation (datasets/experiments/
scores/score-configs/annotation-queues), Security (iam/kms/authz/mpc/zero-trust),
Platform (api/gateway/console/integrations), Commerce (billing/referrals), and
AI (agents/prompts/embeddings/marketplace/ai-studio/crawl).

Each page: real /v1 examples with Bearer hk- auth, grounded in the actual
product repos + the console registry — no placeholder/coming-soon. Wired into
the sidebar nav (meta.json).
2026-07-08 06:46:24 -07:00
01f939213f docs: current-state product pages (sign/dataroom/captable) + plugin-platform architecture (#32)
* docs: current-state product pages (sign/dataroom/captable) + plugin-platform architecture

Product pages — corrected to what each app actually does today:
- sign: esign.hanzo.ai (not sign.hanzo.ai); image ghcr.io/hanzoai/esign; IAM_URL;
  real FieldType enum; /api/v1 (ts-rest, stable) + /api/v2 (tRPC) surfaces;
  framed as the AGPLv3 open-source e-signature app it is.
- dataroom: Papermark fork; embedded SQLite default (not Postgres); drop the
  fabricated LinkedIn OAuth and invented clean-REST contract; add real features
  (conversations, AI Q&A, file requests, SCIM, Hanko passkeys, BoxyHQ SAML);
  honest unversioned /api surface.
- captable: drop fabricated 409A history / waterfall / round-modeling and the
  invented REST endpoints; document the real tRPC + Hono /api/v1 API
  (OpenAPI at /v1/docs); IAM_URL; note incorporation is WIP.

Architecture section (new) — explicitly direction, not shipped:
- content/docs/architecture/{index,plugin-platform}.mdx + meta.json, wired into
  the root nav after Proof of AI. Documents the consensus-backed plugin platform
  (HIP-0116, Draft): plugins as the unit (cloud.Register, HIP-0105); a small
  post-quantum BFT (Quasar) control plane holding the placement map + writer
  leases, with the data plane reusing existing S3/ZapDB replication (HIP-0107);
  5 voters + N data nodes, pinned writers, per-connection pinning, per-tenant
  sharding; ZAP-native authoring (HIP-0114). Every code sample is labeled
  proposed / not-yet-available; consensus-off-the-data-path is called out.

The services nav derives from @hanzo/products (gen-services-nav.ts); sign,
dataroom and captable remain under the generated "More" group until they are
added to the commerce catalog + snapshot — a registry change out of scope for a
docs-only PR.

* docs: HIP-0116->0125 for the plugin platform

Matches hanzo-apps/HIPs#29 — 0116 is owned by plugin-vm-model; this
proposal renumbered to 0125. Other HIP refs (0105/0106/0107/0112/0114)
unchanged.

---------

Co-authored-by: Hanzo AI <ai@hanzo.ai>
2026-07-07 18:45:57 -07:00
0042013bdc docs: current-state product pages (sign/dataroom/captable) + plugin-platform architecture (#32)
* docs: current-state product pages (sign/dataroom/captable) + plugin-platform architecture

Product pages — corrected to what each app actually does today:
- sign: esign.hanzo.ai (not sign.hanzo.ai); image ghcr.io/hanzoai/esign; IAM_URL;
  real FieldType enum; /api/v1 (ts-rest, stable) + /api/v2 (tRPC) surfaces;
  framed as the AGPLv3 open-source e-signature app it is.
- dataroom: Papermark fork; embedded SQLite default (not Postgres); drop the
  fabricated LinkedIn OAuth and invented clean-REST contract; add real features
  (conversations, AI Q&A, file requests, SCIM, Hanko passkeys, BoxyHQ SAML);
  honest unversioned /api surface.
- captable: drop fabricated 409A history / waterfall / round-modeling and the
  invented REST endpoints; document the real tRPC + Hono /api/v1 API
  (OpenAPI at /v1/docs); IAM_URL; note incorporation is WIP.

Architecture section (new) — explicitly direction, not shipped:
- content/docs/architecture/{index,plugin-platform}.mdx + meta.json, wired into
  the root nav after Proof of AI. Documents the consensus-backed plugin platform
  (HIP-0116, Draft): plugins as the unit (cloud.Register, HIP-0105); a small
  post-quantum BFT (Quasar) control plane holding the placement map + writer
  leases, with the data plane reusing existing S3/ZapDB replication (HIP-0107);
  5 voters + N data nodes, pinned writers, per-connection pinning, per-tenant
  sharding; ZAP-native authoring (HIP-0114). Every code sample is labeled
  proposed / not-yet-available; consensus-off-the-data-path is called out.

The services nav derives from @hanzo/products (gen-services-nav.ts); sign,
dataroom and captable remain under the generated "More" group until they are
added to the commerce catalog + snapshot — a registry change out of scope for a
docs-only PR.

* docs: HIP-0116->0125 for the plugin platform

Matches hanzo-apps/HIPs#29 — 0116 is owned by plugin-vm-model; this
proposal renumbered to 0125. Other HIP refs (0105/0106/0107/0112/0114)
unchanged.

---------

Co-authored-by: Hanzo AI <ai@hanzo.ai>
2026-07-07 18:45:57 -07:00
Hanzo DevandGitHub d5df3635b1 Point docs clients + samples at canonical api.hanzo.ai front door (#20)
The cloud API now sits behind one front door (ingress -> gateway -> cloud).
api.cloud.hanzo.ai / cloud-api.hanzo.ai / functions.hanzo.ai are redundant
aliases routing to the same backend, so migrate clients to api.hanzo.ai.

- docs + bot-docs lib/hanzo/client.ts, scripts/update-hanzo-index.ts:
  search/index/chat-docs default base cloud-api|api.cloud.hanzo.ai ->
  api.hanzo.ai (RAG paths stay /api/* — served there per cloud AUTH_PUBLIC_PATHS)
- cloud landing page.tsx: curl base + request-flow label api.cloud.hanzo.ai ->
  api.hanzo.ai
- functions.mdx (x2): collapse Endpoint+Gateway to one canonical
  api.hanzo.ai/v1/functions/*
- hanzo-openapi.mdx: Cloud endpoint label api.cloud.hanzo.ai -> api.hanzo.ai

Non-breaking: the aliases still resolve to the same backend.
2026-06-30 16:49:04 -07:00
Hanzo DevandGitHub ec6e086589 Point docs clients + samples at canonical api.hanzo.ai front door (#20)
The cloud API now sits behind one front door (ingress -> gateway -> cloud).
api.cloud.hanzo.ai / cloud-api.hanzo.ai / functions.hanzo.ai are redundant
aliases routing to the same backend, so migrate clients to api.hanzo.ai.

- docs + bot-docs lib/hanzo/client.ts, scripts/update-hanzo-index.ts:
  search/index/chat-docs default base cloud-api|api.cloud.hanzo.ai ->
  api.hanzo.ai (RAG paths stay /api/* — served there per cloud AUTH_PUBLIC_PATHS)
- cloud landing page.tsx: curl base + request-flow label api.cloud.hanzo.ai ->
  api.hanzo.ai
- functions.mdx (x2): collapse Endpoint+Gateway to one canonical
  api.hanzo.ai/v1/functions/*
- hanzo-openapi.mdx: Cloud endpoint label api.cloud.hanzo.ai -> api.hanzo.ai

Non-breaking: the aliases still resolve to the same backend.
2026-06-30 16:49:04 -07:00
Hanzo DevandGitHub 8e23cf325b Merge pull request #19 from hanzoai/iam-auth-canonical
docs: package-name normalization + build-green + fuma→@hanzo/docs rebrand
2026-06-24 23:26:17 -07:00
Hanzo DevandGitHub 9c50a1ed87 Merge pull request #19 from hanzoai/iam-auth-canonical
docs: package-name normalization + build-green + fuma→@hanzo/docs rebrand
2026-06-24 23:26:17 -07:00
91e5d5dfb4 ci: run on self-hosted ARC pool (hanzo-build-linux-amd64/deploy), not GitHub-hosted (#18)
Co-authored-by: zeekay <z@hanzo.ai>
2026-06-19 20:34:13 -07:00
da9c661409 ci: run on self-hosted ARC pool (hanzo-build-linux-amd64/deploy), not GitHub-hosted (#18)
Co-authored-by: zeekay <z@hanzo.ai>
2026-06-19 20:34:13 -07:00
Hanzo AI 5f1eb126ec merge: upstream/main (preserve Hanzo brand, 334 commits)
# Conflicts:
#	apps/docs/app/(home)/sponsors/data.tsx
#	apps/docs/app/(home)/uwu.tsx
#	apps/docs/app/og/[...slug]/generate.tsx
#	apps/docs/app/static.json/route.ts
#	apps/docs/content/blog/customise-ui.mdx
#	apps/docs/content/blog/mdx-v10-summary.mdx
#	apps/docs/content/blog/openapi-v9.mdx
#	apps/docs/content/blog/v15.mdx
#	apps/docs/content/blog/v16-2.mdx
#	apps/docs/content/docs/(framework)/deploying/static.mdx
#	apps/docs/content/docs/(framework)/integrations/content/custom.mdx
#	apps/docs/content/docs/(framework)/integrations/openapi/generate-files.mdx
#	apps/docs/content/docs/(framework)/integrations/openapi/server.mdx
#	apps/docs/content/docs/(framework)/integrations/story/client.story.tsx
#	apps/docs/content/docs/(framework)/integrations/story/index.mdx
#	apps/docs/content/docs/(framework)/integrations/story/next.mdx
#	apps/docs/content/docs/(framework)/search/orama.mdx
#	apps/docs/content/docs/(framework)/what-is-fumadocs.mdx
#	apps/docs/content/docs/cli/index.mdx
#	apps/docs/content/docs/headless/mdx/headings.mdx
#	apps/docs/content/docs/headless/mdx/rehype-code.mdx
#	apps/docs/content/docs/headless/mdx/remark-image.mdx
#	apps/docs/content/docs/headless/source-api/plugins.mdx
#	apps/docs/content/docs/mdx/(integrations)/loader/node.mdx
#	apps/docs/content/docs/mdx/global.mdx
#	apps/docs/content/docs/mdx/index.mdx
#	apps/docs/content/docs/ui/components/banner.mdx
#	apps/docs/content/docs/ui/components/graph-view.mdx
#	apps/docs/content/docs/ui/layouts/flux.mdx
#	apps/docs/content/docs/ui/layouts/home-layout.mdx
#	apps/docs/content/docs/ui/layouts/root-provider.mdx
#	apps/docs/content/docs/ui/theme.mdx
#	apps/docs/eslint.config.mjs
#	apps/docs/scripts/preload.ts
#	apps/docs/scripts/update-orama-index.ts
#	examples/openapi/README.md
#	examples/openapi/scripts/generate-docs.ts
#	examples/react-router-i18n/scripts/preload.ts
#	examples/tanstack-start-story/src/components/callout/story-client.tsx
#	packages/base-ui/scripts/compile-inline.utils.ts
#	packages/cli/src/build/index.ts
#	packages/core/src/content/md/frontmatter.ts
#	packages/create-app/scripts/update-git-repo.js
#	packages/create-app/scripts/update-git-repo.sh
#	packages/mdx-runtime/eslint.config.mjs
#	packages/openapi/scripts/compile-inline.utils.ts
#	packages/openapi/src/server/create.ts
#	packages/openapi/src/ui/full.tsx
#	packages/openapi/src/utils/process-document.ts
#	packages/press/waku.config.ts
#	packages/radix-ui/scripts/compile-inline.utils.ts
2026-06-02 09:55:12 -07:00
Hanzo AI c04da7fb61 merge: upstream/main (preserve Hanzo brand, 334 commits)
# Conflicts:
#	apps/docs/app/(home)/sponsors/data.tsx
#	apps/docs/app/(home)/uwu.tsx
#	apps/docs/app/og/[...slug]/generate.tsx
#	apps/docs/app/static.json/route.ts
#	apps/docs/content/blog/customise-ui.mdx
#	apps/docs/content/blog/mdx-v10-summary.mdx
#	apps/docs/content/blog/openapi-v9.mdx
#	apps/docs/content/blog/v15.mdx
#	apps/docs/content/blog/v16-2.mdx
#	apps/docs/content/docs/(framework)/deploying/static.mdx
#	apps/docs/content/docs/(framework)/integrations/content/custom.mdx
#	apps/docs/content/docs/(framework)/integrations/openapi/generate-files.mdx
#	apps/docs/content/docs/(framework)/integrations/openapi/server.mdx
#	apps/docs/content/docs/(framework)/integrations/story/client.story.tsx
#	apps/docs/content/docs/(framework)/integrations/story/index.mdx
#	apps/docs/content/docs/(framework)/integrations/story/next.mdx
#	apps/docs/content/docs/(framework)/search/orama.mdx
#	apps/docs/content/docs/(framework)/what-is-fumadocs.mdx
#	apps/docs/content/docs/cli/index.mdx
#	apps/docs/content/docs/headless/mdx/headings.mdx
#	apps/docs/content/docs/headless/mdx/rehype-code.mdx
#	apps/docs/content/docs/headless/mdx/remark-image.mdx
#	apps/docs/content/docs/headless/source-api/plugins.mdx
#	apps/docs/content/docs/mdx/(integrations)/loader/node.mdx
#	apps/docs/content/docs/mdx/global.mdx
#	apps/docs/content/docs/mdx/index.mdx
#	apps/docs/content/docs/ui/components/banner.mdx
#	apps/docs/content/docs/ui/components/graph-view.mdx
#	apps/docs/content/docs/ui/layouts/flux.mdx
#	apps/docs/content/docs/ui/layouts/home-layout.mdx
#	apps/docs/content/docs/ui/layouts/root-provider.mdx
#	apps/docs/content/docs/ui/theme.mdx
#	apps/docs/eslint.config.mjs
#	apps/docs/scripts/preload.ts
#	apps/docs/scripts/update-orama-index.ts
#	examples/openapi/README.md
#	examples/openapi/scripts/generate-docs.ts
#	examples/react-router-i18n/scripts/preload.ts
#	examples/tanstack-start-story/src/components/callout/story-client.tsx
#	packages/base-ui/scripts/compile-inline.utils.ts
#	packages/cli/src/build/index.ts
#	packages/core/src/content/md/frontmatter.ts
#	packages/create-app/scripts/update-git-repo.js
#	packages/create-app/scripts/update-git-repo.sh
#	packages/mdx-runtime/eslint.config.mjs
#	packages/openapi/scripts/compile-inline.utils.ts
#	packages/openapi/src/server/create.ts
#	packages/openapi/src/ui/full.tsx
#	packages/openapi/src/utils/process-document.ts
#	packages/press/waku.config.ts
#	packages/radix-ui/scripts/compile-inline.utils.ts
2026-06-02 09:55:12 -07:00
Hanzo AI c6e1be21fa merge: dev (aggressive theirs) 2026-06-01 18:31:05 -07:00
Hanzo AI 7f8e9f3643 merge: dev (aggressive theirs) 2026-06-01 18:31:05 -07:00
Hanzo AI e1f3b87cbe merge: add/liquid-docs (aggressive theirs) 2026-06-01 18:30:52 -07:00
Hanzo AI b89cff998e merge: add/liquid-docs (aggressive theirs) 2026-06-01 18:30:52 -07:00
Hanzo AI c3b37ee64f feat(pulsar-docs): add Fumadocs site for luxfi/pulsar at apps/pulsar-docs
Scaffold cloned from apps/zen-docs. Port 3008. Content authored from the
settled state of ~/work/lux/pulsar/main (README, EC README, bridge doc,
extraction roadmaps, NIST-SUBMISSION, SUBMISSION, CHANGELOG, SECURITY,
postmortem). Math rendered with KaTeX. Information architecture: intro
-> getting-started -> protocol -> reference -> proofs -> security -> nist-mptc
-> postmortem -> changelog.

Build clean: pnpm --filter=pulsar-docs build && pnpm --filter=pulsar-docs dev.
2026-05-31 11:26:44 -07:00
Hanzo AI c0f3180d8f feat(pulsar-docs): add Fumadocs site for luxfi/pulsar at apps/pulsar-docs
Scaffold cloned from apps/zen-docs. Port 3008. Content authored from the
settled state of ~/work/lux/pulsar/main (README, EC README, bridge doc,
extraction roadmaps, NIST-SUBMISSION, SUBMISSION, CHANGELOG, SECURITY,
postmortem). Math rendered with KaTeX. Information architecture: intro
-> getting-started -> protocol -> reference -> proofs -> security -> nist-mptc
-> postmortem -> changelog.

Build clean: pnpm --filter=pulsar-docs build && pnpm --filter=pulsar-docs dev.
2026-05-31 11:26:44 -07:00
Hanzo AI 823a5d9af6 chore: remove apps/zap-docs — moved to zap-proto/dev
ZAP docs are a zap-proto brand surface, not hanzoai. Per-language SDK
content (c, cpp, csharp, erlang, go, haskell, java, javascript, ocaml,
python, rust) is migrated to zap-proto/dev under /sdks/<lang>.mdx and
deployed at https://zap-proto.dev. The zap.hanzo.ai DNS entry can be
retired or 301-redirected at the edge.
2026-05-27 03:35:23 -07:00
Hanzo AI 4bb098ca62 chore: remove apps/zap-docs — moved to zap-proto/dev
ZAP docs are a zap-proto brand surface, not hanzoai. Per-language SDK
content (c, cpp, csharp, erlang, go, haskell, java, javascript, ocaml,
python, rust) is migrated to zap-proto/dev under /sdks/<lang>.mdx and
deployed at https://zap-proto.dev. The zap.hanzo.ai DNS entry can be
retired or 301-redirected at the edge.
2026-05-27 03:35:23 -07:00
Hanzo DevandGitHub 0def9abf85 fix(model-card): HF + GitHub as proper icon buttons, easier to access (#15)
Was: 'Weights' / 'Repo' as small text links with 10px (h-2.5 w-2.5)
icons. Tiny tap target, no clear visual affordance, easy to miss on
the 8-column model grid.

Now:
- Chat stays as the primary text CTA on the left (h-8 = 32px tall).
- HF + GitHub + Paper become 32x32px icon-only buttons on the right,
  framed with a border, generous hover state, aria-label + title for
  accessibility.
- Used the canonical HuggingFace logo SVG inline (not lucide-react's
  ExternalLink) so the brand is recognizable at a glance.
- Right-aligned via 'ml-auto' so the icon cluster sits cleanly opposite
  the Chat CTA — gives the eye an obvious 'try it / get it' split.

No dropdowns, no hover-hidden actions — every link is visible at idle.
2026-05-19 18:04:01 -07:00
Hanzo DevandGitHub 547b20e7b6 fix(model-card): HF + GitHub as proper icon buttons, easier to access (#15)
Was: 'Weights' / 'Repo' as small text links with 10px (h-2.5 w-2.5)
icons. Tiny tap target, no clear visual affordance, easy to miss on
the 8-column model grid.

Now:
- Chat stays as the primary text CTA on the left (h-8 = 32px tall).
- HF + GitHub + Paper become 32x32px icon-only buttons on the right,
  framed with a border, generous hover state, aria-label + title for
  accessibility.
- Used the canonical HuggingFace logo SVG inline (not lucide-react's
  ExternalLink) so the brand is recognizable at a glance.
- Right-aligned via 'ml-auto' so the icon cluster sits cleanly opposite
  the Chat CTA — gives the eye an obvious 'try it / get it' split.

No dropdowns, no hover-hidden actions — every link is visible at idle.
2026-05-19 18:04:01 -07:00
Hanzo AI ec41b8593b docs(iam): swap hardcoded /api/* IAM examples for /v1/iam/*
The Hanzo IAM canonical prefix is /v1/iam (NOT /api — that's the legacy
Casdoor compat surface kept for back-compat). Every documented call site
across skills + services + integration guides now points at the canonical
prefix. Examples covered:

- skills: hanzo-id, hanzo-iam, hanzo-extension, hanzo-registry
- services/iam: configuration, basic/public-api, how-to-connect/oauth,
  how-to-connect/mcp/connect-chatgpt, application/dynamic-client-
  registration, mcp-auth/{overview,setup}, organization/
  passwordObfuscator, provider/oauth/overview
- services/iam/integration (Bytebase, Confluence, jira, jenkins-oidc,
  Flarum, showdoc, spring-security-oauth)
- services/mpc (login example)

OAuth/OIDC paths (/oauth/token, /oauth/userinfo, /oauth/authorize, etc.)
stay as-is — RFC-canonical preferred for new code.
2026-05-15 14:35:45 -07:00
Hanzo AI 21c763fbb2 docs(iam): swap hardcoded /api/* IAM examples for /v1/iam/*
The Hanzo IAM canonical prefix is /v1/iam (NOT /api — that's the legacy
Casdoor compat surface kept for back-compat). Every documented call site
across skills + services + integration guides now points at the canonical
prefix. Examples covered:

- skills: hanzo-id, hanzo-iam, hanzo-extension, hanzo-registry
- services/iam: configuration, basic/public-api, how-to-connect/oauth,
  how-to-connect/mcp/connect-chatgpt, application/dynamic-client-
  registration, mcp-auth/{overview,setup}, organization/
  passwordObfuscator, provider/oauth/overview
- services/iam/integration (Bytebase, Confluence, jira, jenkins-oidc,
  Flarum, showdoc, spring-security-oauth)
- services/mpc (login example)

OAuth/OIDC paths (/oauth/token, /oauth/userinfo, /oauth/authorize, etc.)
stay as-is — RFC-canonical preferred for new code.
2026-05-15 14:35:45 -07:00
Hanzo AI 0272cc086a chore(docs): regenerate browser.ts + server.ts manifests 2026-05-15 12:14:34 -07:00
Hanzo AI b792a8ea68 chore(docs): regenerate browser.ts + server.ts manifests 2026-05-15 12:14:34 -07:00
Hanzo AI 9bc66414b8 docs(skills): align hanzo-{extension,platform,stack,website} examples
Use canonical IAM_* env vars in skill quickstarts. Pulls skills
in line with services/iam/configuration.
2026-05-15 12:14:32 -07:00
Hanzo AI d94991f53e docs(skills): align hanzo-{extension,platform,stack,website} examples
Use canonical IAM_* env vars in skill quickstarts. Pulls skills
in line with services/iam/configuration.
2026-05-15 12:14:32 -07:00
Hanzo AI 47aca084fe docs(commerce): canonical IAM env vars in deployment + admin guides
admin/setup, deployment/{docker,index,kubernetes,self-hosted},
quickstart: use IAM_ENDPOINT / IAM_CLIENT_ID / IAM_CLIENT_SECRET
(canonical) in install snippets, drop HANZO_IAM_* aliases.
2026-05-15 12:14:30 -07:00
Hanzo AI 4deb049ea1 docs(commerce): canonical IAM env vars in deployment + admin guides
admin/setup, deployment/{docker,index,kubernetes,self-hosted},
quickstart: use IAM_ENDPOINT / IAM_CLIENT_ID / IAM_CLIENT_SECRET
(canonical) in install snippets, drop HANZO_IAM_* aliases.
2026-05-15 12:14:30 -07:00
Hanzo AI cc92439f5e docs(services): point service integrations at canonical OIDC paths
base/captable/console/dataroom/sign/studio: replace legacy
/api/userinfo + Casdoor compat URLs with RFC 6749/OIDC paths
(/oauth/authorize, /oauth/token, /oauth/userinfo). Aligns with
new services/iam/configuration page.
2026-05-15 12:14:28 -07:00
Hanzo AI f429c5ebec docs(services): point service integrations at canonical OIDC paths
base/captable/console/dataroom/sign/studio: replace legacy
/api/userinfo + Casdoor compat URLs with RFC 6749/OIDC paths
(/oauth/authorize, /oauth/token, /oauth/userinfo). Aligns with
new services/iam/configuration page.
2026-05-15 12:14:28 -07:00
Hanzo AI 493c1207e8 docs(services/iam): canonical IAM_* env var contract
- New configuration.mdx documents the IAM_* env var contract for
  consumer services (single canonical name per identity var, no
  HANZO_IAM_* aliases).
- Updated cross-references: /api/userinfo -> /oauth/userinfo,
  RFC 6749 / OIDC Core paths everywhere, basic/how-to-connect/
  integration/provider/token now point at canonical surface.
- meta.json: register configuration page.
2026-05-15 12:14:25 -07:00
Hanzo AI d4b5d03649 docs(services/iam): canonical IAM_* env var contract
- New configuration.mdx documents the IAM_* env var contract for
  consumer services (single canonical name per identity var, no
  HANZO_IAM_* aliases).
- Updated cross-references: /api/userinfo -> /oauth/userinfo,
  RFC 6749 / OIDC Core paths everywhere, basic/how-to-connect/
  integration/provider/token now point at canonical surface.
- meta.json: register configuration page.
2026-05-15 12:14:25 -07:00
Hanzo AI 936368cf65 fix(build): lazy-import octokit so HANZO_DOCS_SYNC=0 builds clean
Local builds with HANZO_DOCS_SYNC=0 still failed because bun
resolves all top-level imports at parse time, and pnpm symlinks
the @octokit/plugin-retry package under octokit@5.0.5/node_modules/
which bun's resolver doesn't follow. Top-level 'import { Octokit }
from octokit' triggered ENOENT before any code ran.

Fix: dynamic-import octokit inside createOctokit(), which only
runs when HANZO_DOCS_SYNC isn't '0'. Sync builds (CI, full deploy)
continue to work identically; local builds with the sync disabled
no longer crash on a never-used module tree.

Verified: HANZO_DOCS_SYNC=0 pnpm build now succeeds end-to-end,
generating 1300+ static pages including all 24 services/* sections.
2026-05-12 16:31:56 -07:00
Hanzo AI ab8d0c44a7 fix(build): lazy-import octokit so HANZO_DOCS_SYNC=0 builds clean
Local builds with HANZO_DOCS_SYNC=0 still failed because bun
resolves all top-level imports at parse time, and pnpm symlinks
the @octokit/plugin-retry package under octokit@5.0.5/node_modules/
which bun's resolver doesn't follow. Top-level 'import { Octokit }
from octokit' triggered ENOENT before any code ran.

Fix: dynamic-import octokit inside createOctokit(), which only
runs when HANZO_DOCS_SYNC isn't '0'. Sync builds (CI, full deploy)
continue to work identically; local builds with the sync disabled
no longer crash on a never-used module tree.

Verified: HANZO_DOCS_SYNC=0 pnpm build now succeeds end-to-end,
generating 1300+ static pages including all 24 services/* sections.
2026-05-12 16:31:56 -07:00
Hanzo AI 674fd6a89e docs: deep scrub of upstream brand mentions across all content trees
Earlier commit (b8cb07d0a) caught services/* but not the deeper trees:
  - apps/docs/content/docs/authentication.mdx
  - apps/docs/content/docs/projects/hanzoai/{kms,s3,...}/**
  - apps/docs/content/docs/skills/hanzo-*.mdx

Same substitutions: Casdoor → Hanzo IAM, Infisical → Hanzo KMS,
PocketBase → Hanzo Base, INFISICAL_* → KMS_* / HANZO_KMS_*,
HashiCorp Vault → external secret manager.

Renamed projects/hanzoai/s3/sts/casdoor.md → iam.md and rewrote
CASDOOR_ENDPOINT env var to IAM_ENDPOINT in body. README cross-link
follows.

Internal LLM.md / AGENTS.md / CLAUDE.md preserved because they're
engineering provenance notes, not user-facing content rendered on
docs.hanzo.ai.
2026-05-12 15:20:28 -07:00
Hanzo AI c4e5414651 docs: deep scrub of upstream brand mentions across all content trees
Earlier commit (dbb0cf863) caught services/* but not the deeper trees:
  - apps/docs/content/docs/authentication.mdx
  - apps/docs/content/docs/projects/hanzoai/{kms,s3,...}/**
  - apps/docs/content/docs/skills/hanzo-*.mdx

Same substitutions: Casdoor → Hanzo IAM, Infisical → Hanzo KMS,
PocketBase → Hanzo Base, INFISICAL_* → KMS_* / HANZO_KMS_*,
HashiCorp Vault → external secret manager.

Renamed projects/hanzoai/s3/sts/casdoor.md → iam.md and rewrote
CASDOOR_ENDPOINT env var to IAM_ENDPOINT in body. README cross-link
follows.

Internal LLM.md / AGENTS.md / CLAUDE.md preserved because they're
engineering provenance notes, not user-facing content rendered on
docs.hanzo.ai.
2026-05-12 15:20:28 -07:00
Hanzo AI b8cb07d0a7 docs(services): scrub upstream brand leaks across IAM, KMS, MPC, Base
56 .mdx + meta.json files updated. White-label IAM/KMS/MPC/Base
images ship with no mention of the upstream forks. Mapping:

  Casdoor → Hanzo IAM
  PocketBase → Hanzo Base
  Infisical → Hanzo KMS (incl. INFISICAL_* env vars → KMS_* / HANZO_KMS_*)
  HashiCorp Vault → external secret manager (where reference was generic;
    migration guides keep the proper noun where needed)

Code-level identifiers preserved where they're real runtime names
in our forks (e.g. INFISICAL_CLIENT_ID renamed to KMS_CLIENT_ID
because that's what hanzo/kms actually reads — verified against
universe k8s manifests).

No-op for behavior; user-facing docs no longer surface the upstream
brand to anyone reading docs.hanzo.ai. Pairs with the recent
liquidity/iam tenant-neutral rip (admin@hanzo.ai → admin@localhost,
staticBaseUrl='' default, etc.).
2026-05-12 14:50:59 -07:00
Hanzo AI dbb0cf8637 docs(services): scrub upstream brand leaks across IAM, KMS, MPC, Base
56 .mdx + meta.json files updated. White-label IAM/KMS/MPC/Base
images ship with no mention of the upstream forks. Mapping:

  Casdoor → Hanzo IAM
  PocketBase → Hanzo Base
  Infisical → Hanzo KMS (incl. INFISICAL_* env vars → KMS_* / HANZO_KMS_*)
  HashiCorp Vault → external secret manager (where reference was generic;
    migration guides keep the proper noun where needed)

Code-level identifiers preserved where they're real runtime names
in our forks (e.g. INFISICAL_CLIENT_ID renamed to KMS_CLIENT_ID
because that's what hanzo/kms actually reads — verified against
universe k8s manifests).

No-op for behavior; user-facing docs no longer surface the upstream
brand to anyone reading docs.hanzo.ai. Pairs with the recent
liquidity/iam tenant-neutral rip (admin@hanzo.ai → admin@localhost,
staticBaseUrl='' default, etc.).
2026-05-12 14:50:59 -07:00
Hanzo AI 5d7efb701f docs(brain): correct npm install path — brain ships inside @hanzo/bot 2026-05-11 17:50:37 -07:00
Hanzo AI d24a7ae264 docs(brain): correct npm install path — brain ships inside @hanzo/bot 2026-05-11 17:50:37 -07:00
Hanzo AI 7d3baa8fae docs: brain + agents service pages, run-your-org customer quickstart
- services/brain.mdx — five-runtime brain.db substrate (TS canonical,
  Python, Go, C++, Rust), wallet-style BLAKE3 content-addressable ids,
  hybrid search algorithm surface, brain profiles, multi-tenant layout.
- services/agents.mdx — 88 specialists + 15 orchestrators + 42 tools,
  control plane in Go, SDKs for Go/Python/TypeScript, plugin format
  for Claude Code marketplace.
- run-your-org.mdx — under-10-minute end-to-end: signup → IAM org →
  KMS secrets → brain profile install → bot wire-up → team workspace.
  Single landing page that ties every service together for a new
  organization owner.
- meta.json wires brain + agents into the services sidebar, run-your-org
  into top-level Getting Started.
- index.mdx Quick Links promote Run-Your-Org over generic Getting Started
  and surface Brain + Agents on the products grid.
2026-05-11 17:48:32 -07:00
Hanzo AI 316b3dd324 docs: brain + agents service pages, run-your-org customer quickstart
- services/brain.mdx — five-runtime brain.db substrate (TS canonical,
  Python, Go, C++, Rust), wallet-style BLAKE3 content-addressable ids,
  hybrid search algorithm surface, brain profiles, multi-tenant layout.
- services/agents.mdx — 88 specialists + 15 orchestrators + 42 tools,
  control plane in Go, SDKs for Go/Python/TypeScript, plugin format
  for Claude Code marketplace.
- run-your-org.mdx — under-10-minute end-to-end: signup → IAM org →
  KMS secrets → brain profile install → bot wire-up → team workspace.
  Single landing page that ties every service together for a new
  organization owner.
- meta.json wires brain + agents into the services sidebar, run-your-org
  into top-level Getting Started.
- index.mdx Quick Links promote Run-Your-Org over generic Getting Started
  and surface Brain + Agents on the products grid.
2026-05-11 17:48:32 -07:00
Hanzo AI edf5c04e8f docs: remove apps/liquid — canonical home is ~/work/lux/liquid/docs
Lux Liquid (self-repaying lending protocol) docs were temporarily
mirrored here during the initial doc-system migration. Canonical site
is the Docusaurus build at github.com/luxfi/liquid/docs.

260 files removed. No content lost — same content lives upstream.
2026-05-11 17:44:25 -07:00
Hanzo AI e70db18c35 docs: remove apps/liquid — canonical home is ~/work/lux/liquid/docs
Lux Liquid (self-repaying lending protocol) docs were temporarily
mirrored here during the initial doc-system migration. Canonical site
is the Docusaurus build at github.com/luxfi/liquid/docs.

260 files removed. No content lost — same content lives upstream.
2026-05-11 17:44:25 -07:00
Hanzo AI 680fa65f20 deploy: pin :latest → semver across image refs
Replaces all ghcr.io/hanzoai/<svc>:latest pins with the latest published
semver tag for each service. Per CLAUDE.md auto-bump policy: mutable
branch tags (:latest, :main, :dev) are deprecated for cluster pins —
only immutable semver permitted.

Bulk update across services with published v* tags. Services without a
published semver remain on :latest until their release pipeline cuts a
v* tag.
2026-05-07 08:33:46 -07:00
Hanzo AI 542b4240e0 deploy: pin :latest → semver across image refs
Replaces all ghcr.io/hanzoai/<svc>:latest pins with the latest published
semver tag for each service. Per CLAUDE.md auto-bump policy: mutable
branch tags (:latest, :main, :dev) are deprecated for cluster pins —
only immutable semver permitted.

Bulk update across services with published v* tags. Services without a
published semver remain on :latest until their release pipeline cuts a
v* tag.
2026-05-07 08:33:46 -07:00
Hanzo Dev 45d4e32422 chore: purge PostHog references (Insights brand only) 2026-04-30 02:16:51 -07:00
Hanzo Dev d1bd0be69b chore: purge PostHog references (Insights brand only) 2026-04-30 02:16:51 -07:00
Hanzo AI c3aea01598 fix(liquid): security page — Corona ≠ threshold ML-DSA; full Quasar/Z-Chain/Warp stack
- Corona is its own Ring-LWE 2-round threshold scheme (luxfi/corona
  via luxfi/threshold), NOT 'threshold ML-DSA-65'
- ML-DSA-65 (FIPS 204) is a separate single-signer PQ identity sig used
  ALONGSIDE Corona in Quasar
- Add Quasar 4-mode table (BLS-only / +ML-DSA / +Corona / triple)
- Add Z-Chain (luxfi/chains/zkvm) — ML-DSA verified inside Groth16 zk proofs
- Add Warp V2 (luxfi/warp) — random Corona validation + Z-Chain FHE
2026-04-28 18:59:38 -07:00
Hanzo AI 6180d06fd2 fix(liquid): security page — Corona ≠ threshold ML-DSA; full Quasar/Z-Chain/Warp stack
- Corona is its own Ring-LWE 2-round threshold scheme (luxfi/corona
  via luxfi/threshold), NOT 'threshold ML-DSA-65'
- ML-DSA-65 (FIPS 204) is a separate single-signer PQ identity sig used
  ALONGSIDE Corona in Quasar
- Add Quasar 4-mode table (BLS-only / +ML-DSA / +Corona / triple)
- Add Z-Chain (luxfi/chains/zkvm) — ML-DSA verified inside Groth16 zk proofs
- Add Warp V2 (luxfi/warp) — random Corona validation + Z-Chain FHE
2026-04-28 18:59:38 -07:00
Hanzo AI 709d58e44b fix(liquid): security page — luxfi/kms (not hanzoai), full PQ + MPC stack
Correct ownership: Lux KMS lives at luxfi/kms (MPC-backed). Hanzo KMS is a
different trust domain. Document the actual Lux PQ + threshold stack:

- luxfi/crypto: ML-KEM-768 (FIPS 203), ML-DSA-65 (FIPS 204), SLH-DSA (205),
  X-Wing hybrid, BLS12-381, Ed25519, secp256k1 — all production
- luxfi/mpc: CGGMP21 (threshold ECDSA), FROST (threshold EdDSA)
- luxfi/threshold: Corona (threshold ML-DSA-65)
- luxfi/kms: MPC-backed KMS, ZapDB, age + X-Wing for replication
- HybridProofOfPossession for Q-Chain (BLS + RT keys)
2026-04-28 18:42:34 -07:00
Hanzo AI f66b1cb3c2 fix(liquid): security page — luxfi/kms (not hanzoai), full PQ + MPC stack
Correct ownership: Lux KMS lives at luxfi/kms (MPC-backed). Hanzo KMS is a
different trust domain. Document the actual Lux PQ + threshold stack:

- luxfi/crypto: ML-KEM-768 (FIPS 203), ML-DSA-65 (FIPS 204), SLH-DSA (205),
  X-Wing hybrid, BLS12-381, Ed25519, secp256k1 — all production
- luxfi/mpc: CGGMP21 (threshold ECDSA), FROST (threshold EdDSA)
- luxfi/threshold: Corona (threshold ML-DSA-65)
- luxfi/kms: MPC-backed KMS, ZapDB, age + X-Wing for replication
- HybridProofOfPossession for Q-Chain (BLS + RT keys)
2026-04-28 18:42:34 -07:00
Hanzo AI 63362b9d30 docs(liquid): security & compliance pages reference luxfi/security + luxfi/compliance
- /docs/projects/support/security: full rewrite pointing at the Lux security
  stack (audits/formal-verif/KMS/cosign/disclosure) instead of placeholder TODOs
- Cross-links: /docs/governance for the DAO execution path, github.com/luxfi/{security,compliance,audits,dao,kms}
2026-04-28 18:33:25 -07:00
Hanzo AI 0d8db6c446 docs(liquid): security & compliance pages reference luxfi/security + luxfi/compliance
- /docs/projects/support/security: full rewrite pointing at the Lux security
  stack (audits/formal-verif/KMS/cosign/disclosure) instead of placeholder TODOs
- Cross-links: /docs/governance for the DAO execution path, github.com/luxfi/{security,compliance,audits,dao,kms}
2026-04-28 18:33:25 -07:00
Hanzo AI 6be75b6e0b docs(liquid): governance via Lux DAO (Safe + DLUX), drop multisig stub
Replaces 'transition phase / multisig' placeholder with the actual stack:
- ~/work/lux/dao: ModuleGovernorV1 + Safe + StrategyV1 + VotesERC20StakedV1
- DLUX governance token, backed by staked LUX
- Proposals on https://lux.vote
- Curator/allocator/classifier/gauge admin = Safe owned by the module
- Voting/quorum table with the real contracts

Updated:
- governance/intro.mdx: full rewrite, no 'expected shortly' note
- governance/index.mdx: synced
- user/newguides/risk-considerations.mdx: 'DAO multisig + timelock' → 'Lux DAO (DLUX vote → Safe)'
- projects/support/security.mdx: drop placeholder timelock, point to luxfi/dao
2026-04-28 18:22:06 -07:00
Hanzo AI c1b7a8d97c docs(liquid): governance via Lux DAO (Safe + DLUX), drop multisig stub
Replaces 'transition phase / multisig' placeholder with the actual stack:
- ~/work/lux/dao: ModuleGovernorV1 + Safe + StrategyV1 + VotesERC20StakedV1
- DLUX governance token, backed by staked LUX
- Proposals on https://lux.vote
- Curator/allocator/classifier/gauge admin = Safe owned by the module
- Voting/quorum table with the real contracts

Updated:
- governance/intro.mdx: full rewrite, no 'expected shortly' note
- governance/index.mdx: synced
- user/newguides/risk-considerations.mdx: 'DAO multisig + timelock' → 'Lux DAO (DLUX vote → Safe)'
- projects/support/security.mdx: drop placeholder timelock, point to luxfi/dao
2026-04-28 18:22:06 -07:00
Hanzo AI 31891f2992 fix(liquid): /docs/governance 404 — add index.mdx for section landing 2026-04-28 18:12:02 -07:00
Hanzo AI 0edaa6b666 fix(liquid): /docs/governance 404 — add index.mdx for section landing 2026-04-28 18:12:02 -07:00
Hanzo AI f0ad7c4038 fix(liquid): strip broken img refs, Lux brand mark, /docs landing, favicon
- content/docs/**/*.mdx: strip <img> tags pointing at non-existent /img/Foo.png
  (Docusaurus import-as-component pattern didn't survive the port; the
  decorative banners weren't worth a full filename rewrite)
- public/{favicon,logo,wordmark}.svg from @luxfi/brand
- layout.shared.tsx: replace lucide DropletIcon with mono brand square
  (Lux aesthetic, no decorative icon, uses currentColor)
- app/layout.tsx: title template '%s — Liquid' (was '%s | Liquid Protocol'
  causing 'Liquid Protocol | Liquid Protocol' duplication on /docs root);
  wire favicon.svg via icons metadata
- content/docs/index.mdx: title 'Documentation' instead of 'Liquid Protocol'
  (avoids template duplication); add quickstart code block + section table
2026-04-28 14:37:35 -07:00
Hanzo AI a884ede171 fix(liquid): strip broken img refs, Lux brand mark, /docs landing, favicon
- content/docs/**/*.mdx: strip <img> tags pointing at non-existent /img/Foo.png
  (Docusaurus import-as-component pattern didn't survive the port; the
  decorative banners weren't worth a full filename rewrite)
- public/{favicon,logo,wordmark}.svg from @luxfi/brand
- layout.shared.tsx: replace lucide DropletIcon with mono brand square
  (Lux aesthetic, no decorative icon, uses currentColor)
- app/layout.tsx: title template '%s — Liquid' (was '%s | Liquid Protocol'
  causing 'Liquid Protocol | Liquid Protocol' duplication on /docs root);
  wire favicon.svg via icons metadata
- content/docs/index.mdx: title 'Documentation' instead of 'Liquid Protocol'
  (avoids template duplication); add quickstart code block + section table
2026-04-28 14:37:35 -07:00
Hanzo AI f0ba65393e fix(liquid): Lux-aligned mono brand, embedded server fixes /docs/* routing
Branding:
- Lux brand: monochrome black/white (matches @luxfi/brand brand.json)
- Default theme = dark (was 'system'), enableSystem=false
- @hanzo/docs-ui preset.css: cmd+k search input, sidebar styles
- Custom landing: full-bleed hero, type-driven, dot-grid bg, no fake gradients
- 3-step 'How it works' with monospaced indices
- Contracts ledger (LETH/WLUX/LBTC) in mono table
- 4-up docs grid, footer with GitHub/audits/Lux links

Routing fix:
- ghcr.io/hanzoai/spa always falls back to root index.html on dirs.
  Next.js static export emits /docs/dev.html — was 404'ing to home.
- Embedded a 30-line Go server in the Dockerfile that resolves:
    1. <root>/<path>            exact file
    2. <root>/<path>.html       Next-export, trailingSlash:false
    3. <root>/<path>/index.html Next-export, trailingSlash:true
    4. <root>/index.html        SPA fallback
  When ghcr.io/hanzoai/spa v1.3+ ships, swap back.

Local smoke: /docs/user/quick-start, /docs/dev/liquid/liquid-contract,
/, all serve the correct HTML.
2026-04-28 14:23:13 -07:00
Hanzo AI 1bbceb8f57 fix(liquid): Lux-aligned mono brand, embedded server fixes /docs/* routing
Branding:
- Lux brand: monochrome black/white (matches @luxfi/brand brand.json)
- Default theme = dark (was 'system'), enableSystem=false
- @hanzo/docs-ui preset.css: cmd+k search input, sidebar styles
- Custom landing: full-bleed hero, type-driven, dot-grid bg, no fake gradients
- 3-step 'How it works' with monospaced indices
- Contracts ledger (LETH/WLUX/LBTC) in mono table
- 4-up docs grid, footer with GitHub/audits/Lux links

Routing fix:
- ghcr.io/hanzoai/spa always falls back to root index.html on dirs.
  Next.js static export emits /docs/dev.html — was 404'ing to home.
- Embedded a 30-line Go server in the Dockerfile that resolves:
    1. <root>/<path>            exact file
    2. <root>/<path>.html       Next-export, trailingSlash:false
    3. <root>/<path>/index.html Next-export, trailingSlash:true
    4. <root>/index.html        SPA fallback
  When ghcr.io/hanzoai/spa v1.3+ ships, swap back.

Local smoke: /docs/user/quick-start, /docs/dev/liquid/liquid-contract,
/, all serve the correct HTML.
2026-04-28 14:23:13 -07:00