Repository navigation
refactor(ui)!: retire zero-consumer exports from @object-ui/plugin-gantt and @object-ui/plugin-designer - #29388
Conversation
…gin-designer plugin-gantt's entry stops publishing nineteen names nothing outside the package reads (the quick-filter bar, the resource-workload grid, the workload math, the shift-band helpers and normalizeDependencies, with their types); plugin-designer's stops publishing six (CollaborationProvider, ConnectionStatusIndicator, useClipboard, useMultiSelect, useCanvasPanZoom, PropertyEditor). Every module stays; the READMEs stop teaching the names. Types a kept export's signature needs stay public. Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QsR2jTqpZ1sWR3BcpiFGa3
|
director#1 · zhuangjianguo · session_01QsR2jV5sBSzCYNEDgpYLJw Contract-review-claim: session_01QsR2jV5sBSzCYNEDgpYLJw · head d0ee5c7 · 2026-11-02T14:02Z Generated by Claude Code |
|
director#1 · zhuangjianguo · session_01QsR2jV5sBSzCYNEDgpYLJw Contract reviewServed-tier: Read-only review of the committed tree. Check-runs on the head at claim time: 9 success, 11 skipped, 32 in progress; the seat lands on a green head, and this record is pinned to this sha. ① Derived judgments
② Semver level
③ Boundary flags
④ Design judgment
READMEs — the gantt README now routes the bar, the workload grid and the shift bands through the No must-fix found. No should-fix. Implemented-by: VERDICT: PASS Generated by Claude Code |
|
domain:ui#5 · zhuangjianguo · session_01QsR2jQjvWkZ7is6GXbC6DB 席位核对 — ACCEPT ·
|
Requested by Steedos · project thread
Part of #25921 — the zero-consumer barrel batch for
@object-ui/plugin-ganttand@object-ui/plugin-designer(claim 6576816381), the item landings 6542309053 and 6543370760 left open. The card stays open: every other item it lists is untouched.Clause-②: yes (narrowing)
Metadata-protocol: none
维护者速读
@object-ui/plugin-gantt入口不再导出 19 个名字(快速筛选栏、资源负载网格、负载计算、班次带工具及其类型、normalizeDependencies);@object-ui/plugin-designer入口不再导出 6 个值(CollaborationProvider、ConnectionStatusIndicator、useClipboard、useMultiSelect、useCanvasPanZoom、PropertyEditor)。模块文件全部保留,两个 README 不再教这些名字,每包一个!changeset。@object-ui/*包不受影响;外部 npm 用户若导入会在升级时编译报错,changeset 写明每个名字改用的写法(多数是在gantt块里声明quickFilters/resourceView/timeSegments)。回滚即 revert 本 PR。ui/packages/plugin-gantt/src/index.tsx、ui/packages/plugin-designer/src/index.tsx、.changeset/25921-plugin-designer-internal-helpers-off-entry.md(协作入口退出后,设计器里的协作分支在包外不可达)。git grep -n -w -e QuickFilterBar -e computeWorkload -e CollaborationProvider -e useCanvasPanZoom -- ui/packages/plugin-gantt/src/index.tsx ui/packages/plugin-designer/src/index.tsx ui/packages/plugin-gantt/README.md ui/packages/plugin-designer/README.md,预期无输出(退出码 1):两个入口和两个 README 都不再出现这些名字。What changes
@object-ui/plugin-gantt(src/index.tsx): the entry stops exportingQuickFilterBar,QuickFilterBarProps,QuickFilterField,QuickFilterOption,QuickFilterLabels,QuickFilterDef,ResourceWorkload,ResourceWorkloadProps,computeWorkload,WorkloadColumn,WorkloadOptions,ResourceCell,ResourceLoad,normalizeDependencies,normalizeShiftSegments,shiftDayStart,bandAt,ShiftSegmentsConfigandShiftBandConfig. Every module stays:ObjectGanttstill imports the bar, the grid and the shift helpers, andResourceWorkloadstill imports the workload math.@object-ui/plugin-designer(src/index.tsx): the entry stops exportingCollaborationProvider,ConnectionStatusIndicator,useClipboard,useMultiSelect,useCanvasPanZoomandPropertyEditor. Every module stays: the four designers import the hooks,PropertyEditoranduseCollaborationfrom them.README.mdfiles stop teaching the retired names (check-readme-exportsbinds every README self-import to a real export). The gantt README now says the bar, the workload grid and the shift bands are configured through theganttblock; the designer README drops the collaboration feature bullet, its section and the Quick Start wrapper.patchwith the**BREAKING**banner, both declaration lines, the ADR-0087not-required (runtime-export-retired …)marker naming every operand, and a FROM → TO "no replacement" line with the one-line fix per group. New file names, distinct from the25921-*changesets chore: version packages #26517 still holds.Why
How the set was chosen, the #28385 method re-run at
origin/main738971d2(hotcrmd4ffe99): every name each barrel exports was listed from the barrel's AST (35 / 38), thengit grep -l -w -Fran for each over the whole tree minus the package's own directory,**/CHANGELOG.md, the lockfiles,.changeset/**andui/.changeset/**; the brief's cut (ui/,packages/,apps/,examples/,content/, tests excluded) and hotcrm were counted beside it. Positive controls, same command:ObjectGantt108 files (the #28385 reading),CreateAppPage48,SchemaRenderer1157 (hotcrm 3). A name was retired only when all three hold:@object-ui/plugin-gantt@object-ui/plugin-designerKept by rule 3:
GanttViewProps(props ofGanttView),GanttDependencyandGanttDependencyObject(GanttTask.dependencies),NormShiftSegmentsandNormShiftBand(GanttViewProps.shiftSegments); the nine designer…Propstypes of components that stay.Tests
641e44d3;bb4ab640merges 21origin/maincommits, none under either package (branch delta re-read: the same 6 files, +71 / -107).turbo run type-check --filter=@object-ui/plugin-gantt --filter=@object-ui/plugin-designer --filter=@object-ui/app-shell --filter=@object-ui/console→ 74/74 tasks successful (os-verify-lockVERDICT command-exit 0). app-shell (the lazy designer pages) and the Console are the importers of either package.pnpm --dir ui exec vitest run --maxWorkers=2 packages/plugin-gantt/ packages/plugin-designer/→ Test Files 156 passed, 1 skipped (157); Tests 1248 passed, 114 skipped (VERDICT command-exit 0).pnpm --dir ui exec vitest run scripts/(includescheck-readme-exports) → Test Files 169 passed, 2 skipped; Tests 4903 passed (VERDICT command-exit 0).!) onbb4ab640: closureturbo run build --filter=@objectstack/dogfood^...68/68, thenpnpm --filter @objectstack/dogfood test→ Test Files 393 passed, 3 skipped (396); Tests 3243 passed, 28 skipped (3271);VERDICT command-exit 0, held the lock 2236 s.d0ee5c76merges 29 moreorigin/maincommits, none under either package; the census re-run on it still reads zero for all 25 retired names (controlObjectGantt108). The suites above were not re-run on it.Acceptance notes
CollaborationProvideroff the entry, nothing outside the package can mount it, so the collaboration branches inPageDesigner,DataModelDesigner,ProcessDesignerandReportDesigner(useCollaboration()is now alwaysnullfor a host) and the provider and indicator bodies inCollaborationProvider.tsxare dead code. Deleting them edits modules this claim does not cover; same card family, left for a next pass.useConfirmDialogandVersionHistoryhave zero hits once tests are excluded; their only outside hits are comments inui/scripts/__tests__/one-authority-per-exported-name-6273.test.tsnaming their module files. Kept under rule 1 here.ObjectGantt,ObjectGanttProps,ObjectGanttRenderer,GanttView,GanttTask,GanttTaskType,GanttViewMode,GanttLinkType,GanttMarker,normalizeTaskType,parseHHMM(several are prose or same-name hits, for exampleparseHHMMinservice-messaging; rule 1 keeps them all).CONTRACT_REVIEW_TIERreview is owed before the queue (barrel narrowing); the seat routes it to the director.Verification
Derived gates — 28/28 run, 0 NOT-MEASURED
node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstackat641e44d3: 28 commands;--ran: "28 derived famil(ies) accounted for — 28 run, 0 NOT-MEASURED". Every command exit 0, among themcheck-adr-0087-registration --base origin/main,check-empty-changeset --base origin/main,check-changeset-no-major --base origin/main,check-sdui-manifestand its--self-test,check:published-files,check:undeclared-dep-imports,check:nul-bytesandvitest run scripts/.check-comment-mask-corpusfirst timed out at 300 s beside the closure build, then exit 0 alone (20050 files, 0 disagree, 284 s).Outside the derived set:
check-platform-checklist --changed-from origin/mainexit 0 (0 anchored files) atbb4ab640.dispatch-gates: 178 changed lines, under the 3000 threshold; no governed path.Human Minimum
packages/specholds no runtime logic.eslinton the two changed barrels exits 0 (7 warnings, 0 errors:react-refresh/only-export-componentson the kept helper exports and oneno-explicit-any, all present onmainbefore this diff); the repo-widepnpm lintis CI's run.main, one pull request.packages/spectouched: its generated artifacts are regenerated and committed. (not touched)content/docs/references/,packages/*/CHANGELOG.mdorcontent/docs/releases/.Generated by Claude Code