Repository navigation
refactor(components)!: retire ten zero-consumer shadcn sub-part entry exports - #31318
Conversation
The dialog, dropdown-menu, sheet and sidebar lines of the unpublished src/ui/index.ts sub-barrel become named lists without DialogPortal, DialogOverlay, DialogClose, DropdownMenuPortal, SheetPortal, SheetClose, SidebarSeparator, SidebarGroupAction, SidebarMenuBadge and SidebarMenuSkeleton. The shadcn module files are unchanged. Co-Authored-By: Claude <noreply@anthropic.com>
|
domain:ui#1 · os-project-manager · session_01FEkQ5nLA7wiVY5YWjT9Svr Contract reviewServed-tier: Rendered 2026-11-08T01:23Z on card #25921 (batch 14: claim 6714776657, amendment 6714859776), face narrowing. Inputs: the card body and all 133 comments, PR #31318's body, file list and net diff against ① Derived judgments
② Semver level
③ Boundary flags
④ Design judgmentNarrowing read against the published spec on Implemented-by: VERDICT: PASS |
|
domain:ui#1 · os-project-manager · session_01FEkQ5nLA7wiVY5YWjT9Svr 席位核对 · ACCEPT · 2026-11-08T01:35Z · head
|
Requested by Leehom · project thread
Part of #25921
Clause-②: no (narrowing)
Metadata-protocol: none
Skills-docs: none (none of the ten names appears under
skills/**orcontent/docs/**)维护者速读
@object-ui/components的根入口不再导出 10 个 shadcn 子部件(DialogPortal、DialogOverlay、DialogClose、DropdownMenuPortal、SheetPortal、SheetClose、SidebarSeparator、SidebarGroupAction、SidebarMenuBadge、SidebarMenuSkeleton);这是 retire the zero-consumer surface: nine dead modules (2,211 LOC), plugin-ai, runner's publish flag, test-only reset helpers on public barrels, the providers trio, 122 dead i18n keys, root orphans #25921 的第 14 批,形状同第 6 批 refactor(components)!: retire 63 zero-consumer shadcn sub-part entry exports #30752。MobileDialogContent照常直接从../ui/dialog读两个部件;外部 npm 宿主若从入口 import 这些名字会编译失败(未实测,changeset 写了 BREAKING 与替代写法)。!patch,回滚即 revert 本 PR。ui/packages/components/src/ui/index.ts(四处export *改具名列表)、.changeset/25921-components-shadcn-subparts.md。node scripts/check-adr-0087-registration.mjs --base origin/main,预期十个名字都verified … (export, ui/packages/components/src/ui/…)、退出 0。What changes
Batch 14 as named in the seat's amendment 6714859776 on claim 6714776657 (census
/mnt/project-files/pm-orders/ui/25921-b14-census.md,origin/main7c523aa1, hotcrm6961ab13).ui/packages/components/src/ui/index.ts(the unpublished sub-barrel thatsrc/index.tsstar-exports): theexport *lines for./dialog,./dropdown-menu,./sheetand./sidebarbecome named lists without the ten names. The four shadcn module files are unchanged (No-Touch, ui AGENTS Remove explicit pnpm version from workflows to fix version conflict #7); no module is deleted..changeset/25921-components-shadcn-subparts.md:!patch, BREAKING, FROM/TO for each name,runtime-export-retired×10 (FROM spans 1:1), both declaration lines.Every other name of the four modules stays exported, among them
DialogContent,SheetOverlay,SheetContent, every otherDropdownMenu*part,SidebarMenuAction,useSidebaranduseOptionalSidebar.DrawerClosestays too (seat ruling in 6714859776).Tests
git grep -lwonorigin/mainoutsideui/packages/components): every hit is inui/scripts/__tests__/fixtures/shadcn-registry/{dialog,dropdown-menu,sheet,sidebar}.registry.txt, the upstream snapshots that declare their own copies.DialogPortalalso hits a comment inui/e2e/console-boot-indicator.spec.tsthat names Radix's own part. hotcrm 0 for all ten. Positive controls, same command (files):DialogContent67,SheetContent29,DropdownMenuItem87,SidebarMenuButton14.src/custom/mobile-dialog-content.tsxreadsDialogPortalandDialogOverlay, and it imports them from../ui/dialog, not through the sub-barrel.src/index.ts): 364 names before, 354 after; exactly these ten gone, none added. Builtdist/index.jsimported at runtime: none of the ten is a key; the controlsDialogContent,SheetContent,DropdownMenuItem,SidebarMenuButtonandDrawerCloseare.pnpm --dir ui exec vitest run --maxWorkers=2 packages/components/→ Test Files 477 passed | 1 skipped (478), Tests 4573 passed | 24 skipped.pnpm --filter @object-ui/components run type-check→ exit 0.Acceptance notes
DrawerClose(its outside hits are JSX text in an eslint rule comment and its RuleTester fixture; seat ruling 6714859776),MobileDialogContentProps(acustom/Props type with zero hits, not the shadcn family), and the census's other notes (plugin-timeline primitives and fields'index.tsxvalues need a module move; react'sLazyPluginLoadertrio is taught by name incontent/docs/frontend/*andskills/objectui/guides/page-builder.md).Verification
Derived gates on HEAD 254394d (30/30, all exit 0, --ran reconciled)
node scripts/pm/dispatch-gates.mjs --repo objectstack-ai/objectstack --ran→ "30 derived famil(ies) accounted for — 30 run, 0 NOT-MEASURED".node scripts/check-adr-0087-registration.mjs --base origin/mainexit 0: all tenverified … (export, ui/packages/components/src/ui/…);--self-testexit 0node scripts/check-changeset-no-major.mjs --base origin/mainexit 0node scripts/check-empty-changeset.mjs --base origin/mainexit 0;--self-testexit 0node scripts/check-closing-keyword-parity.mjsexit 0;--self-testexit 0node scripts/check-comment-mask-corpus.mjs,check-sdui-manifest.mjs(+--self-test),ci/snapshot-next.mjs --self-test,pm/release-rehearsal-clone.mjs --self-test,release-pending-publish.mjs --self-test: exit 0pnpm --dir ui exec vitest run scripts/→ Test Files 170 passed | 2 skipped (172), Tests 4996 passedpnpm --filter @objectstack/spec run check:duration-unit-keys,pnpm check:changeset-gate-self-tests,check:closed-ceremony-text,check:dispatcher-error-vocabulary,check:driver-memory-census,check:gitlink-declared,check:nul-bytes,check:published-files,check:refd-timer-probe,check:registry-log-declared,check:rest-log-spy-declared,check:skill-identifier-liveness,check:test-source-alias,check:tier-file-adoption,check:undeclared-dep-imports,check:watch-hint-literal: exit 0Outside the derivation:
pnpm check:changeset-fixedexit 0;node scripts/check-platform-checklist.mjs --changed-from origin/mainexit 0 (no anchored file);pnpm check:published-readme-exportsexit 3, NOT MEASURED (31 unrelated packages unbuilt locally; CI runs it).Full dogfood battery on HEAD 254394d
bash scripts/pm/os-verify-lock.sh -c "pnpm --workspace-concurrency=2 --filter '@objectstack/dogfood^...' build && pnpm --filter @objectstack/dogfood test"→os-verify-lock: VERDICT command-exit 0(held 33m38s) · Test Files 435 passed | 3 skipped (438) · Tests 3610 passed | 41 skipped (3651) · no failure.Generated by Claude Code
🤖 Generated with Claude Code
https://claude.ai/code/session_01FEkQ5mTpxApu2S7hHNSreS