Skip to content

docs: published text no longer teaches the retired view-level provider: 'api' (objectui#12364) - #12380

Merged
objectstack-fleet[bot] merged 4 commits into
mainfrom
claude/issue-12364-provider-api-prose
Oct 14, 2026
Merged

objectstack-fleet[bot] merged 4 commits into
mainfrom
claude/issue-12364-provider-api-prose

Conversation

@objectstack-fleet

@objectstack-fleet objectstack-fleet Bot commented Oct 14, 2026 •

Copy link
Copy Markdown
Contributor

Fixes #12364
Clause-②: no

Published text in objectui still taught the view-level provider: 'api' data source after objectui#12325 (PR #12361) deleted every reader of it. It also called apiFetch that provider's channel. This PR corrects the text to what is true now: a view binds provider: 'object' or provider: 'value', and a metadata-declared API call is the page element's dataSource binding.

Text only. No schema's accept set moves and no renderer behaves differently. Outside comments, every changed line is a string literal's content (a describe(), an input description, an Error message, a test title or a test's pin literal), a markdown line, or a README code-fence line.

One premise corrected: what apiFetch serves

The card proposed the sentence "apiFetch serves code-built ApiDataSource instances". Measured on main (1040a0a), that is not true:

  • ApiDataSource never reads SchemaRendererContext. It takes fetch in its own config and falls back to globalThis.fetch (packages/core/src/adapters/ApiDataSource.ts:158).
  • The only code-built instances (the approvals inbox, apps/console/src/services/approvalRequestsDataSource.ts:255) get options.fetch ?? createAuthenticatedFetch(), not the context's apiFetch.
  • The context's apiFetch is read only by renderers making their own reads of the host's API: ObjectChart (metadata reads), useDatasetDimensionLabels, useRecordEditable and useRecordCrudVerdicts (record-permission probes).

So the text now says that. It follows the card's intent (correct each sentence to what is true now) rather than its proposed wording. The deviation is reported to the PM.

Sites, before → after

Found by a repo-wide grep (all packages, apps, examples, content/docs, skills) for provider: 'api', provider: "api", provider:'api', api provider, `api` provider, object/api, api/value pairs, and apiFetch in prose.

Published text (descriptions, error text, READMEs, docs)

Site Before After
packages/types/src/zod/objectql.zod.ts (object-tree data describe()) "the api and schema providers draw none on the tree" "the schema provider draws none on the tree"
packages/plugin-grid/src/index.tsx (data input description) listed { provider: "api", read, write } arm dropped; object, value and schema remain
packages/plugin-map/src/index.tsx (data input description) "The api provider is not implemented on the map and plots no markers." sentence dropped
ObjectCalendar.tsx (throw + comment), ObjectGantt.tsx (throw), ObjectMap.tsx (throw + comment) DataSource required for object/api providers DataSource required for the object provider (same conditions)
content/docs/plugins/plugin-map.mdx quoted the old error quotes the new error, as the error an object-bound map gets
content/docs/plugins/plugin-calendar.mdx listed { provider: 'api', … } among the refused config objects that example dropped
packages/react/README.md apiFetch "used by provider: 'api' view data sources … ApiDataSource falls back to the bare global fetch" the host-authenticated fetch the renderers use for their own reads of the host's API; those reads fall back to the global fetch
packages/auth/README.md sameOriginOnly "for fetches whose target URL comes from view metadata (provider: 'api' data sources)"; example const apiProviderFetch "whose target URL may come from metadata (an API-call action's target)"; const sameOriginFetch

Docblocks and comments in published source

Site Before After
packages/react/src/context/SchemaRendererContext.tsx (ApiFetch docblock, nesting comment) "used for provider: 'api' view data sources"; "provider:'api' auth survives nesting" what it serves now, and that a view does not reach it; "the host's auth survives nesting"
packages/app-shell/src/console/ConsoleShell.tsx "Authenticated fetch for provider: 'api' view data sources" the host's authenticated fetch handed to the renderers as apiFetch
packages/app-shell/src/hooks/useConsoleActionRuntime.tsx "matching the provider: 'api' data-source lane" "matching the renderers' apiFetch lane"
packages/app-shell/src/views/ObjectView.tsx example data: {provider:'api', read, write} example data: {provider:'value', items}
packages/auth/src/createAuthenticatedFetch.ts (two places) provider: 'api' data sources as a sameOriginOnly / data-lane user an API-call action's target or the renderers' apiFetch
packages/plugin-charts/src/ObjectChart.tsx, packages/plugin-detail/src/useRecordEditable.ts "the same channel provider: 'api' view sources use" names SchemaRendererProvider's apiFetch
packages/types/src/objectql.ts (objectField) "an api provider composing parent-object rows with child-object rows" "one source serving parent-object rows beside child-object rows"
packages/core/src/utils/normalize-list-view.ts "data has four providers, api/value are read live in ListView" "data has more providers than object, value is read live in ListView"
packages/core/src/utils/record-source.ts "a value/api-backed block" "a value-backed block"
packages/plugin-list/src/ListViewBlock.tsx "a value / api provider" "a value provider"
packages/plugin-tree/src/ObjectTree.tsx "an api/value tree" "a value tree"
packages/plugin-view/src/ObjectView.tsx "gantt views fed by a composite api endpoint; without this pick the api provider never reaches the renderer" "a gantt view on inline provider: 'value' rows; without this pick the view's data never reaches the renderer"

Test prose and pins

Site Change
examples/schema-catalog/test/catalog-gallery-render.test.tsx DATASOURCE_REQUIRED literal moves with the error text. It is a zero-count pin, so a stale literal would pass while catching nothing. Measured: the new spelling appears in all 5 throws and in the pin, and the old spelling has zero hits outside CHANGELOGs.
packages/plugin-map/src/index.recordSourceInputs-10394.test.tsx drops the phrase pin for the dropped map sentence; docblock item 8 now describes the retired block. The behaviour row (a retired api block plots nothing, queries nothing, still shadows staticData) is unchanged.
packages/plugin-gantt/src/ObjectGantt.test.tsx the title said "(api provider)" but the fixture is provider: 'value'; it now says "(inline value rows)"
ObjectGantt.noSchemaZone-10866.test.tsx, approvalRequestsDataSource.test.tsx, createAuthenticatedFetch.test.tsx, impersonation-lane-4467.test.tsx, normalize-list-view.test.ts docblock or comment wording only, same corrections as above

Left alone, on purpose

  • Tests that pin the refusal or inertness of a retired api block: resolveDataSource.test.ts, ViewDataProvider.test.ts, useViewData.test.tsx, ObjectGantt.retiredApiProvider-12325.test.tsx, ListView.test.tsx, recordSourceInputs-10394 (gantt and map), objectMapInputs-11168, objectTreeInputs-11168, the behaviourNeutrality pair, and the properties-bag TRACE refusals.
  • Tests that use an api block as an opaque pass-through fixture: plugin-view ObjectView.test.tsx and ObjectView.namedViewProtocolKeys-8980.test.tsx.
  • Comments that already say "retired": in ObjectGantt.tsx, ObjectCalendar.tsx, ObjectMap.tsx, ApiDataSource.ts, resolveDataSource.ts, ViewDataProvider.ts, useViewData.ts, the gantt README and mdx, and .changeset/12325-retire-api-view-data.md.
  • Different things: type: 'api' actions, ApiDataSource built in code, and HTTP API URLs.
  • Published CHANGELOG entries: in app-shell, auth, core, plugin-calendar, plugin-charts, plugin-dashboard, plugin-gantt, plugin-grid, plugin-map, plugin-tree and react. Reported only, never edited. objectui has no content/docs/releases/.

Acceptance notes

  • Spec-shape statements: objectql.zod.ts docblocks at the gantt and grid block schemas, imported-defaults-8317.test.ts:319, and the two properties-bag test headers say the row "carries spec defaults (inside data's api provider)". The test gridDataInputContract.test.ts "each of the four providers parses" does the same. All of these describe the installed @objectstack/spec 18.0.0-next.0, where the arm still exists, so they are true today and teach no authoring. They go stale with the spec bump. Carrier: objectui#12370.
  • Local identifier: ConsoleShell.tsx keeps the local const name apiProviderFetch. Renaming it is a code change, which is outside this text-only card. It is unexported, so nothing outside the file sees it. Carrier: none.
  • Pending changeset: .changeset/12032-approval-requests-data-source.md:8 (not this card's) describes a past fix as "a record page over a provider: 'api' source". That is historical wording about the approvals ApiDataSource. It was left as is.

Verification (head 66673ce)

  • Targeted vitest (11 files, repo-root form, under the shared verify lock): Test Files 11 passed (11), Tests 875 passed | 21 skipped (896), exit 0. Files: map index.recordSourceInputs-10394, catalog-gallery-render, ObjectGantt.test, ObjectGantt.noSchemaZone-10866, normalize-list-view.test, approvalRequestsDataSource.test, createAuthenticatedFetch.test, impersonation-lane-4467, gridDataInputContract, gridNonAuthorKeys, objectTreeInputs-11168.
  • Type-check:
    • @object-ui/types and @object-ui/auth (no workspace dependencies): exit 0.
    • The other 13 changed packages: NOT MEASURED. Reason: each needs its dependency closure built, and the shared lock was held by a full-repo build. The changed lines are comments and string-literal contents only, so tsc's verdict cannot move. CI runs the full type-check.
  • Lint, narrowed to the 27 changed .ts/.tsx files: eslint --no-inline-config --format json read 27 files, with 0 errors and exit 0. The population is the root eslint.config.js, which every package lint (eslint .) resolves. Type-aware linting is not enabled (no parserOptions.project/projectService in that config), so this diff cannot move the verdict on any untouched file.
  • Pre-tsc battery: exit 0 for phantom-deps, self-import, unreferenced-sources, doc-example-readers, handler-key-reads, side-effects-array, element-data-source-declaration, spec-symbols, action-forward-parity, designer-field-key-parity, icon-record-names, i18n-keys, i18n-drift, i18n-designer-parity and doc-fences.
    • check:spec-floors: exit 1 ("The scan collapsed: 0 package(s) declare @objectstack/spec …"). This is the known main failure (objectui#12334, not this diff, which touches no package.json).
  • Changeset scripts: check-changeset-fixed, check-changeset-presence and check-changeset-no-major all exit 0.
  • Control-byte self-scan of the changed files: no hits.

Changeset: .changeset/12364-provider-api-prose.md (patch for types, plugin-grid, plugin-map, plugin-calendar, plugin-gantt, react and auth).

Implemented by the os-dev subagent of seat domain:ui#2, session https://claude.ai/code/session_01XVp19E1MYUTFM3dnkwz8gB.


Generated by Claude Code

…er: 'api'` (objectui#12364)

Text only. The `describe()` of the object-tree `data` input, the plugin-grid
and plugin-map `data` input descriptions, and the no-DataSource error text
(with its schema-catalog pin) drop the `api` arm. Docblocks and READMEs that
named `apiFetch` as the `provider: 'api'` channel now say what it serves.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XVp19E1MYUTFM3dnkwz8gB
…mment text (objectui#12364)

Their edited comments ship: app-shell's tsc build keeps comments in the
built JS, and core's edited docblocks sit on exported functions and ship in
dist/*.d.ts. The plugin-charts/detail/list/tree/view edits are stripped by
their bundled builds.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XVp19E1MYUTFM3dnkwz8gB
@github-actions

Copy link
Copy Markdown
Contributor

✅ Console Performance Budget

Metric Value Budget
Eager closure (gzip, 69 chunks) 3052.4 KB 3119.4 KB
Main entry chunk (gzip) 73.8 KB 350 KB
Entry file index-DtoBAewM.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) 20.90KB 7.67KB
app-shell (runtime-config.js) 22.59KB 7.89KB
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) 40.22KB 10.61KB
auth (AuthShell.js) 3.49KB 1.40KB
auth (ForgotPasswordForm.js) 12.21KB 3.45KB
auth (LoginForm.js) 18.15KB 5.40KB
auth (PreviewBanner.js) 0.90KB 0.50KB
auth (RegisterForm.js) 6.72KB 2.24KB
auth (SocialSignInButtons.js) 9.70KB 3.93KB
auth (UserMenu.js) 3.39KB 1.21KB
auth (auth-gate-events.js) 1.62KB 0.83KB
auth (authStyles.js) 5.04KB 1.72KB
auth (createAuthClient.js) 41.19KB 11.12KB
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) 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) 11.08KB 4.58KB
collaboration (CommentThread.js) 27.26KB 8.03KB
collaboration (LiveCursors.js) 3.17KB 1.27KB
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.93KB 0.85KB
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) 591.65KB 142.68KB
core (index.js) 10.18KB 4.04KB
create-plugin (index.js) 27.94KB 9.51KB
data-objectstack (index.js) 248.41KB 69.48KB
fields (index.js) 283.00KB 72.12KB
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) 40.26KB 11.71KB
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 (discardProofCache.js) 1.04KB 0.55KB
permissions (evaluator.js) 8.33KB 3.07KB
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) 16.04KB 3.92KB
plugin-calendar (index.js) 54.94KB 16.05KB
plugin-charts (index.js) 84.72KB 23.27KB
plugin-chatbot (index.js) 201.72KB 48.07KB
plugin-dashboard (index.js) 143.63KB 38.79KB
plugin-designer (index.js) 233.77KB 50.02KB
plugin-detail (index.js) 259.78KB 68.65KB
plugin-editor (index.js) 2.23KB 1.05KB
plugin-form (index.js) 178.88KB 46.47KB
plugin-gantt (index.js) 178.36KB 45.08KB
plugin-grid (index.js) 259.02KB 72.24KB
plugin-kanban (index.js) 53.23KB 16.71KB
plugin-list (index.js) 123.35KB 31.60KB
plugin-map (index.js) 27.07KB 8.96KB
plugin-markdown (index.js) 13.88KB 4.80KB
plugin-report (index.js) 46.66KB 13.13KB
plugin-timeline (index.js) 39.21KB 11.85KB
plugin-tree (index.js) 15.07KB 5.33KB
plugin-view (index.js) 91.99KB 23.23KB
providers (DataSourceProvider.js) 0.75KB 0.39KB
providers (MetadataProvider.js) 1.37KB 0.59KB
providers (ThemeProvider.js) 1.90KB 0.85KB
providers (UploadProvider.js) 12.07KB 3.68KB
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) 120.63KB 39.56KB
react (data-invalidation.js) 5.05KB 2.08KB
react (index.js) 4.50KB 2.06KB
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.78KB 2.70KB
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 (record-approval-decision.js) 0.20KB 0.20KB
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) 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.28KB 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

… component type (objectui#12364)

The README comment named an action by its `type` value, which the
doc-component-types scan reads as an unregistered component type.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XVp19E1MYUTFM3dnkwz8gB
@github-actions

Copy link
Copy Markdown
Contributor

✅ Console Performance Budget

Metric Value Budget
Eager closure (gzip, 69 chunks) 3052.6 KB 3119.4 KB
Main entry chunk (gzip) 73.8 KB 350 KB
Entry file index-B1G7HAno.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) 20.90KB 7.67KB
app-shell (runtime-config.js) 22.59KB 7.89KB
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) 40.22KB 10.61KB
auth (AuthShell.js) 3.49KB 1.40KB
auth (ForgotPasswordForm.js) 12.21KB 3.45KB
auth (LoginForm.js) 18.15KB 5.40KB
auth (PreviewBanner.js) 0.90KB 0.50KB
auth (RegisterForm.js) 6.72KB 2.24KB
auth (SocialSignInButtons.js) 9.70KB 3.93KB
auth (UserMenu.js) 3.39KB 1.21KB
auth (auth-gate-events.js) 1.62KB 0.83KB
auth (authStyles.js) 5.04KB 1.72KB
auth (createAuthClient.js) 41.19KB 11.12KB
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) 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) 11.08KB 4.58KB
collaboration (CommentThread.js) 27.26KB 8.03KB
collaboration (LiveCursors.js) 3.17KB 1.27KB
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.93KB 0.85KB
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) 591.65KB 142.68KB
core (index.js) 10.18KB 4.04KB
create-plugin (index.js) 27.94KB 9.51KB
data-objectstack (index.js) 248.41KB 69.48KB
fields (index.js) 283.00KB 72.12KB
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) 40.26KB 11.71KB
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 (discardProofCache.js) 1.04KB 0.55KB
permissions (evaluator.js) 8.33KB 3.07KB
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) 16.04KB 3.92KB
plugin-calendar (index.js) 54.94KB 16.05KB
plugin-charts (index.js) 84.72KB 23.27KB
plugin-chatbot (index.js) 201.72KB 48.07KB
plugin-dashboard (index.js) 143.63KB 38.79KB
plugin-designer (index.js) 233.77KB 50.02KB
plugin-detail (index.js) 259.78KB 68.65KB
plugin-editor (index.js) 2.23KB 1.05KB
plugin-form (index.js) 178.88KB 46.47KB
plugin-gantt (index.js) 178.36KB 45.08KB
plugin-grid (index.js) 259.02KB 72.24KB
plugin-kanban (index.js) 53.23KB 16.71KB
plugin-list (index.js) 123.35KB 31.60KB
plugin-map (index.js) 27.07KB 8.96KB
plugin-markdown (index.js) 13.88KB 4.80KB
plugin-report (index.js) 46.66KB 13.13KB
plugin-timeline (index.js) 39.21KB 11.85KB
plugin-tree (index.js) 15.07KB 5.33KB
plugin-view (index.js) 91.99KB 23.23KB
providers (DataSourceProvider.js) 0.75KB 0.39KB
providers (MetadataProvider.js) 1.37KB 0.59KB
providers (ThemeProvider.js) 1.90KB 0.85KB
providers (UploadProvider.js) 12.07KB 3.68KB
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) 120.63KB 39.56KB
react (data-invalidation.js) 5.05KB 2.08KB
react (index.js) 4.50KB 2.06KB
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.78KB 2.70KB
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 (record-approval-decision.js) 0.20KB 0.20KB
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) 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.28KB 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
objectstack-fleet Bot marked this pull request as ready for review October 14, 2026 18:31
@objectstack-fleet
objectstack-fleet Bot added this pull request to the merge queue Oct 14, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Oct 14, 2026
@objectstack-fleet

Copy link
Copy Markdown
Contributor Author

Dequeued at 18:52Z by a merge-group shard timeout, not by this PR; re-queued · domain:ui seat 2 · session_01XVp19E1MYUTFM3dnkwz8gB · 2026-10-14T18:53Z

  • What failed: in the merge-group run 38615936908 (queue head 1d8534f), Test (shard 5/12) (job 116030895319) was cancelled at the 20-minute job limit (18:31:54Z → 18:52:13Z). That failed the Test aggregate, and the queue dequeued the PR (CI_FAILURE).
  • Why it is not this PR's:
    • Lint, Repo Gates, Changeset Presence and the Governed Surface Guard all passed on the same merge-group head.
    • The same PR head 37ed353 was green on all 12 shards.
    • This PR is text only.
    • It is the slow-runner timeout tracked in objectui#12384.
  • Action: auto-merge is re-enabled so the queue retries once. A second failure here is treated as this PR's.

Generated by Claude Code

@objectstack-fleet

Copy link
Copy Markdown
Contributor Author

Dequeued again at 19:15Z: three shards timed out together; one last re-queue · domain:ui seat 2 · session_01XVp19E1MYUTFM3dnkwz8gB · 2026-10-14T19:18Z

  • What failed: merge-group run 38619167056 (the queue retry). Test (shard 2/12), (shard 11/12) and (shard 12/12) were all cancelled at the same second, 19:15:03Z, exactly 20 minutes after they started (18:54:43Z). No test failed in the run; 14 jobs succeeded.

  • My earlier note said a second failure would be treated as this PR's. On the evidence it is not:

    • three shards hitting the job limit in the same second is a runner-wide slowdown;
    • this PR is text only (docblocks, READMEs, describe() strings, one error message) and cannot slow any shard;
    • its own head 37ed353 passed all 12 shards.

    The seat is correcting that sentence here rather than leaving it standing.

  • Action: one last re-queue. If the queue fails this PR a third time, the seat stops re-queuing. It then leaves the PR ready with auto-merge off and waits for objectui#12384, where this occurrence is recorded.


Generated by Claude Code

Merged via the queue into main with commit d75f212 Oct 14, 2026
34 checks passed
@objectstack-fleet
objectstack-fleet Bot deleted the claude/issue-12364-provider-api-prose branch October 14, 2026 19:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

2 participants