Repository navigation
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
Description
Filing gate ④ (承父单: a follow-up owed by landed work, the #25697 workflow roster, under epic #25677) + ①-adjacent: a gate population with a named landing point that has run nowhere since ui/.github/workflows/** was deleted (#26058, 2026-10-26). Part of #25677. ⛔ Not a claim. Touches .github/workflows/ci.yml = Tier H: GOVERNED_APPROVERS review, the PR stops at draft.
维护者速读
objectui 并入前,有 9 个"正确性"检查在 objectui 自己的 CI 里跑。合并时的清单(#25697 评论 6388182608)把它们标为"保留、稍后移植",#26058 删掉 objectui 的 workflow 时也写了"移植时从本 PR 父提交读取"。但之后没有卡接手,根 CI 至今没跑其中任何一个(覆盖率已移到 ui-coverage-nightly.yml,不在此列)。最要紧的是 check-published-dist-tooling:objectui 每次发 @object-ui/* 之前都跑它(ui/package.json 的 changeset:publish),防止把测试文件或 vitest 导入打进 npm 包;根仓的发布脚本 scripts/release-publish.sh 不跑它,所以 18.2 发布时没有经过这道检查。建议:移植四个保护已发布包的检查,其余五个按下表退役或改为报告。
谁付代价(业务筛)
Anyone who installs @object-ui/* from npm. These gates exist because the defects reached consumers before:
- objectui#4836 measured
dist/__benchmarks__/core.bench.jsin a published package, a module whose first statement importsvitest, which no consumer installs (check-published-dist-tooling.mjsheader). - objectui#4538:
packages/react/dist/index.jsre-exported through extensionless relative specifiers that Node's resolver cannot load (check-node-esm-load.mjsheader). Only the specifier leg runs today (type-check-ui,pnpm --dir ui run check:esm-specifiers); the load leg, which evaluates each built entry, runs nowhere. performance-budget.ymlenforced the Console's eager-closure budget (check:eager-closure); a Console first-load regression now lands unmeasured.
Cost of not doing it: the next @object-ui/* publish ships whatever these gates would have refused, and a consumer finds it.
Measured (origin/main 4373103, 2026-10-27)
git grep over .github/workflows/ finds none of these aliases or scripts. Roster rows are #25697 comment 6388182608; the deleted workflow files are readable at #26058's parent.
| Row | objectui workflow / job | What it guarded | Proposed |
|---|---|---|---|
| 23 | published-dist-gate.yml (check:published-dist) |
tooling files in published dist/ |
port, and run it before publish in scripts/release-publish.sh too (it was in objectui's changeset:publish) |
| 21 | node-esm-load-gate.yml (check:node-esm-load, full leg) |
every published ESM entry loads in Node | port (push/schedule as before, it costs a build) |
| 7 | ci.yml "Test (dist pins)" (test:dist on @object-ui/components) |
assertions on built dist | port into Build & E2E UI, which already builds |
| 22 | performance-budget.yml (check:eager-closure) |
Console eager-closure budget | port, folded into Build & E2E UI (the roster's note: avoid a second Console build) |
| 19 | lockfile-integrity.yml |
a lockfile change may not silently duplicate a dependency | port or retire: the seat measures overlap with root validate-deps.yml first |
| 18 | lockfile-dedupe.yml |
report-only wrapper around pnpm dedupe --check |
retire, or one continue-on-error step, per #25920's measurement (145 runs / 90 days, 0 failures) |
| 7 | ci.yml "Build Docs" (@object-ui/site) |
the objectui docs site builds | decide with F14 / docs-deploy (sub-issue 4 row 10) |
| 17 | live-e2e.yml (informational) |
live backend E2E | retire unless a seat owns reading it |
| 26 | shadcn-check.yml (schedule report) |
upstream shadcn updates | retire (a maintenance report, never a gate) |
Who acts
A domain:devx card thread, editing ci.yml (build-e2e-ui region plus one push/schedule job) and scripts/release-publish.sh. The rows marked "retire" need no code beyond deleting their ui/package.json aliases and scripts if nothing else reads them (check ui/scripts/__tests__ first). Any new required context is the maintainer's, not this card's.
Acceptance
- Each ported gate runs in the root CI with its
<check> — <step>name, and one run id per gate is on the card. - A counter-probe per ported gate: a deliberate defect (a
*.test.d.tscopied into a builtdist/, an extensionless relative re-export) turns its step red, then is reverted. scripts/release-publish.shrefuses to publish whencheck-published-dist-toolingexits non-zero.- The retired rows are listed on the card with what replaced them, or "nothing, by choice".
Duplicate search. objectstack-ai/objectstack, "port objectui correctness gates lockfile dedupe node esm load published dist performance budget into root CI": 10 hits. #25880 (closed) ported the 19 repo gates and left these rows out by name ("each stays its roster row"); #25920 (closed) measured the dedupe wrapper; #25697 and #25678 (open, closing). No card carries the ports. New.
Size: M. Clause-②: no. Metadata-protocol: none.
Generated by Claude Code
Activity
objectstack-fleet commentedon Oct 27, 2026
Triage: first grade —
tooling·priority:p1·domain:skills·area:devpath·pm:queue· triage seat ·session_01AavokzJ5DndAwitDXvKy4U· 2026-10-27T15:59Z⛔ Not a claim, ⛔ not a dispatch.
ui/workspace — workspace globs, root turbo tasks, path-filtered ui test/typecheck/lint/E2E jobs, spec change compiles the Console; pin gates retire at cutover (parent #25677, 3/6) #25697 roster kept have run nowhere sinceui/.github/workflows/**was deleted, and 18.2.0 shipped@object-ui/*without the four that guard published packages. Port those four first. Lane:.github/workflows/**is governed, sodomain:skills, Tier H. ⛔ No new required context without the maintainer's word ([Decision]Test UIis not a required context, so the merge queue lands a PR whose Test UI shard is red (#26419 → #26421): enrol aTest UIaggregate as required, keep it advisory with a seat read, or keep it as is #26460 coversTest UIalone).Generated by Claude Code
objectstack-fleet commentedon Oct 27, 2026
Claim: PM loop round 1
Session:
session_01ADHkmSrRBdu9MdC6fc33UuAccount:
os-steve(the seat's linked user asGET /useranswers it; the card's assignee)Branch:
claude/project-thread-s71sz8(the card thread's harness push branch, self-reported at 2026-10-27T16:40Z — the measured platform exception toclaude/issue-N-slug)Worktree:
objectstack-issue-26717Domain:
domain:skillsSeat:
domain:skills#1File surface:
.github/workflows/ci.yml(thebuild-e2e-uiregion plus one push/schedule job) andscripts/release-publish.sh, plus only theui/aliases or scripts those steps call if a path must change; the card table's four "port" rows only (23check:published-dist, 21check:node-esm-loadload leg, 7test:dist, 22check:eager-closure); the five retire / port-or-retire rows are measured and reported, not changed; ⛔ no new required context (stop on breach; explain in the report)Container & model:
M,mode:thread,model: TIER_DEFAULT(dispatch-gates --tier: no path mandate on ci.yml or release-publish.sh),effort: high. Tier H (.github/workflows/**): draft PR; ⛔ the dev never readies, arms or enqueues it.Clause-②: no
Metadata-protocol: none
Responsibility:
n/a — not a defect card(a roster follow-up owed by the ui merge)Thread-read: 6446838341
Premise: holds (seat re-measure on
origin/main8b276385:git grepover.github/workflows/andscripts/release-publish.shfinds none of the four aliases)Serial constraints cleared: no open PR names
.github/workflows/ci.ymlorscripts/release-publish.sh; open PR #26556 editsui/package.json— the dev stops and reports before touching itobjectstack-fleet commentedon Oct 27, 2026
os-dev-report
{ "issue": 26717, "status": "done", "branch": "claude/project-thread-s71sz8", "pr": "https://github.com/objectstack-ai/objectstack/pull/26854", "session": "session_01ADHkmNiJfZmoXAbfcJSAfx", "premise_still_valid": true, "summary": "Ported the delta's four port rows into root CI, draft PR #26854 (Tier H, head 8090d1fa, Part of #26717). Build & E2E UI gains check:eager-closure (with objectui's PR ceiling-freshness half) and test:dist on @object-ui/components over the builds it already makes; a new non-required full-battery job UI Published Artifacts (push/schedule only) runs pnpm build then check:published-dist --no-build and check:node-esm-load --no-build. scripts/release-publish.sh runs the published-dist scan before npm's record starts and exits 1 before changeset publish on a non-zero scan. Two forced test edits: release-verify-npm battery 16 (npm stub, floor 8 to 12) and check-published-dist-tooling.test.ts's per-PR pin rewritten per job (option B, own commit, awaiting Steve's decision card). No deletion, no new required context, ui/package.json (#26556) untouched.", "tests": "Head f0665932 after a cold pnpm build: check:published-dist --no-build exit 0 (36 packages, 0 tooling); check:node-esm-load --no-build exit 0 (provenance 35/35, load 33/36: create-plugin bin-only, plugin-dashboard/plugin-map ruled .css boundary); check:eager-closure exit 0 (1950.2 KB of 2431.6 KB, headroom 481.4 KB); turbo test:dist --filter=@object-ui/components exit 0 (2 files, 8 tests); PR freshness step rehearsed exit 0. Counter-probes, all restored: row 23 tooling file in core dist exit 1 (alias and release-path spelling); row 21 extensionless re-export in react dist exit 1 ERR_MODULE_NOT_FOUND; row 22 report +700000 gzip bytes exit 1 '202.2 KB over'; row 7 ablation namespace 'page' to 'probe26717' exit 1 'registers page:header from the BUILT bundle', re-run green. release-verify-npm --self-test 169 cases across 16 batteries, incl. tooling run exits 1 'Refusing to publish' with changeset and git never called.", "gates": "Final head 8090d1fa (origin/main 0ea90c7a merged): dispatch-gates --commands derived 71 commands for 4 paths; all 71 exit 0 under os-verify-lock (VERDICT command-exit 0, 44m35s), incl. ui vitest scripts/ 178 files 5066 passed 2 skipped, check:pm-dispatch-gates fast tier 1935 cases. --ran: '71 derived famil(ies) accounted for — 71 run, 0 NOT-MEASURED', 0 UNRUN. CI families: PR check-runs not yet reported at report time (not waited on); UI Published Artifacts first runs on the push that lands the PR.", "dogfood_battery": "n/a — no ! in the PR title and no (narrowing) arm", "mcp_calls": "9 — reads only: actions_list x4, issue_read x2, list_commits x1, pull_request_read x2 (one is the PR read-back)", "api_writes": "2 — fleet-write relay pr_create (POST pulls + assignees/labels, PR #26854); this os-dev-report comment on #26717 via post-stamped.mjs", "open_questions": [ { "question": "Row 23's per-PR ruling pin (objectui#4846 comment 5307574139) was read per workflow file, so no ci.yml job could carry the scan. Where should check:published-dist run?", "options": [ "A: a separate push/schedule workflow file; pin untouched, but scheduled-full-run --release-gate does not read it", "B: a ci.yml full-battery job whose if: denies pull_request and merge_group; pin rewritten per job (implemented in #26854, own commit)", "C: release-publish.sh only, no CI step; violates the delta's 'a CI step' half" ], "recommendation": "B, because the release gate already reads ci.yml's push/schedule runs before a publish approval and the ruling (no per-PR full build) still holds per job. Decision card is open with Steve in the card thread." } ], "out_of_scope_findings": [ "class: a · reach: maintainer-run alias `pnpm --dir ui run check:node-esm-load` (no --no-build) exits 254 ERR_PNPM_RECURSIVE_EXEC_FIRST_FAIL 'Command \"build\" not found' because ui/package.json has no build script · CI and release route around it with --no-build · dedupe words: node-esm-load build mode, ui build script, check-node-esm-load pnpm build", "class: a · reach: maintainer-run alias `pnpm --dir ui run check:published-dist` builds `turbo run build --filter=!@object-ui/site` from ui/ = 128 tasks incl. @objectstack/docs, not the release's pnpm build · dedupe words: published-dist build mode, docs build, filter object-ui/site", "carrier: next card for #26717's rows 19, 18, 7-docs, 17, 26 (measured: no root carrier for any; validate-deps has no lockfile-integrity overlap; #25920 dedupe 145 runs 0 failures) · noted, not filed", "carrier: next card for #26717 · the unported halves of objectui's performance-budget step: entry-chunk 350 KB cap, check:eager-locale-catalogues, check:sdui-registration-pins, size report, PR comment · noted, not filed", "carrier: none · release.yml's comment over the publish step and check-node-esm-load.mjs's docblock ('--no-build is wired into nothing') are stale after #26854 · in the PR's Acceptance notes" ] }Generated by Claude Code
objectstack-fleet commentedon Oct 27, 2026
ACCEPT → PR #26854 comment 6450639236 ·
domain:skills#1· 2026-10-27T18:46Z · slice 1 (the four "port" rows); Tier H +ci.yml: draft until a GOVERNED_APPROVERS approval and the maintainer's explicit ci.yml approval; contract review requested from the director seat. Rows 19, 18, 7-docs, 17, 26 stay on this card as slice 2 (the PR saysPart of). The two ui script build-mode defects the dev measured are filed as #26860.objectstack-fleet commentedon Oct 27, 2026
Seat note ·
domain:skills#1·session_01ADHkmSrRBdu9MdC6fc33Uu· 2026-10-27T18:55Z · claim amendment to 6447773049 (same branchclaude/project-thread-s71sz8)File surface adds:
scripts/pm/check-expected-skips.mjs, one LISTED row for the newUI Published Artifactsjob (ci.yml, jobui-published-artifacts, the ui-consumers gate kind its liveif:pins, the full-battery reason plus its filter clause), next to thedogfood-verifyrow. Reason: the director's must-fix on PR #26854 (6450870402) — the job skips on every pull_request / merge_group run by design,nonPrEventGatecannot derive it from its!=form, so without the row every ui-touching PR's queue check reads "1 skipped check-run outside the roster" (exit 4) and the queue lane refuses it. Nothing else.objectstack-fleet commentedon Oct 27, 2026
Seat note ·
domain:skills#1·session_01ADHkmSrRBdu9MdC6fc33Uu· 2026-10-27T18:59Z · claim amendment 6450902736 is withdrawn, no edit madeThe roster in
scripts/pm/check-expected-skips.mjsis derived, not listed, since #26648 (file header L43: "The roster is DERIVED, never listed (#26439)"). Its gate-term reader takesgithub.event_name != 'pull_request' | 'merge_group'as apr-eventterm (L438, L455), soUI Published Artifactsis derived from its liveif:(the dev's--rosteron head8090d1fa: "21 expected-skip name(s), every one derived … none listed by hand", the job among them). A hand-listed row would turn the self-test's "no hand-listed roster survives" case red. The claim's file surface is back to 6447773049. The PR's own enqueue run reads main's roster, which lacks the job until it lands — a one-time exit 4 on this PR only, the case the self-test's ADD case names.objectstack-fleet commentedon Oct 27, 2026
Seat note ·
domain:devx#1·session_01JQwxbaFpnMwgpCgneKe2qS· 2026-10-27T21:56Z · ⛔ not a claimFor the next roster card, which takes the five port-or-retire rows: row 17 (
live-e2e,test:e2e:live:ci) is already ruled. On #25914, ruling 6435339772 (Q1 A, 2026-10-27T06:26Z) makes the four-spec live lane a required context, so it is not to be retired. #25914 isdomain:devx's and runs serial behind PR #26854 onci.yml. The seat's reading is on #25914.objectstack-fleet commentedon Oct 27, 2026
Progress ·
domain:skills#1·session_01ADHkmSrRBdu9MdC6fc33Uu· 2026-10-27T23:49Z — slice 1 landed: PR #26854 merged (merge commitdaf52bcc7c), row 23 on option B. Run ids for rows 22 and 7: run 40572918935, job 122432456015 (PR head21b79c13); rows 23 and 21 read the firstmainpush run ofUI Published Artifacts, added here when it finishes. Slice 2 (rows 19, 18, 7-docs, 26) is dispatched next; row 17 is kept per #25914's ruling 6435339772 (devx#1 note 6454613263).pm:dispatchedstays.objectstack-fleet commentedon Oct 27, 2026
Claim: PM loop round 2 (slice 2; slice 1 = PR #26854, merged)
Session:
session_01ADHkmSrRBdu9MdC6fc33UuAccount:
os-steve(the seat's linked user asGET /useranswers it; the card's assignee)Branch:
claude/project-thread-oo129e(the slice-2 card thread's harness push branch, self-reported at 2026-10-27T23:53Z — the measured platform exception toclaude/issue-N-slug; supersedes slice 1'sclaude/project-thread-s71sz8)Worktree:
objectstack-issue-26717Domain:
domain:skillsSeat:
domain:skills#1File surface:
.github/workflows/ci.yml(row 19check:lockfile-integrityport only, non-required),ui/package.json(only the aliases of the retired rows 18lockfile-dedupeand 26shadcn-check), the retiredui/scripts/**files and the ui tests that pin them; row 7-docs per the F14 / docs-deploy record, or put to the seat underopen_questionsif that record does not decide it. ⛔ Row 17live-e2eexcluded (#25914 ruling 6435339772,domain:devx). No new required context. Nothing else (stop on breach; explain in the report)Container & model:
S,mode:thread,model: CONTRACT_REVIEW_TIER(dispatch-gates --tier: MANDATORY —.github/workflows/ci.yml, clause ①),effort: high. Tier H (.github/workflows/**): draft PR; ⛔ the dev never readies, arms or enqueues it; ci.yml needs the maintainer's explicit approval.Clause-②: no
Metadata-protocol: none
Responsibility:
n/a — not a defect card(a follow-up owed by landed work, the #25697 workflow roster)Thread-read: 6456471571
Premise: holds (PR #26854's Acceptance notes, re-read on
main: no root carrier for rows 19, 18, 7-docs, 26; rootvalidate-deps.ymlhas no duplicate-dependency step)Serial constraints cleared: PR #26854 (same
ci.yml) merged; dependabot PR #26556 also editsui/package.json(it rebases itself; hunks kept to the alias lines)objectstack-fleet commentedon Oct 28, 2026
os-dev-report
{ "issue": 26717, "status": "done", "branch": "claude/project-thread-oo129e", "pr": "https://github.com/objectstack-ai/objectstack/pull/26995", "session": "session_01ADHkmSracEMN5RmM9xs4Fu", "premise_still_valid": true, "summary": "Slice 2, draft PR #26995 (Tier H, head a463a624, Part of #26717). Row 19 ported: check:lockfile-integrity is one pull_request-only, continue-on-error step of Type Check UI, before the install, against origin/BASE (the job already checks out with fetch-depth 0); no new job or context. Row 18 retired: check:lockfile-dedupe alias, script and test deleted. Row 26 retired: shadcn-check-report.mjs (the weekly workflow's classifier) and its test deleted; shadcn:check / shadcn:analyze and shadcn-sync.js stay because the components READMEs, shadcn-components.json, four other shadcn aliases and regen-artifacts.mjs read them ('only what nothing else reads'). Row 7-docs is NOT decided: the record decides the docs DEPLOY (#25712 item 5: a second job in root docs-deploy.yml), which never landed, and F14 is the ci-cd-pipeline.md rewrite; so it is the open question below. Row 17 untouched.", "tests": "Head a463a624. Step command `pnpm --dir ui run check:lockfile-integrity --base-ref origin/main`: exit 0, 'VERDICT clean — no package gained a copy.' (1941 resolutions both sides). Counter-probe: root pnpm-lock.yaml mutated with the test's sample (a) (extra ai@7.0.65(zod@4.6.7) snapshot, marker count 1 on disk): exit 1, 'VERDICT 1 lockfile-integrity finding(s): 1 duplication(s).' + '::error title=Lockfile integrity::ai'; restored via git checkout HEAD under a trap, blob 8b64d515 before = after, git diff HEAD empty, re-run exit 0. check-lockfile-integrity.test.ts: 17 passed (13 + 4 new wiring pins). git grep -F check:lockfile-dedupe: 0 hits. No ablation: workflow/scripts/test only.", "gates": "Root pnpm build under os-verify-lock: VERDICT command-exit 0 (12m30s). dispatch-gates --commands --repo objectstack-ai/objectstack: 74 derived for 7 paths; all 74 exit 0 (captured before any pipe), incl. ui vitest scripts/ under lock (176 files passed 2 skipped, 5032 tests passed 2 skipped, VERDICT 0), check:pm-dispatch-gates fast tier 1935 cases, check:required-contexts, check:ci-filter-parity, check:pm-expected-skips, check:workflow-step-name-quoting, check:published-files. --ran: '74 derived famil(ies) accounted for — 74 run, 0 NOT-MEASURED', 0 UNRUN. CI families: PR #26995 check-runs not yet reported at report time (not waited on); the ported step's run id comes from that PR's Type Check UI job.", "dogfood_battery": "n/a — no ! in the PR title and no (narrowing) arm", "mcp_calls": "8 — reads only: issue_read x3 (#26717 get + comments, #25697 comments), get_sub_issues x1 (#25677), search_issues x2, pull_request_read x2 (#26854, #26995 read-back)", "api_writes": "2 — fleet-write relay pr_create (run 40609513752: POST pulls + assignees + labels legs, plus its governed-review follow-up requesting hotlong and os-zhuang), PR #26995; this os-dev-report comment on #26717 via post-stamped.mjs", "open_questions": [ { "question": "Row 7-docs: objectui's per-PR 'Build Docs' (@object-ui/site) runs nowhere and root pnpm build excludes ./ui*/apps/site. The record (#25712 item 5) decided only the deploy: a second job in root docs-deploy.yml for objectui's separate Vercel project, ids/secrets the maintainer's; #26058 deleted the workflow without porting it and root docs-deploy.yml deploys apps/docs only. F14 (on #25753) rewrites ci-cd-pipeline.md and decides no build. Which way for the build row?", "options": [ "A: port the build as a non-required ci.yml job (ui-filtered, PR + push, `pnpm --filter @object-ui/site build`): restores objectui's per-PR check; costs a Next build per ui PR; whether the site builds in the monorepo today is NOT MEASURED", "B: fold it into the deploy port #25712 item 5 already decided (a second job in root docs-deploy.yml whose vercel build is the build check on main), carried by #25753 with the maintainer's Vercel project id and secret; retire the per-PR row here with 'replaced by the deploy job'", "C: retire it with no replacement; whether ui/apps/site lives at all is left to F14 / #25753" ], "recommendation": "B, because it follows the only record that exists, builds the site where it ships, adds no per-PR build, and its one blocker (the Vercel project) is already #25753's scope; this PR stays Part of until the seat or Steve picks." } ], "out_of_scope_findings": [ "carrier: #25753 (F14) · ui/content/docs/guide/ci-cd-pipeline.md still describes lockfile-integrity.yml, lockfile-dedupe.yml and shadcn-check.yml as live, like every other deleted objectui workflow · noted in the PR's Acceptance notes", "carrier: none · ui/scripts/workspace-root.mjs docblock names check-lockfile-dedupe.mjs as a pre-install importer; ui/scripts/dependabot-merge-gate.mjs keeps 'Lockfile Dedupe Check' in OPTIONAL_CONTEXTS and names shadcn-check-report.mjs in its header; the script runs in no root workflow · stale prose outside the file surface, in the PR's Acceptance notes", "carrier: none · the card delta said dispatch-gates --tier is MANDATORY for ci.yml; measured on this change set: 'no path-derived mandate: the surface hits none of the 4 declared glob(s)' · noted, not filed" ] }Generated by Claude Code
objectstack-fleet commentedon Oct 28, 2026
ACCEPT → PR #26995 (slice 2: rows 19 ported, 18 and 26 retired) ·
domain:skills#1· 2026-10-28T00:37Z · Tier H, ci.yml: draft until the maintainer approves; contract review (≥ xhigh) requested from the director seat; row 7-docs goes to the maintainer as a decision.objectstack-fleet commentedon Oct 28, 2026
Landed (slice 2) ·
domain:skills#1·session_01ADHkmSrRBdu9MdC6fc33Uu· 2026-10-28T01:38Z — PR #26995 merged through the queue (merge commite6c4409000, 01:04Z), after the director's PASS 6457540015: row 19 ported as apull_request-only,continue-on-errorstep ofType Check UI; rows 18 and 26 retired. The card stays open (Part of) for row 7-docs (@object-ui/siteper-PR build), which is with the maintainer as a decision (seat recommends folding it into the objectui docs deploy port under #25753 and retiring the row). Row 17 stays out of scope by #25914.objectstack-fleet commentedon Oct 28, 2026
Hand-off ·
domain:skills#1·session_01ADHkmSrRBdu9MdC6fc33Uu· 2026-10-28T03:32Z — the seat stands down (maintainer, 2026-10-28 03:30Z: 「你手上的任务处理完,合并后就下班」).@object-ui/siteper-PR build). The maintainer has three options:ci.ymlslice (A), or a note on aftercare(ui-merge): the first joint 18.x release from the merged repo — both scopes at one version, @object-ui published, docs site deployed — then close #25556 as superseded and the epic (parent #25677, 6/6) #25753 and closing this card (B or C).pm:dispatched→pm:awaiting-maintainer; assignee cleared.objectstack-fleet commentedon Oct 28, 2026
Closing record for #26717 · 2026-10-28T10:37Z
All nine rows of the #25697 roster are disposed:
check:published-distUI Published Artifacts+scripts/release-publish.shrefusal)check:node-esm-loadload legtest:distBuild & E2E UIcheck:eager-closureBuild & E2E UIcheck:lockfile-integritycontinue-on-errorstep ofType Check UIlockfile-dedupeshadcn-checkweekly reportshadcn-check-report.mjs);shadcn:check/shadcn:analyzestay as the components package's maintainer commands@object-ui/sitebuildlive-e2edomain:devxRow 7-docs, the maintainer's ruling (Steve, 2026-10-28T10:35Z, verbatim):
So the open question in report 6457446264 is withdrawn: no site build or deploy job is added. Removing
ui/apps/siteitself, and rewritingui/content/docs/guide/ci-cd-pipeline.md(F14), are not this card's; F14 stays on #25753.Still open elsewhere, not this card: the unported halves of objectui's performance-budget step (entry-chunk 350 KB cap,
check:eager-locale-catalogues,check:sdui-registration-pins) noted on PR #26854, and the two ui script build-mode defects filed as #26860.Generated by Claude Code