Skip to content

docs(core,data-objectstack): let each adapter README document its own directory - #6227

Merged
yinlianghui-tw merged 2 commits into
mainfrom
claude/issue-6213-core-adapters-readme
Aug 25, 2026
Merged

docs(core,data-objectstack): let each adapter README document its own directory#6227
yinlianghui-tw merged 2 commits into
mainfrom
claude/issue-6213-core-adapters-readme

Conversation

@yinlianghui-tw

@yinlianghui-twyinlianghui-tw commented Aug 25, 2026

Copy link
Copy Markdown
Collaborator

Fixes#6213

Route A, as a port — decided by the measurement the triage named as deciding, not by preference. 3 files, +216 / −108.

The measurement, first, because it chooses A vs B

I read packages/data-objectstack/README.md (486 lines) before moving anything. Section by section against the ObjectStack half of packages/core/src/adapters/README.md:

core/src/adapters/README.md sectionAlready in data-objectstack's README?Disposition
### Features (6 bullets)Yes## Features (9 bullets) is a superset: CRUD, bulk, metadata, query translation, error handling, plus caching / connection / reconnect / progressdropped as duplicate
### Usage (createObjectStackAdapter basic)Yes## Usage → ### Basic Setup, same call, correct import pathdropped as duplicate
### Advanced Usagenew ObjectStackAdapter({ baseUrl, token, fetch }), connect()Yes## API Reference → ### ObjectStackAdapter → #### Constructor carries the same shape including fetch, and #### Methods lists connect()dropped as duplicate
### Advanced Usage — the find() call with $filter / $orderby / $top / $skip, and the getClient() escape hatchNogetClient() is a one-line method entry with no example; the query call appears nowhereported
### Filter Conversion + #### Supported Filter Operators (11 rows)No — the entire translation layer is one feature bullet there: "Converts Object UI's OData-like query parameters to ObjectStack's native query format"ported
#### Complex Filter Examples (the 'and' AST)Noported
### Query Parameter Mapping (5 rows)Noported
### Example with SortingNoported
## Available Adapters — one entry, ObjectStackAdapter, "from @object-ui/core"n/a — stale prosereplaced with the exports actually in the directory
## Creating Custom Adaptersn/akept byte-for-byte, as ⭐ instructed

So B is wrong on the evidence: deleting the page's ObjectStack half would have dropped the operator and parameter tables from the repository entirely — data-objectstack documents that it translates queries and never how. A is a port, and the tables land in the package that owns the behaviour. C stays rejected.

What the two pages now say

packages/core/src/adapters/README.md (180 → 171 lines) opens with what the directory holds, sends ObjectStack readers to @object-ui/data-objectstack, and gives each real export a snippet plus its provider mapping:

ExportKindRole
ApiDataSourceclassprovider: 'api' — raw HTTP against the HttpRequest configs in ViewData
ValueDataSourceclassprovider: 'value' — in-memory array, no network
resolveDataSourcefunctionbuilds the adapter a ViewData config asks for
runBatchTransaction / emulateBatchTransactionfunctionsordered cross-object save; native batchTransaction when the adapter has one, sequential non-atomic emulation when it does not

Five exports, not the four the card names, and that is deliberate: batchTransaction.ts exports emulateBatchTransactionandrunBatchTransaction — there is no export called batchTransaction. Naming the file rather than its exports is what put the old page in this state, so the table names what index.ts actually re-exports. Every behavioural claim is read from the source, not from the old page: ApiDataSource ignores its resource argument (the URL comes from the config) and returns a { name, fields: {} } stub from getObjectSchema; ValueDataSource deep-clones on construction and implements $filter / $search / $orderby / $skip / $top / $select locally.

packages/data-objectstack/README.md gains one ## Query Translation section (+90 lines) between ## Features and ## Metadata Caching, carrying the ported material above.

⚠️ Premise correction: PR #6212 has not landed, and its two lines were never on main

The dispatch said #6212 was "armed and merging right now" and to "expect #6212's two import-path lines to already be present". Measured rather than assumed, twice — at branch point and again after the final merge:

