Commit Graph
7078 Commits
Author SHA1 Message Date
zeekayandHanzo Dev 9cf9ffdf87 The Migrate from OpenClaw guide says where copied links point and which workspaces stay in place.
Co-authored-by: Hanzo Dev <[email protected]>
2026-09-25 23:38:17 -07:00
zeekayandHanzo Dev 42ddaa7523 The Migrate from OpenClaw guide covers leftover allowlists, Anthropic keys outside main, ~/.clawdbot paths, linked .agents dirs and OpenClaw's gateway service.
Co-authored-by: Hanzo Dev <[email protected]>
2026-09-25 23:26:51 -07:00
zeekayandHanzo Dev 454abaf392 The Migrate from OpenClaw guide covers ~/.clawdbot, linked dirs, workshop skills, an existing bot.json and Run Locally.
Co-authored-by: Hanzo Dev <[email protected]>
2026-09-25 22:21:18 -07:00
zeekayandHanzo Dev 90685e85b6 The Bot page on docs.hanzo.ai and its sidebar entry link the Migrate from OpenClaw guide.
Co-authored-by: Hanzo Dev <[email protected]>
2026-09-25 22:20:28 -07:00
zeekayandHanzo Dev 0b4a161972 The bot docs carry the Migrate from OpenClaw guide, linked from the docs home and the landing page
install/migrate-from-openclaw and cli/migrate are converted from hanzoai/bot's docs (branch migrate-openclaw) with the converter that copies the bot's words as written, and sit in the Installation and CLI Reference nav. The docs home's Start here and the landing page's quickstart point OpenClaw users at the guide.

Co-authored-by: Hanzo Dev <[email protected]>
2026-09-25 21:26:08 -07:00
zeekay eaa556ea10 Models, Zen, Enso and Kai get their own pages, and a cookbook puts them in one loop.
/docs/models is a folder: the families (Zen generates, Enso routes, Kai
decides, Policy governs) with status, the live catalogue, and the HIPs.
Enso is the router: how it picks, the X-Max-Cost and X-Max-Latency-Ms
headers, /v1/ai/feedback, the enso-* ids. Kai: /v1/decisions with real
responses from the decision runtime serving the kai-1 baseline, programs,
policy gates and modes; status honest. Cookbook: route, triage, gate, loop.

Models in the sidebar and top nav; /docs/enso, /docs/zen, /docs/kai and
/docs/decisions redirect. Glossary, landing and docs hero say the same.
Routing page: SLO is headers, strategies are enso and heuristic. Dev
config docs: the default model is enso-auto on provider hanzo.

Claude-Session: https://claude.ai/code/session_018Gt5TvrE2rxXuZikWSauv3
2026-09-25 12:18:08 -07:00
zeekay 96585f38e2 Build the export without Turbopack's filesystem cache
Next 16 keeps the cache for builds by default. The export runs once on a
fresh runner, so nothing reads it back, and under visor the files it
writes are cached in the sandbox's memory and charged to the pod. With it
on, the only run under the 24Gi cap passed 18.5G mid-compile, climbing
3G every 15 seconds, when the log stopped.

Claude-Session: https://claude.ai/code/session_01HuMDfgFssPUptYUzgZ6Cp8
2026-09-24 14:57:30 -07:00
zeekay af79d739da Restore the forge workflows
The forge mirror of this repo (git.hanzo.ai/hanzoai/docs) reads
.hanzo/workflows and runs them: the last docs.hanzo.ai publish was
deploy.yml building 1d4202206c. With them gone, nothing publishes the site.

This reverts commit 891b8cc999.

Claude-Session: https://claude.ai/code/session_01HuMDfgFssPUptYUzgZ6Cp8
2026-09-24 14:54:01 -07:00
z 891b8cc999 Delete .hanzo workflows nothing runs
.hanzo/workflows copies GitHub never reads and no forge runs.

