Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
6fc5c3a
feat: add electron sqlite persisted collection package
kevin-dp Mar 12, 2026
741845b
feat: add node sqlite persisted collection package
kevin-dp Mar 12, 2026
7a0fcdd
feat(examples): add op-sqlite persistence to react-native offline-tra…
kevin-dp Mar 5, 2026
dfd8e16
Modify RN offline TX demo to also use local SQLite persistence
kevin-dp Mar 9, 2026
2195176
ci: apply automated fixes
autofix-ci[bot] Mar 11, 2026
baac8e0
fix(react-native): align react version with monorepo (^19.2.4)
kevin-dp Mar 12, 2026
d6d068b
fix(react-native): revert react to 19.0.0 and exclude from sherif
kevin-dp Mar 12, 2026
bf06d65
feat: add Intent agent skills for TanStack DB (#1330)
KyleAMathews Mar 6, 2026
c9619ef
update @electric-sql/client version (#1337)
KyleAMathews Mar 6, 2026
46a3679
ci: Version Packages (#1320)
github-actions[bot] Mar 6, 2026
9d392ad
ci: Version Packages (#1338)
github-actions[bot] Mar 6, 2026
9f058b7
fix: resolve all eslint warnings in packages/db (#1340)
KyleAMathews Mar 6, 2026
74deaee
docs: regenerate API documentation (#1339)
github-actions[bot] Mar 6, 2026
ce39b6f
Fine-grained Solid stores for useLiveQuery (#1316)
kevin-dp Mar 9, 2026
0bbc038
fix(db): throw error when fn.select() is used with groupBy() (#1324)
kevin-dp Mar 9, 2026
2c56894
Query once API implementation (#1211)
samwillis Mar 10, 2026
2294362
fix(db): use Ref<T, Nullable> for left join select refs instead of Re…
kevin-dp Mar 10, 2026
e87acc9
Fix unbounded expression growth in DeduplicatedLoadSubset (#1348)
KyleAMathews Mar 10, 2026
3f2ce43
chore: fix all eslint errors and warnings (#1349)
KyleAMathews Mar 10, 2026
5c1211f
ci: Version Packages (#1344)
github-actions[bot] Mar 10, 2026
1c7a974
docs: regenerate API documentation (#1350)
github-actions[bot] Mar 11, 2026
ca2c92a
fix: increase electron persisted collection E2E timeout for full mode
kevin-dp Mar 12, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 0 additions & 5 deletions .changeset/fix-optional-getnextpageparam.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/fix-setwindow-promises.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/upgrade-client-version.md

This file was deleted.

10 changes: 10 additions & 0 deletions .github/workflows/e2e-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,16 @@ jobs:
env:
ELECTRIC_URL: http://localhost:3000

- name: Run Node SQLite persisted collection E2E tests
run: |
cd packages/db-node-sqlite-persisted-collection
pnpm test:e2e

- name: Run Electron SQLite persisted collection E2E tests (full bridge)
run: |
cd packages/db-electron-sqlite-persisted-collection
TANSTACK_DB_ELECTRON_E2E_ALL=1 pnpm test:e2e

- name: Run React Native/Expo persisted collection E2E tests
run: |
cd packages/db-react-native-sqlite-persisted-collection
Expand Down
273 changes: 273 additions & 0 deletions _artifacts/skill_tree.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,273 @@
# _artifacts/skill_tree.yaml
library:
name: '@tanstack/db'
version: '0.5.30'
repository: 'https://github.com/TanStack/db'
description: 'Reactive client store with normalized collections, sub-millisecond live queries, and instant optimistic mutations'
generated_from:
domain_map: 'domain_map.yaml'
skill_spec: 'skill_spec.md'
generated_at: '2026-03-04'

skills:
# ─── Core overview (entry point) ───
- name: 'db-core'
slug: 'db-core'
type: 'core'
domain: 'collection-setup'
path: 'skills/db-core/SKILL.md'
package: 'packages/db'
description: >
TanStack DB core concepts: createCollection, live queries via query builder,
optimistic mutations with draft proxy, transaction lifecycle. Entry point
for all TanStack DB skills with sub-skill routing table.
sources:
- 'TanStack/db:docs/overview.md'
- 'TanStack/db:packages/db/src/index.ts'

# ─── Core sub-skills ───
- name: 'Collection Setup'
slug: 'db-core/collection-setup'
type: 'sub-skill'
domain: 'collection-setup'
path: 'skills/db-core/collection-setup/SKILL.md'
package: 'packages/db'
description: >
Creating typed collections with createCollection, queryCollectionOptions,
electricCollectionOptions, powerSyncCollectionOptions, rxdbCollectionOptions,
trailbaseCollectionOptions, localOnlyCollectionOptions, localStorageCollectionOptions.
CollectionConfig (getKey, schema, sync, gcTime, autoIndex, syncMode).
StandardSchema validation with Zod/Valibot/ArkType. Collection lifecycle
(idle/loading/ready/error/cleaned-up). Adapter-specific sync patterns.
requires:
- 'db-core'
sources:
- 'TanStack/db:docs/overview.md'
- 'TanStack/db:docs/guides/schemas.md'
- 'TanStack/db:docs/collections/query-collection.md'
- 'TanStack/db:docs/collections/electric-collection.md'
- 'TanStack/db:docs/collections/powersync-collection.md'
- 'TanStack/db:docs/collections/rxdb-collection.md'
- 'TanStack/db:docs/collections/trailbase-collection.md'
- 'TanStack/db:docs/collections/local-only-collection.md'
- 'TanStack/db:docs/collections/local-storage-collection.md'
- 'TanStack/db:packages/db/src/collection/index.ts'
subsystems:
- 'TanStack Query adapter'
- 'ElectricSQL adapter'
- 'PowerSync adapter'
- 'RxDB adapter'
- 'TrailBase adapter'
- 'Local-only'
- 'localStorage'
references:
- 'references/query-adapter.md'
- 'references/electric-adapter.md'
- 'references/powersync-adapter.md'
- 'references/rxdb-adapter.md'
- 'references/trailbase-adapter.md'
- 'references/local-adapters.md'
- 'references/schema-patterns.md'

- name: 'Live Queries'
slug: 'db-core/live-queries'
type: 'sub-skill'
domain: 'live-queries'
path: 'skills/db-core/live-queries/SKILL.md'
package: 'packages/db'
description: >
Query builder fluent API: from, where, join, leftJoin, rightJoin, innerJoin,
fullJoin, select, fn.select, groupBy, having, orderBy, limit, offset, distinct,
findOne. Operators: eq, gt, gte, lt, lte, like, ilike, inArray, isNull,
isUndefined, and, or, not. Aggregates: count, sum, avg, min, max. String
functions: upper, lower, length, concat, coalesce. Math: add.
$selected namespace. createLiveQueryCollection for
standalone queries. Derived collections. Predicate push-down. IVM via
differential dataflow (d2ts).
requires:
- 'db-core'
sources:
- 'TanStack/db:docs/guides/live-queries.md'
- 'TanStack/db:packages/db/src/query/builder/index.ts'
- 'TanStack/db:packages/db/src/query/compiler/index.ts'
- 'TanStack/db:packages/db-ivm/src/index.ts'
references:
- 'references/operators.md'

- name: 'Mutations & Optimistic State'
slug: 'db-core/mutations-optimistic'
type: 'sub-skill'
domain: 'mutations-optimistic'
path: 'skills/db-core/mutations-optimistic/SKILL.md'
package: 'packages/db'
description: >
collection.insert, collection.update (Immer-style draft proxy),
collection.delete. createOptimisticAction (onMutate + mutationFn).
createPacedMutations with debounceStrategy, throttleStrategy, queueStrategy.
createTransaction, getActiveTransaction, ambient transaction context.
Transaction lifecycle (pending/persisting/completed/failed). Mutation merging
(insert+update→insert, insert+delete→cancel). onInsert/onUpdate/onDelete
handlers. PendingMutation (original, modified, changes, globalKey).
Transaction.isPersisted promise. TanStack Pacer integration.
requires:
- 'db-core'
sources:
- 'TanStack/db:docs/guides/mutations.md'
- 'TanStack/db:packages/db/src/transactions.ts'
- 'TanStack/db:packages/db/src/optimistic-action.ts'
- 'TanStack/db:packages/db/src/paced-mutations.ts'
- 'TanStack/db:packages/db/src/collection/mutations.ts'
references:
- 'references/transaction-api.md'

- name: 'Custom Adapter Authoring'
slug: 'db-core/custom-adapter'
type: 'sub-skill'
domain: 'custom-adapter'
path: 'skills/db-core/custom-adapter/SKILL.md'
package: 'packages/db'
description: >
Building custom collection adapters. SyncConfig interface: sync function
receiving begin, write, commit, markReady, truncate primitives. ChangeMessage
format. loadSubset for on-demand sync. LoadSubsetOptions (where, orderBy,
limit, cursor). Expression parsing: parseWhereExpression,
parseOrderByExpression, extractSimpleComparisons, parseLoadSubsetOptions.
Collection options creator pattern. Subscription lifecycle and cleanup.
requires:
- 'db-core'
- 'db-core/collection-setup'
sources:
- 'TanStack/db:docs/guides/collection-options-creator.md'
- 'TanStack/db:packages/db/src/collection/sync.ts'
- 'TanStack/db:packages/db/src/query/ir.ts'

# ─── Framework skills (one per adapter package) ───
- name: 'React DB'
slug: 'react-db'
type: 'framework'
domain: 'framework-integration'
path: 'skills/react-db/SKILL.md'
package: 'packages/react-db'
description: >
React bindings for TanStack DB. useLiveQuery hook with dependency arrays
and 8 overloads (query function, config object, pre-created collection,
disabled state). useLiveSuspenseQuery for React Suspense with Error Boundaries.
useLiveInfiniteQuery for cursor-based pagination (pageSize, fetchNextPage,
hasNextPage). usePacedMutations for debounced React state. Return shape:
data, state, collection, status, isLoading, isReady, isError.
requires:
- 'db-core'
sources:
- 'TanStack/db:docs/framework/react/overview.md'
- 'TanStack/db:packages/react-db/src/useLiveQuery.ts'
- 'TanStack/db:packages/react-db/src/useLiveInfiniteQuery.ts'
- 'TanStack/db:packages/react-db/src/usePacedMutations.ts'

- name: 'Vue DB'
slug: 'vue-db'
type: 'framework'
domain: 'framework-integration'
path: 'skills/vue-db/SKILL.md'
package: 'packages/vue-db'
description: >
Vue bindings for TanStack DB. useLiveQuery composable with
MaybeRefOrGetter query functions and ComputedRef return values.
Reactive deps via Vue refs and computed properties.
requires:
- 'db-core'
sources:
- 'TanStack/db:docs/framework/vue/overview.md'
- 'TanStack/db:packages/vue-db/src/useLiveQuery.ts'

- name: 'Svelte DB'
slug: 'svelte-db'
type: 'framework'
domain: 'framework-integration'
path: 'skills/svelte-db/SKILL.md'
package: 'packages/svelte-db'
description: >
Svelte 5 bindings for TanStack DB. useLiveQuery with Svelte 5 runes
($state reactivity). Dependency arrays with getter functions for props.
requires:
- 'db-core'
sources:
- 'TanStack/db:docs/framework/svelte/overview.md'
- 'TanStack/db:packages/svelte-db/src/useLiveQuery.svelte.ts'

- name: 'Solid DB'
slug: 'solid-db'
type: 'framework'
domain: 'framework-integration'
path: 'skills/solid-db/SKILL.md'
package: 'packages/solid-db'
description: >
SolidJS bindings for TanStack DB. useLiveQuery with fine-grained
reactivity (Accessor, createSignal). Signal reads must happen inside
the query function for tracking.
requires:
- 'db-core'
sources:
- 'TanStack/db:docs/framework/solid/overview.md'
- 'TanStack/db:packages/solid-db/src/useLiveQuery.ts'

- name: 'Angular DB'
slug: 'angular-db'
type: 'framework'
domain: 'framework-integration'
path: 'skills/angular-db/SKILL.md'
package: 'packages/angular-db'
description: >
Angular bindings for TanStack DB. injectLiveQuery with Angular Signals.
Must be called in injection context. Supports reactive params via
{ params: () => T, query: ({ params, q }) => QueryBuilder } pattern.
Uses inject(DestroyRef) for cleanup.
requires:
- 'db-core'
sources:
- 'TanStack/db:docs/framework/angular/overview.md'
- 'TanStack/db:packages/angular-db/src/inject-live-query.ts'

# ─── Composition skills ───
- name: 'Meta-Framework Integration'
slug: 'meta-framework'
type: 'composition'
domain: 'meta-framework'
path: 'skills/meta-framework/SKILL.md'
package: 'packages/db'
description: >
Client-side preloading of TanStack DB collections in route loaders.
collection.preload(), stateWhenReady(), toArrayWhenReady(), onFirstReady().
Pre-creating createLiveQueryCollection in loaders. Setting ssr: false on
routes (SSR not yet supported). TanStack Start and TanStack Router loader
patterns. Coordinating collection lifecycle with route transitions.
requires:
- 'db-core'
- 'db-core/collection-setup'
sources:
- 'TanStack/db:docs/guides/live-queries.md'
- 'TanStack/db:examples/react/projects/src/routes/_authenticated/project/$projectId.tsx'
- 'TanStack/db:examples/react/projects/README.md'

# ─── Offline skill ───
- name: 'Offline Transactions'
slug: 'offline'
type: 'composition'
domain: 'offline'
path: 'skills/offline/SKILL.md'
package: 'packages/offline-transactions'
description: >
Offline-first transaction queueing with @tanstack/offline-transactions.
OfflineExecutor, startOfflineExecutor, OfflineConfig (collections,
mutationFns, storage, maxConcurrency). Storage adapters (IndexedDBAdapter,
LocalStorageAdapter). Retry policies (DefaultRetryPolicy, BackoffCalculator,
NonRetriableError). Leader election (WebLocksLeader, BroadcastChannelLeader).
Online detection (WebOnlineDetector). OutboxManager, KeyScheduler,
TransactionSerializer. React Native support via @react-native-community/netinfo.
requires:
- 'db-core'
- 'db-core/mutations-optimistic'
sources:
- 'TanStack/db:packages/offline-transactions/src/index.ts'
- 'TanStack/db:packages/offline-transactions/src/offline-executor.ts'
- 'TanStack/db:packages/offline-transactions/src/outbox.ts'
- 'TanStack/db:packages/offline-transactions/src/leader/'
14 changes: 7 additions & 7 deletions docs/framework/angular/reference/functions/injectLiveQuery.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ title: injectLiveQuery
function injectLiveQuery<TContext, TParams>(options): InjectLiveQueryResult<TContext>;
```

Defined in: [index.ts:87](https://github.com/TanStack/db/blob/main/packages/angular-db/src/index.ts#L87)
Defined in: [index.ts:89](https://github.com/TanStack/db/blob/main/packages/angular-db/src/index.ts#L89)

### Type Parameters

Expand Down Expand Up @@ -45,7 +45,7 @@ Defined in: [index.ts:87](https://github.com/TanStack/db/blob/main/packages/angu
function injectLiveQuery<TContext, TParams>(options): InjectLiveQueryResult<TContext>;
```

Defined in: [index.ts:97](https://github.com/TanStack/db/blob/main/packages/angular-db/src/index.ts#L97)
Defined in: [index.ts:99](https://github.com/TanStack/db/blob/main/packages/angular-db/src/index.ts#L99)

### Type Parameters

Expand Down Expand Up @@ -79,7 +79,7 @@ Defined in: [index.ts:97](https://github.com/TanStack/db/blob/main/packages/angu
function injectLiveQuery<TContext>(queryFn): InjectLiveQueryResult<TContext>;
```

Defined in: [index.ts:107](https://github.com/TanStack/db/blob/main/packages/angular-db/src/index.ts#L107)
Defined in: [index.ts:109](https://github.com/TanStack/db/blob/main/packages/angular-db/src/index.ts#L109)

### Type Parameters

Expand All @@ -103,7 +103,7 @@ Defined in: [index.ts:107](https://github.com/TanStack/db/blob/main/packages/ang
function injectLiveQuery<TContext>(queryFn): InjectLiveQueryResult<TContext>;
```

Defined in: [index.ts:110](https://github.com/TanStack/db/blob/main/packages/angular-db/src/index.ts#L110)
Defined in: [index.ts:112](https://github.com/TanStack/db/blob/main/packages/angular-db/src/index.ts#L112)

### Type Parameters

Expand All @@ -127,7 +127,7 @@ Defined in: [index.ts:110](https://github.com/TanStack/db/blob/main/packages/ang
function injectLiveQuery<TContext>(config): InjectLiveQueryResult<TContext>;
```

Defined in: [index.ts:115](https://github.com/TanStack/db/blob/main/packages/angular-db/src/index.ts#L115)
Defined in: [index.ts:117](https://github.com/TanStack/db/blob/main/packages/angular-db/src/index.ts#L117)

### Type Parameters

Expand All @@ -151,7 +151,7 @@ Defined in: [index.ts:115](https://github.com/TanStack/db/blob/main/packages/ang
function injectLiveQuery<TResult, TKey, TUtils>(liveQueryCollection): InjectLiveQueryResultWithCollection<TResult, TKey, TUtils>;
```

Defined in: [index.ts:119](https://github.com/TanStack/db/blob/main/packages/angular-db/src/index.ts#L119)
Defined in: [index.ts:121](https://github.com/TanStack/db/blob/main/packages/angular-db/src/index.ts#L121)

### Type Parameters

Expand Down Expand Up @@ -183,7 +183,7 @@ Defined in: [index.ts:119](https://github.com/TanStack/db/blob/main/packages/ang
function injectLiveQuery<TResult, TKey, TUtils>(liveQueryCollection): InjectLiveQueryResultWithSingleResultCollection<TResult, TKey, TUtils>;
```

Defined in: [index.ts:127](https://github.com/TanStack/db/blob/main/packages/angular-db/src/index.ts#L127)
Defined in: [index.ts:129](https://github.com/TanStack/db/blob/main/packages/angular-db/src/index.ts#L129)

### Type Parameters

Expand Down
Loading
Loading