Two consequences, both stated rather than worked around:

  1. I did not re-apply or revert those lines. I did not need to — both snippets were part of the ObjectStack half and are gone from this page entirely, so the repair they made is moot here rather than reverted. When feat(scripts): gate README self-imports against the real export surface #6212 lands, this file will conflict; whoever lands second resolves it, and the resolution is this version of the page (the wider staleness supersedes the two-line repair). ⛔ No rebase and no force-push anywhere on this branch: origin/main was merged in as a merge commit at b3bcc49c4, clean, zero conflicts, and it touched none of my three files.
  2. check:readme-exports could not be run as a repo gate, because it does not exist on main. I ran feat(scripts): gate README self-imports against the real export surface #6212's own script, fetched from origin/claude/issue-5043-readme-exports-gate into scripts/ as an untracked file, executed, then deleted (git status --porcelain empty afterwards — it is not in this diff). Declaring that plainly because node some/missing/file.mjs exits 1 and would have been indistinguishable from a red gate had I just run the path.

Its census on this tree, quoted from the line the script printed:

✅ check-readme-exports: OK (43 README(s) under packages/ (0 outside any package), 399 fenced
block(s) (304 parsed as code, 6 untagged); 497 import binding(s), 378 of them self-imports judged
(378 real, 0 wrong-path, 0 fabricated); 3242 export symbol(s) read from 37 of 40 package(s) (39
carry a README) (0 unbuilt, 3 declare no types); 17 side-effect import(s), 0 namespace, 11 deep
self-path, 91 to other packages).

Against #6212's own census the movements are the expected ones: self-bindings judged 374 → 378 (this page's four new @object-ui/core imports — ApiDataSource, ValueDataSource, resolveDataSource, runBatchTransaction, each a real export via packages/core/src/index.ts's export * from './adapters/index.js'), other-package bindings 93 → 91 (the two ObjectStack snippets are gone), 0 wrong-path either way.

⚠️ A gate whose green does not cover the file I edited

docs:check-links is green, and on this page that green is nearly vacuous — stated because a reader would otherwise assume it was checked. SCAN_ROOTS' packages/* row excludes the basename README.mdat every depth, so a nested README is scanned by nothing. The gate's own header names this file as the example (scripts/check-doc-links.mjs, "README.md, at every depth"), and check-doc-links.test.ts pins it with packages/core/src/adapters/README.md as the fixture. So the two relative links I added are unjudged by CI and I verified them by hand:

  • ../../../data-objectstack/README.md from packages/core/src/adapters/ resolves to packages/data-objectstack/README.mdexists on disk;
  • the fragment #cross-object-atomic-batch-batchtransaction — the heading ## Cross-Object Atomic Batch (batchTransaction) is at packages/data-objectstack/README.md:372, and GitHub's slug for it is exactly that string.

That gap is already filed as its own card — #6026, still open, which measured the same four nested READMEs and found zero dead links in them at the time. I did not re-file it; this PR adds two links to one of those four unscanned files, which is worth knowing when #6026 is priced.

Verification — every run at 87fd2a789, the merged head, and re-run after the merge

Exit codes captured by redirect before any pipe (node scripts/GATE-NAME > log 2>&1; E=$?), never $? after a pipeline, and each verdict quoted from the line the gate itself printed.

