Repository navigation
docs: published text no longer teaches the retired view-level provider: 'api' (objectui#12364) - #12380
Conversation
…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
✅ Console Performance Budget
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
Size Limits
|
… 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
✅ Console Performance Budget
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
Size Limits
|
|
Dequeued at 18:52Z by a merge-group shard timeout, not by this PR; re-queued ·
Generated by Claude Code |
|
Dequeued again at 19:15Z: three shards timed out together; one last re-queue ·
Generated by Claude Code |
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 calledapiFetchthat provider's channel. This PR corrects the text to what is true now: a view bindsprovider: 'object'orprovider: 'value', and a metadata-declared API call is the page element'sdataSourcebinding.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 inputdescription, anErrormessage, a test title or a test's pin literal), a markdown line, or a README code-fence line.One premise corrected: what
apiFetchservesThe card proposed the sentence "
apiFetchserves code-builtApiDataSourceinstances". Measured onmain(1040a0a), that is not true:ApiDataSourcenever readsSchemaRendererContext. It takesfetchin its own config and falls back toglobalThis.fetch(packages/core/src/adapters/ApiDataSource.ts:158).apps/console/src/services/approvalRequestsDataSource.ts:255) getoptions.fetch ?? createAuthenticatedFetch(), not the context'sapiFetch.apiFetchis read only by renderers making their own reads of the host's API:ObjectChart(metadata reads),useDatasetDimensionLabels,useRecordEditableanduseRecordCrudVerdicts(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) forprovider: 'api',provider: "api",provider:'api',api provider,`api` provider,object/api,api/valuepairs, andapiFetchin prose.Published text (descriptions, error text, READMEs, docs)
packages/types/src/zod/objectql.zod.ts(object-treedatadescribe())packages/plugin-grid/src/index.tsx(datainput description){ provider: "api", read, write }packages/plugin-map/src/index.tsx(datainput description)apiprovider is not implemented on the map and plots no markers."ObjectCalendar.tsx(throw + comment),ObjectGantt.tsx(throw),ObjectMap.tsx(throw + comment)DataSource required for object/api providersDataSource required for the object provider(same conditions)content/docs/plugins/plugin-map.mdxcontent/docs/plugins/plugin-calendar.mdx{ provider: 'api', … }among the refused config objectspackages/react/README.mdapiFetch"used byprovider: 'api'view data sources … ApiDataSource falls back to the bare global fetch"packages/auth/README.mdsameOriginOnly"for fetches whose target URL comes from view metadata (provider: 'api'data sources)"; example constapiProviderFetchsameOriginFetchDocblocks and comments in published source
packages/react/src/context/SchemaRendererContext.tsx(ApiFetchdocblock, nesting comment)provider: 'api'view data sources"; "provider:'api' auth survives nesting"packages/app-shell/src/console/ConsoleShell.tsxprovider: 'api'view data sources"apiFetchpackages/app-shell/src/hooks/useConsoleActionRuntime.tsxprovider: 'api'data-source lane"apiFetchlane"packages/app-shell/src/views/ObjectView.tsxdata: {provider:'api', read, write}data: {provider:'value', items}packages/auth/src/createAuthenticatedFetch.ts(two places)provider: 'api'data sources as asameOriginOnly/ data-lane userapiFetchpackages/plugin-charts/src/ObjectChart.tsx,packages/plugin-detail/src/useRecordEditable.tsprovider: 'api'view sources use"SchemaRendererProvider'sapiFetchpackages/types/src/objectql.ts(objectField)apiprovider composing parent-object rows with child-object rows"packages/core/src/utils/normalize-list-view.tsdatahas four providers,api/valueare read live inListView"datahas more providers thanobject,valueis read live inListView"packages/core/src/utils/record-source.tsvalue/api-backed block"value-backed block"packages/plugin-list/src/ListViewBlock.tsxvalue/apiprovider"valueprovider"packages/plugin-tree/src/ObjectTree.tsxapi/valuetree"valuetree"packages/plugin-view/src/ObjectView.tsxprovider: 'value'rows; without this pick the view'sdatanever reaches the renderer"Test prose and pins
examples/schema-catalog/test/catalog-gallery-render.test.tsxDATASOURCE_REQUIREDliteral 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.tsxapiblock plots nothing, queries nothing, still shadowsstaticData) is unchanged.packages/plugin-gantt/src/ObjectGantt.test.tsxprovider: '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.tsLeft alone, on purpose
apiblock: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, thebehaviourNeutralitypair, and the properties-bag TRACE refusals.apiblock as an opaque pass-through fixture:plugin-viewObjectView.test.tsxandObjectView.namedViewProtocolKeys-8980.test.tsx.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.type: 'api'actions,ApiDataSourcebuilt in code, and HTTP API URLs.content/docs/releases/.Acceptance notes
objectql.zod.tsdocblocks 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 (insidedata'sapiprovider)". The testgridDataInputContract.test.ts"each of the four providers parses" does the same. All of these describe the installed@objectstack/spec18.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.ConsoleShell.tsxkeeps the local const nameapiProviderFetch. 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..changeset/12032-approval-requests-data-source.md:8(not this card's) describes a past fix as "a record page over aprovider: 'api'source". That is historical wording about the approvalsApiDataSource. It was left as is.Verification (head
66673ce)Test Files 11 passed (11),Tests 875 passed | 21 skipped (896), exit 0. Files: mapindex.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.@object-ui/typesand@object-ui/auth(no workspace dependencies): exit 0..ts/.tsxfiles:eslint --no-inline-config --format jsonread 27 files, with 0 errors and exit 0. The population is the rooteslint.config.js, which every packagelint(eslint .) resolves. Type-aware linting is not enabled (noparserOptions.project/projectServicein that config), so this diff cannot move the verdict on any untouched file.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-parityanddoc-fences.check:spec-floors: exit 1 ("The scan collapsed: 0 package(s) declare @objectstack/spec …"). This is the knownmainfailure (objectui#12334, not this diff, which touches nopackage.json).check-changeset-fixed,check-changeset-presenceandcheck-changeset-no-majorall exit 0.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, sessionhttps://claude.ai/code/session_01XVp19E1MYUTFM3dnkwz8gB.Generated by Claude Code