release-2026-10-11-1936
TanStack/queryrelease-2026-10-11-1936Oct 11, 2026by github-actions[bot]
Upgrading?
AI Summary
This comprehensive release updates the core TanStack Query libraries to version 5.104.2 (and Svelte to 6.3.2), introducing Preact v11 support, a new feature for window-focused mutations, and a major refactoring of the project's linting and formatting tooling.
Key Highlights
- Added support for Preact v11 in preact-query packages.
- New feature: Start queued scoped mutations while the window is not focused.
- Replaced Prettier and ESLint with OXLint and OXFmt for improved performance.
- Vue Query: Exported the `MutationResult` type for better TypeScript declaration emission.
- Updated TypeScript configuration to support version 7.1 preview.
New Features
- Support for Preact v11
- Start queued scoped mutations while window is not focused
- Export `MutationResult` type in vue-query
Full Release Notes
Release 2026-10-11 19:36
## Changes
### Features
- preact-query*: support Preact v11 (#11711) (a94c7caee) by @JoviDeCroock
### Fix
- mutation-observer: snapshot mutateOptions before dispatching callbacks (#11945) (a16e71c7a) by @okxint
- examples/solid/offline: type the movie query and mutation with 'queryOptions' and 'mutationOptions' (#11975) (1dc168007) by @sukvvon
- examples/{react,solid}/offline: regenerate the msw worker and render after it starts (#11974) (fd820ed30) by @sukvvon
- examples/react/offline: type the movie query and mutation with 'queryOptions' and 'mutationOptions' (#11973) (d81b4e41d) by @sukvvon
- examples/react/react-native: type the movie list items as 'Movie' (#11971) (a6a46a2ea) by @sukvvon
- examples/react/algolia: compute the next page from 'lastPageParam' and the optional 'nbPages' (#11967) (3ae9fb0c3) by @sukvvon
- examples/react/prefetching: subscribe to prefetched characters instead of forcing a rerender (#11966) (008b75003) by @sukvvon
- examples/react/infinite-query-with-max-pages: extract a typed 'fetchProjects' for 'queryFn' (#11965) (11ad4e012) by @sukvvon
- examples/react: narrow 'req.query' values in the Next API routes (#11963) (4e21da774) by @sukvvon
- examples/react: remove the 'exact' prop that react-router v6 no longer supports (#11961) (3a66faac1) by @sukvvon
- examples/solid/default-query-function: match the cached post key in 'getQueryData' (#11958) (647e3fe66) by @sukvvon
- examples/solid/solid-start-streaming: include 'sleep' and 'simulateError' in the query keys (#11956) (0401256bc) by @sukvvon
- examples/solid/{basic,offline}: pass accessors instead of values to query hooks (#11955) (51e68b6b6) by @sukvvon
- vue-query: export `MutationResult` type (#11796) (69e114aec) by @KirbyBT
- query-core: start queued scoped mutations while the window is not focused 🤖🤖🤖 (#11679) (03e8c3955) by @tiagovilasboas
### Refactor
- examples/solid/solid-start-streaming: wrap 'userInfoQueryOpts' with 'queryOptions' (#11957) (0f6a80510) by @sukvvon
- lit-query: add the 'override' modifier to the implementations of the abstract controller hooks and document the hooks (#11913) (271a4ed77) by @sukvvon
- lit-query: add the 'override' modifier to members that override a base class member (#11906) (ec8c6de88) by @sukvvon
- vue-query: add the 'override' modifier to members that override a base class member (#11905) (866d5429f) by @sukvvon
- query-core: add the 'override' modifier to members that override a base class member (#11904) (65f762e29) by @sukvvon
### Chore
- examples/react: add '@types/node' to the Next.js examples that relied on the root copy (#11977) (98fd5936f) by @sukvvon
- examples/react: add '.stackblitzrc' so StackBlitz runs the 'dev' script in the Next.js examples (#11976) (3a0e92744) by @sukvvon
- examples/react: raise 'target' from 'ES5' to 'ES2017' in the Next app examples (#11969) (d2d3e064a) by @sukvvon
- examples/react: add 'vite-env.d.ts' so CSS imports type-check under TS 6 (#11968) (70194b8a7) by @sukvvon
- examples/react: remove unused 'React' imports (#11962) (dee1679bf) by @sukvvon
- examples/react: add '@types/react' to the examples that relied on the root one (#11960) (fb6525838) by @sukvvon
- examples/solid: replace the legacy '.eslintrc.cjs' with a flat config and run 'test:eslint' (#11959) (30a3b7376) by @sukvvon
- examples/lit: add a flat ESLint config and run 'test:eslint' (#11954) (d3fcbe5d6) by @sukvvon
- examples/preact/simple: use 'eslint-config-preact' through a flat config and run 'test:eslint' (#11953) (effc35872) by @sukvvon
- examples/angular: replace the legacy '.eslintrc.cjs' with a flat config and run 'test:eslint' (#11952) (bbc8e95ed) by @sukvvon
- examples/react: enable 'allowJs' so typed linting covers 'eslint.config.js' (#11950) (22621e773) by @sukvvon
- examples/solid/simple: replace the legacy '.eslintrc.cjs' with a flat config and run 'test:eslint' (#11949) (69d9f7c21) by @sukvvon
- nx.json: build the dependencies before 'test:eslint' (#11951) (42745443c) by @sukvvon
- test TypeScript 7.1 preview and drop 5.6 (#11947) (e22e7c4a2) by @TkDodo
- examples/react: run 'test:eslint' in 'algolia', 'basic-graphql-request' and 'shadow-dom' (#11948) (bef879eb5) by @sukvvon
- oxlint.config: load the jsdoc and vitest JS plugins only in the overrides that use them (#11946) (e3ef13870) by @sukvvon
- oxfmt.config: replace '.oxfmtrc.json' with 'oxfmt.config.ts' (#11944) (a2e0eb2e5) by @sukvvon
- oxlint.config: remove the unused '$schema' (#11943) (a8163e00b) by @sukvvon
- oxlint.config: spread the vitest recommended rules instead of listing them (#11942) (f4600cdf7) by @sukvvon
- *: pass the root 'settings' to the package oxlint configs, which 'extends' does not inherit (#11941) (df78a9d13) by @sukvvon
- replace prettier with oxfmt (#11939) (833062c2f) by @DogPawHat
- replace eslint with oxlint (#11938) (d0cfa6a4a) by @DogPawHat
- solid-query*: add 'eslint-plugin-solid' (#11929) (aab352876) by @sukvvon
- preact-query*: clarify why the base rules from 'eslint-config-preact' are turned off (#11928) (01a7ebdd0) by @sukvvon
- preact-query*: enable '@typescript-eslint/no-unnecessary-condition' outside tests (#11927) (79e2e4244) by @sukvvon
- preact-query*: remove '@typescript-eslint/no-redeclare' (#11926) (24569675b) by @sukvvon
- preact-query*: enable '@typescript-eslint/array-type' and '@typescript-eslint/no-unnecessary-type-assertion' (#11925) (c7a22584e) by @sukvvon
- preact-query*: enable 'import/order' and 'sort-imports' (#11924) (93cb9cf6e) by @sukvvon
- *: update '@tanstack/typedoc-config' to v0.3.4 (#11817) (1d2cf9130) by @sukvvon
- tsconfig: enable 'noImplicitOverride' (#11912) (eaa75f4f8) by @sukvvon
- eslint.config: require JSDoc on the methods of exported classes (#11907) (8a0a9b10c) by @sukvvon
- eslint.config: require JSDoc on the properties of exported interfaces and type aliases (#11901) (a6e8763a7) by @sukvvon
- eslint.config: require JSDoc on exported classes and arrow functions (#11890) (cacd9cb8c) by @sukvvon
- eslint.config: require JSDoc on exported interfaces and type aliases (#11876) (c1c27a7ba) by @sukvvon
- preact-query-devtools: replace the stale 'root.tsdown.config.js' copy with a symlink to the shared config (#11864) (a83ce667d) by @sukvvon
- eslint.config: add 'refetched' to the 'cspell' words (#11863) (4acb1765f) by @sukvvon
- eslint.config: enable the 'jsdoc' rules outside the recommended config that have no violations (#11855) (6c755231d) by @sukvvon
- eslint.config: extend the error variant of the 'eslint-plugin-jsdoc' recommended config (#11854) (327b6b9ab) by @sukvvon
- angular-query-persist-client/eslint.config: remove the package-specific 'jsdoc' rules in favor of the root config (#11853) (53899d916) by @sukvvon
- eslint.config: use 'extends' for the 'eslint-plugin-jsdoc' recommended config (#11852) (387466deb) by @sukvvon
- eslint.config: enforce the 'jsdoc' rules that have no remaining violations (#11851) (c074a13dd) by @sukvvon
- eslint.config: exclude '__testfixtures__' from the 'jsdoc' rules (#11850) (8f5a2405e) by @sukvvon
- eslint.config: name the repository config objects under 'tanstack/query' (#11826) (98d63264e) by @sukvvon
- eslint.config: apply 'eslint-plugin-jsdoc' recommended rules to non-test source files (#11825) (da60e24c8) by @sukvvon
- package.json: update '@cspell/eslint-plugin' to v10.3.6 (#11824) (6b42538b1) by @sukvvon
- angular-query-persist-client: update 'eslint-plugin-jsdoc' to v65.0.1 (#11823) (040881da8) by @sukvvon
- eslint-plugin-query: move '@typescript-eslint/rule-tester' to the pnpm catalog (#11822) (79d1f2200) by @sukvvon
- *: update 'typescript-eslint' packages to v8.71.0 and '@eslint-react/eslint-plugin' to v5.23.3 (#11821) (772697488) by @sukvvon
- package.json: update '@tanstack/eslint-config' to v0.4.0 (#11820) (808501b15) by @sukvvon
- eslint.config: use 'defineConfig' from 'eslint/config' (#11819) (5ab1aaedd) by @sukvvon
- preact-query-devtools: replace stale 'root.eslint.config.js' copy with a symlink to the root config (#11818) (73e6575c8) by @sukvvon
## Packages
- @tanstack/angular-query-experimental@5.104.2
- @tanstack/eslint-plugin-query@5.104.2
- @tanstack/lit-query@0.2.27
- @tanstack/preact-query@5.104.2
- @tanstack/preact-query-devtools@5.104.2
- @tanstack/preact-query-persist-client@5.104.2
- @tanstack/query-async-storage-persister@5.104.2
- @tanstack/query-broadcast-client-experimental@5.104.2
- @tanstack/query-core@5.104.2
- @tanstack/query-devtools@5.104.2
- @tanstack/query-persist-client-core@5.104.2
- @tanstack/query-sync-storage-persister@5.104.2
- @tanstack/react-query@5.104.2
- @tanstack/react-query-devtools@5.104.2
- @tanstack/react-query-next-experimental@5.104.2
- @tanstack/react-query-persist-client@5.104.2
- @tanstack/solid-query@5.104.2
- @tanstack/solid-query-devtools@5.104.2
- @tanstack/solid-query-persist-client@5.104.2
- @tanstack/svelte-query@6.3.2
- @tanstack/svelte-query-devtools@6.3.2
- @tanstack/svelte-query-persist-client@6.3.2
- @tanstack/vue-query@5.104.2
- @tanstack/vue-query-devtools@6.3.2
Related Repositories
The AI that really does things. Any OS. Any Platform. The lobster way. 🦞
Interactive roadmaps, guides and other educational content to help developers grow in their careers.
Reverse engineer anything with agents, from app behavior down to native binaries.
The open source coding agent.
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.