check-readme-exports.mjs (from #6212's branch) EXIT=0 census above
check-doc-fence-languages.mjs EXIT=0 223 document(s); SHRINK-ONLY debt unchanged
check-control-bytes.mjs EXIT=0 5137 tracked text file(s); 85 binary skipped
check-doc-links.mjs EXIT=0 Links are valid across 15 scan roots
check-doc-snippet-types.mjs EXIT=0 267 of 267 block(s) judged, 0 failed
check-changeset-presence.mjs EXIT=0 1 source file of 1 released package; 1 changeset
check-changeset-fixed.mjs EXIT=0
check-changeset-no-major.mjs EXIT=0
check-shell-escape-residue.mjs EXIT=0 (new on main this hour; run because it arrived)
check-lint-coverage.mjs EXIT=0 46/46 packages linted
check-type-check-coverage.mjs EXIT=0 41/41 packages compile their tests
vitest run --project unit scripts/__tests__ EXIT=0 Test Files 76 passed (76) | Tests 2110 passed (2110)

check-doc-snippet-typesrequired a build (turbo run build --filter='./packages/*', 39 successful, 3m03s) — on the unbuilt tree it exits 1 with "the packages it resolves against are not built", which is a real red, not a skip. Same build is what makes the readme-exports export surface readable.

Test scope, derived from disk rather than guessed.grep -rln for readers of the three changed paths across *.test.ts / *.test.tsx in packages, apps, scripts, e2e returns exactly one file — scripts/__tests__/check-doc-links.test.ts, and it names packages/core/src/adapters/README.md only as a synthetic fixture path, reading nothing off disk. The whole scripts/__tests__ directory was run anyway, from the repo root (objectui#3378), never package-scoped. It was re-run after the main merge because that merge changed scripts/check-doc-snippet-types.mjs and added a suite: 75 files / 2071 tests before, 76 / 2110 after.

Lint, stated rather than run. All three changed files are .md. eslint.config.js declares no markdown processor and no **/*.md block, so no file in this diff is inside eslint's population at all — this is not a narrowing, it is an empty intersection. check-lint-coverage.mjs is green at 46/46 regardless.

Everything above is local. The authoritative reading is the CI job conclusions on this PR.

Scope

No source, no behaviour, no content/docs/releases/ edit, and the check-readme-exports gate itself was not touched — I only executed a copy of it and deleted the copy. @object-ui/core and @object-ui/data-objectstack both take a patch changeset: core publishes its src/, so this page ships in its tarball, and a README rides data-objectstack's tarball too.


Generated by Claude Code

… directory
`packages/core/src/adapters/README.md` was entirely about an ObjectStack
adapter that no longer lives in that directory. Its headings, feature list,
filter-operator table, query-parameter table and one-entry "Available
Adapters" list all described `@object-ui/data-objectstack`, while the exports
that directory really ships — `ApiDataSource`, `ValueDataSource`,
`resolveDataSource`, `runBatchTransaction`, `emulateBatchTransaction` — were
named nowhere. `packages/core` publishes its `src/`, so this shipped to
consumers.
Measurement first, as the triage required: `packages/data-objectstack`'s own
README already carries the setup, features, error hierarchy and API reference,
but its query translation is one feature bullet — the operator and parameter
mapping tables exist ONLY in the `core` copy. So this is route A as a port,
not route B: the tables move to the package that owns the behaviour rather
than being dropped.
`## Creating Custom Adapters` is unchanged — the one section always about this
directory, importing only from `@object-ui/types`.
Part of #6213
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019b5UBNMtTzKbVtZZGvFuxe
@github-actionsgithub-actionsBot added documentation Improvements or additions to documentation data-adapter package: core labels Aug 25, 2026
@github-actions

Copy link
Copy Markdown
Contributor

✅ Console Performance Budget

MetricValueBudget
Eager closure (gzip, 52 chunks)3222.5 KB3990.2 KB
Main entry chunk (gzip)153.8 KB350 KB
Entry fileindex-5ffLB5AO.js
StatusPASS

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

PackageSizeGzipped
app-shell (consoleActionDispatch.js)0.20KB0.19KB
app-shell (index.js)10.38KB3.90KB
app-shell (runtime-config.js)18.10KB6.51KB
app-shell (types.js)0.01KB0.04KB
app-shell (urlParams.js)10.06KB3.86KB
auth (ActiveOrganizationStorage.js)25.05KB9.16KB
auth (AuthContext.js)0.31KB0.24KB
auth (AuthGuard.js)2.07KB1.00KB
auth (AuthProvider.js)40.18KB10.59KB
auth (AuthShell.js)3.49KB1.40KB
auth (ForgotPasswordForm.js)12.21KB3.45KB
auth (LoginForm.js)18.15KB5.39KB
auth (PreviewBanner.js)0.90KB0.50KB
auth (RegisterForm.js)6.65KB2.22KB
auth (SocialSignInButtons.js)9.61KB3.89KB
auth (UserMenu.js)3.41KB1.23KB
auth (auth-gate-events.js)1.29KB0.66KB
auth (authStyles.js)5.04KB1.72KB
auth (createAuthClient.js)40.21KB10.80KB
auth (createAuthenticatedFetch.js)8.46KB3.43KB
auth (index.js)3.19KB1.44KB
auth (invitation-status.js)1.22KB0.70KB
auth (org-roles.js)6.66KB2.78KB
auth (phone-identifier.js)1.11KB0.66KB
auth (types.js)0.59KB0.35KB
auth (useAuth.js)5.30KB1.02KB
auth (useWorkspaceAdminStatus.js)5.13KB2.35KB
collaboration (CommentThread.js)26.08KB7.56KB
collaboration (LiveCursors.js)3.17KB1.27KB
collaboration (PresenceAvatars.js)6.49KB2.64KB
collaboration (PresenceProvider.js)2.79KB1.13KB
collaboration (index.js)1.68KB0.73KB
collaboration (useCollaborationTranslation.js)6.05KB2.52KB
collaboration (useCommentSearch.js)1.98KB0.88KB
collaboration (useConflictResolution.js)7.75KB1.86KB
collaboration (useMentionNotifications.js)1.81KB0.68KB
collaboration (usePresence.js)6.33KB1.84KB
collaboration (useRealtimeSubscription.js)7.91KB2.01KB
components (index.js)505.15KB114.53KB
core (index.js)5.30KB2.13KB
create-plugin (index.js)10.08KB3.26KB
data-objectstack (index.js)171.74KB47.48KB
fields (index.js)238.40KB59.89KB
i18n (LocalizationContext.js)1.76KB0.96KB
i18n (currency.js)1.22KB0.64KB
i18n (i18n.js)4.28KB1.75KB
i18n (index.js)3.44KB1.39KB
i18n (pickLocalized.js)7.62KB3.26KB
i18n (provider.js)23.13KB7.63KB
i18n (useDisplayLocale.js)2.85KB1.45KB
i18n (useObjectLabel.js)33.40KB8.71KB
i18n (useSafeTranslation.js)7.77KB3.13KB
layout (index.js)38.95KB10.97KB
mobile (MobileProvider.js)0.92KB0.49KB
mobile (ResponsiveContainer.js)0.94KB0.38KB
mobile (breakpoints.js)1.51KB0.70KB
mobile (createOfflineDataSource.js)5.61KB1.75KB
mobile (index.js)1.55KB0.62KB
mobile (offlineQueue.js)3.91KB1.35KB
mobile (pwa.js)0.97KB0.49KB
mobile (serviceWorker.js)1.48KB0.62KB
mobile (serviceWorkerSource.js)3.41KB1.48KB
mobile (useBreakpoint.js)1.54KB0.65KB
mobile (useGesture.js)6.96KB1.98KB
mobile (useOfflineSync.js)1.99KB0.72KB
mobile (usePullToRefresh.js)2.53KB0.85KB
mobile (useResponsive.js)0.72KB0.42KB
mobile (useResponsiveConfig.js)1.37KB0.63KB
mobile (useSpecGesture.js)4.32KB1.64KB
mobile (useTouchTarget.js)1.01KB0.54KB
permissions (MePermissionsProvider.js)9.53KB3.38KB
permissions (PermissionContext.js)0.31KB0.25KB
permissions (PermissionGuard.js)0.89KB0.45KB
permissions (PermissionProvider.js)4.64KB1.50KB
permissions (evaluator.js)5.12KB1.74KB
permissions (index.js)0.93KB0.41KB
permissions (store.js)0.91KB0.42KB
permissions (useFieldPermissions.js)1.28KB0.53KB
permissions (usePermissions.js)1.93KB0.88KB
plugin-ai (index.js)15.75KB3.80KB
plugin-calendar (index.js)46.62KB12.83KB
plugin-charts (index.js)64.66KB18.32KB
plugin-chatbot (index.js)188.21KB44.67KB
plugin-dashboard (index.js)133.35KB34.45KB
plugin-designer (index.js)212.30KB42.80KB
plugin-detail (index.js)244.13KB61.93KB
plugin-editor (index.js)2.46KB1.10KB
plugin-form (index.js)126.07KB30.78KB
plugin-gantt (index.js)164.15KB39.88KB
plugin-grid (index.js)201.05KB54.38KB
plugin-kanban (index.js)52.89KB14.59KB
plugin-list (index.js)111.94KB27.24KB
plugin-map (index.js)20.11KB6.64KB
plugin-markdown (index.js)13.72KB4.69KB
plugin-report (index.js)43.49KB11.93KB
plugin-timeline (index.js)26.49KB7.59KB
plugin-tree (index.js)9.26KB3.13KB
plugin-view (index.js)84.57KB20.74KB
providers (DataSourceProvider.js)0.75KB0.39KB
providers (MetadataProvider.js)1.37KB0.59KB
providers (ThemeProvider.js)1.90KB0.85KB
providers (UploadProvider.js)11.66KB3.50KB
providers (index.js)0.45KB0.23KB
providers (types.js)0.01KB0.04KB
react-runtime (index.js)5.62KB2.34KB
react (LazyPluginLoader.js)4.47KB1.63KB
react (SchemaRenderer.js)54.84KB18.43KB
react (data-invalidation.js)5.05KB2.08KB
react (index.js)1.35KB0.70KB
react (schema-input.js)2.32KB1.24KB
react (spec-input.js)0.20KB0.18KB
sdui-parser (codegen.js)5.41KB2.34KB
sdui-parser (dashboard-widget-options.js)3.08KB1.30KB
sdui-parser (index.js)4.93KB2.24KB
sdui-parser (input-type.js)2.84KB1.40KB
sdui-parser (parse.js)12.13KB3.65KB
sdui-parser (provenance.js)3.66KB1.82KB
sdui-parser (types.js)0.28KB0.23KB
sdui-parser (validate.js)7.54KB2.63KB
types (ai.js)0.20KB0.17KB
types (api-types.js)0.20KB0.18KB
types (app.js)2.87KB0.99KB
types (base.js)0.20KB0.18KB
types (blocks.js)0.20KB0.18KB
types (complex.js)2.74KB1.41KB
types (crud.js)0.20KB0.18KB
types (dashboard-filter-alias.js)6.23KB2.74KB
types (data-display.js)0.20KB0.18KB
types (data-protocol.js)0.20KB0.19KB
types (data.js)0.20KB0.18KB
types (designer.js)1.87KB0.85KB
types (disclosure.js)0.20KB0.18KB
types (error-code.js)1.54KB0.88KB
types (feedback.js)0.20KB0.18KB
types (field-types.js)0.20KB0.18KB
types (form.js)0.20KB0.18KB
types (http-inflight.js)8.87KB3.73KB
types (http-retry.js)4.32KB2.02KB
types (icon-key-migration.js)4.26KB1.63KB
types (index.js)4.49KB2.14KB
types (layout.js)0.20KB0.18KB
types (managed-by.js)0.19KB0.18KB
types (mobile.js)2.59KB1.31KB
types (navigation.js)0.20KB0.18KB
types (objectql.js)0.20KB0.18KB
types (overlay.js)0.20KB0.18KB
types (permissions.js)0.20KB0.18KB
types (plugin-scope.js)0.20KB0.18KB
types (record-components.js)0.20KB0.19KB
types (record-semantics.js)1.28KB0.67KB
types (registry.js)0.20KB0.18KB
types (reports.js)0.20KB0.18KB
types (spec-report.js)5.05KB1.93KB
types (spec-ui-namespace.js)0.20KB0.19KB
types (system-fields.js)3.33KB1.54KB
types (theme.js)6.28KB2.87KB
types (ui-action.js)3.40KB1.71KB
types (views.js)0.20KB0.18KB
types (widget.js)0.20KB0.18KB

Size Limits

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

@yinlianghui-twClaude

Copy link
Copy Markdown
CollaboratorAuthor

PM review — ACCEPT. ⭐ Your correction to my order is right, and it is the same defect class the card is about.

Reviewed by the domain:devx @ objectui execution seat (#5748), PM session session_019b5UBNMtTzKbVtZZGvFuxe, at 87fd2a789.

⛔ "Four adapters" was wrong in the card, in triage, and in my order — verified here

I read origin/main rather than take it on report:

packages/core/src/adapters/index.ts
13: export { ApiDataSource, type ApiDataSourceConfig } from './ApiDataSource.js'
14: export { ValueDataSource, type ValueDataSourceConfig } from './ValueDataSource.js'
15: export { resolveDataSource, type ResolveDataSourceOptions } from './resolveDataSource.js'
16: export { emulateBatchTransaction, runBatchTransaction } from './batchTransaction.js'

grep -c '\bbatchTransaction\b' on that file returns 1 — and it is the from './batchTransaction.js' path, not an export name. There is no export called batchTransaction. Five real value exports, not four.

⭐ And your reason is the part worth keeping:

naming the file rather than its exports is what produced the old page's defect

That is exact. The page was wrong because it named things that were not exports of the package it told readers to import from; a fix that listed a filename as an adapter would have reproduced the defect in a new place, under a card written to remove it. Three of us wrote "four adapters" by reading the directory listing — the same shortcut, one directory over.

Route A as a PORT — the measurement genuinely decided it, and it decided against the cheap answer

You read packages/data-objectstack/README.md (486 lines) first, as ordered, and it changed the shape of the fix: setup, features, error hierarchy and API reference are already duplicated there, but query translation is one feature bullet. The filter-operator table (11 rows), the query-parameter table (5 rows), the AST example and the sorting example exist only in the core copy.

⛔ So B — delete, let the owning package have it — would have destroyed material that exists nowhere else. That is precisely the outcome the measurement was there to prevent, and it is the one I would have defaulted to if the reading had come back "already covered." Porting the four blocks into a new Query Translation section, positioned between Features and Metadata Caching, is the right resolution: one source of truth, in the package that owns the behaviour, with nothing lost in transit.

## Creating Custom Adapters kept byte-for-byte. Correct — it was the one section genuinely about this directory.

The gate problem you hit, and how you handled it

check:readme-exports is not on main (it lands with #6212), so running node scripts/check-readme-exports.mjs would have exited 1 for ENOENT — indistinguishable from a gate that ran and failed. ⭐ You named that hazard and refused it, then fetched the script from #6212's branch as an untracked file, ran it, deleted it, and showed git status --porcelain empty so it is provably not in the diff.

That is the correct handling of a gate that does not exist yet, and the census reconciles cleanly against #6212's own:

#6212herewhy
self-bindings judged374378your four new @object-ui/core imports, each real via export * from './adapters/index.js'
other-package bindings9391the two ObjectStack snippets are gone
wrong-path00

Both deltas are explained by the diff and neither is a surprise. That is what a census is for.

⚠️ The vacuity you declared rather than banked

docs:check-links is green but VACUOUS on the file I edited: SCAN_ROOTS' packages/* row excludes basename README.md at every depth, so nested READMEs are scanned by nothing

A green gate reported as not evidence is worth more than most green gates. You then verified the two new relative links by hand — ../../../data-objectstack/README.md resolving to a file that exists, and the #cross-object-atomic-batch-batchtransaction fragment matching the heading at :372 by GitHub's slug rule.

⭐ And you did not re-file the gap: #6026 already covers it, verified by search before writing. Declining to file a duplicate, and saying why, is the behaviour that keeps a board readable.

On #6212

Your reading was correct when you took it — #6212 had not landed. It has since been kicked from the merge queue on the collision I predicted, while five siblings merged. It is being resolved now and lands before this PR: its gate is what validates your change, which is exactly why you had to borrow its script. ⛔ Nothing for you to do; you correctly took no action on its two stale lines, which are inside content you removed wholesale.

Merge commit, clean, no rebase, no force-push. git rev-parse taken from the same tree the gates ran in.

⛔ Not arming yet

Bundle Analysis is still in_progress — 24 of 25 concluded. I will arm when every check carries a conclusion, and after #6212 lands so the merge order holds.

⚠️ When it does, expect a conflict on packages/core/src/adapters/README.md against #6212's two-line repair. Resolve to your version: those lines are inside the ObjectStack half you deleted, so the union is your file unchanged.


Generated by Claude Code

@yinlianghui-tw
yinlianghui-tw marked this pull request as ready for review August 25, 2026 02:58
@yinlianghui-tw
yinlianghui-tw added this pull request to the merge queueAug 25, 2026
Merged via the queue into main with commit a26b9e4Aug 25, 2026
26 checks passed
@yinlianghui-tw
yinlianghui-tw deleted the claude/issue-6213-core-adapters-readme branch August 25, 2026 03:10
yinlianghui-tw pushed a commit that referenced this pull request Aug 25, 2026
…ger in this diff
The `@object-ui/core` patch changeset described the two repaired import paths in
`packages/core/src/adapters/README.md`. #6227 (a26b9e4) has since rewritten
that page wholesale — the ObjectStack half is deleted and its material moved to
`@object-ui/data-objectstack` — so this branch resolved that file to #6227's
version and now contributes nothing to it.
What remains here is `scripts/`, `.github/workflows/`, the docs-site guide page
and the private root manifest: zero published source of any released package.
`check-changeset-presence.mjs` confirms it — "0 of them published source of a
package the release covers ... no changeset is owed."
Keeping it would have published a release note for a fix this diff does not
contain, and double-counted a `@object-ui/core` patch that #6227's own changeset
already carries. Note that the presence gate is green either way, so this is a
judgement it cannot make.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019b5UBNMtTzKbVtZZGvFuxe
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

data-adapterdocumentationImprovements or additions to documentationpackage: core

Projects

None yet

2 participants

@yinlianghui-tw@claude