Claude-Session: https://claude.ai/code/session_01HuMDfgFssPUptYUzgZ6Cp8
2026-09-24 09:50:42 -07:00
zeekayandClaude Opus 5.5 1d4202206c Every /docs/<product> address the console and the old product cards used lands on its page
The console's Docs buttons open docs.hanzo.ai/docs/<product> — agents, crawl,
edge, embeddings, gateway, functions, kms, machines — and none of those pages
exists, so each button opened the 404 page. The product cards on /docs linked
the same shape for twenty-one more before they moved into the reference.

_redirects now sends each to its capability page, and emit-redirects writes the
stub the static host serves. Five old slugs have no page to land on (docdb, mpc,
pipelines, sessions, vector) and stay unlisted rather than point at a 404. The
eight console addresses are in export.require, so a rule that stops emitting
fails the export instead of leaving a dead button.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
2026-09-23 23:52:59 -07:00
zeekay ef0ab84ae3 Pin the CLI at 8.5.162 and spell groups as it does
deploy / site (push) Failing after 23m0s
8.5.162 files /v1/link under `hanzo auth link`: `hanzo link` now links a
machine to Hanzo ZT. The pages named a group by its tag, so they would
have kept teaching `hanzo link list` for the account registry.

Claude-Session: https://claude.ai/code/session_01TUxvfuta1Z44KVNYuAz71F
2026-09-23 20:37:41 -07:00
zeekayandHanzo Dev b6e2b60678 The export gate names the deploy lane it runs in now
deploy.yml checks apps/docs/out directly and publishes it to the Sites
plane; there is no finished image to copy /public out of. This push also
starts the docs deploy on the 24Gi runner cloud 62e7a1c made live, which
06022ce31 held back for.

Co-authored-by: Hanzo Dev <[email protected]>
2026-09-23 19:02:07 -07:00
zeekayandHanzo Dev 06022ce31a The docs export keeps 8G heaps and Turbopack's own eviction
Measured to completion, neither a 4G heap nor evicting after every cache
snapshot lowers the compile's peak: it holds 14-16G in one process either
way, and under visor the 4G heap died sooner. The lane keeps two tasks,
two page workers, no source maps and no server minifying, which peaks at
about 16.8G locally, and names the 24Gi runner cap the platform now sets
for it. The heartbeat's comment says what the in-sandbox figure leaves out.

This push starts no run: the runner that fits the job ships with cloud
62e7a1c, and the lane is dispatched once it is live.

[skip ci]

Co-authored-by: Hanzo Dev <[email protected]>
2026-09-23 16:55:30 -07:00
zeekayandHanzo Dev 2c30fd4cde The iam and ml project pages link the Rust client crate their READMEs name
Both READMEs now link crates.io/crates/hanzo-client, so the next project sync leaves these pages as they are.

Co-authored-by: Hanzo Dev <[email protected]>
2026-09-23 16:31:22 -07:00
zeekayandHanzo Dev 03d988e211 The reference is built from cloud 9a70ae8, whose span fields link no dead guide
The locked document was cloud's of 2026-09-11. Its waterfall span
described db_name with a link to o11y.io, which resolves to no server,
and the waterfall API's page printed it. cloud 9a70ae8 reads o11y
v1.5.75, which describes the calculated fields in words.

The document moved in the twelve days between. cloud renamed three
capabilities and added one, so the taxonomy follows: tasks is workflow,
the durable engine, and stays in Streams; integration is provider, with
a person's own connectors at /v1/connection; todo is task, the board, in
Applications; patrol, which watches over an estate, joins Applications.
The pages that linked the old names link the new ones, and the Composio,
Centaur, Firebase and migration index guides name /v1/provider and
/v1/connection, since /v1/integration answers 404.

