Repository navigation
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
Description
Filing gate ③ (maintainer-directed). In the cleanup project thread on 2026-10-28, Tesla was shown the decision card "objectui 文档站 www.objectui.org 以后怎么处理?" and answered 「A」 (option A, 「立卡:从 ui/apps/site 部署」), then 「你负责处理」 and 「使用 pm-dispatch 技能」. This card carries #25753's item 2, "the docs site serves from the merged repo", which is the last open done-when item on #25753. Part of #25753.
维护者速读
objectui 的文档站 www.objectui.org 原来由 objectui 仓自己的 docs-deploy.yml 每 6 小时构建并推到 Vercel 项目 prj_v1rXIczaI7YGmXmseQCLFUFOFxTB。这个 workflow 已随 #26058 删除。根仓的 docs-deploy.yml 只部署 apps/docs,ui/apps/site/vercel.json 又关了 Git 自动部署,所以从 2026-10-26 起没有任何流程部署这个站,18.2 之后的文档改动都不会上线。本卡在根仓 docs-deploy.yml 里加第二个作业,按同一套 vercel pull / build / deploy --prebuilt 方式部署 ui/apps/site。它改的是 .github/workflows/**,属 Tier H,需要你批准合并。另外有一个只能你做的动作:Vercel 项目的 Root Directory 要从 apps/site 改成 ui/apps/site(见下文 Maintainer-action)。
What is wrong
- objectui's
ui/.github/workflows/docs-deploy.ymldeployed the site on a cron (43 5,11,17,23 * * *) withVERCEL_ORG_ID: team_06nvlGKZCkwhzdXmRdxeCNnBandVERCEL_PROJECT_ID: prj_v1rXIczaI7YGmXmseQCLFUFOFxTB. That workflow was deleted by ci(ui-merge): delete objectui's nested workflows and Dependabot config; retire the action-ref scan and the CI page pin test with them #26058 (its roster row 10: "→ sub-issue 4 · (none; objectui's site is a separate Vercel project)"). You can read it at ci(ui-merge): delete objectui's nested workflows and Dependabot config; retire the action-ref scan and the CI page pin test with them #26058's parent,be7897799b. - The root
.github/workflows/docs-deploy.ymldeploys one project only:apps/docs,prj_KbPkuEVCj8viErlaC0wBUgMIYZWe. ui/apps/site/vercel.jsonsetsgit.deploymentEnabled: false, so Vercel builds nothing on a push either.
Who pays. People who read the @object-ui docs at www.objectui.org: integrators of the published @object-ui/* packages, which shipped at 18.2.0. The site stays frozen at its last deploy from the archived repo, so it never shows any release after the merge. objectui's own record shows the same failure before: a skipped deploy froze the site for five weeks (objectui#12178, quoted in the old workflow's header). Not measured from a seat: the proxy refuses the site's host, so the live page's age was not read.
Wanted
- A second job in the root
docs-deploy.yml,Deploy objectui docs to Vercel (production), that keeps the root job's shape:- the same refusal step when
VERCEL_TOKENis absent or the ref is notmain; vercel pull→vercel build --prod→vercel deploy --prebuilt --prod, run from the repository root;- the same pinned
VERCEL_CLI_VERSION; - the token passed only to the steps that call the Vercel API;
- the root job's post-build output checks, here against
ui/apps/site/.next.
Its env takes the old objectui project id above, and the same team id the root job already uses.
- the same refusal step when
- The old workflow's
objectstack-pin.mjs buildsteps are not ported: the merged tree builds@objectstack/*from the workspace. Checkui/apps/site/vercel.json'sinstallCommand/buildCommand(cd ../.. && pnpm turbo run build --filter=@object-ui/site) against the merged layout, and fix that file if needed. No PR job builds@object-ui/sitetoday. objectui'sci.yml"Build Docs" job is row 7 of ci(ui-merge): nine objectui correctness gates the #25697 roster kept have run nowhere since the nested workflows were deleted; port the four that guard published @object-ui packages (parent #25677) #26717, which left it to be decided with this deploy. Add that build to a ui lane under theuifilter so a PR predicts the deploy, or write on the card why not. - The root workflow's header text and any roster or self-test that pins the docs-deploy job list (
check-aggregator-roster,check-expected-skips,check-step-collectors, workflow self-tests underscripts/__tests__/) are updated to match; each--self-testexits 0.
Maintainer-action: in the Vercel dashboard for project prj_v1rXIczaI7YGmXmseQCLFUFOFxTB, set Root Directory to ui/apps/site (it reads apps/site today, per the old workflow's header). Also confirm that the repository's VERCEL_TOKEN can deploy to that project — the root job's token belongs to the same team. This is done when the first workflow_dispatch run of the new job deploys and prints the deployment URL.
Who acts
A domain:devx card thread (Tier H, .github/workflows/**): the PR stays draft until it is green, then GOVERNED_APPROVERS review it, the maintainer merges, and the seat never enqueues it. Proof is one workflow_dispatch run on main after the merge. If the maintainer action is not done yet, that run is expected to fail at vercel build on the old Root Directory. Record that on the card, and do not treat it as a code defect.
Acceptance
- One green
workflow_dispatchrun of the new job onmain, with the deployment URL on the card. - A page changed after 2026-10-26 (any
ui/content/docs/**edit onmain) renders on www.objectui.org, read by the maintainer or by a seat whose network allows the host. - The root
apps/docsjob is unchanged, and its next scheduled run stays green.
Duplicate search. objectstack-ai/objectstack, "objectui docs site deploy vercel ui/apps/site objectui.org": #25753 (open, item 2 is this card's source), #26058 (merged, deleted the workflow), #26944 (open, F14 CI docs page, different file). No card deploys the site. New.
Size: S–M. Clause-②: no. Metadata-protocol: none.
Activity
objectstack-fleet commentedon Oct 28, 2026
Claim: cleanup project thread, dispatch of #26993 (maintainer-directed: 「A」, 「你负责处理」, 「使用 pm-dispatch 技能」, 2026-10-28 00:23Z, cleanup project thread)
Session:
session_01L9qibvE77Ed7MKdzPxJTQQ(dispatching seat) · dev card threadsession_01L9qibyAYPFxpNP4BCr7Z82Account:
os-teslaBranch:
claude/project-thread-e7al7l(mode:thread; the card thread's platform-assigned branch, the only one it pushes)Worktree: the card thread's own checkout
Domain:
domain:devxSeat:
domain:devx(dispatched from the cleanup thread on the maintainer's instruction, not from a lane seat)File surface:
.github/workflows/docs-deploy.yml,ui/apps/site/vercel.json, theci.ymlui-lane region if a PR build of@object-ui/siteis added, and the workflow rosters and self-tests that pin those job lists (scripts/check-*.mjs,scripts/__tests__/); ⛔ noAGENTS.md, nodocs/adr/**, nopackages/**(stop on breach; explain in the report)Container & model: S–M,
mode:thread,model: opus(default;dispatch-gates --tier --repo objectstack-ai/objectstack .github/workflows/docs-deploy.yml ui/apps/site/vercel.json .github/workflows/ci.ymlprints no path-derived mandate),effort: highClause-②: no
Metadata-protocol: none
Responsibility:
.github/workflows/**lost the site deploy when #26058 deletedui/.github/workflows/docs-deploy.ymlwithout a root counterpart | no platform path covers it: rootdocs-deploy.ymldeploysapps/docsonly, andui/apps/site/vercel.jsonturns Git deploys off | readers of www.objectui.org, the @object-ui docs for the 18.2.0 packages, todayThread-read: none
Premise: holds (re-read 2026-10-28 00:3xZ on main
fd246c22c:git grep -n 'apps/site\|object-ui/site' .github/finds no deploy and no PR build of the site)Serial constraints cleared: open PRs on 2026-10-28 00:3xZ — no open PR touches
.github/workflows/docs-deploy.yml; #26556 (Dependabot dev-dependency group) touchesui/apps/site/package.jsononly, which is outside this card's surface. Tier H by path (.github/workflows/**): the PR stays draft until it is green, GOVERNED_APPROVERS review it, and the maintainer merges; the seat never enqueues it.Generated by Claude Code
objectstack-fleet commentedon Oct 28, 2026
os-dev-report
{ "issue": 26993, "status": "done", "branch": "claude/project-thread-e7al7l", "pr": "https://github.com/objectstack-ai/objectstack/pull/27005", "session": "session_01L9qibyAYPFxpNP4BCr7Z82", "premise_still_valid": true, "summary": "Added job deploy-ui-site ('Deploy objectui docs to Vercel (production)') to the root .github/workflows/docs-deploy.yml: ref and token refusals, setup-workspace, vercel pull / build --prod / deploy --prebuilt --prod from the repo root, CLI 60.1.3, project prj_v1rXIczaI7YGmXmseQCLFUFOFxTB, build step without VERCEL_TOKEN, BUILD_ID and .vercel/output assertions, summary URL. A step after pull refuses red unless the project's Root Directory reads ui/apps/site, naming the dashboard setting. The apps/docs job and ui/apps/site/vercel.json are unchanged (the vercel.json commands build the site in the merged layout, measured). No PR build lane for @object-ui/site was added; why is in the PR's Acceptance notes. PR is a draft, head 2defad3c.", "tests": "Cold local build of the production command from ui/ (cwd ui/apps/site then cd ../..): pnpm turbo run build --filter=@object-ui/site --concurrency=2 under os-verify-lock: Tasks 65 successful, 65 total; Cached 0; WALL 596s EXIT 0; ui/apps/site/.next/BUILD_ID written. YAML parse: jobs deploy, deploy-ui-site (10 steps). No ablation: workflow-only change.", "gates": "dispatch-gates --commands: 36 commands. 35 fast ones run locally on 137ca903 and again on final head 2defad3c, each recorded 'CMD :: exit 0' (list in the PR body). GITHUB_ACTIONS=true GITHUB_EVENT_NAME=push pnpm check:pm-dispatch-gates on 2defad3c: 2224 cases pass (fast 1935, slow 289), EXIT 0, 1191 s. PR check-runs: in_progress at report time. NOT MEASURED: vercel pull/deploy and the rootDirectory read (need VERCEL_TOKEN); the first workflow_dispatch run on main after merge is the card's proof.", "dogfood_battery": "n/a — no ! in the PR title and no (narrowing) arm", "mcp_calls": "6 — reads only: issue_read x3, pull_request_read x1, plus subscribe_pr_activity x1 (harness subscription, not a GitHub write); no MCP write tool", "api_writes": "2 — relay pr_create (PR 27005, assignees os-tesla, label skip-changeset; relay requested os-zhuang and hotlong) and this os-dev-report comment via post-stamped; git push is not a REST write", "open_questions": [], "out_of_scope_findings": [ "carrier: #26944 · ui/content/docs/guide/ci-cd-pipeline.md still describes objectui's deleted docs-deploy.yml · noted, not filed", "carrier: #26717 row 7 / maintainer · a per-PR build of @object-ui/site was not added (cost reasons in the PR) · noted, not filed" ] }Generated by Claude Code
objectstack-fleet commentedon Oct 28, 2026
#27005 merged at 01:56Z (4eb1140): the root Docs Deploy workflow now carries the job
Deploy objectui docs to Vercel (production).This card's maintainer action is bigger than the Root Directory alone. On 2026-10-28 02:14Z, in the card thread, Tesla wrote: 「立一张维护者操作卡,实际没这么简单,因为 vercel 中挂的项目也要改。」 The Vercel-side changes are now tracked on #27030 (
pm:awaiting-maintainer): Root Directory, the connected Git repository (still the archived objectui repo), build overrides, Node version, env vars, domains and token reach. This card's proof is still the same: a Docs Deploy run onmainwithdeploy-ui-sitegreen and its deployment URL posted here. Until #27030 is done, a run is expected to go red at the Root Directory step, and that is the pending maintainer action, not a code defect.Session:
session_01L9qibyAYPFxpNP4BCr7Z82(card thread)Generated by Claude Code
objectstack-fleet commentedon Oct 28, 2026
First Docs Deploy run on
mainsince #27005: run 40646180301, the 06:43Z schedule slot (started 06:49Z, head6817bf1e).Build the docs site and deploy it to Vercel production(apps/docs): green, deployed as before.Deploy objectui docs to Vercel (production): red atRequire the project's Root Directory to be ui/apps/site, with nothing built or deployed:That is the pending maintainer action on #27030, not a code defect. One #27030 item is now measured:
Pull the production project settingspassed, so the organization'sVERCEL_TOKENcan read theobjectuiproject.Direction change, pending: in the card thread, Tesla chose to fold www.objectui.org into the objectstack docs site instead of keeping a separate site. Which objectui pages survive is being evaluated with Tesla now, and no migration card is filed yet. If that lands, the
deploy-ui-sitejob and theobjectuiVercel project are retired, #27030 shrinks to a domain move, and this card closes on the redirect rather than on a green run here. Until then, every 6-hourly Docs Deploy run will show this same red job.Session:
session_01L9qibyAYPFxpNP4BCr7Z82(card thread)Generated by Claude Code
objectstack-fleet commentedon Oct 28, 2026
Rescoped. This card's goal was for www.objectui.org to serve from the merged repo. It now reaches that goal by redirect instead of a separate deploy.
On 2026-10-28, in this card's thread, Tesla made three calls:
The fold is four cards:
content/docs/sdk/.sdui.manifest.json.ui/apps/siteandui/content/docs, drops thedeploy-ui-sitejob from ci(docs-deploy): deploy the Object UI docs site (www.objectui.org) from ui/apps/site #27005, and adds host-based 301s from objectui.org to objectstack.ai/docs.#27030 is rescoped to the maintainer's domain move plus deleting the
objectuiVercel project.This card closes when
https://www.objectui.org/docs/guide/quick-startanswers 301 to its objectstack.ai/docs/sdk page. That happens after #27145 merges and the #27030 domain move. The new close condition replaces the greendeploy-ui-siterun in the Acceptance above. Until #27145 lands, every 6-hourly Docs Deploy run keeps showing that job red at the Root Directory step, which is expected.Session:
session_01L9qibyAYPFxpNP4BCr7Z82(card thread)Generated by Claude Code