Skip to content

fix(angular-db): config-object input to injectLiveQuery now syncs#1638

Merged
kevin-dp merged 1 commit into
mainfrom
fix/angular-config-object-startsync
Jul 9, 2026
Merged

fix(angular-db): config-object input to injectLiveQuery now syncs#1638
kevin-dp merged 1 commit into
mainfrom
fix/angular-config-object-startsync

Conversation

@kevin-dp

@kevin-dp kevin-dp commented Jul 2, 2026

Copy link
Copy Markdown
Contributor

Follow-up #2 of 3 to the conformance suite (#1636), fixing a knownGap it surfaced.

Base: stacked on test/live-query-conformance-suite (#1636). Re-target to main once #1636 lands.

The issue

injectLiveQuery({ query: (q) => ... }) — the config-object input form — returned empty data: the collection never started syncing.

Root cause

injectLiveQuery has three creation paths. The query-fn and reactive-options paths both force startSync: true (and gcTime: 0):

return createLiveQueryCollection({ query: opts, startSync: true, gcTime: 0 })

…but the config-object path passed opts through untouched:

return createLiveQueryCollection(opts)   // no startSync default → never syncs

So a bare { query } was created not-syncing and stayed empty. React/Vue/Svelte/Solid all auto-start a config object; only Angular required the caller to pass startSync: true explicitly (which is why angular-db's own config test passes it).

Fix

Default startSync: true and gcTime: 0 in the config-object path, while letting explicit values in the config win:

return createLiveQueryCollection({ startSync: true, gcTime: 0, ...opts })

Verification

Clears the config-object-input knownGap in the angular-db conformance driver — now passes as a normal test. Full angular-db suite green. Patch changeset included.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Bug Fixes
    • Fixed live queries created with a plain { query } config so they start syncing automatically and return data as expected.
    • Kept any explicitly provided settings intact while applying safer defaults for sync behavior and data cleanup.
  • Tests
    • Updated conformance coverage to reflect the improved config-object behavior.

@coderabbitai

coderabbitai Bot commented Jul 2, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: c2342707-c5c7-4635-808c-d122a79e5b6a

📥 Commits

Reviewing files that changed from the base of the PR and between 3ec3e7a and f1d199d.

📒 Files selected for processing (3)
  • .changeset/angular-config-object-startsync.md
  • packages/angular-db/src/index.ts
  • packages/angular-db/tests/conformance.test.ts

📝 Walkthrough

Walkthrough

Fixed the config-object branch of injectLiveQuery in the Angular DB package to default startSync: true and gcTime: 0 when creating a LiveQueryCollection, aligning it with other branches. Updated conformance test known gaps accordingly, and added a changeset entry.

Changes

injectLiveQuery config-object startSync fix

Layer / File(s) Summary
Default startSync/gcTime for config-object branch
packages/angular-db/src/index.ts
createLiveQueryCollection now receives default startSync: true and gcTime: 0 with ...opts spread after, so explicit values still override defaults.
Conformance test and changeset updates
packages/angular-db/tests/conformance.test.ts, .changeset/angular-config-object-startsync.md
The config-object-input known gap and its comment are removed from angularDriver's knownGaps, and a changeset documents the patch fix.

Estimated code review effort: 1 (Trivial) | ~5 minutes

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/angular-config-object-startsync

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@pkg-pr-new

pkg-pr-new Bot commented Jul 2, 2026

Copy link
Copy Markdown
More templates

@tanstack/angular-db

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

@tanstack/browser-db-sqlite-persistence

npm i https://pkg.pr.new/@tanstack/browser-db-sqlite-persistence@1638

@tanstack/capacitor-db-sqlite-persistence

npm i https://pkg.pr.new/@tanstack/capacitor-db-sqlite-persistence@1638

@tanstack/cloudflare-durable-objects-db-sqlite-persistence

npm i https://pkg.pr.new/@tanstack/cloudflare-durable-objects-db-sqlite-persistence@1638

@tanstack/db

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

@tanstack/db-ivm

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

@tanstack/db-sqlite-persistence-core

npm i https://pkg.pr.new/@tanstack/db-sqlite-persistence-core@1638

@tanstack/electric-db-collection

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

@tanstack/electron-db-sqlite-persistence

npm i https://pkg.pr.new/@tanstack/electron-db-sqlite-persistence@1638

@tanstack/expo-db-sqlite-persistence

npm i https://pkg.pr.new/@tanstack/expo-db-sqlite-persistence@1638

@tanstack/node-db-sqlite-persistence

npm i https://pkg.pr.new/@tanstack/node-db-sqlite-persistence@1638

@tanstack/offline-transactions

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

@tanstack/powersync-db-collection

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

@tanstack/query-db-collection

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

@tanstack/react-db

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

@tanstack/react-native-db-sqlite-persistence

npm i https://pkg.pr.new/@tanstack/react-native-db-sqlite-persistence@1638

@tanstack/rxdb-db-collection

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

@tanstack/solid-db

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

@tanstack/svelte-db

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

@tanstack/tauri-db-sqlite-persistence

npm i https://pkg.pr.new/@tanstack/tauri-db-sqlite-persistence@1638

@tanstack/trailbase-db-collection

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

@tanstack/vue-db

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

commit: f1d199d

@github-actions

github-actions Bot commented Jul 2, 2026

Copy link
Copy Markdown
Contributor

Size Change: 0 B

Total Size: 125 kB

ℹ️ View Unchanged
Filename Size
packages/db/dist/esm/collection/change-events.js 1.43 kB
packages/db/dist/esm/collection/changes.js 1.38 kB
packages/db/dist/esm/collection/cleanup-queue.js 810 B
packages/db/dist/esm/collection/events.js 434 B
packages/db/dist/esm/collection/index.js 3.62 kB
packages/db/dist/esm/collection/indexes.js 1.99 kB
packages/db/dist/esm/collection/lifecycle.js 1.69 kB
packages/db/dist/esm/collection/mutations.js 2.47 kB
packages/db/dist/esm/collection/state.js 5.4 kB
packages/db/dist/esm/collection/subscription.js 3.74 kB
packages/db/dist/esm/collection/sync.js 2.88 kB
packages/db/dist/esm/collection/transaction-metadata.js 144 B
packages/db/dist/esm/deferred.js 207 B
packages/db/dist/esm/errors.js 5.1 kB
packages/db/dist/esm/event-emitter.js 748 B
packages/db/dist/esm/index.js 3.1 kB
packages/db/dist/esm/indexes/auto-index.js 829 B
packages/db/dist/esm/indexes/base-index.js 767 B
packages/db/dist/esm/indexes/basic-index.js 2.06 kB
packages/db/dist/esm/indexes/btree-index.js 2.19 kB
packages/db/dist/esm/indexes/index-registry.js 820 B
packages/db/dist/esm/indexes/reverse-index.js 557 B
packages/db/dist/esm/local-only.js 916 B
packages/db/dist/esm/local-storage.js 2.12 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 1.47 kB
packages/db/dist/esm/query/builder/index.js 5.84 kB
packages/db/dist/esm/query/builder/ref-proxy.js 1.24 kB
packages/db/dist/esm/query/compiler/evaluators.js 1.89 kB
packages/db/dist/esm/query/compiler/expressions.js 430 B
packages/db/dist/esm/query/compiler/group-by.js 3.56 kB
packages/db/dist/esm/query/compiler/index.js 6.67 kB
packages/db/dist/esm/query/compiler/joins.js 2.5 kB
packages/db/dist/esm/query/compiler/lazy-targets.js 923 B
packages/db/dist/esm/query/compiler/order-by.js 1.74 kB
packages/db/dist/esm/query/compiler/select.js 1.53 kB
packages/db/dist/esm/query/effect.js 4.77 kB
packages/db/dist/esm/query/expression-helpers.js 1.43 kB
packages/db/dist/esm/query/ir.js 1.25 kB
packages/db/dist/esm/query/live-query-collection.js 360 B
packages/db/dist/esm/query/live/collection-config-builder.js 9.1 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/live/utils.js 1.81 kB
packages/db/dist/esm/query/optimizer.js 2.92 kB
packages/db/dist/esm/query/predicate-utils.js 2.97 kB
packages/db/dist/esm/query/query-once.js 359 B
packages/db/dist/esm/query/subset-dedupe.js 960 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 3.04 kB
packages/db/dist/esm/utils.js 927 B
packages/db/dist/esm/utils/array-utils.js 273 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 1.11 kB
packages/db/dist/esm/utils/cursor.js 457 B
packages/db/dist/esm/utils/index-optimization.js 2.39 kB
packages/db/dist/esm/utils/type-guards.js 157 B
packages/db/dist/esm/utils/uuid.js 449 B
packages/db/dist/esm/virtual-props.js 360 B

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

@github-actions

github-actions Bot commented Jul 2, 2026

Copy link
Copy Markdown
Contributor

Size Change: 0 B

Total Size: 4.26 kB

ℹ️ View Unchanged
Filename Size
packages/react-db/dist/esm/index.js 249 B
packages/react-db/dist/esm/useLiveInfiniteQuery.js 1.32 kB
packages/react-db/dist/esm/useLiveQuery.js 1.37 kB
packages/react-db/dist/esm/useLiveQueryEffect.js 355 B
packages/react-db/dist/esm/useLiveSuspenseQuery.js 567 B
packages/react-db/dist/esm/usePacedMutations.js 401 B

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

@kevin-dp kevin-dp force-pushed the fix/angular-config-object-startsync branch 2 times, most recently from e91e02b to 973e60b Compare July 7, 2026 10:01
Base automatically changed from test/live-query-conformance-suite to main July 7, 2026 10:20
The `{ query }` config-object branch called createLiveQueryCollection(opts)
without defaulting startSync, unlike the query-fn and reactive-options branches
(which force startSync: true). A bare `{ query }` therefore never synced and
returned empty. Default startSync: true and gcTime: 0 while honoring explicit
values in the config.

Clears the angular-db conformance knownGap (config-object-input).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@kevin-dp kevin-dp force-pushed the fix/angular-config-object-startsync branch from 973e60b to f1d199d Compare July 7, 2026 10:24
@kevin-dp kevin-dp marked this pull request as ready for review July 9, 2026 07:33
@kevin-dp kevin-dp merged commit 42fb59c into main Jul 9, 2026
10 of 11 checks passed
@kevin-dp kevin-dp deleted the fix/angular-config-object-startsync branch July 9, 2026 07:34
@github-actions github-actions Bot mentioned this pull request Jul 9, 2026
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.

2 participants