Skip to content
This repository was archived by the owner on Oct 26, 2026. It is now read-only.

refactor(providers)!: retire the DataSourceProvider, MetadataProvider and ThemeProvider trio and fix the guides that taught them (objectui#13453, part 2) - #13507

Merged
os-zhuang merged 6 commits into
mainfrom
claude/project-thread-u9kgfd
Oct 25, 2026
Merged

os-zhuang merged 6 commits into
mainfrom
claude/project-thread-u9kgfd

Conversation

@objectstack-fleet

Copy link
Copy Markdown
Contributor

Requested by Elon · project thread

Part of objectstack-ai/objectstack#25921
Clause-②: no (nothing added a consumer or author can target)
Metadata-protocol: none

维护者速读(草稿)

  • 改了什么: @object-ui/providers 删掉三个和别的包重名的 Provider:DataSourceProvider、MetadataProvider、ThemeProvider(连同 useDataSource / useMetadata / useTheme 和四个类型)。包里只留上传用的 UploadProvider / useUpload。同时改好引用它们的地方:byo 示例、README 和架构文档、贡献者技能指南里的一句话、对外发布的 skills/objectui 两篇指南。另外把 refactor!: retire nine zero-consumer modules, make runner private, take test-only reset helpers off the barrels (objectui#13453, part 1) #13506 已改成私有的 runner 从这几篇指南里拿掉。
  • 为什么改: 这三个名字在 @object-ui/react(数据源、主题)和 @object-ui/app-shell(元数据)里都有同名但实现不同的版本,console 用的都是那两个包的。providers 这份在三个仓里没有任何代码引用,只出现在文档和一个示例里,AI 和开发者照着文档写,很容易引错包。
  • 风险与代价(含回滚): 对 npm 上的外部使用者是破坏性删除。按版本政策只声明 minor,changeset 里写明删了哪些名字,并给出迁移路径。cloud 和外部 npm 依赖方没有测量到。回滚就是 revert 这一个 PR,没有数据或接口协议上的影响。
  • 席位意见:
  • 你要做的: 审阅后在本 PR 点 Approve(os-zhuang 或 hotlong 任一人即可),之后由席位落地。

What this removes

Second of the two PRs the claim amendment (comment 6393918010) cuts on the governed line; PR 1 (#13506, Tier S) merged at 0063f22. This one is Tier H because it edits .claude/skills/objectui-contributor/guides/console-development.md and skills/objectui/**.

1. The providers trio. packages/providers/src/{DataSourceProvider,MetadataProvider,ThemeProvider}.tsx, types.ts, and their two tests (spec-symbol-batch7.test.ts, theme-mode-spec-parity.test.tsx) are deleted. The barrel keeps only the upload surface (UploadProvider, useUpload, the upload adapters), with a note on what retired and where each replacement lives. Removed names: DataSourceProvider, useDataSource, MetadataProvider, useMetadata, ThemeProvider, useTheme, and the types DataSourceProviderProps, MetadataProviderProps, ThemePreferenceProviderProps, ThemePreference.

Premise correction carried from the claim: @object-ui/react does not export DataSourceProvider, useDataSource or MetadataProvider. The replacements are:

Retired (@object-ui/providers) Use instead
DataSourceProvider / useDataSource SchemaRendererProvider (dataSource prop), @object-ui/react
ThemeProvider / useTheme ThemeProvider / useTheme, @object-ui/react (defaultMode; the old system is auto; persist keeps the choice in localStorage)
MetadataProvider / useMetadata MetadataProvider / useMetadata, @object-ui/app-shell

2. The one code consumer, the byo example. examples/byo-backend-console/src/App.tsx now wraps in ThemeProvider defaultMode="light" persist storageKey=… and SchemaRendererProvider from @object-ui/react; its @object-ui/providers dependency and the lockfile entry go. Its README follows.

3. Docs and exemptions that named the trio. README.md, docs/ARCHITECTURE.md (its compiled snippets now import the replacements), examples/README.md, packages/providers/README.md, the types/src/theme.ts comments, and two test comments that pointed at the deleted files: p2-spec-exports.test.ts, and the KNOWN_COLLISIONS note in one-authority-per-exported-name-6273.test.ts (no entry changes; it now records that react's ThemeProvider is the only one left). docs/audits/2901-spec-enum-renderer-coverage.md unlinks the deleted ThemeProvider.tsx path (read by check-doc-links).

4. Governed text.

  • .claude/skills/objectui-contributor/guides/console-development.md: the paragraph that called MetadataProvider "the one name with two hits" now says the app-shell one is the only one left (check-skills-paths reads the deleted path).
  • skills/objectui/guides/project-setup.md: the provider section and the decision matrix teach SchemaRendererProvider / ThemeProvider (react), MetadataProvider (app-shell) and UploadProvider (providers); the @object-ui/runner section becomes "use objectui dev", since refactor!: retire nine zero-consumer modules, make runner private, take test-only reset helpers off the barrels (objectui#13453, part 1) #13506 made runner a private workspace app.
  • skills/objectui/guides/architecture.md: the integration-package bullets follow the same split and drop runner.
  • skills/objectui/README.md: runner leaves the Integration package list.

Census before deleting (lit controls)

Repository Read at Searched Hits outside packages/providers/src Control
objectui 0063f22 (main) git grep for every removed name and for from '@object-ui/providers' docs and READMEs, the guide files above, and examples/byo-backend-console/src/App.tsx (the only code import) UploadProvider imports from @object-ui/providers lit in the console
objectstack 5874d25 @object-ui/providers none @object-ui/ lit in 150 files
hotcrm a7faf81 @object-ui/providers none @object-ui/ lit in 5 files
cloud, npm dependents n/a NOT MEASURED: not reachable from this session n/a n/a

Changeset

13453-providers-retire-trio.md: @object-ui/providers minor, every removed name listed, with the migration above. Never major, per the version policy.

Verification (local, on this head)

  • type-check (turbo run type-check --continue under the verify lock, filters providers, types, console, the byo example; 39 tasks with dependencies): 39 successful.
  • vitest: packages/providers, p2-spec-exports.test.ts, one-authority-per-exported-name-6273.test.ts, check-skills-paths.test.ts, check-doc-links.test.ts, quick-reference-commands-4149.test.ts, check-skill-examples.test.ts: 7 files, 318 tests passed.
  • gates: check-doc-links, check-changeset-no-major, check-changeset-fixed, and pnpm exec changeset status --since=origin/main all exit 0.
  • Earlier, on the unsplit branch that carried PR 1 plus this diff: whole-package vitest of core, types, providers, collaboration, plugin-detail and react passed (1028 files, 19019 tests).
  • NOT MEASURED locally: check:readme-exports and check:doc-snippets (need every package's dist); CI runs them.

Still on objectstack-ai/objectstack#25921 after this


Generated by Claude Code

… and ThemeProvider trio

The three providers and their hooks duplicated names @object-ui/react and
@object-ui/app-shell publish with different implementations, and nothing
but examples/byo-backend-console read them. That example now takes its
theme and ambient data source from @object-ui/react (ThemeProvider,
SchemaRendererProvider). UploadProvider and the upload adapters stay.
READMEs and docs/ARCHITECTURE.md teach the replacements.

Claude-Session: https://claude.ai/code/session_011yfYeuX2ptMSCcYZiq61tS
Co-authored-by: Claude <noreply@anthropic.com>
…path

check-skills-paths reads this guide and the file it named is gone.

Claude-Session: https://claude.ai/code/session_011yfYeuX2ptMSCcYZiq61tS
Co-authored-by: Claude <noreply@anthropic.com>
…nner

project-setup.md and architecture.md taught the retired providers trio
and `@object-ui/runner` as a published runtime. They now point at
SchemaRendererProvider / ThemeProvider from @object-ui/react,
MetadataProvider from @object-ui/app-shell, UploadProvider for uploads,
and the `objectui dev` CLI for a standalone app.

Claude-Session: https://claude.ai/code/session_011yfYeuX2ptMSCcYZiq61tS
Co-authored-by: Claude <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

✅ Console Performance Budget

Metric Value Budget
Eager closure (gzip, 85 chunks) 3041.0 KB 3496.0 KB
Main entry chunk (gzip) 80.8 KB 350 KB
Entry file index-DjDhRqvY.js —
Status PASS —

The eager closure is every chunk the entry reaches through static imports — what the browser fetches and parses before the app renders. The entry chunk on its own is a small fraction of it.


📦 Bundle Size Report

Package Size Gzipped
app-shell (buildIdentity.js) 0.80KB 0.49KB
app-shell (consoleActionDispatch.js) 0.20KB 0.19KB
app-shell (index.js) 21.52KB 7.93KB
app-shell (runtime-config.js) 24.52KB 8.48KB
app-shell (types.js) 0.01KB 0.04KB
app-shell (urlParams.js) 10.11KB 3.87KB
auth (ActiveOrganizationStorage.js) 27.95KB 10.04KB
auth (AuthContext.js) 0.31KB 0.24KB
auth (AuthGuard.js) 2.07KB 1.00KB
auth (AuthProvider.js) 45.59KB 12.03KB
auth (AuthShell.js) 3.49KB 1.40KB
auth (ForgotPasswordForm.js) 12.21KB 3.45KB
auth (LoginForm.js) 20.67KB 6.12KB
auth (PreviewBanner.js) 0.90KB 0.50KB
auth (RegisterForm.js) 6.72KB 2.24KB
auth (SocialSignInButtons.js) 9.74KB 3.94KB
auth (UserMenu.js) 3.39KB 1.21KB
auth (auth-gate-events.js) 1.62KB 0.83KB
auth (authStyles.js) 5.27KB 1.86KB
auth (createAuthClient.js) 42.84KB 11.66KB
auth (createAuthenticatedFetch.js) 8.54KB 3.46KB
auth (index.js) 3.63KB 1.64KB
auth (invitation-status.js) 1.22KB 0.70KB
auth (org-roles.js) 8.84KB 3.61KB
auth (phone-identifier.js) 1.11KB 0.66KB
auth (types.js) 0.59KB 0.35KB
auth (useAuth.js) 5.30KB 1.02KB
auth (useWorkspaceAdminStatus.js) 11.08KB 4.58KB
collaboration (CommentThread.js) 27.26KB 8.03KB
collaboration (PresenceAvatars.js) 6.28KB 2.60KB
collaboration (PresenceProvider.js) 2.79KB 1.13KB
collaboration (commentAuthorship.js) 1.39KB 0.78KB
collaboration (index.js) 1.83KB 0.82KB
collaboration (useCollaborationTranslation.js) 6.50KB 2.52KB
collaboration (useCommentSearch.js) 1.98KB 0.88KB
collaboration (useConflictResolution.js) 7.75KB 1.86KB
collaboration (useMentionNotifications.js) 1.81KB 0.68KB
collaboration (usePresence.js) 6.33KB 1.84KB
collaboration (useRealtimeSubscription.js) 7.91KB 2.01KB
components (index.js) 617.00KB 150.95KB
core (index.js) 12.04KB 4.65KB
create-plugin (index.js) 27.92KB 9.50KB
data-objectstack (index.js) 257.54KB 72.09KB
fields (index.js) 296.40KB 75.98KB
i18n (LocalizationContext.js) 2.92KB 1.42KB
i18n (builtinAggregateLabels.js) 0.86KB 0.49KB
i18n (currency.js) 2.59KB 1.22KB
i18n (fallbackInterpolation.js) 6.25KB 2.77KB
i18n (i18n.js) 8.87KB 3.64KB
i18n (index.js) 5.52KB 2.39KB
i18n (pickLocalized.js) 9.86KB 3.95KB
i18n (provider.js) 39.35KB 12.88KB
i18n (translateFn.js) 0.20KB 0.18KB
i18n (useDisplayLocale.js) 3.52KB 1.76KB
i18n (useObjectLabel.js) 36.87KB 9.88KB
i18n (useSafeTranslation.js) 7.14KB 2.92KB
layout (index.js) 41.17KB 11.96KB
mobile (MobileProvider.js) 0.92KB 0.49KB
mobile (ResponsiveContainer.js) 0.94KB 0.38KB
mobile (breakpoints.js) 1.51KB 0.70KB
mobile (createOfflineDataSource.js) 5.61KB 1.75KB
mobile (index.js) 1.99KB 0.87KB
mobile (offlineQueue.js) 3.91KB 1.35KB
mobile (pwa.js) 0.97KB 0.49KB
mobile (serviceWorker.js) 1.48KB 0.62KB
mobile (serviceWorkerSource.js) 3.41KB 1.48KB
mobile (useBreakpoint.js) 1.54KB 0.65KB
mobile (useGesture.js) 6.96KB 1.98KB
mobile (useOfflineSync.js) 1.99KB 0.72KB
mobile (usePullToRefresh.js) 6.62KB 2.45KB
mobile (useResponsive.js) 0.72KB 0.42KB
mobile (useSpecGesture.js) 5.52KB 2.10KB
mobile (useTouchTarget.js) 1.01KB 0.54KB
permissions (MePermissionsProvider.js) 15.35KB 5.51KB
permissions (PermissionContext.js) 0.31KB 0.25KB
permissions (PermissionGuard.js) 0.89KB 0.45KB
permissions (PermissionProvider.js) 6.82KB 2.38KB
permissions (ServerReadScope.js) 4.03KB 1.82KB
permissions (discardProofCache.js) 1.04KB 0.55KB
permissions (evaluator.js) 8.33KB 3.07KB
permissions (index.js) 0.99KB 0.43KB
permissions (store.js) 0.91KB 0.42KB
permissions (useFieldPermissions.js) 1.28KB 0.53KB
permissions (usePermissions.js) 4.83KB 2.27KB
plugin-ai (index.js) 16.01KB 3.91KB
plugin-calendar (index.js) 55.31KB 16.16KB
plugin-charts (index.js) 88.30KB 24.33KB
plugin-chatbot (core.js) 5.22KB 2.18KB
plugin-chatbot (index.js) 238.98KB 56.69KB
plugin-dashboard (index.js) 147.15KB 39.95KB
plugin-designer (index.js) 232.83KB 50.01KB
plugin-detail (index.js) 268.82KB 71.52KB
plugin-editor (index.js) 2.21KB 1.04KB
plugin-form (index.js) 185.46KB 48.48KB
plugin-gantt (index.js) 178.95KB 45.22KB
plugin-grid (index.js) 277.83KB 77.44KB
plugin-kanban (index.js) 64.27KB 19.81KB
plugin-list (index.js) 149.51KB 39.15KB
plugin-map (index.js) 27.54KB 9.10KB
plugin-markdown (index.js) 13.79KB 4.79KB
plugin-report (index.js) 46.42KB 13.06KB
plugin-timeline (index.js) 39.74KB 12.00KB
plugin-tree (index.js) 15.25KB 5.38KB
plugin-view (index.js) 93.37KB 24.00KB
providers (UploadProvider.js) 12.07KB 3.68KB
providers (index.js) 0.55KB 0.33KB
react-runtime (index.js) 5.62KB 2.34KB
react (LazyPluginLoader.js) 4.47KB 1.63KB
react (SchemaRenderer.js) 129.13KB 42.23KB
react (data-invalidation.js) 5.05KB 2.08KB
react (index.js) 4.71KB 2.11KB
react (schema-input.js) 4.31KB 2.07KB
react (spec-input.js) 0.20KB 0.18KB
sdui-parser (body-dialect.js) 4.50KB 1.99KB
sdui-parser (codegen.js) 9.45KB 3.76KB
sdui-parser (dashboard-widget-options.js) 3.07KB 1.30KB
sdui-parser (index.js) 7.30KB 3.12KB
sdui-parser (input-type.js) 2.84KB 1.40KB
sdui-parser (parse.js) 25.28KB 7.81KB
sdui-parser (provenance.js) 3.84KB 1.90KB
sdui-parser (types.js) 0.29KB 0.24KB
sdui-parser (validate.js) 23.87KB 7.83KB
types (ai.js) 4.39KB 2.17KB
types (api-types.js) 0.20KB 0.18KB
types (app.js) 4.12KB 1.61KB
types (authoring-nodes.js) 0.20KB 0.19KB
types (base.js) 0.20KB 0.18KB
types (blocks.js) 0.20KB 0.18KB
types (cloud.js) 0.20KB 0.18KB
types (complex.js) 4.44KB 2.07KB
types (crud.js) 0.20KB 0.18KB
types (dashboard-filter-alias.js) 6.23KB 2.74KB
types (dashboard-widget-layout.js) 2.06KB 0.96KB
types (data-display.js) 3.75KB 1.85KB
types (data-protocol.js) 0.20KB 0.19KB
types (data.js) 0.20KB 0.18KB
types (designer.js) 1.85KB 0.85KB
types (disclosure.js) 0.20KB 0.18KB
types (error-code.js) 1.54KB 0.88KB
types (expression.js) 0.20KB 0.18KB
types (feedback.js) 0.20KB 0.18KB
types (field-types.js) 1.13KB 0.65KB
types (form.js) 0.20KB 0.18KB
types (http-inflight.js) 8.87KB 3.73KB
types (http-retry.js) 4.32KB 2.02KB
types (icon-key-migration.js) 4.26KB 1.63KB
types (index.js) 5.89KB 2.75KB
types (layout.js) 0.20KB 0.18KB
types (managed-by.js) 0.19KB 0.18KB
types (mobile.js) 5.00KB 2.39KB
types (navigation.js) 0.20KB 0.18KB
types (node-slots.js) 7.18KB 2.34KB
types (objectql.js) 0.20KB 0.18KB
types (overlay.js) 0.20KB 0.18KB
types (permissions.js) 2.52KB 1.31KB
types (plugin-scope.js) 0.20KB 0.18KB
types (product-blocks.js) 0.20KB 0.19KB
types (record-approval-decision.js) 0.20KB 0.20KB
types (record-components.js) 0.20KB 0.19KB
types (record-panels.js) 0.20KB 0.19KB
types (record-semantics.js) 1.28KB 0.67KB
types (registry.js) 0.20KB 0.18KB
types (reports.js) 0.20KB 0.18KB
types (select-option.js) 0.20KB 0.19KB
types (spec-report.js) 4.99KB 1.96KB
types (spec-ui-namespace.js) 0.20KB 0.19KB
types (strict-authoring-face.js) 19.93KB 7.26KB
types (system-fields.js) 3.33KB 1.54KB
types (theme.js) 6.24KB 2.87KB
types (ui-action.js) 8.48KB 3.50KB
types (views.js) 0.20KB 0.18KB
types (widget.js) 0.20KB 0.18KB

Size Limits

  • ✅ Core packages should be < 50KB gzipped
  • ✅ Component packages should be < 100KB gzipped
  • ⚠️ Plugin packages should be < 150KB gzipped

@objectstack-fleet

Copy link
Copy Markdown
Contributor Author

席位核对 — ACCEPT (Tier H, awaits GOVERNED_APPROVERS) · PR #13507 @ e3adee6f73392f464ee0b8d57b58edbed3079987 · domain:ui#4 · 2026-10-25T06:41Z

Reviewer of record: session_01XWGTsmqrtrt1Zqh1ioWqsT (seat 4). Implemented-by: session_011yfYeuX2ptMSCcYZiq61tS on claude/project-thread-u9kgfd. Card objectui#13453, claim 6393574403, amendment 2 6393918010 (PR 2 of 2). PR 1 (#13506) merged.

  1. Shape: draft, base main at 0063f22, Part of objectstack-ai/objectstack#25921. 24 files (+144 −593):
    • The providers trio, its types and its two parity tests are deleted. UploadProvider / useUpload / createObjectStackUploadAdapter stay.
    • The byo example now uses SchemaRendererProvider + ThemeProvider from @object-ui/react. The prop renames (defaultTheme → defaultMode + persist, dataSource kept) match react's providers.
    • types/src/theme.ts and the 6273 collision note have comment-only follow-ons.
    • README, docs/ARCHITECTURE.md and the audit doc are updated.
    • One minor changeset for @object-ui/providers names every removed export.
  2. Governed surface (why Tier H):
    • The .claude/skills/objectui-contributor/guides/console-development.md paragraph now says app-shell's MetadataProvider is the only one left. It must change: otherwise check-skills-paths goes red on the deleted file.
    • In skills/objectui/guides/project-setup.md, the provider stack points at the packages that own each provider (SchemaRendererProvider / ThemeProvider from react, MetadataProvider from app-shell, UploadProvider from providers).
    • skills/objectui/guides/architecture.md and skills/objectui/README.md drop runner, which refactor!: retire nine zero-consumer modules, make runner private, take test-only reset helpers off the barrels (objectui#13453, part 1) #13506 made private. The standalone path now names the objectui CLI.
    • The seat read each sentence against the code on main, and each matches.
  3. Gates on this head: 35 check-runs success, 3 skipped; mergeable_state: clean. That includes the 16 test shards, Type Check, Lint, Repo Gates, both lockfile checks and the changeset family. The Governed Surface Queue Guard's pull_request leg is green by design (it warns, it does not block).
  4. Contract face: Clause-② no / Metadata-protocol none. Removing published exports breaks external npm consumers, so the changeset is minor with a migration line, per policy. The census with positive controls finds no code reader in objectui, objectstack or hotcrm; cloud and npm dependents are NOT MEASURED.
  5. Seat opinion (the body's 席位意见 line): recommend approve. The three names collide with the react / app-shell providers the console actually mounts, and the published skill taught agents to import the unused copies. Rollback is one revert.
  6. Landing: ⛔ the seat does not mark it ready or enqueue it until an APPROVED review from os-zhuang or hotlong is on the PR. After that, the seat lands it (pr_ready + automerge_enable) and closes out the card's claim.

Generated by Claude Code

@os-zhuang
os-zhuang marked this pull request as ready for review October 25, 2026 12:57
@os-zhuang
os-zhuang enabled auto-merge October 25, 2026 12:57
@github-actions

Copy link
Copy Markdown
Contributor

✅ Console Performance Budget

Metric Value Budget
Eager closure (gzip, 85 chunks) 3041.6 KB 3496.0 KB
Main entry chunk (gzip) 80.8 KB 350 KB
Entry file index-CoItX8h5.js —
Status PASS —

The eager closure is every chunk the entry reaches through static imports — what the browser fetches and parses before the app renders. The entry chunk on its own is a small fraction of it.


📦 Bundle Size Report

Package Size Gzipped
app-shell (buildIdentity.js) 0.80KB 0.49KB
app-shell (consoleActionDispatch.js) 0.20KB 0.19KB
app-shell (index.js) 21.52KB 7.93KB
app-shell (runtime-config.js) 24.52KB 8.48KB
app-shell (types.js) 0.01KB 0.04KB
app-shell (urlParams.js) 10.11KB 3.87KB
auth (ActiveOrganizationStorage.js) 27.95KB 10.04KB
auth (AuthContext.js) 0.31KB 0.24KB
auth (AuthGuard.js) 2.07KB 1.00KB
auth (AuthProvider.js) 45.59KB 12.03KB
auth (AuthShell.js) 3.49KB 1.40KB
auth (ForgotPasswordForm.js) 12.21KB 3.45KB
auth (LoginForm.js) 20.67KB 6.12KB
auth (PreviewBanner.js) 0.90KB 0.50KB
auth (RegisterForm.js) 6.72KB 2.24KB
auth (SocialSignInButtons.js) 9.74KB 3.94KB
auth (UserMenu.js) 3.39KB 1.21KB
auth (auth-gate-events.js) 1.62KB 0.83KB
auth (authStyles.js) 5.27KB 1.86KB
auth (createAuthClient.js) 42.84KB 11.66KB
auth (createAuthenticatedFetch.js) 8.54KB 3.46KB
auth (index.js) 3.63KB 1.64KB
auth (invitation-status.js) 1.22KB 0.70KB
auth (org-roles.js) 8.84KB 3.61KB
auth (phone-identifier.js) 1.11KB 0.66KB
auth (types.js) 0.59KB 0.35KB
auth (useAuth.js) 5.30KB 1.02KB
auth (useWorkspaceAdminStatus.js) 11.08KB 4.58KB
collaboration (CommentThread.js) 27.26KB 8.03KB
collaboration (PresenceAvatars.js) 6.28KB 2.60KB
collaboration (PresenceProvider.js) 2.79KB 1.13KB
collaboration (commentAuthorship.js) 1.39KB 0.78KB
collaboration (index.js) 1.83KB 0.82KB
collaboration (useCollaborationTranslation.js) 6.50KB 2.52KB
collaboration (useCommentSearch.js) 1.98KB 0.88KB
collaboration (useConflictResolution.js) 7.75KB 1.86KB
collaboration (useMentionNotifications.js) 1.81KB 0.68KB
collaboration (usePresence.js) 6.33KB 1.84KB
collaboration (useRealtimeSubscription.js) 7.91KB 2.01KB
components (index.js) 617.02KB 150.95KB
core (index.js) 12.04KB 4.65KB
create-plugin (index.js) 27.92KB 9.50KB
data-objectstack (index.js) 257.54KB 72.09KB
fields (index.js) 296.40KB 75.98KB
i18n (LocalizationContext.js) 2.92KB 1.42KB
i18n (builtinAggregateLabels.js) 0.86KB 0.49KB
i18n (currency.js) 2.59KB 1.22KB
i18n (fallbackInterpolation.js) 6.25KB 2.77KB
i18n (i18n.js) 8.87KB 3.64KB
i18n (index.js) 5.52KB 2.39KB
i18n (pickLocalized.js) 9.86KB 3.95KB
i18n (provider.js) 39.35KB 12.88KB
i18n (translateFn.js) 0.20KB 0.18KB
i18n (useDisplayLocale.js) 3.52KB 1.76KB
i18n (useObjectLabel.js) 36.87KB 9.88KB
i18n (useSafeTranslation.js) 7.14KB 2.92KB
layout (index.js) 41.17KB 11.96KB
mobile (MobileProvider.js) 0.92KB 0.49KB
mobile (ResponsiveContainer.js) 0.94KB 0.38KB
mobile (breakpoints.js) 1.51KB 0.70KB
mobile (createOfflineDataSource.js) 5.61KB 1.75KB
mobile (index.js) 1.99KB 0.87KB
mobile (offlineQueue.js) 3.91KB 1.35KB
mobile (pwa.js) 0.97KB 0.49KB
mobile (serviceWorker.js) 1.48KB 0.62KB
mobile (serviceWorkerSource.js) 3.41KB 1.48KB
mobile (useBreakpoint.js) 1.54KB 0.65KB
mobile (useGesture.js) 6.96KB 1.98KB
mobile (useOfflineSync.js) 1.99KB 0.72KB
mobile (usePullToRefresh.js) 6.62KB 2.45KB
mobile (useResponsive.js) 0.72KB 0.42KB
mobile (useSpecGesture.js) 5.52KB 2.10KB
mobile (useTouchTarget.js) 1.01KB 0.54KB
permissions (MePermissionsProvider.js) 15.35KB 5.51KB
permissions (PermissionContext.js) 0.31KB 0.25KB
permissions (PermissionGuard.js) 0.89KB 0.45KB
permissions (PermissionProvider.js) 6.82KB 2.38KB
permissions (ServerReadScope.js) 4.03KB 1.82KB
permissions (discardProofCache.js) 1.04KB 0.55KB
permissions (evaluator.js) 8.33KB 3.07KB
permissions (index.js) 0.99KB 0.43KB
permissions (store.js) 0.91KB 0.42KB
permissions (useFieldPermissions.js) 1.28KB 0.53KB
permissions (usePermissions.js) 4.83KB 2.27KB
plugin-ai (index.js) 16.01KB 3.91KB
plugin-calendar (index.js) 55.31KB 16.16KB
plugin-charts (index.js) 88.30KB 24.33KB
plugin-chatbot (core.js) 5.22KB 2.18KB
plugin-chatbot (index.js) 239.34KB 56.78KB
plugin-dashboard (index.js) 147.15KB 39.95KB
plugin-designer (index.js) 232.83KB 50.01KB
plugin-detail (index.js) 268.82KB 71.52KB
plugin-editor (index.js) 2.21KB 1.04KB
plugin-form (index.js) 185.46KB 48.48KB
plugin-gantt (index.js) 178.95KB 45.22KB
plugin-grid (index.js) 277.83KB 77.44KB
plugin-kanban (index.js) 64.27KB 19.81KB
plugin-list (index.js) 149.51KB 39.15KB
plugin-map (index.js) 27.54KB 9.10KB
plugin-markdown (index.js) 13.79KB 4.79KB
plugin-report (index.js) 46.43KB 13.07KB
plugin-timeline (index.js) 39.74KB 12.00KB
plugin-tree (index.js) 15.25KB 5.38KB
plugin-view (index.js) 93.37KB 24.00KB
providers (UploadProvider.js) 12.07KB 3.68KB
providers (index.js) 0.55KB 0.33KB
react-runtime (index.js) 5.62KB 2.34KB
react (LazyPluginLoader.js) 4.47KB 1.63KB
react (SchemaRenderer.js) 129.13KB 42.23KB
react (data-invalidation.js) 5.05KB 2.08KB
react (index.js) 4.71KB 2.11KB
react (schema-input.js) 4.31KB 2.07KB
react (spec-input.js) 0.20KB 0.18KB
sdui-parser (body-dialect.js) 4.50KB 1.99KB
sdui-parser (codegen.js) 9.45KB 3.76KB
sdui-parser (dashboard-widget-options.js) 3.07KB 1.30KB
sdui-parser (index.js) 7.30KB 3.12KB
sdui-parser (input-type.js) 2.84KB 1.40KB
sdui-parser (parse.js) 25.28KB 7.81KB
sdui-parser (provenance.js) 3.84KB 1.90KB
sdui-parser (types.js) 0.29KB 0.24KB
sdui-parser (validate.js) 23.87KB 7.83KB
types (ai.js) 4.39KB 2.17KB
types (api-types.js) 0.20KB 0.18KB
types (app.js) 4.12KB 1.61KB
types (authoring-nodes.js) 0.20KB 0.19KB
types (base.js) 0.20KB 0.18KB
types (blocks.js) 0.20KB 0.18KB
types (cloud.js) 0.20KB 0.18KB
types (complex.js) 4.44KB 2.07KB
types (crud.js) 0.20KB 0.18KB
types (dashboard-filter-alias.js) 6.23KB 2.74KB
types (dashboard-widget-layout.js) 2.06KB 0.96KB
types (data-display.js) 3.75KB 1.85KB
types (data-protocol.js) 0.20KB 0.19KB
types (data.js) 0.20KB 0.18KB
types (designer.js) 1.85KB 0.85KB
types (disclosure.js) 0.20KB 0.18KB
types (error-code.js) 1.54KB 0.88KB
types (expression.js) 0.20KB 0.18KB
types (feedback.js) 0.20KB 0.18KB
types (field-types.js) 1.13KB 0.65KB
types (form.js) 0.20KB 0.18KB
types (http-inflight.js) 8.87KB 3.73KB
types (http-retry.js) 4.32KB 2.02KB
types (icon-key-migration.js) 4.26KB 1.63KB
types (index.js) 5.89KB 2.75KB
types (layout.js) 0.20KB 0.18KB
types (managed-by.js) 0.19KB 0.18KB
types (mobile.js) 5.00KB 2.39KB
types (navigation.js) 0.20KB 0.18KB
types (node-slots.js) 7.18KB 2.34KB
types (objectql.js) 0.20KB 0.18KB
types (overlay.js) 0.20KB 0.18KB
types (permissions.js) 2.52KB 1.31KB
types (plugin-scope.js) 0.20KB 0.18KB
types (product-blocks.js) 0.20KB 0.19KB
types (record-approval-decision.js) 0.20KB 0.20KB
types (record-components.js) 0.20KB 0.19KB
types (record-panels.js) 0.20KB 0.19KB
types (record-semantics.js) 1.28KB 0.67KB
types (registry.js) 0.20KB 0.18KB
types (reports.js) 0.20KB 0.18KB
types (select-option.js) 0.20KB 0.19KB
types (spec-report.js) 4.99KB 1.96KB
types (spec-ui-namespace.js) 0.20KB 0.19KB
types (strict-authoring-face.js) 19.93KB 7.26KB
types (system-fields.js) 3.33KB 1.54KB
types (theme.js) 6.24KB 2.87KB
types (ui-action.js) 8.48KB 3.50KB
types (views.js) 0.20KB 0.18KB
types (widget.js) 0.20KB 0.18KB

Size Limits

  • ✅ Core packages should be < 50KB gzipped
  • ✅ Component packages should be < 100KB gzipped
  • ⚠️ Plugin packages should be < 150KB gzipped

@os-zhuang
os-zhuang added this pull request to the merge queue Oct 25, 2026
Merged via the queue into main with commit 699156a Oct 25, 2026
38 checks passed
@os-zhuang
os-zhuang deleted the claude/project-thread-u9kgfd branch October 25, 2026 13:24
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants