Skip to content

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

Closed

Description

@objectstack-fleet

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/docs one 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:

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

  1. Redirect map. Every published path of the old site goes to its new home:

    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/console and /docs/ui/studio to /docs/build-without-code, and /docs/ui/setup-app to /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 specific apps/views anchor), or check-docs-redirects reds on a chain.

    rfcs/0001-clipboard-paste and guide/console-architecture are design records rather than user docs: move them to ui/docs/ instead of deleting them.

  2. Delete the old site. Remove these:

    • ui/apps/site, and ui/content/docs after its pages are on main in their new homes.
    • The deploy-ui-site job in .github/workflows/docs-deploy.yml, plus its header lines.
    • Any CI step that builds or checks @object-ui/site or the ui/content/docs routes. Today that is the docs-route closure gate in Lint UI, the site build in Build & E2E UI, and ci.yml's ui/content/docs/** filter comment.

    Leave the apps/docs job unchanged.

  3. Re-point the readers. 46 files under ui/scripts/ read ui/content/docs paths: markdown-test-inputs.mjs rows, 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.
  4. Links.

    • Change the homepage field of the 37 package.json files that name objectui.org to the package's page under https://objectstack.ai/docs/frontend/.
    • Change the 38 Markdown files outside ui/content that link objectui.org, the root README among them, to the new URLs.
    • Change ui/apps/console/plugin.ts homepage the same way.
    • Do not touch objectui.org in comments that record history, such as ui/packages/cli/src/commands/check.ts's $schema ruling note, or in test fixtures that exercise host matching.
  5. Spelling. Change "Object UI" to "ObjectUI" in the description fields of ui/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.

  6. 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.

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

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

  1. objectstack-fleet commented on Oct 28, 2026

    @objectstack-fleet
    ContributorAuthor

    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-report
    Account: os-tesla
    Branch: 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:devx
    Seat: 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 (or next.config.mjs), the homepage and description lines of ui/packages/*/package.json (plus packages/*/package.json where a homepage names objectui.org), the Markdown lines that link objectui.org, ui/apps/console/plugin.ts homepage, pnpm-lock.yaml / pnpm-workspace.yaml for the removed workspace app, and the rosters and self-tests that pin docs-deploy's jobs or the site's build; ⛔ no edits to content/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/objectstack on this surface prints no path-derived mandate), effort: high
    Clause-②: no
    Metadata-protocol: none
    Responsibility: n/a — not a defect card
    Thread-read: none
    Premise: holds (re-read on main 39ea1d67: 183 pages still under ui/content/docs, deploy-ui-site still in docs-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 main after #27168 lands, re-reads that table, and does not mark the PR ready before #27168 is on main. Redirect targets must avoid the pages #27179 retired (/docs/ui/{console,studio,setup-app}, now 308s), or check-docs-redirects reds 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

  2. objectstack-fleet commented on Oct 28, 2026

    @objectstack-fleet
    ContributorAuthor

    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"
    ]
    }

  3. objectstack-fleet commented on Oct 28, 2026

    @objectstack-fleet
    ContributorAuthor

    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 old ui/content/docs pages (75 markers in 17 pages), and (b) the single "variant": "destructive" → "variant": "danger" value in frontend/layout.mdx, the spelling action:button declares.

    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 other content/docs/** page-body edit stands.

    Not decided here: the frozen 14-member LAST_PUBLISHED_TYPES list in filter-builder-mirror-6939, which replaces the deleted doc as the FilterField.type authority from decision batch #88. That needs the maintainer's confirmation, and I have put it to him.


    Generated by Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions