Deployment
This page explains the public-site deployment boundary for AgentHub Home and docs. It deliberately omits private host paths, SSH aliases, rollback commands, and secrets.
Private operations boundary
Public docs can describe build outputs, release source worktrees, smoke-test shape, and public URLs. Host-specific copy paths, backup directories, rollback commands, credentials, and server inventory belong only in the private server workspace.
Release Source
Build and package AgentHub Home from the registered clean release worktree in the TokenDance workspace governance docs. Do not deploy from a dirty default worktree or from an older design-preview worktree.
| Source | Requirement |
|---|---|
| Git branch | Fast-forwarded to the commit being released |
| Worktree | Clean except intended release changes |
| Package lock | Not changed unless dependency work is in scope |
| Static output | Produced by pnpm build |
| Discovery files | robots.txt, sitemap.xml, and llms.txt included in output |
Product Deployment Status
This page is only the AgentHub Home static-site deployment guide. It is not a public production deployment manual for Hub Server, Edge Server, Web workbench, Remote/Cloud Edge, or Feishu/Lark Gateway.
| Component | Public deployment status | Public rule |
|---|---|---|
| AgentHub Home | Static export can be deployed publicly | Build from the registered release source, then smoke-test public routes |
| AgentHub Docs | Static export can be deployed publicly | Keep bilingual routes, metadata, search, sitemap, and llms.txt aligned |
| AgentHub Desktop | Local preview / packaging in progress | Public docs can describe local preview and UI evidence, not a production rollout |
| Local Edge | Local preview | Public docs can describe local health checks and workspace policy, not private host setup |
| Hub Server | In progress | Public docs describe architecture and authorization boundaries; production details stay private |
| Web workbench | In progress | Public docs describe Hub-backed behavior and missing evidence, not general availability |
| Feishu/Lark Gateway | In development | Public docs describe the setup checklist and callback rules; real tenant config stays private |
| Remote/Cloud Edge | In development | Public docs describe safety requirements only until device proof and routing evidence exist |
If a reader wants to run the product locally, point them to Installation and Quickstart. If an operator needs production details, use the private server workspace and do not copy those paths or commands into this repository.
Local Build
Run from the site release source:
pnpm test
pnpm build
pnpm lint
Expected evidence:
- tests pass with the current docs registry and search index;
- the static export completes;
- the generated
out/contains localized home and docs routes; - lint reports no new errors.
Static Export Checks
After the build, check the generated files:
# Build artifact checks; public routes remain extensionless.
# Next static export emits .html files plus companion route data directories.
Test-Path .\out\zh\index.html
Test-Path .\out\en\index.html
Test-Path .\out\zh\docs\index.html
Test-Path .\out\en\docs\index.html
Test-Path .\out\zh\docs\product-status.html
Test-Path .\out\zh\docs\identity-login.html
Test-Path .\out\zh\docs\design-system.html
Test-Path .\out\zh\docs\deployment.html
Test-Path .\out\sitemap.xml
Test-Path .\out\llms.txt
Live Smoke
Use cache-busting query strings after deployment:
| Route | What to confirm |
|---|---|
/zh?v=<version> | Current homepage, no old hero, mock visible, TokenDance Blue |
/en?v=<version> | English homepage, language copy correct |
/zh/docs?v=<version> | Docs body, sidebar, search, and TOC render |
/zh/docs/product-status?v=<version> | Product status table renders as a table |
/zh/docs/design-system?v=<version> | Design rules and tokens render |
/zh/docs/deployment?v=<version> | Deployment boundary warning renders |
/llms.txt?v=<version> | New docs links are present |
/sitemap.xml?v=<version> | New localized routes are present |
Release Evidence Template
Keep public release evidence compact and repeatable:
commit: <git-sha>
tag: <release-tag>
package: <public-safe package name, no private path>
build: test / lint / build result
routes: /zh, /en, /zh/docs, /en/docs, changed deep docs routes
seo: robots.txt / sitemap.xml / llms.txt / manifest content type
visual: desktop + mobile screenshots or reason visual QA was blocked
smoke: cache-busting live URLs and body keywords
private state: updated in server workspace, without copying private paths here
If a field is missing, state the missing proof explicitly. Do not replace missing proof with optimistic release language.
Documentation Completeness Gate
Every public docs change should answer this checklist before deployment:
| Check | Required evidence |
|---|---|
| Bilingual page parity | English and Chinese MDX carry the same status, boundaries, and examples |
| Navigation | Sidebar, previous/next, and TOC include new or changed sections |
| Search | src/lib/search-index.ts includes terms users will actually search for |
| Discovery | llms.txt, sitemap, and public route metadata stay aligned |
| Public/private split | No secret, host inventory, SSH alias, web root, backup path, or rollback command |
| Status language | Preview, in progress, and in development are not described as generally available |
| Changelog | The docs change is recorded with an absolute date |
Cache And Stale Page Triage
If the live site still shows an older hero, old mock, missing docs body, or stale navigation:
- Confirm the local release worktree commit.
- Confirm the package was built from that worktree.
- Confirm the deployed static files contain the expected route.
- Request the route with a cache-busting query string.
- Check whether
/zh,/en,/zh/docs, and deep docs routes disagree. - Only then investigate web-tier cache or deployment copy issues in private ops docs.
Deployment Notes
- Public docs can mention the package filename and commit/tag when they are user-visible release evidence.
- Public docs must not include live filesystem paths, server usernames, SSH aliases, backup paths, or rollback commands.
- If deployment is blocked by credentials or private server access, state that the site build is ready but not deployed.
- Update the operations state in the private server workspace after live smoke passes.