Co-authored-by: Hanzo Dev <[email protected]>
2026-09-23 16:31:21 -07:00
zeekayandHanzo Dev e9f6826264 The docs export keeps Turbopack's build cache and evicts to it after every snapshot
deploy / site (push) Failing after 15m17s
The build cache is where Turbopack puts a task it takes out of memory.
With the cache off it has nowhere to evict to, and the compile kept every
task resident. With it on and eviction set to full, each snapshot of the
cache is followed by dropping every task the build can reload from it.

The heartbeat prints every 15 seconds instead of 30.

Co-authored-by: Hanzo Dev <[email protected]>
2026-09-23 15:45:24 -07:00
zeekayandHanzo Dev ecf058e96b The docs export bounds its memory, and bun installs by version
deploy / site (push) Failing after 15m7s
The export build keeps no Turbopack build cache, makes no source maps,
leaves the server bundle unminified, runs two Turbopack tasks and two
page workers, and gives each Node process a 4GB heap. next dev is
unchanged apart from the build cache, which it never used.

setup-bun installs 1.3.11 from its release by name. Asking for latest
reads the tag list from api.github.com first, which refuses the runner's
shared address once its anonymous limit is spent.

The heartbeat also names the five largest processes by resident memory.

Co-authored-by: Hanzo Dev <[email protected]>
2026-09-23 15:32:02 -07:00
zeekayandHanzo Dev cfa816a45b The workflows live in .hanzo/workflows, which the forge reads and GitHub does not
The forge reads the first of .hanzo/workflows and .github/workflows that
exists, so every workflow moves at once: moving one would have left the
other twelve unread. Each lane's own path filter names its new path, and
hanzo.yml no longer lists deploy.yml as an image builder, since it
publishes files to the Sites plane and tags no image.

Nothing runs differently. The rename alone would match every deploy
lane's path filter and fire all nine, so this commit skips them.

[skip ci]

