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]>
This commit is contained in:
2026-09-23 23:52:59 -07:00
co-authored by Claude Opus 5.5
parent ef0ab84ae3
commit 1d4202206c
2 changed files with 50 additions and 0 deletions
+13
View File
@@ -48,3 +48,16 @@ llms.mdx/docs/content.md
# quiet without the build saying anything.
404.html
cloud/index.html
#
# docs/<product>/ the addresses the console's Docs buttons open, each a page
# emit-redirects writes. The console is not crawled by the
# link sweep, so a rule that goes quiet here is a dead button
# that nothing else reports.
docs/agents/index.html
docs/crawl/index.html
docs/edge/index.html
docs/embeddings/index.html
docs/gateway/index.html
docs/functions/index.html
docs/kms/index.html
docs/machines/index.html
+37
View File
@@ -72,6 +72,43 @@
/docs/dns /docs/openapi/dns 301
/docs/desktop /docs/apps/desktop 301
/docs/code /docs/openapi/code 301
# The console's own Docs buttons: AgentsModule, SearchModule (/crawl),
# EdgeModule, embeddings SettingsView and ResourceRail, the inference rail,
# FunctionsModule and its secrets tab, and the machines view. Edge is
# GET /v1/project/edge, so it lands on that operation.
/docs/agents /docs/openapi/agent 301
/docs/crawl /docs/openapi/crawl 301
/docs/edge /docs/openapi/project/get-project-edge 301
/docs/embeddings /docs/openapi/ai/post-embeddings 301
/docs/gateway /docs/openapi/gateway 301
/docs/functions /docs/openapi/function 301
/docs/kms /docs/openapi/kms 301
/docs/machines /docs/openapi/compute 301
# The product cards on /docs linked /docs/<product> until those pages were
# folded into the reference; each old address lands on its capability. Hanzo
# Tasks is the durable workflow engine (/v1/workflow), not the task board, and
# the zero-trust routers are /v1/network/routers.
/docs/authz /docs/openapi/authz 301
/docs/base /docs/openapi/base 301
/docs/billing /docs/openapi/billing 301
/docs/commerce /docs/openapi/commerce 301
/docs/experiments /docs/openapi/experiment 301
/docs/gpus /docs/openapi/compute 301
/docs/iam /docs/openapi/iam 301
/docs/kv /docs/openapi/kv 301
/docs/marketplace /docs/openapi/marketplace 301
/docs/o11y /docs/openapi/o11y 301
/docs/prompts /docs/openapi/prompt 301
/docs/pubsub /docs/openapi/pubsub 301
/docs/registry /docs/openapi/registry 301
/docs/search /docs/openapi/search 301
/docs/sql /docs/projects/hanzoai/sql 301
/docs/storage /docs/openapi/s3 301
/docs/tasks /docs/openapi/workflow 301
/docs/zero-trust /docs/openapi/network 301
/docs/zt /docs/openapi/network 301
/docs/getting-started /docs/quickstart 301
/docs/contributing /docs/contributing/style 301
# The console links the SDK product at the singular /docs/sdk; the section is
# /docs/sdks. Catch the singular rather than move the section.