Repository navigation
refactor(components)!: retire the unused ViewSkeleton dispatcher and ShimmerSkeleton - #27388
Conversation
…ShimmerSkeleton ViewSkeleton (with ViewSkeletonVariant and ViewSkeletonDispatchProps) and ShimmerSkeleton (with ShimmerSkeletonProps) were published from the @object-ui/components entry and had no importer in the workspace. The dispatcher leaves view-skeleton.tsx, which keeps the Grid, Kanban, Form, List and Chart skeletons; shimmer-skeleton.tsx and its barrel line go, and the app-shell styles.css comment no longer points at it. Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JQwxbZK9w6fe2Y6mGQjj6L
|
domain:ui#1 · os-warren · session_01JQwxbZeBv2y91towxasSUT Seat note · contract review owed · seat
|
|
triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U Contract-review-claim: Triage seat, taking the hand-off and Generated by Claude Code |
Contract reviewServed-tier: ① Derived judgments
② Semver level
③ Boundary flags
④ Design judgmentThe narrowing, read against the published surface on
Implemented-by: VERDICT: PASS Generated by Claude Code |
|
domain:ui#1 · os-warren · session_01JQwxbZeBv2y91towxasSUT 席位核对ACCEPT · seat 席位意见:#25915 裁定 B 的第二步:从
Generated by Claude Code |
Requested by Warren · project thread
Fixes #25915
Clause-②: no (narrowing)
Metadata-protocol: none
维护者速读
@object-ui/components的发布入口删掉两个没人用的组件:ViewSkeleton(按 variant 分发的骨架屏包装,连同它的两个类型)和ShimmerSkeleton(连同其 props 类型)。GridSkeleton等其余骨架屏照常导出。ui/packages/components/src/custom/view-skeleton.tsx(只删分发器);.changeset/25915-retire-view-and-shimmer-skeleton.md(迁移说明与 ADR-0087 标记)。git grep -nwE "ViewSkeleton|ShimmerSkeleton" -- ui ':!*CHANGELOG.md',预期零命中。CONTRACT_REVIEW_TIER契约复核,席位转交分诊)。What changes
ui/packages/components/src/custom/view-skeleton.tsx: theViewSkeletonvariant dispatcher leaves, withViewSkeletonVariantandViewSkeletonDispatchProps. The file stays and keeps exportingGridSkeleton,KanbanSkeleton,FormSkeleton,ListSkeleton,ChartSkeletonand theViewSkeletonProps/GridSkeletonProps/KanbanSkeletonPropstypes.GridSkeletonandChartSkeletonhave live importers (plugin-dashboard,plugin-charts).ui/packages/components/src/custom/shimmer-skeleton.tsxis deleted (ShimmerSkeleton,ShimmerSkeletonProps), and so is itscustom/index.tsline.ui/packages/app-shell/src/styles.css: theanimate-shimmerusage comment no longer points atShimmerSkeleton. The keyframe and utility stay.@object-ui/componentspatch: a BREAKING note, a FROM → TO line for each of the five retired exports, and anadr-0087: not-required (runtime-export-retired …)marker naming all five.patchbecauseMetadata-protocol: none(AGENTS.md Post-Task Checklist step 3: a non-protocol change, breaking included, shipspatchand keeps its BREAKING banner).Not touched, per ruling B (6486367718):
KanbanSkeleton,FormSkeletonandListSkeletonlose their only caller (the dispatcher) but stay exported. The Studio empty states andDataEmptyStateare not touched either.Tests
No new test. The removal is proven once on the built package (below), not pinned by a permanent file. The claim's file surface names no test file.
Acceptance notes
CONTRACT_REVIEW_TIERcontract review of the whole non-prose diff before the queue:pm-dispatchreferences/contract-review.mdputs aClause-②: no (narrowing)declaration at that tier. The seat hands it to triage. It is not Tier H, because no governed path is touched.?: nevertombstones on the ui authoring face, not React runtime exports.Verification
All readings at head
8e055464(basec4c515ad, #27366's merge).Build, type-check, tests and the removal proof
pnpm --filter @object-ui/components buildunderos-verify-lock: VERDICT command-exit 0.pnpm --filter @object-ui/components type-check: VERDICT command-exit 0, 0error TS.pnpm --dir ui exec vitest run --maxWorkers=2 packages/components/under the lock: VERDICT command-exit 0, Test Files 447 passed | 1 skipped (448), Tests 4327 passed | 24 skipped. This includeschart-primitives-removed-7397.test.ts, which reads the package barrel and requiresChartSkeletonto stay exported.dist/:grep -cwreads 0 for each ofViewSkeleton,ViewSkeletonVariant,ViewSkeletonDispatchProps,ShimmerSkeletonandShimmerSkeletonProps, inindex.jsand incustom/view-skeleton.d.ts.custom/shimmer-skeleton.d.tsis not emitted, andcustom/index.d.tshas no shimmer line. Control:GridSkeletonreads 2 incustom/view-skeleton.d.tsand 1 inindex.js.git grep -woverui,packages,appsandexamples(CHANGELOGs and the two files themselves excluded): 0 for all five. The only other hit was thestyles.csscomment this PR rewords.node scripts/check-platform-checklist.mjs --changed-from origin/main: exit 0, with no anchored file in the change set.Gates and dogfood
dispatch-gates --commands --repo objectstack-ai/objectstackderived 28 families. All 28 ran, each with its exit code captured before any pipe, and all exited 0.check-adr-0087-registration --base origin/mainverified theruntime-export-retiredmarker for all five operands.--ranreconciliation: 28 derived, 28 run, 0 NOT-MEASURED.pnpm --dir ui exec vitest run scripts/first read 1 failed. The failure wasquick-reference-commands-4149namingapps/site: a leftoverui/apps/sitedirectory holding only ignored files from this worktree's install, before docs(ui-merge): fold objectui.org into objectstack docs, K4 — retire the site, host 301s, links #27329 retired the site onmain. With the directory removed, the rerun gave VERDICT command-exit 0, Test Files 169 passed | 2 skipped.dispatch-gates --tier: no path-derived mandate. Changed lines: 111 (+21 / -90).!and Clause-② has the(narrowing)arm. The closure was built withpnpm --filter '@objectstack/dogfood^...' build(VERDICT 0), thenpnpm --filter @objectstack/dogfood testran under the lock with no shard and no path: VERDICT command-exit 0, Test Files 348 passed | 3 skipped (351), Tests 2806 passed | 20 skipped (2826).Generated by Claude Code