Skip to content

Conversation

@KyleAMathews
Copy link
Collaborator

🎯 Changes

βœ… Checklist

  • I have followed the steps in the Contributing guide.
  • I have tested this code locally with pnpm test:pr.

πŸš€ Release Impact

  • This change affects published code, and I have generated a changeset.
  • This change is docs/CI/dev-only (no release).

Adds console.log statements to trace the flow of data when rows move
into scope in on-demand mode with subset filtering. Key areas logged:

- SYNC_START: Collection sync initialization (mode, offset, table, where)
- STREAM: All incoming message batches and individual message types
- CHANGE: Every change message with operation, row ID, existing state, tags
- MOVE-IN: Detection of rows receiving their first tags
- MOVE-OUT: Move-out event processing and row deletion
- TAGS: Tag addition/removal with before/after counts
- LOAD_SUBSET: Snapshot requests and responses
- STATE: Insert/update/delete operations with data merging details

Critical warnings are logged when:
- UPDATE received for non-existent row (potential partial data bug)
- Move-in row has undefined values

To use: Run the app and check console for [DEBUG] prefixed logs.
Additional logging added to cover all code paths:

- BUFFERING: When messages are buffered in progressive mode
- TX: All transaction begin/commit points
- SNAPSHOT_END/SUBSET_END: Control message handling
- UP_TO_DATE: When up-to-date is received
- MUST_REFETCH: When must-refetch triggers truncate
- ATOMIC_SWAP: All steps of progressive mode atomic swap
- BATCH_END: Summary at end of each message batch
- READY: When collection is marked ready
- LOAD_SUBSET: Cursor-based pagination requests
- TAGS: All tag operations (add, remove, clear, match)
  - addTagsToRow with tag details
  - removeTagsFromRow with tag details
  - removeMatchingTagsFromRow with before/after counts
  - clearTagsForRow and clearTagTrackingState
Additional logging for remaining code paths:

- CLEANUP: When collection cleanup is called
- ERROR: When ShapeStream errors occur
- STATE TRUNCATE: Before/after truncate with sizes
- STATE COMMIT: Final commit summary with sizes
- LOAD_SUBSET: More detail on cursor pagination
- TAGS: All tag operation entry/exit points

This covers all major code paths for debugging the move-in bug.
@changeset-bot
Copy link

changeset-bot bot commented Dec 19, 2025

⚠️ No Changeset found

Latest commit: d5bc771

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 Dec 19, 2025

More templates

@tanstack/angular-db

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

@tanstack/db

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

@tanstack/db-ivm

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

@tanstack/electric-db-collection

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

@tanstack/offline-transactions

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

@tanstack/powersync-db-collection

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

@tanstack/query-db-collection

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

@tanstack/react-db

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

@tanstack/rxdb-db-collection

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

@tanstack/solid-db

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

@tanstack/svelte-db

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

@tanstack/trailbase-db-collection

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

@tanstack/vue-db

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

commit: d5bc771

@github-actions
Copy link
Contributor

Size Change: +342 B (+0.38%)

Total Size: 89.8 kB

Filename Size Change
./packages/db/dist/esm/collection/state.js 3.8 kB +342 B (+9.88%) ⚠️
ℹ️ View Unchanged
Filename Size
./packages/db/dist/esm/collection/change-events.js 1.39 kB
./packages/db/dist/esm/collection/changes.js 999 B
./packages/db/dist/esm/collection/events.js 388 B
./packages/db/dist/esm/collection/index.js 3.24 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/subscription.js 3.54 kB
./packages/db/dist/esm/collection/sync.js 2.38 kB
./packages/db/dist/esm/deferred.js 207 B
./packages/db/dist/esm/errors.js 4.27 kB
./packages/db/dist/esm/event-emitter.js 748 B
./packages/db/dist/esm/index.js 2.68 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 3.96 kB
./packages/db/dist/esm/query/builder/ref-proxy.js 917 B
./packages/db/dist/esm/query/compiler/evaluators.js 1.35 kB
./packages/db/dist/esm/query/compiler/expressions.js 430 B
./packages/db/dist/esm/query/compiler/group-by.js 1.8 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.46 kB
./packages/db/dist/esm/query/compiler/select.js 1.07 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.33 kB
./packages/db/dist/esm/query/live/collection-registry.js 264 B
./packages/db/dist/esm/query/live/collection-subscriber.js 1.9 kB
./packages/db/dist/esm/query/live/internal.js 130 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 881 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.35 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.12 kB
./packages/react-db/dist/esm/useLiveSuspenseQuery.js 431 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.

3 participants