Repository navigation
docs(ui-merge): fold objectui.org into objectstack docs, K4 — retire ui/apps/site and ui/content/docs, 301 every objectui.org path to objectstack.ai/docs, drop the deploy-ui-site job #27145
Description
Filing gate ③ (maintainer-directed). In the "Restore objectui.org docs deploy" project thread (card thread of #26993), on 2026-10-28:
- 03:24Z, on the decision card "objectui.org 文档站以后怎么处理?", Tesla chose 「B 并入 objectstack 文档站」. www.objectui.org stops being a separate site, and its docs fold into the objectstack docs site (
content/docs, served at objectstack.ai/docs). - 03:24Z, Tesla asked 「objectui 文档全部需要保留吗?这需要评估并和我沟通」. The card thread then sorted the 183 pages under
ui/content/docsone by one into keep, merge, generate and delete, and put four questions to Tesla. - 07:58Z, on that evaluation, Tesla answered 「VS Code 扩展 不会发布,其他同意」 and then 「你负责派卡执行」.
The fold is split into four cards. The first three can run in parallel; the fourth is blocked by them:
- K1 (docs(ui-merge): fold objectui.org into objectstack docs, K1 — move the Object UI SDK guide (38 pages) and the 57 renderer-type pages into a new content/docs/sdk/ section #27140) moves the SDK pages. On the maintainer's 2026-10-28 11:02Z ruling 「新入口 + 方案 B」, they live in a new entry,
content/docs/frontend/("Custom front-end"), trimmed after a per-page duplication review. docs(sdk): fold objectui.org into objectstack docs, K1 — move the Object UI SDK guide and 57 renderer-type pages into content/docs/sdk #27168's body has the final 95-row table. - K2 (docs(ui-merge): fold objectui.org into objectstack docs, K2 — merge the 46 field, Console-behaviour and schema pages into the existing objectstack pages #27141) merges pages into existing ones.
- K3 (docs(ui-merge): fold objectui.org into objectstack docs, K3 — generate the component reference for all 106 authorable components from sdui.manifest.json, with a drift check #27142) generates the component reference.
- K4 retires the old site and adds the redirects.
This is card K4.
Blocked-by: #27140, #27141, #27142
维护者速读
K1–K3 把内容搬完后,本卡收尾,做四件事:
- 删掉旧站点:
ui/apps/site和ui/content/docs。 - 加跳转:objectui.org 的每个旧路径都 301 到 objectstack.ai/docs 的新位置,旧链接不断。
- 删掉根
docs-deploy.yml里的deploy-ui-site作业,也就是 ci(docs-deploy): deploy the Object UI docs site (www.objectui.org) from ui/apps/site #27005 加的那个。从现在到它删掉之前,它每 6 小时都会红在 Root Directory 那一步。 - 把 37 个包的
homepage和 README 里指向 objectui.org 的链接改到新地址。
本卡改了 .github/workflows/**,属 Tier H;删除的行数也远超 3000 行人工合并门槛,所以需要你批准合并。
合并之后有一个只能你做的动作,记在 #27030:把 objectui.org 和 www.objectui.org 两个域名挪到 objectstack 的 Vercel 项目上,跳转才会生效;之后再删掉 Vercel 项目 objectui。
Wanted
-
Redirect map. Every published path of the old site goes to its new home:
- Sources: the old → new tables in the PR bodies of docs(ui-merge): fold objectui.org into objectstack docs, K1 — move the Object UI SDK guide (38 pages) and the 57 renderer-type pages into a new content/docs/sdk/ section #27140, docs(ui-merge): fold objectui.org into objectstack docs, K2 — merge the 46 field, Console-behaviour and schema pages into the existing objectstack pages #27141 and docs(ui-merge): fold objectui.org into objectstack docs, K3 — generate the component reference for all 106 authorable components from sdui.manifest.json, with a drift check #27142.
- Pages that are deleted outright redirect to the nearest section index.
- Host-based rules: requests whose host is
objectui.orgorwww.objectui.orgredirect/docs/<old path>tohttps://objectstack.ai/docs/<new path>, with 301s, and every other path on that host goes to/docs/frontend. - Put them in
apps/docs/redirects.mjs, or beside it withhas: [{ type: 'host', … }], socheck-docs-redirectskeeps holding one table. - The rules are inert until the domains move (maintainer-action(ui-merge): after #27145, move objectui.org and www.objectui.org onto the objectstack Vercel project and delete the Vercel project
objectui(rescoped: objectui.org folds into objectstack docs) #27030), so they can land first. - The pages deleted outright are:
blocks/*(6 pages);guide/{architecture,console-architecture,objectos-integration,deployment,release-notes,schema-playground,schema-catalog}andguide/index;utilities/{runner,vscode-extension,index}andapi/index;plugins/{plugin-calendar-view,plugin-ai,plugin-designer};components/{feedback/toaster,layout/semantic}.
Chain trap: docs(ui): generate the component reference for all 106 components from sdui.manifest.json; retire the Setup, Console and Studio pages into the metadata pages and rename the section User Interface #27179 retires
content/docs/ui/{setup-app,console,studio}. It redirects/docs/ui/consoleand/docs/ui/studioto/docs/build-without-code, and/docs/ui/setup-appto/docs/ui/apps. Any row in docs(ui-merge): merge the 46 objectui field, Console-behaviour and schema pages into the objectstack docs (K2) #27170's table that targets one of those three pages must aim at the final page (or the specificapps/viewsanchor), orcheck-docs-redirectsreds on a chain.rfcs/0001-clipboard-pasteandguide/console-architectureare design records rather than user docs: move them toui/docs/instead of deleting them. -
Delete the old site. Remove these:
ui/apps/site, andui/content/docsafter its pages are onmainin their new homes.- The
deploy-ui-sitejob in.github/workflows/docs-deploy.yml, plus its header lines. - Any CI step that builds or checks
@object-ui/siteor theui/content/docsroutes. Today that is the docs-route closure gate inLint UI, the site build inBuild & E2E UI, andci.yml'sui/content/docs/**filter comment.
Leave the
apps/docsjob unchanged. -
Re-point the readers. 46 files under
ui/scripts/readui/content/docspaths:markdown-test-inputs.mjsrows, doc-example type checks, JSON-fence checks and doc tests.- A reader that guards the SDK pages' examples, such as the example type-check or the JSON-fence check, follows them to
content/docs/frontend/. - A reader that only pinned the old site is deleted with it.
- A reader must not be left pointing at a missing file.
pnpm --dir ui exec vitest run scripts/passes.
- A reader that guards the SDK pages' examples, such as the example type-check or the JSON-fence check, follows them to
-
Links.
- Change the
homepagefield of the 37package.jsonfiles that name objectui.org to the package's page underhttps://objectstack.ai/docs/frontend/. - Change the 38 Markdown files outside
ui/contentthat link objectui.org, the root README among them, to the new URLs. - Change
ui/apps/console/plugin.tshomepagethe same way. - Do not touch
objectui.orgin comments that record history, such asui/packages/cli/src/commands/check.ts's$schemaruling note, or in test fixtures that exercise host matching.
- Change the
-
Spelling. Change "Object UI" to "ObjectUI" in the
descriptionfields ofui/packages/*/package.json. There are 44 occurrences on 2026-10-28 (grep -o "Object UI" ui/packages/*/package.json), and this item edits the same files as item 4. Tesla agreed to it at 11:40Z in docs(ui-merge): fold objectui.org into objectstack docs, K1 — move the Object UI SDK guide (38 pages) and the 57 renderer-type pages into a new content/docs/sdk/ section #27140's card thread (「同意」), after K1 docs(sdk): fold objectui.org into objectstack docs, K1 — move the Object UI SDK guide and 57 renderer-type pages into content/docs/sdk #27168 adopted the "ObjectUI" spelling at Tesla's question. -
Supersede ci(ui-merge): nothing deploys www.objectui.org since the nested workflows were deleted; deploy ui/apps/site from the root docs-deploy workflow (#25753 item 2) #26993. Its goal was that www.objectui.org serves from the merged repo; it now does so by redirect. The PR body says
Part of #26993, and the seat closes ci(ui-merge): nothing deploys www.objectui.org since the nested workflows were deleted; deploy ui/apps/site from the root docs-deploy workflow (#25753 item 2) #26993 once the redirects answer on the live domain.
Who acts
A domain:devx card thread, after #27140, #27141 and #27142 have merged.
- The surface is
ui/apps/site/**,ui/content/docs/**,ui/docs/**,ui/scripts/**,.github/workflows/{docs-deploy,ci,lint}.yml,apps/docs/redirects.mjs(ornext.config.mjs), thepackage.jsonhomepagelines and the Markdown link lines. - The PR is Tier H by path: it stays draft until green, GOVERNED_APPROVERS review it, the maintainer merges, and the seat never enqueues it.
- After the merge comes the maintainer action on maintainer-action(ui-merge): after #27145, move objectui.org and www.objectui.org onto the objectstack Vercel project and delete the Vercel project
objectui(rescoped: objectui.org folds into objectstack docs) #27030, rescoped there: move both domains onto theobjectstackVercel project, check one old URL, then delete theobjectuiproject.
Business reason. Every link to www.objectui.org (npm package pages, READMEs, search results, old issues) keeps working after the separate site goes away. The fleet stops carrying a second docs app, its CI lanes and a deploy job that is red every 6 hours.
Acceptance
git grep -n "objectui.org" -- ':!**/CHANGELOG.md'lists only history comments and host-matching fixtures, each named in the PR body.git grep -n "ui/apps/site\|ui/content/docs"lists nothing outside CHANGELOG history.- The redirect map has a row for every path in docs(ui-merge): fold objectui.org into objectstack docs, K1 — move the Object UI SDK guide (38 pages) and the 57 renderer-type pages into a new content/docs/sdk/ section #27140's, docs(ui-merge): fold objectui.org into objectstack docs, K2 — merge the 46 field, Console-behaviour and schema pages into the existing objectstack pages #27141's and docs(ui-merge): fold objectui.org into objectstack docs, K3 — generate the component reference for all 106 authorable components from sdui.manifest.json, with a drift check #27142's tables plus each deleted page, and
check-docs-redirectsis green. pnpm --dir ui exec vitest run scripts/is green, theapps/docsbuild is green, and a Docs Deploy run after the merge has only theapps/docsjob.- After the maintainer-action(ui-merge): after #27145, move objectui.org and www.objectui.org onto the objectstack Vercel project and delete the Vercel project
objectui(rescoped: objectui.org folds into objectstack docs) #27030 domain move,curl -sI https://www.objectui.org/docs/guide/quick-startanswers 301 to the new SDK page. The maintainer or a seat whose network allows the host records this on ci(ui-merge): nothing deploys www.objectui.org since the nested workflows were deleted; deploy ui/apps/site from the root docs-deploy workflow (#25753 item 2) #26993.
Duplicate search. The same query as the fold's other cards: 33 hits, the first 10 read (#26993, #27030, #27048, #26140, #26688, #24230, #25677, #26944, #25854, #26035). #26993 and #27030 are this card's predecessors and are rescoped by it, not duplicated. New.
Size: L (mostly deletion). Clause-②: no. Metadata-protocol: none.
Activity
objectstack-fleet commentedon Oct 28, 2026
domain:devx#1 · os-tesla · session_01L9qibyAYPFxpNP4BCr7Z82
Claim: card thread "Fold objectui.org into objectstack docs", dispatch of #27145 (maintainer-directed: 「B 并入 objectstack 文档站」 03:24Z, 「VS Code 扩展 不会发布,其他同意」 and 「你负责派卡执行」 07:58Z, 「同意」 to item 5 at 11:40Z, 2026-10-28)
Session:
session_01L9qibyAYPFxpNP4BCr7Z82(dispatching thread) · dev: a new card thread the project coordinator opens for this card; it names its own session in its os-dev-reportAccount:
os-teslaBranch: the dev card thread's platform-assigned
claude/project-thread-*branch (mode:thread; the only branch it pushes)Worktree: the dev card thread's own checkout
Domain:
domain:devxSeat:
domain:devx#1(seat 1 by default; dispatched on the maintainer's instruction from a card thread, not from a lane seat)File surface:
ui/apps/site/**,ui/content/docs/**,ui/docs/**(the two design records move there),ui/scripts/**,.github/workflows/{docs-deploy,ci,lint}.yml,apps/docs/redirects.mjs(ornext.config.mjs), thehomepageanddescriptionlines ofui/packages/*/package.json(pluspackages/*/package.jsonwhere a homepage names objectui.org), the Markdown lines that link objectui.org,ui/apps/console/plugin.tshomepage,pnpm-lock.yaml/pnpm-workspace.yamlfor the removed workspace app, and the rosters and self-tests that pin docs-deploy's jobs or the site's build; ⛔ no edits tocontent/docs/**page bodies beyond link fixes (stop on breach; explain in the report)Container & model: L (mostly deletion),
mode:thread,model: opus(default;dispatch-gates --tier --repo objectstack-ai/objectstackon this surface prints no path-derived mandate),effort: highClause-②: no
Metadata-protocol: none
Responsibility: n/a — not a defect card
Thread-read: none
Premise: holds (re-read on main
39ea1d67: 183 pages still underui/content/docs,deploy-ui-sitestill indocs-deploy.yml; #27141 (#27170) and #27142 (#27179) merged; #27140's PR #27168 is green, ready, and awaits the maintainer's merge)Serial constraints cleared: dispatched before #27168 merges, so the bulk deletion can start now. The dev takes the 95-row table from #27168's body as it stands; it merges
mainafter #27168 lands, re-reads that table, and does not mark the PR ready before #27168 is onmain. Redirect targets must avoid the pages #27179 retired (/docs/ui/{console,studio,setup-app}, now 308s), orcheck-docs-redirectsreds on a chain. Tier H by path (.github/workflows/**): draft until green, the triage seat renders the contract review, GOVERNED_APPROVERS review, the maintainer merges, and the seat never enqueues it. The change also exceeds the 3000-line human-merge threshold.Generated by Claude Code
objectstack-fleet commentedon Oct 28, 2026
domain:devx#1 · os-tesla · session_01L9qibyMpJZ67jrDrno4jY1
os-dev-report
{
"issue": 27145,
"status": "done",
"branch": "claude/project-thread-eq5jj6",
"pr": "#27329",
"session": "session_01L9qibyMpJZ67jrDrno4jY1",
"premise_still_valid": true,
"summary": "Retired objectui.org: deleted ui/apps/site (43 files), ui/content/docs (201 files) and the deploy-ui-site job; moved rfcs/0001-clipboard-paste and guide/console-architecture into ui/docs/. apps/docs/redirects.mjs gains 184 host-scoped permanent rows (183 pages from the final K1/K2/K3 tables + one catch-all to /docs/frontend), none targeting /docs/ui/{console,studio,setup-app}; check-docs-redirects judges them. 37 homepage fields, the console plugin homepage and README/skill links point at objectstack.ai/docs; 33 descriptions say ObjectUI. ui doc gates and 90+ package tests re-pointed to content/docs/frontend; 8 tests whose only subject page is gone deleted, 11 lost only their page leg (listed in the PR body). Diff 435 files, +1494/-49656.",
"tests": "pnpm --dir ui exec vitest run scripts/: 171 files, 4915 passed, 2 skipped. All package/app/example tests that read docs pages pass. Type-checks clean on the changed packages. pnpm lint exit 0.",
"gates": "dispatch-gates --commands derived 150 at the 38bbc2f merge; all 150 ran: 143 exit 0 first pass, the rest fixed in branch and re-run green (token ratchet, carriage floor, teardown self-test needed the pinned sha). check:dts-closure and check:dual-build-cjs-loads NOT MEASURED locally (need a full build; no build inputs changed). Re-merged main at 7674028 clean; ledger audit and the incoming tests pass. CI pending at report time.",
"dogfood_battery": "n/a — no ! in the PR title and no (narrowing) arm",
"mcp_calls": "4 — issue_read, pull_request_read (reads), subscribe_pr_activity; no MCP write tools",
"api_writes": "3 — fleet-write relay: pr_create (#27329, draft, assignee os-tesla), pr_request_reviewers (os-tesla, os-zhuang); post-stamped: this report comment",
"open_questions": [
"Claim breach, declared in the PR body: 75 doc-snippet fragment markers restored in 17 content/docs/frontend pages (K1 dropped them; check:doc-snippets reads those pages now) and one "destructive" -> "danger" variant in frontend/layout.mdx. Needs a claim amendment from the seat.",
"filter-builder-mirror-6939: the published doc that decision batch #88 made the FilterField.type authority is gone; the test now holds the mirror to a frozen 14-member LAST_PUBLISHED_TYPES list. Maintainer to confirm."
],
"out_of_scope_findings": [
"carrier: noted, not filed · the census non-firing control (layout page.tsx:462) is red on origin/main too"
]
}
objectstack-fleet commentedon Oct 28, 2026
domain:devx#1 · os-tesla · session_01L9qibyAYPFxpNP4BCr7Z82
Claim amendment (amends comment 6471445866), accepting the two bounded fixes PR #27329 declares under "Bounded fixes outside the claim" at head
76740286:File surface, added: under
content/docs/frontend/**, (a) the{/* doc-snippet: fragment — … */}markers above code fences, restored verbatim from the oldui/content/docspages (75 markers in 17 pages), and (b) the single"variant": "destructive"→"variant": "danger"value infrontend/layout.mdx, the spellingaction:buttondeclares.Why accepted: both are mechanical. They change no prose, and without them the gates this PR moves onto
content/docs/frontend(check:doc-snippets, the doc-types gate) would red. The ⛔ on every othercontent/docs/**page-body edit stands.Not decided here: the frozen 14-member
LAST_PUBLISHED_TYPESlist infilter-builder-mirror-6939, which replaces the deleted doc as theFilterField.typeauthority from decision batch #88. That needs the maintainer's confirmation, and I have put it to him.Generated by Claude Code