Skip to content

feat(types)!: drop the Cloud namespace re-export from the root entry (objectui#8225) - #8360

Merged
hotlong merged 2 commits into
mainfrom
claude/issue-8225-drop-cloud-namespace-reexport
Sep 7, 2026
Merged

hotlong merged 2 commits into
mainfrom
claude/issue-8225-drop-cloud-namespace-reexport

Conversation

@hotlong

@hotlong hotlong commented Sep 7, 2026

Copy link
Copy Markdown
Contributor

Fixes #8225

Step 2 of 3 of the objectstack#16325 ruling (director batch #62, 2026-09-07, option B — maintainer verbatim, not translated: 「我一直觉得 cloud 的协议应该放在云端,没必要开源」): the cloud control-plane contracts leave @objectstack/spec, and the spec's ./cloud subpath is deleted upstream once cloud and objectui stop importing it. Step 1 (objectstack-ai/cloud#2037) merged 2026-09-07T08:19Z; step 3 is objectstack#16325 itself and waits on this PR. Part of objectstack#16325.

What changed

  • packages/types/src/index.ts: export type * as Cloud from '@objectstack/spec/cloud' is removed — the only real import of that subpath in this repository. The gap in the namespace family (14 re-exports remain of 15) is marked in place with a comment so the next reader sees it as deliberate.
  • .changeset/8225-drop-cloud-namespace-reexport.md: @object-ui/types minor with the break spelled out (this repo never declares major — AGENTS.md 版本号策略). No alias and no deprecation window (maintainer 2026-08-27, verbatim: 「项目在创业阶段,用户也很少,短期不考虑渐进。」).

Clause-② yes (a published type namespace is removed) — needs:contract-review is on this PR. No runtime behaviour changes; the emitted JavaScript is identical.

Premise re-check on the tree I got (origin/main = 289d14687, the branch base)

PM assumption Measured
A. one line, locate by content line 1120, single occurrence (the card's :1106 and the comment's :1116 were both stale)
B. zero consumers, with a firing control Cloud. member access: 0 hits over 4106 tracked ts/tsx files under packages/** + apps/** (PCRE). Bare Cloud identifier outside the declaring file: only lucide-react's Cloud icon, i18n strings, comments and data-objectstack's unrelated Cloud* pin — nothing from @object-ui/types. Control: the same regex fires on the consumed siblings UI. (1 file) and Data. (4) and on a synthetic Cloud.PackageManifest line (1). ⚠️ The inherited control (15 export lines in the file) does not exercise the regex, and on this macOS host git grep -E has no \b at all (BSD regex): it returned 0 for every sibling too, so the census was redone with -P.
C. family of 15 15 before, 14 after. No test or comment asserts the family's completeness (the sibling subpaths appear in __tests__/scripts only as direct spec imports in parity tests; nothing enumerates the block).
D. other mentions are comments True, and there are more than the three named: packages/auth/README.md:220, packages/auth/src/createAuthenticatedFetch.ts:106, scripts/check-eager-closure-budget.mjs:109, two test-fixture strings, one pending changeset — all prose, none an import. Untouched.
hotcrm (named in the card body) objectstack-ai/hotcrm package.json carries no @object-ui/* dependency; code search for @object-ui/types in that repo: 0 (channel control: objectstack → 591 hits). No consumer there either.
star re-exports of @object-ui/types in other packages (surface inheritance) 0

The "surface pin regenerated with the repo tooling" acceptance item

There is no such pin for @object-ui/types. Searched: no api-extractor report; docs:api (typedoc) writes to an untracked docs/api/ (only content/docs/api/*.md is tracked, and it does not mention Cloud); packages/types/README.md names no namespace; no test snapshots the root entry's export list. The nearest mechanisms are check:dist-completeness (runs inside the package build, green below) and check:readme-exports (see the gate table). A stated absence, not an invented regeneration.

Verification (final commit bdbdebf81; the tree at every run below equals it)

Declared narrowing — verification ran UNLOCKED. scripts/pm/os-verify-lock.sh
could not take the shared verify lock on this host: no usable flock. The shared
verify lock is declared Linux-only (flock is util-linux, and a stock macOS does
not ship it), so the command below was run directly, without the lock —
a declared narrowing, not a silent one. No serialization guarantee held for this
run, nor for any sibling agent in this container while it ran.

cd /Users/zhuangjianguo/Documents/GitHub/objectui-issue-8225 && NODE_OPTIONS=--max-old-space-size=4096 pnpm --filter @object-ui/types build

(The same disclosure applies to the type-check, vitest and reverse-verification runs below — every one went through that entry point and got the same UNLOCKED (declared) verdict.)

Gate Verdict
pnpm --filter @object-ui/types build (tsc + check-dist-completeness) VERDICT command-exit 0 · UNLOCKED (declared) · 7s shared-box
pnpm --filter @object-ui/types type-check (src + examples + tests tsconfigs) VERDICT command-exit 0 · UNLOCKED (declared) · 15s shared-box
pnpm exec vitest run packages/types/ (repo root) Test Files 1 failed, 140 passed (141). The one red is handler-keys-string-any-mirrors-7344.test.ts, a host false-red: its anchors shell out to git grep -E with \b, which Apple Git 2.50.1's BSD regex does not support (-E → 0 files, -P → 97 files for the same .actions anchor; 0 vs 15 for the AppComponentSchema import anchor). The file is byte-identical to origin/main and reads nothing this PR touches; CI runs on Linux. Filed separately as a finding.
pnpm --filter @object-ui/types lint exit 0 (pre-existing no-explicit-any warnings only)
node scripts/check-changeset-presence.mjs ✅ 1 source file of 1 released package changed, 1 changeset declared
node scripts/check-changeset-fixed.mjs · check-changeset-no-major.mjs ✅ · ✅
node scripts/check-spec-symbol-derivation.mjs ✅ 1353 files scanned against 5050 spec export names
node scripts/check-control-bytes.mjs ✅ 6641 tracked text files
node scripts/check-governed-queue-guard.mjs --test on both paths NOT GOVERNED
node scripts/check-readme-exports.mjs NOT MEASURED locally: "the population COLLAPSED — this run proves nothing" (35 of 40 packages unbuilt in this worktree, floor 25). Narrowing evidence: packages/types/README.md has 7 self-import bindings and 0 mention Cloud, so this diff cannot move its verdict; CI builds first.
downstream consumer type-check (pnpm --filter '...@object-ui/types' type-check, i.e. the whole repo) Declared narrowing, not run locally: a type-only namespace removal can only red a consumer that names Cloud from @object-ui/types, and that census is 0 with a firing control (table above). CI's type-check job runs the farm.

Reverse verification (two legs, run after the commit; restore proven by blob hash and an empty git diff HEAD)

A scratch consumer outside the tree imports Cloud and System from the rebuilt packages/types/dist/index.d.ts:

  • leg 1, source restored to the base blob b92fa6959: dist has as Cloud 1 → probe exit 0 (so Cloud.PackageManifest was a real member, and the probe reads the rebuilt d.ts rather than a cache)
  • leg 2, source at the HEAD blob 06d971e8b: dist has as Cloud 0 → probe exit 2 with exactly TS2305: Module '"@object-ui/types"' has no exported member 'Cloud'; 0 errors mention System (control)

Direction: turned red, as expected.

Not in this PR

  • objectstack#16325 step 3 (deleting the subpath upstream) and the notification on landing belong to the PM's chain.
  • objectui#7635 is in flight on packages/types/**; its declared sites are disjoint from this one line (measured in the PM claim), and nothing beyond packages/types/src/index.ts was touched inside packages/types/.

Generated by Claude Code

…y (objectui#8225)

`@object-ui/types` re-exported the whole `@objectstack/spec/cloud` subpath as
the `Cloud` type namespace. The objectstack#16325 ruling (director batch #62,
option B) takes the cloud control-plane contracts out of `@objectstack/spec`,
and the spec's `./cloud` subpath is deleted upstream once cloud and objectui
stop importing it. This is step 2 of 3: the single import in this repository.

- `packages/types/src/index.ts`: the `export type * as Cloud` line is removed
  and the gap in the 15-line namespace family is marked in place so it reads
  as deliberate (14 re-exports remain)
- changeset (`@object-ui/types` minor, breaking spelled out): the `Cloud`
  namespace is gone, no alias and no deprecation window
- measured at `289d14687`: 0 `Cloud.` member accesses and 0 named `Cloud`
  imports from `@object-ui/types` across 4106 tracked ts/tsx files under
  `packages/**` and `apps/**` (PCRE census; the same regex fires on the
  consumed siblings `UI.` and `Data.`), 0 star re-exports of `@object-ui/types`
  in other packages, and 0 imports of the spec's cloud subpath outside that line
@github-actions

github-actions Bot commented Sep 7, 2026

Copy link
Copy Markdown
Contributor

✅ Console Performance Budget

Metric Value Budget
Eager closure (gzip, 50 chunks) 3472.2 KB 3512.7 KB
Main entry chunk (gzip) 143.9 KB 350 KB
Entry file index-AHEZfBfj.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 (consoleActionDispatch.js) 0.20KB 0.19KB
app-shell (index.js) 15.67KB 5.75KB
app-shell (runtime-config.js) 20.68KB 7.36KB
app-shell (types.js) 0.01KB 0.04KB
app-shell (urlParams.js) 10.06KB 3.86KB
auth (ActiveOrganizationStorage.js) 25.05KB 9.16KB
auth (AuthContext.js) 0.31KB 0.24KB
auth (AuthGuard.js) 2.07KB 1.00KB
auth (AuthProvider.js) 40.18KB 10.59KB
auth (AuthShell.js) 3.49KB 1.40KB
auth (ForgotPasswordForm.js) 12.21KB 3.45KB
auth (LoginForm.js) 18.15KB 5.39KB
auth (PreviewBanner.js) 0.90KB 0.50KB
auth (RegisterForm.js) 6.65KB 2.22KB
auth (SocialSignInButtons.js) 9.61KB 3.89KB
auth (UserMenu.js) 3.41KB 1.23KB
auth (auth-gate-events.js) 1.29KB 0.66KB
auth (authStyles.js) 5.04KB 1.72KB
auth (createAuthClient.js) 40.21KB 10.80KB
auth (createAuthenticatedFetch.js) 8.46KB 3.43KB
auth (index.js) 3.19KB 1.44KB
auth (invitation-status.js) 1.22KB 0.70KB
auth (org-roles.js) 6.66KB 2.78KB
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) 5.13KB 2.35KB
collaboration (CommentThread.js) 26.08KB 7.56KB
collaboration (LiveCursors.js) 3.17KB 1.27KB
collaboration (PresenceAvatars.js) 6.49KB 2.64KB
collaboration (PresenceProvider.js) 2.79KB 1.13KB
collaboration (index.js) 1.68KB 0.73KB
collaboration (useCollaborationTranslation.js) 6.05KB 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) 498.55KB 114.03KB
core (index.js) 7.48KB 2.96KB
create-plugin (index.js) 10.08KB 3.26KB
data-objectstack (index.js) 189.15KB 52.56KB
fields (index.js) 243.15KB 61.40KB
i18n (LocalizationContext.js) 1.76KB 0.96KB
i18n (builtinAggregateLabels.js) 0.86KB 0.49KB
i18n (currency.js) 1.22KB 0.64KB
i18n (fallbackInterpolation.js) 6.25KB 2.77KB
i18n (i18n.js) 6.57KB 2.76KB
i18n (index.js) 3.65KB 1.47KB
i18n (pickLocalized.js) 7.62KB 3.26KB
i18n (provider.js) 26.89KB 9.04KB
i18n (useDisplayLocale.js) 2.85KB 1.45KB
i18n (useObjectLabel.js) 34.34KB 9.17KB
i18n (useSafeTranslation.js) 5.60KB 2.33KB
layout (index.js) 38.84KB 10.94KB
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) 2.53KB 0.85KB
mobile (useResponsive.js) 0.72KB 0.42KB
mobile (useSpecGesture.js) 4.39KB 1.66KB
mobile (useTouchTarget.js) 1.01KB 0.54KB
permissions (MePermissionsProvider.js) 11.71KB 4.29KB
permissions (PermissionContext.js) 0.31KB 0.25KB
permissions (PermissionGuard.js) 0.89KB 0.45KB
permissions (PermissionProvider.js) 6.24KB 2.16KB
permissions (discardProofCache.js) 1.04KB 0.55KB
permissions (evaluator.js) 5.12KB 1.74KB
permissions (index.js) 0.93KB 0.41KB
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) 15.16KB 3.68KB
plugin-calendar (index.js) 49.00KB 13.91KB
plugin-charts (index.js) 71.39KB 19.92KB
plugin-chatbot (index.js) 193.79KB 46.09KB
plugin-dashboard (index.js) 131.48KB 34.45KB
plugin-designer (index.js) 213.21KB 43.63KB
plugin-detail (index.js) 248.65KB 63.91KB
plugin-editor (index.js) 2.23KB 1.05KB
plugin-form (index.js) 131.01KB 32.32KB
plugin-gantt (index.js) 167.16KB 40.99KB
plugin-grid (index.js) 208.58KB 56.63KB
plugin-kanban (index.js) 55.38KB 15.72KB
plugin-list (index.js) 113.38KB 27.73KB
plugin-map (index.js) 20.49KB 6.83KB
plugin-markdown (index.js) 13.88KB 4.80KB
plugin-report (index.js) 43.42KB 11.92KB
plugin-timeline (index.js) 30.10KB 8.74KB
plugin-tree (index.js) 9.33KB 3.25KB
plugin-view (index.js) 84.46KB 20.80KB
providers (DataSourceProvider.js) 0.75KB 0.39KB
providers (MetadataProvider.js) 1.37KB 0.59KB
providers (ThemeProvider.js) 1.90KB 0.85KB
providers (UploadProvider.js) 11.66KB 3.50KB
providers (index.js) 0.45KB 0.23KB
providers (types.js) 0.01KB 0.04KB
react-runtime (index.js) 5.62KB 2.34KB
react (LazyPluginLoader.js) 4.47KB 1.63KB
react (SchemaRenderer.js) 81.07KB 26.86KB
react (data-invalidation.js) 5.05KB 2.08KB
react (index.js) 4.63KB 2.18KB
react (schema-input.js) 2.32KB 1.24KB
react (spec-input.js) 0.20KB 0.18KB
sdui-parser (codegen.js) 6.58KB 2.74KB
sdui-parser (dashboard-widget-options.js) 3.08KB 1.30KB
sdui-parser (index.js) 5.55KB 2.45KB
sdui-parser (input-type.js) 2.84KB 1.40KB
sdui-parser (parse.js) 20.57KB 5.88KB
sdui-parser (provenance.js) 3.66KB 1.82KB
sdui-parser (types.js) 0.28KB 0.23KB
sdui-parser (validate.js) 13.64KB 4.59KB
types (ai.js) 0.20KB 0.17KB
types (api-types.js) 0.20KB 0.18KB
types (app.js) 2.87KB 1.00KB
types (base.js) 0.20KB 0.18KB
types (blocks.js) 0.20KB 0.18KB
types (complex.js) 2.93KB 1.49KB
types (crud.js) 0.20KB 0.18KB
types (dashboard-filter-alias.js) 6.23KB 2.74KB
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) 0.20KB 0.18KB
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) 4.74KB 2.25KB
types (layout.js) 0.20KB 0.18KB
types (managed-by.js) 0.19KB 0.18KB
types (mobile.js) 4.73KB 2.28KB
types (navigation.js) 0.20KB 0.18KB
types (objectql.js) 0.20KB 0.18KB
types (overlay.js) 0.20KB 0.18KB
types (permissions.js) 0.20KB 0.18KB
types (plugin-scope.js) 0.20KB 0.18KB
types (record-components.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) 5.05KB 1.93KB
types (spec-ui-namespace.js) 0.20KB 0.19KB
types (system-fields.js) 3.33KB 1.54KB
types (theme.js) 6.28KB 2.87KB
types (ui-action.js) 8.11KB 3.32KB
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

…d` literal left the tree (objectui#8225)

`scripts/__tests__/vite-objectstack-spec-dist.test.ts` guards
`collectSpecSpecifiers()` — the distinct set of `@objectstack/spec[/subpath]`
literals under packages/apps/examples — with an anti-vacuity floor of 17.
Dropping the `Cloud` namespace re-export removed the repository's only
`'@objectstack/spec/cloud'` literal in that scanned tree, so the distinct
count is 16 and the floor red on CI shard 1/4:
`expected 16 to be greater than or equal to 17`.

- floor 17 -> 16; the comment now names objectui#8225, the removed `/cloud`
  subpath and the objectstack#16325 chain, so a shrunken floor reads as
  deliberate rather than as a silently emptier scan
- changeset: the census control clause cited the wrong-shape control (15
  namespace re-export lines, which never exercise the pattern under test);
  it now cites the firing control that the PR body and report carry (the
  same PCRE pattern hits the consumed siblings `UI.` and `Data.`)
@github-actions github-actions Bot added the tests label Sep 7, 2026
@hotlong

hotlong commented Sep 7, 2026

Copy link
Copy Markdown
Contributor Author

Patch round 1 (contract-review FAIL on one defect) pushed as 21b1bf51f; base commit bdbdebf81 untouched, no rebase, no force.

  • scripts/__tests__/vite-objectstack-spec-dist.test.ts: the anti-vacuity floor on collectSpecSpecifiers() is re-pinned 17 → 16 and its comment now names objectui#8225, the removed /cloud subpath and the objectstack#16325 chain, so the shrunken floor reads as deliberate. Local red → green on the same file (expected 16 to be greater than or equal to 17 before the edit; Tests 33 passed (33) after), type-check:scripts exit 0, lint:root 0 errors.
  • .changeset/8225-drop-cloud-namespace-reexport.md: the census control clause no longer cites the wrong-shape control (15 namespace re-export lines); it cites the firing control the PR body carries (the same PCRE pattern hits the consumed siblings UI. and Data.).

Sweep of every other counter of @objectstack/spec specifiers (the class that bit this PR, and the class step 3 of objectstack#16325 will hit when the subpath is deleted upstream) is in the patch report on the issue. The Run built-artifact pins (dist project) step skipped on the previous head is confirmed there from this head's CI, not assumed.


Generated by Claude Code

@github-actions

github-actions Bot commented Sep 7, 2026

Copy link
Copy Markdown
Contributor

✅ Console Performance Budget

Metric Value Budget
Eager closure (gzip, 50 chunks) 3472.4 KB 3512.7 KB
Main entry chunk (gzip) 143.9 KB 350 KB
Entry file index-BqSg3AyZ.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 (consoleActionDispatch.js) 0.20KB 0.19KB
app-shell (index.js) 15.67KB 5.75KB
app-shell (runtime-config.js) 20.68KB 7.36KB
app-shell (types.js) 0.01KB 0.04KB
app-shell (urlParams.js) 10.06KB 3.86KB
auth (ActiveOrganizationStorage.js) 25.05KB 9.16KB
auth (AuthContext.js) 0.31KB 0.24KB
auth (AuthGuard.js) 2.07KB 1.00KB
auth (AuthProvider.js) 40.18KB 10.59KB
auth (AuthShell.js) 3.49KB 1.40KB
auth (ForgotPasswordForm.js) 12.21KB 3.45KB
auth (LoginForm.js) 18.15KB 5.39KB
auth (PreviewBanner.js) 0.90KB 0.50KB
auth (RegisterForm.js) 6.65KB 2.22KB
auth (SocialSignInButtons.js) 9.61KB 3.89KB
auth (UserMenu.js) 3.41KB 1.23KB
auth (auth-gate-events.js) 1.29KB 0.66KB
auth (authStyles.js) 5.04KB 1.72KB
auth (createAuthClient.js) 40.21KB 10.80KB
auth (createAuthenticatedFetch.js) 8.46KB 3.43KB
auth (index.js) 3.19KB 1.44KB
auth (invitation-status.js) 1.22KB 0.70KB
auth (org-roles.js) 6.66KB 2.78KB
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) 5.13KB 2.35KB
collaboration (CommentThread.js) 26.08KB 7.56KB
collaboration (LiveCursors.js) 3.17KB 1.27KB
collaboration (PresenceAvatars.js) 6.49KB 2.64KB
collaboration (PresenceProvider.js) 2.79KB 1.13KB
collaboration (index.js) 1.68KB 0.73KB
collaboration (useCollaborationTranslation.js) 6.05KB 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) 498.55KB 114.03KB
core (index.js) 7.48KB 2.96KB
create-plugin (index.js) 10.08KB 3.26KB
data-objectstack (index.js) 189.15KB 52.56KB
fields (index.js) 243.15KB 61.40KB
i18n (LocalizationContext.js) 1.76KB 0.96KB
i18n (builtinAggregateLabels.js) 0.86KB 0.49KB
i18n (currency.js) 1.22KB 0.64KB
i18n (fallbackInterpolation.js) 6.25KB 2.77KB
i18n (i18n.js) 6.57KB 2.76KB
i18n (index.js) 3.65KB 1.47KB
i18n (pickLocalized.js) 7.62KB 3.26KB
i18n (provider.js) 26.89KB 9.04KB
i18n (useDisplayLocale.js) 2.85KB 1.45KB
i18n (useObjectLabel.js) 34.34KB 9.17KB
i18n (useSafeTranslation.js) 5.60KB 2.33KB
layout (index.js) 38.84KB 10.94KB
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) 2.53KB 0.85KB
mobile (useResponsive.js) 0.72KB 0.42KB
mobile (useSpecGesture.js) 4.39KB 1.66KB
mobile (useTouchTarget.js) 1.01KB 0.54KB
permissions (MePermissionsProvider.js) 11.71KB 4.29KB
permissions (PermissionContext.js) 0.31KB 0.25KB
permissions (PermissionGuard.js) 0.89KB 0.45KB
permissions (PermissionProvider.js) 6.24KB 2.16KB
permissions (discardProofCache.js) 1.04KB 0.55KB
permissions (evaluator.js) 5.12KB 1.74KB
permissions (index.js) 0.93KB 0.41KB
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) 15.16KB 3.68KB
plugin-calendar (index.js) 49.00KB 13.91KB
plugin-charts (index.js) 71.39KB 19.92KB
plugin-chatbot (index.js) 194.49KB 46.33KB
plugin-dashboard (index.js) 131.48KB 34.45KB
plugin-designer (index.js) 213.21KB 43.63KB
plugin-detail (index.js) 248.66KB 63.92KB
plugin-editor (index.js) 2.23KB 1.05KB
plugin-form (index.js) 131.01KB 32.32KB
plugin-gantt (index.js) 167.16KB 40.99KB
plugin-grid (index.js) 208.58KB 56.63KB
plugin-kanban (index.js) 55.38KB 15.72KB
plugin-list (index.js) 113.38KB 27.73KB
plugin-map (index.js) 20.49KB 6.83KB
plugin-markdown (index.js) 13.88KB 4.80KB
plugin-report (index.js) 43.42KB 11.92KB
plugin-timeline (index.js) 30.10KB 8.74KB
plugin-tree (index.js) 9.33KB 3.25KB
plugin-view (index.js) 84.46KB 20.80KB
providers (DataSourceProvider.js) 0.75KB 0.39KB
providers (MetadataProvider.js) 1.37KB 0.59KB
providers (ThemeProvider.js) 1.90KB 0.85KB
providers (UploadProvider.js) 11.66KB 3.50KB
providers (index.js) 0.45KB 0.23KB
providers (types.js) 0.01KB 0.04KB
react-runtime (index.js) 5.62KB 2.34KB
react (LazyPluginLoader.js) 4.47KB 1.63KB
react (SchemaRenderer.js) 81.07KB 26.86KB
react (data-invalidation.js) 5.05KB 2.08KB
react (index.js) 4.63KB 2.18KB
react (schema-input.js) 2.32KB 1.24KB
react (spec-input.js) 0.20KB 0.18KB
sdui-parser (codegen.js) 6.58KB 2.74KB
sdui-parser (dashboard-widget-options.js) 3.08KB 1.30KB
sdui-parser (index.js) 5.55KB 2.45KB
sdui-parser (input-type.js) 2.84KB 1.40KB
sdui-parser (parse.js) 20.57KB 5.88KB
sdui-parser (provenance.js) 3.66KB 1.82KB
sdui-parser (types.js) 0.28KB 0.23KB
sdui-parser (validate.js) 13.64KB 4.59KB
types (ai.js) 0.20KB 0.17KB
types (api-types.js) 0.20KB 0.18KB
types (app.js) 2.87KB 1.00KB
types (base.js) 0.20KB 0.18KB
types (blocks.js) 0.20KB 0.18KB
types (complex.js) 2.93KB 1.49KB
types (crud.js) 0.20KB 0.18KB
types (dashboard-filter-alias.js) 6.23KB 2.74KB
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) 0.20KB 0.18KB
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) 4.74KB 2.25KB
types (layout.js) 0.20KB 0.18KB
types (managed-by.js) 0.19KB 0.18KB
types (mobile.js) 4.73KB 2.28KB
types (navigation.js) 0.20KB 0.18KB
types (objectql.js) 0.20KB 0.18KB
types (overlay.js) 0.20KB 0.18KB
types (permissions.js) 0.20KB 0.18KB
types (plugin-scope.js) 0.20KB 0.18KB
types (record-components.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) 5.05KB 1.93KB
types (spec-ui-namespace.js) 0.20KB 0.19KB
types (system-fields.js) 3.33KB 1.54KB
types (theme.js) 6.28KB 2.87KB
types (ui-action.js) 8.11KB 3.32KB
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

@hotlong
hotlong marked this pull request as ready for review September 7, 2026 16:59
@hotlong
hotlong added this pull request to the merge queue Sep 7, 2026
Merged via the queue into main with commit cb847fd Sep 7, 2026
34 checks passed
@hotlong
hotlong deleted the claude/issue-8225-drop-cloud-namespace-reexport branch September 7, 2026 17:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

types: drop export type * as Cloud from '@objectstack/spec/cloud' before the upstream subpath is removed (step 2 of 3 of objectstack#16325)

1 participant