Skip to content

Conversation

@claude
Copy link
Contributor

@claude claude bot commented Jan 20, 2026

Summary

Adds a reproduction test for issue #1017: Synced data does not appear in a derived (live query) collection while there is a pending optimistic mutation on that derived collection.

What the test asserts

The test validates that synced data from a source collection should appear in derived collections immediately, regardless of whether there are pending optimistic mutations.

Test flow:

  1. Creates a source collection with controllable sync
  2. Creates a derived collection via createLiveQueryCollection (simple passthrough)
  3. Uses createOptimisticAction to insert an item with a pending mutation
  4. While mutation is pending, syncs a NEW item into the source collection
  5. Asserts both items should be visible in the derived collection

How to run

pnpm --filter "@tanstack/db" test -- tests/query/live-query-collection.test.ts -t "synced data visibility"

Observed failure

AssertionError: expected false to be true
 ❯ tests/query/live-query-collection.test.ts:1170:41
    expect(derived.has(`synced-1`)).toBe(true)

The synced item (synced-1) is invisible in the derived collection while the optimistic mutation is pending, confirming the bug.

Related

Fixes #1017

… optimistic mutation (issue #1017)

Adds a test that reproduces the bug where synced data from a source
collection does not appear in a derived (live query) collection while
there is a pending optimistic mutation.

The test:
1. Creates a source collection with controllable sync
2. Creates a derived collection via createLiveQueryCollection
3. Uses createOptimisticAction to insert an item (mutation stays pending)
4. Syncs a new item into the source collection while mutation is pending
5. Asserts that both items should be visible in the derived collection

Currently failing because synced data is invisible while optimistic
mutations are pending.

Co-Authored-By: Claude <noreply@anthropic.com>
@changeset-bot
Copy link

changeset-bot bot commented Jan 20, 2026

⚠️ No Changeset found

Latest commit: 883f4e2

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@pkg-pr-new
Copy link

pkg-pr-new bot commented Jan 20, 2026

More templates

@tanstack/angular-db

npm i https://pkg.pr.new/@tanstack/angular-db@1166

@tanstack/db

npm i https://pkg.pr.new/@tanstack/db@1166

@tanstack/db-ivm

npm i https://pkg.pr.new/@tanstack/db-ivm@1166

@tanstack/electric-db-collection

npm i https://pkg.pr.new/@tanstack/electric-db-collection@1166

@tanstack/offline-transactions

npm i https://pkg.pr.new/@tanstack/offline-transactions@1166

@tanstack/powersync-db-collection

npm i https://pkg.pr.new/@tanstack/powersync-db-collection@1166

@tanstack/query-db-collection

npm i https://pkg.pr.new/@tanstack/query-db-collection@1166

@tanstack/react-db

npm i https://pkg.pr.new/@tanstack/react-db@1166

@tanstack/rxdb-db-collection

npm i https://pkg.pr.new/@tanstack/rxdb-db-collection@1166

@tanstack/solid-db

npm i https://pkg.pr.new/@tanstack/solid-db@1166

@tanstack/svelte-db

npm i https://pkg.pr.new/@tanstack/svelte-db@1166

@tanstack/trailbase-db-collection

npm i https://pkg.pr.new/@tanstack/trailbase-db-collection@1166

@tanstack/vue-db

npm i https://pkg.pr.new/@tanstack/vue-db@1166

commit: 883f4e2

@github-actions
Copy link
Contributor

Size Change: 0 B

Total Size: 90.8 kB

ℹ️ View Unchanged
Filename Size
./packages/db/dist/esm/collection/change-events.js 1.39 kB
./packages/db/dist/esm/collection/changes.js 1.19 kB
./packages/db/dist/esm/collection/events.js 388 B
./packages/db/dist/esm/collection/index.js 3.32 kB
./packages/db/dist/esm/collection/indexes.js 1.1 kB
./packages/db/dist/esm/collection/lifecycle.js 1.67 kB
./packages/db/dist/esm/collection/mutations.js 2.34 kB
./packages/db/dist/esm/collection/state.js 3.49 kB
./packages/db/dist/esm/collection/subscription.js 3.62 kB
./packages/db/dist/esm/collection/sync.js 2.41 kB
./packages/db/dist/esm/deferred.js 207 B
./packages/db/dist/esm/errors.js 4.7 kB
./packages/db/dist/esm/event-emitter.js 748 B
./packages/db/dist/esm/index.js 2.69 kB
./packages/db/dist/esm/indexes/auto-index.js 742 B
./packages/db/dist/esm/indexes/base-index.js 766 B
./packages/db/dist/esm/indexes/btree-index.js 1.93 kB
./packages/db/dist/esm/indexes/lazy-index.js 1.1 kB
./packages/db/dist/esm/indexes/reverse-index.js 513 B
./packages/db/dist/esm/local-only.js 837 B
./packages/db/dist/esm/local-storage.js 2.1 kB
./packages/db/dist/esm/optimistic-action.js 359 B
./packages/db/dist/esm/paced-mutations.js 496 B
./packages/db/dist/esm/proxy.js 3.75 kB
./packages/db/dist/esm/query/builder/functions.js 733 B
./packages/db/dist/esm/query/builder/index.js 4.08 kB
./packages/db/dist/esm/query/builder/ref-proxy.js 1.05 kB
./packages/db/dist/esm/query/compiler/evaluators.js 1.42 kB
./packages/db/dist/esm/query/compiler/expressions.js 430 B
./packages/db/dist/esm/query/compiler/group-by.js 1.81 kB
./packages/db/dist/esm/query/compiler/index.js 1.96 kB
./packages/db/dist/esm/query/compiler/joins.js 2 kB
./packages/db/dist/esm/query/compiler/order-by.js 1.45 kB
./packages/db/dist/esm/query/compiler/select.js 1.06 kB
./packages/db/dist/esm/query/expression-helpers.js 1.43 kB
./packages/db/dist/esm/query/ir.js 673 B
./packages/db/dist/esm/query/live-query-collection.js 360 B
./packages/db/dist/esm/query/live/collection-config-builder.js 5.42 kB
./packages/db/dist/esm/query/live/collection-registry.js 264 B
./packages/db/dist/esm/query/live/collection-subscriber.js 1.93 kB
./packages/db/dist/esm/query/live/internal.js 145 B
./packages/db/dist/esm/query/optimizer.js 2.56 kB
./packages/db/dist/esm/query/predicate-utils.js 2.97 kB
./packages/db/dist/esm/query/subset-dedupe.js 921 B
./packages/db/dist/esm/scheduler.js 1.3 kB
./packages/db/dist/esm/SortedMap.js 1.3 kB
./packages/db/dist/esm/strategies/debounceStrategy.js 247 B
./packages/db/dist/esm/strategies/queueStrategy.js 428 B
./packages/db/dist/esm/strategies/throttleStrategy.js 246 B
./packages/db/dist/esm/transactions.js 2.9 kB
./packages/db/dist/esm/utils.js 924 B
./packages/db/dist/esm/utils/browser-polyfills.js 304 B
./packages/db/dist/esm/utils/btree.js 5.61 kB
./packages/db/dist/esm/utils/comparison.js 852 B
./packages/db/dist/esm/utils/cursor.js 457 B
./packages/db/dist/esm/utils/index-optimization.js 1.51 kB
./packages/db/dist/esm/utils/type-guards.js 157 B

compressed-size-action::db-package-size

@github-actions
Copy link
Contributor

Size Change: 0 B

Total Size: 3.7 kB

ℹ️ View Unchanged
Filename Size
./packages/react-db/dist/esm/index.js 225 B
./packages/react-db/dist/esm/useLiveInfiniteQuery.js 1.17 kB
./packages/react-db/dist/esm/useLiveQuery.js 1.34 kB
./packages/react-db/dist/esm/useLiveSuspenseQuery.js 559 B
./packages/react-db/dist/esm/usePacedMutations.js 401 B

compressed-size-action::react-db-package-size

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Synced data does not appear in a derived (live query) collection while there is a pending optimistic mutation.

1 participant