Co-authored-by: Hanzo Dev <[email protected]>
2026-09-23 13:11:51 -07:00
zeekayandHanzo Dev ffed9e468c The docs deploy lane names its hosts by what they are
deploy / site (push) Failing after 23m17s
Co-authored-by: Hanzo Dev <[email protected]>
2026-09-23 12:13:11 -07:00
zeekayandHanzo Dev b551d95e55 quickstart.test.ts reads the fences and help lines these pages use
A fence with an info string (```typescript tab="TypeScript") threw the
parser out of step, so prose between fences was read as code. `hanzo host
serve` is a native command, `hanzo --help` and `hanzo billing --help` run
nothing, a trailing `# comment` is not an argument, and hanzoai.cloud.api is
the Python client's API module.

Co-authored-by: Hanzo Dev <[email protected]>
2026-09-23 11:52:42 -07:00
zeekayandHanzo Dev 00275aef43 The way in to the first call is a page, and its SDK lines run
The home page's "Make your first call" and the games page's "Get Started"
linked /docs/getting-started, which is not a page. Both go to the
quickstart. Authentication showed three clients no published package
has — `from hanzoai import Hanzo`, a default export from @hanzo/ai, a
go-sdk with no version — and now shows the generated ones taking the key
as their bearer. The quickstart's Go line used hanzoai.New, whose
transport refuses without an IAM client id, for a read that needs no
credential; it uses the generated client. Authentication says which
origins a browser may call from.

quickstart.test.ts holds these pages to the generated clients' imports and
methods, and to pages the site has.

Co-authored-by: Hanzo Dev <[email protected]>
2026-09-23 11:51:02 -07:00
zeekayandHanzo Dev 922cf1856b The quickstart's first call runs as written
It named zen-1, which the catalogue does not serve, and passed --model and
--messages, which `hanzo chat completions` does not take; its SDK tabs used
a Hanzo client class no published package exports, and `pip install hanzo`
is not the API client. The call is now zen5 over --data and over HTTP, the
SDK tabs are the generated clients' own GetModels, a graph assert and
resolve follow the completion, and the home page mints a key with
`hanzo account keys create`. agents and budgets name zen5.

scripts/quickstart.test.ts holds these pages to the CLI's command table
and to the catalogue in pricing.json.

Co-authored-by: Hanzo Dev <[email protected]>
2026-09-23 11:50:16 -07:00
zeekayandHanzo Dev a506ec0f8a Merge ss-devtools: every install line the docs print resolves to our client
Co-authored-by: Hanzo Dev <[email protected]>
2026-09-23 11:48:12 -07:00
zeekayandHanzo Dev e38502e83b The docs export builds on the runner node
deploy / site (push) Failing after 16m58s
docs.hanzo.ai still serves an export from before the gui move, with 41
dead links on its root and /docs pages, because no run of this lane has
ever published. The last one asked for arm64, which on the AWS cluster
is a 4-core, 16Gi sandbox node: the export starved it until its kubelet
missed its own heartbeats, the runner pod was torn down at 14:35Z
mid-compile, and the run sat "in progress" for three hours holding the
deploy-docs group. linux-amd64 is the runner node, 8 cores and 32Gi.

The timeout was 90 minutes for a build whose export alone took 47 on a
10-core workstation; this job gets 6 cores. And the heartbeat printed
mem=? under visor, which exposes no cgroup file, so it now reads the
sandbox's own /proc/meminfo there.

Co-authored-by: Hanzo Dev <[email protected]>
2026-09-23 11:13:52 -07:00
zeekayandHanzo Dev 505c0305ab The docs link no private repo, dead service or rewritten commit
Every link below answered a reader 404 or nothing, measured against the
export this repo builds today:

- The Rust SDK page and the iam and ml footers named hanzo-rs/sdk, which
  is private. They now name the published crates on docs.rs and
  crates.io, where the source of each release can be read.
- iam's page linked hanzoai/iam-v1, private and archived. It names it.
- The provenance list in the sovereign-apps post linked three commits
  that no longer exist where it pointed. luxfi/consensus and
  hanzoai/sqlite were rewritten, so it names the same first commits
  under their new hashes (same message, same author date). luxfi/node's
  history now starts in 2026 and holds no 2020 commit, so that line
  names the repo.
- The survey feature table wrapped 33 "in progress" wrenches in links
  to github.com/Insights/insights-*, a rename of trackers that were
  never ours. The wrench stays; the links go.
- govaluate's gocover.io badge and go-fuse's two upstream credits point
  at services and repos that are gone. The credits keep their names.

Co-authored-by: Hanzo Dev <[email protected]>
2026-09-23 11:13:46 -07:00
zeekayandHanzo Dev 98d6df7f4c Every install line the docs print resolves to our client
- Python: `pip install "hanzoai>=8"`, and the page says 3.12 or newer. PyPI
  still serves hanzoai 2.1.3 to Python 3.9 to 3.11, so unpinned, pip on Ubuntu
  22.04, Debian 12 or macOS's python3 installed 2.1.3 and the quickstart's
  `from hanzoai.cloud import ...` died with ModuleNotFoundError. With the
  floor, pip 21 on 3.9 answers "No matching distribution found for hanzoai>=8".
- Install picker: the HTML row loaded cdn.hanzo.ai/event.js, a 404, and the
  WordPress, Shopify, Bubble, Segment, Zapier and n8n rows named listings that
  do not exist; Webflow, Framer, GTM and Retool pasted the missing snippet or
  free text. They are gone, and Docusaurus joins the web rows.
- Kotlin: the snippet called KeysApi.getKeys, which hanzo-kotlin/sdk has never
  had; it is AccountApi.getAccountKeys.

scripts/installs.test.ts holds the first two: 15 failures before, 235 passing
after.

Co-authored-by: Hanzo Dev <[email protected]>
2026-09-23 11:11:30 -07:00
zeekayandHanzo Dev 1ca445138b The Java and Kotlin pages name what resolves
- Java said it was not on Maven Central. Central serves
  ai.hanzo:hanzo-java-cloud 8.5.156, so the page gives the dependency line
  instead of a clone-and-build detour.
- Kotlin named ai.hanzo:sdk:8.0.0 (404 on Central), a JitPack line whose
  build answers "No build artifacts found", a coroutine client under
  ai.hanzo.sdk and the hanzo-kt/sdk repository from July. The client is
  ai.hanzo:hanzo-kotlin-cloud under ai.hanzo.cloud, on OkHttp and blocking,
  published nowhere yet; the page builds it from hanzo-kotlin/sdk.
- Python called `hanzo` on PyPI the CLI and said `pip install hanzo` then
  `hanzo auth login`. That distribution installs `hanzo-py`; the `hanzo`
  command is the native CLI from hanzo.sh.


Co-authored-by: Hanzo Dev <[email protected]>
2026-09-23 11:02:52 -07:00
zeekayandHanzo Dev 61c98dabed The install picker installs our packages
Four of its lines installed nothing or installed someone else's code, each
checked against its registry:

- gem install hanzo        rubygems: mirego/hanzo, a Heroku deploy tool
- flutter pub add hanzo    pub.dev: andresaraujo/hanzo, a Dart git-hooks library
- composer require hanzo/hanzo   Packagist: 404
- pod "Hanzo"              CocoaPods trunk: 404

They are gem install hanzoai (8.5.156), flutter pub add hanzoai (8.5.156),
composer require hanzoai/hanzoai (v8.5.156) and the SwiftPM line the Swift
page gives (hanzo-swift/sdk, tagged v8.5.156). Android's
implementation("ai.hanzo:hanzo") and Elixir's {:hanzo, "~> 1.0"} resolve on
neither Maven Central nor Hex, and nothing is published for either, so the
rows go.



Co-authored-by: Hanzo Dev <[email protected]>
2026-09-23 11:02:52 -07:00
zeekayandHanzo Dev 9cac07effb The Go install line carries /v8, and Rust installs the client
The Go SDK's module path has been github.com/hanzoai/go-sdk/v8 since
August. Every Go line here still said github.com/hanzoai/go-sdk, which the
proxy resolves to v1.0.5, and the snippets called methods v8 does not have
(NewClient, ModelsAPI.AiListModels). Measured: the Go page as written, built
against what that line fetches, fails with `ModelsAPI.AiListModels
undefined`; the corrected line fetches v8.5.158 and the corrected snippet
vets clean. The install picker also offered `cargo add hanzo`, the umbrella
crate, where the SDK index and the Rust page name hanzo-client.



Co-authored-by: Hanzo Dev <[email protected]>
2026-09-23 11:02:51 -07:00
zeekayandHanzo Dev 4aa64d1f1a The Extensions pages link no private release, and the welcome post links the API reference
Deploy Cloud Landing Page / deploy (push) Failing after 46s
Deploy Base Docs / deploy (push) Failing after 1m3s
Deploy Bootnode Docs / deploy (push) Failing after 58s
Deploy Zen Docs / deploy (push) Failing after 45s
Deploy Bot Docs / deploy (push) Failing after 57s
Deploy Dev Docs / deploy (push) Failing after 58s
Deploy Insights Docs / deploy (push) Failing after 55s
Deploy ZT Docs / deploy (push) Failing after 59s
deploy / site (push) Failing after 3h51m21s
Every installer the Extensions section listed sat on the releases of
hanzoai/extension and hanzoai/desktop, both private, so each download
and "latest release" link answered a reader 404. The pages now say the
builds are not public and give what works today: editors and Claude
Desktop connect through the Hanzo MCP server, models through the
OpenAI-compatible endpoint. /docs/services, linked from the welcome
post, is the API reference at /docs/openapi now.

Co-authored-by: Hanzo Dev <[email protected]>
2026-09-23 06:55:32 -07:00
zeekayandHanzo Dev 8a8f589df2 The docs export builds: the Vercel deployment lookup route is gone
app/api/hanzo-docs/deployment asked GitHub for a docs-ui tag and Vercel
for the deployment built from it, reading request.url in a GET handler.
A static export cannot render that, so `next build` stopped on it —
"Route /api/hanzo-docs/deployment/ ... couldn't be rendered statically
because it used request.url". That is where the last deploy run failed,
and no run of this lane has published, so docs.hanzo.ai still serves an
older export whose links point at pages that no longer exist. Nothing
links the route and this site has no Vercel project. Measured after:
5907 pages generated, 3069 HTML pages exported, the export gate passes.

Co-authored-by: Hanzo Dev <[email protected]>
2026-09-23 06:55:31 -07:00
zeekay cc789625c9 Fit the landing hero to a phone screen
The hero is a one-column grid whose implicit auto track grows to its
widest child's min-content. The cards grid below reports three 288px
columns there, so at 390px the track was 896px and the docs layout's
overflow-x clip hid everything past the right edge. minmax(0, 1fr)
makes the track the section's own width.

Claude-Session: https://claude.ai/code/session_01TUxvfuta1Z44KVNYuAz71F
2026-09-23 03:22:25 -07:00
zooqueenandHanzo Dev a8f698c45c The global-batch load balance post's frontmatter is valid YAML, so zen-docs builds
Co-authored-by: Hanzo Dev <[email protected]>
2026-09-23 02:59:23 -07:00
zooqueenandHanzo Dev f79dd3b6d4 The Zen enso names its animations with useId, so a page that shows it hydrates without a text mismatch
Co-authored-by: Hanzo Dev <[email protected]>
2026-09-23 02:54:18 -07:00
zeekayandHanzo Dev 5a779c7088 Pricing reads come from api.hanzo.ai
cloud computes the catalog in Go and serves it at /v1/pricing, so the
docs apps and the zen-models package read the endpoint directly rather
than a host that forwards to it. The Base page links to the pricing page
a reader can actually open.

Co-authored-by: Hanzo Dev <[email protected]>
2026-09-16 23:53:10 -07:00
zooqueenandHanzo Dev cb917c16ba Make the export gate name the 404 and the /cloud alias
deploy / site (push) Canceled after 0s
Both are pages nothing links to, so both can stop being emitted while every
other check stays green: 404.html has no inbound link by definition, and
emit-redirects skips a rule whose target is not served without failing. The
gate that already runs in the Dockerfile and the forge lane now asks for them
by name.

Co-authored-by: Hanzo Dev <[email protected]>
2026-09-15 18:56:01 -07:00
zooqueenandHanzo Dev 952826dda6 Watch the disk beside the memory
deploy / site (push) Canceled after 0s
A runner that fills its ephemeral storage stops as quietly as one that runs out
of memory, and this build writes a 460MB checkout, a 3GB node_modules and a
.next of its own. The heartbeat now carries both numbers.

Co-authored-by: Hanzo Dev <[email protected]>
2026-09-15 18:12:57 -07:00
zooqueenandHanzo Dev 93ed68f3cc Make the build say where it died
deploy / site (push) Canceled after 0s
The first run of this lane failed with a log that stopped seven minutes before
the job did and named no step: turbo holds a task's output until the task ends,
so a build that dies mid-way reports nothing at all.

The packages and the export are two steps now, and the export prints the
cgroup's own memory every thirty seconds while it runs. A run that hits the
runner's 12Gi says so in its last line; one that dies for another reason still
says which half it was in.

Co-authored-by: Hanzo Dev <[email protected]>
2026-09-15 18:05:06 -07:00
zooqueenandHanzo Dev dd0aa72cb6 Say Guides once
deploy / site (push) Canceled after 0s
Release / Release (push) Failing after 0s
The page carried its title in the frontmatter and again as an H1, so the
rendered page opened with the word twice. Every other page here states it once.

Co-authored-by: Hanzo Dev <[email protected]>
2026-09-15 17:16:18 -07:00
zooqueenandHanzo Dev c1c39eafbc Take the tree provider from the package that reads it
app/layout.tsx imported TreeContextProvider from @hanzo/docs/ui/contexts/tree,
which the gui rewrite repointed at @hanzo/docs-gui — a two-line context with a
TreeContext and a useTree and no provider at all. So the root layout named an
export that does not exist, which is a hard module error, and the site could not
build at all.

Every other consumer in this app — the search dialog, the registry layouts — and
the DocsLayout it renders read @hanzo/docs-base-ui/contexts/tree. One provider,
one context, the one the layout consumes.

Co-authored-by: Hanzo Dev <[email protected]>
2026-09-15 17:14:51 -07:00
zooqueenandHanzo Dev 432d6af598 Leave the ported pages as they were, and say what fixing them costs
Making them parse is not enough to make them render. With the HTML rewritten,
ten of the thirteen render and three fail — a README's <img> carries no width,
and the img component is next/image, which requires one; a style string is not a
React style object. In a static export a render error is a FAILED BUILD, not one
bad page, so this trade sends the site backwards: today those pages ship an
article shell with no body, which is bad and safe.

What it takes, for whoever picks it up: the parse fixes in the reverted commit
(void elements closed, attribute values quoted, HTML comments converted), plus a
decision about dimensionless images and inline styles in ported markup. The
build cannot be the place that discovers it.

Co-authored-by: Hanzo Dev <[email protected]>
2026-09-15 17:14:44 -07:00
zooqueenandHanzo Dev 3e060a0683 Give the ported pages back their bodies
Ten project pages shipped as an article shell with nothing in it, because MDX is
JSX and an upstream README is not: `<img src=x>` left open swallows the rest of
the page, `<!-- … -->` stops the parser at the `!`, and `width=95%` is not a JSX
attribute value. The reader saw a title, a sidebar and blank space, and every
link checker called the page fine.

The sanitizer now closes void elements, quotes attribute values with a scanner
that knows when it is inside one, and turns HTML comments into MDX ones. Local
edits per tag and nothing structural: an earlier cut of this dropped closing
tags it thought were orphans and took a page of hand-written JSX apart.

Two upstream imbalances are fixed in the snapshot because nothing mechanical
can: helpdesk carries one `</div>` too many and zen-dub never closes its
`<details>`. A re-port brings them back until upstream fixes its README.

Co-authored-by: Hanzo Dev <[email protected]>
2026-09-15 17:05:13 -07:00
zooqueenandHanzo Dev 7a57c96d5a Name the operations the flows call by the ids the document has
The six canonical flows are operationIds in call order, and four of them —
post_agents, post_agents_by_ref_run, get_agents_by_ref_runs, get_tools — are
spelled in the singular now, so gen-flow-pages refused the whole build rather
than write a page calling an operation nobody serves.

The flow pages that come out of it move with the document: the SDK snippets are
regenerated from the published clients, which name the package hanzoai and
hanzo_client where these still said cloud.

Co-authored-by: Hanzo Dev <[email protected]>
2026-09-15 16:53:18 -07:00
zooqueenandHanzo Dev 855d1c7582 Land /docs/cms on a page that is there
The console's CMS button pointed into the ported-projects snapshot at a repo the
sync no longer carries. The capability it means is content.

Co-authored-by: Hanzo Dev <[email protected]>
2026-09-15 16:50:33 -07:00
zooqueenandHanzo Dev a889b860e5 Send the tutorials alias somewhere that exists
/tutorials pointed at /docs/start, which is now /docs/guides, and its wildcard
half pointed into /docs/services, a section this site has not had for months —
a redirect onto a 404 is worse than the 404 it replaces. /docs/apps is a page of
its own, so the rule naming it could never fire.

Co-authored-by: Hanzo Dev <[email protected]>
2026-09-15 16:50:08 -07:00
zooqueenandHanzo Dev 57c4975e6c Keep the old capability URLs resolving
The reference is named for the capability, so renaming nine of them moved nine
section URLs that hanzo.id, the console and search engines all link. Each old
name now lands on the page that answers for it, and /docs/nodes points at
compute rather than the retired visor.

Co-authored-by: Hanzo Dev <[email protected]>
2026-09-15 16:48:59 -07:00
zooqueenandHanzo Dev b861102ea7 Finish inlining the guides
The root sidebar said `...guides` and the six task pages still sat in
content/docs/start, named by no meta.json — published, unreachable from the rail,
and already promised to /docs/guides by public/_redirects. They are in guides
now, with a meta.json that orders them ahead of integrations and migrate.

check-routes could not read `...guides` either: the `...` inlines a folder's
children and the `!` hides one, so both name a real directory and neither marker
is part of the name. It was reporting the same folder as missing AND as
unlisted.

Co-authored-by: Hanzo Dev <[email protected]>
2026-09-15 16:48:30 -07:00
zooqueenandHanzo Dev de6ab23f32 Point the prose at the routes cloud answers on
Twenty-five curls and tables across thirteen guides named /v1/agents,
/v1/tools, /v1/flags, /v1/functions, /v1/channels, /v1/integrations and
/v1/visor. Cloud renamed all of them, so each was a 404 a reader would run.
/v1/projects is left alone: that app answers on both spellings.

The Stripe guide charged a card at /v1/commerce/payments, which the public
contract does not carry. The documented way to charge a browser token is
POST /v1/billing/topup with the idempotency key as a header, so that is what it
teaches now, and the receipt fields are the ones that endpoint answers with.

Co-authored-by: Hanzo Dev <[email protected]>
2026-09-15 16:47:50 -07:00
zooqueenandHanzo Dev 5b00a0c759 Take the reference to the release the cloud is running
The document was pinned at cloud 529be4ccb from 08-28 and the fleet runs
v8.5.179, which renamed nine capabilities to the singular word each answers at —
agents to agent, tools to tool, flags to flag, functions to function, channels
to channel, integrations to integration, projects to project — retired visor for
compute and crm outright, and added ci, market and space. So every reference page
under those names printed a route that answers 404 today.

capabilities.yaml follows the manifest, as it says it must: the renames in place,
`space` beside `s3` because it is the product over the same backend, `market`
beside web3 and explorer because it reads pools and token prices on a public
ledger, `ci` in the fabric beside deploy, and crm gone because no row serves it.

120 products, 2324 operations, every one grouped and paged.

Co-authored-by: Hanzo Dev <[email protected]>
2026-09-15 16:47:42 -07:00
zooqueenandHanzo Dev e51303a83d Pin what a link check must get right
Deploy Bootnode Docs / deploy (push) Failing after 0s
Deploy Insights Docs / deploy (push) Failing after 0s
Deploy Zen Docs / deploy (push) Failing after 0s
Release / Release (push) Failing after 0s
Deploy Cloud Landing Page / deploy (push) Failing after 0s
Deploy Base Docs / deploy (push) Failing after 0s
Deploy Bot Docs / deploy (push) Failing after 0s
Deploy ZT Docs / deploy (push) Failing after 0s
Deploy Dev Docs / deploy (push) Failing after 0s
deploy / site (push) Failing after 0s
Four cases, each one a way the check could be quietly wrong: an absolute link to
our own host is ours, an off-site one is not, a page whose last segment carries a
dot resolves through its flat .html sibling, and a directory index answers a path
with no extension. Removing the .html rung fails two of them.

Co-authored-by: Hanzo Dev <[email protected]>
2026-09-15 16:35:19 -07:00