1 hours ago
react-query

Release 2026-10-19 16:59

Release 2026-10-19 16:59

Changes

Features

  • examples/react/react-native: render 'ReactQueryDevtools' on web through a platform-specific 'Devtools' component (#12093) (3c648e4dd) by @sukvvon

Fix

  • query-core: use supplied options for optimistic fetches (#12131) (f608f933a) by @TkDodo
  • react, preact: recompute mutation state snapshots (#12117) (1f8d134ea) by @TkDodo
  • examples/svelte/load-more-infinite-scroll: show 'Loading more...' only while fetching the next page instead of on any background refetch (#12121) (ff47e1873) by @sukvvon
  • examples/svelte/{basic,ssr}: remove the '!postId' check that kept 'Loading...' next to the error for non-numeric post ids (#12119) (942314910) by @sukvvon
  • examples/svelte/playground: show 'Saved!' only after a successful mutation instead of while idle (#12114) (ae6266d57) by @sukvvon
  • examples/svelte/star-wars: throw on non-ok 'fetch' responses in the API functions (#12113) (a8fe350b8) by @sukvvon
  • examples/svelte/optimistic-updates: render 'Background Updating...' instead of a leftover JSX ternary (#12107) (69457a9e5) by @sukvvon
  • examples/svelte/optimistic-updates: throw on non-ok responses so a failed create rolls back the optimistic update (#12106) (306fcda84) by @sukvvon
  • examples/svelte: throw on non-ok 'fetch' responses in the query and mutation functions (#12109) (d0a1dff1b) by @sukvvon
  • examples/solid/offline: throw the response text on non-ok 'fetch' responses and show query errors in 'List' and 'Detail' (#12099) (7592b2f18) by @sukvvon
  • examples/solid/astro: throw on non-ok 'fetch' responses and show a pokemon load error through an 'ErrorBoundary' (#12103) (aa77cd7f6) by @sukvvon
  • examples/solid/basic-graphql-request: type post ids as strings and pass the id as a GraphQL variable (#12100) (4ae64479f) by @sukvvon
  • examples/solid: throw on non-ok 'fetch' responses in the query functions (#12098) (c10c1f770) by @sukvvon
  • examples/preact/simple: throw on non-ok 'fetch' responses in the query function (#12097) (c1296c174) by @sukvvon
  • examples/react/react-native: register 'NetInfo' through 'onlineManager.setEventListener' so connected devices are not treated as offline while reachability is unknown (#12091) (ddff3a70b) by @sukvvon
  • examples/react/basic-graphql-request: type post ids as strings and pass the id as a GraphQL variable (#12087) (e39f330fa) by @sukvvon
  • examples/react/algolia: show the search error and use a 'button' that is disabled while fetching for loading more (#12086) (988e69ebf) by @sukvvon
  • examples/react/load-more-infinite-scroll: move the projects query into 'infiniteQueryOptions' in 'src/lib' and type 'nextId' and 'previousId' as nullable (#12085) (0fba30fbe) by @sukvvon
  • examples/react/pagination: share the projects query with 'queryOptions' in 'src/lib' so the next page prefetch respects 'staleTime' (#12084) (7328d02a3) by @sukvvon
  • examples/react/playground: show 'Saved!' only after a successful mutation instead of while idle (#12083) (d338489e0) by @sukvvon
  • examples/react/offline: show query errors in 'List' and 'Detail' and remove the 'MovieError' element that 'react-location' never renders (#12082) (f0dcdca51) by @sukvvon
  • examples/react/nextjs-app-optimistic-updates: stream the prefetched todos with 'useSuspenseQuery' and a 'React.Suspense' boundary (#12081) (3ff2ec167) by @sukvvon
  • examples/react/nextjs: set a default 'staleTime' so the statically generated posts are not refetched right after hydration (#12077) (cd9e573ea) by @sukvvon
  • examples/react/prefetching: show the error instead of an empty list or blank details when fetching characters fails (#12075) (daf7444f9) by @sukvvon
  • examples/react/nextjs: show the error in 'PostList' instead of an empty list when fetching posts fails (#12074) (19ad6d7fd) by @sukvvon

Refactor

  • examples/svelte/optimistic-updates: move the fetchers into 'src/lib/api.ts' and share the todos query with 'queryOptions' (#12124) (959f65e2d) by @sukvvon
  • examples/svelte/load-more-infinite-scroll: type the planets response and move the query into 'src/lib/api.ts' with 'infiniteQueryOptions' (#12123) (2653d67fd) by @sukvvon
  • examples/svelte/optimistic-updates: infer the 'onError' parameter types instead of 'any' and rename 'context' to 'onMutateResult' (#12120) (9e6e51c73) by @sukvvon
  • examples/svelte/star-wars: type the API responses and share the queries with 'queryOptions' (#12116) (adb932ea1) by @sukvvon
  • examples/svelte/ssr: read the cached post with 'postQueryOptions(id).queryKey' instead of a hard-coded key (#12112) (3119e0c6a) by @sukvvon
  • examples/svelte/auto-refetching: move the fetchers into 'src/lib/api.ts' and share the todos query with 'queryOptions' (#12111) (86c01185a) by @sukvvon
  • examples/svelte/basic: share the post queries with 'queryOptions' in 'src/lib/queries.ts' (#12110) (d8ab86342) by @sukvvon
  • examples/solid/default-query-function: type the posts with a 'Post' type instead of 'any' (#12105) (2e86afff5) by @sukvvon
  • examples/solid/basic: remove the always-true 'enabled' and the always-false '!props.postId' check in 'Post' (#12101) (f9d7ec099) by @sukvvon
  • examples/solid/astro: type the pokemon responses and move the queries into 'src/lib/api.ts' with 'queryOptions' (#12102) (0e7d125f0) by @sukvvon
  • examples/react/react-native: refetch only active stale queries in 'useRefreshOnFocus' as in the React Native guide (#12092) (85feb0941) by @sukvvon
  • examples/react/react-native: replace the deprecated 'Paragraph' and 'Title' with 'Text' variants from 'react-native-paper' (#12094) (a8eeff39f) by @sukvvon
  • examples/react/eslint-plugin-demo: rename the 'useApiClient' stub to 'getApiClient' since it is called outside of hooks (#12089) (af1e58044) by @sukvvon
  • examples/react/basic: remove the always-true 'enabled' and the always-false '!postId' check in 'Post' (#12088) (c57cf557c) by @sukvvon
  • examples/react/nextjs-app-prefetching: add 'shouldRedactErrors' to the query client as in the advanced SSR guide (#12076) (9d93dc57d) by @sukvvon
  • examples/react/shadow-dom: type the dogs response and move the query into 'api.ts' with 'queryOptions' (#12072) (2e7c288ed) by @sukvvon
  • examples/react/nextjs-app-optimistic-updates: share the todos query and fetchers with 'queryOptions' (#12071) (0a37fa6f2) by @sukvvon
  • examples/react/prefetching: type the character query and share it with 'queryOptions' (#12070) (5b7f49013) by @sukvvon
  • examples/react/star-wars: type the API responses and share the queries with 'queryOptions' (#12069) (090fb4a41) by @sukvvon
  • examples/react/rick-morty: type the API responses and share the queries with 'queryOptions' (#12068) (256abf45f) by @sukvvon

Chore

  • examples/react/react-native: replace the removed 'expo eject' script with 'expo prebuild' and drop the deprecated global 'expo-cli' install step (#12096) (de10bb0f9) by @sukvvon
  • examples/react: update '@types/react' and '@types/react-dom' to '^19' in the examples still on '^18' (#12067) (ffb1fbb62) by @sukvvon

Packages

  • @tanstack/angular-query-experimental@5.104.5
  • @tanstack/eslint-plugin-query@5.104.5
  • @tanstack/lit-query@0.2.30
  • @tanstack/preact-query@5.104.5
  • @tanstack/preact-query-devtools@5.104.5
  • @tanstack/preact-query-persist-client@5.104.5
  • @tanstack/query-async-storage-persister@5.104.5
  • @tanstack/query-broadcast-client-experimental@5.104.5
  • @tanstack/query-core@5.104.5
  • @tanstack/query-devtools@5.104.5
  • @tanstack/query-persist-client-core@5.104.5
  • @tanstack/query-sync-storage-persister@5.104.5
  • @tanstack/react-query@5.104.5
  • @tanstack/react-query-devtools@5.104.5
  • @tanstack/react-query-next-experimental@5.104.5
  • @tanstack/react-query-persist-client@5.104.5
  • @tanstack/solid-query@5.104.5
  • @tanstack/solid-query-devtools@5.104.5
  • @tanstack/solid-query-persist-client@5.104.5
  • @tanstack/svelte-query@6.3.5
  • @tanstack/svelte-query-devtools@6.3.5
  • @tanstack/svelte-query-persist-client@6.3.5
  • @tanstack/vue-query@5.104.5
  • @tanstack/vue-query-devtools@6.3.5
1 hours ago
query

Release 2026-10-19 16:59

Release 2026-10-19 16:59

Changes

Features

  • examples/react/react-native: render 'ReactQueryDevtools' on web through a platform-specific 'Devtools' component (#12093) (3c648e4dd) by @sukvvon

Fix

  • query-core: use supplied options for optimistic fetches (#12131) (f608f933a) by @TkDodo
  • react, preact: recompute mutation state snapshots (#12117) (1f8d134ea) by @TkDodo
  • examples/svelte/load-more-infinite-scroll: show 'Loading more...' only while fetching the next page instead of on any background refetch (#12121) (ff47e1873) by @sukvvon
  • examples/svelte/{basic,ssr}: remove the '!postId' check that kept 'Loading...' next to the error for non-numeric post ids (#12119) (942314910) by @sukvvon
  • examples/svelte/playground: show 'Saved!' only after a successful mutation instead of while idle (#12114) (ae6266d57) by @sukvvon
  • examples/svelte/star-wars: throw on non-ok 'fetch' responses in the API functions (#12113) (a8fe350b8) by @sukvvon
  • examples/svelte/optimistic-updates: render 'Background Updating...' instead of a leftover JSX ternary (#12107) (69457a9e5) by @sukvvon
  • examples/svelte/optimistic-updates: throw on non-ok responses so a failed create rolls back the optimistic update (#12106) (306fcda84) by @sukvvon
  • examples/svelte: throw on non-ok 'fetch' responses in the query and mutation functions (#12109) (d0a1dff1b) by @sukvvon
  • examples/solid/offline: throw the response text on non-ok 'fetch' responses and show query errors in 'List' and 'Detail' (#12099) (7592b2f18) by @sukvvon
  • examples/solid/astro: throw on non-ok 'fetch' responses and show a pokemon load error through an 'ErrorBoundary' (#12103) (aa77cd7f6) by @sukvvon
  • examples/solid/basic-graphql-request: type post ids as strings and pass the id as a GraphQL variable (#12100) (4ae64479f) by @sukvvon
  • examples/solid: throw on non-ok 'fetch' responses in the query functions (#12098) (c10c1f770) by @sukvvon
  • examples/preact/simple: throw on non-ok 'fetch' responses in the query function (#12097) (c1296c174) by @sukvvon
  • examples/react/react-native: register 'NetInfo' through 'onlineManager.setEventListener' so connected devices are not treated as offline while reachability is unknown (#12091) (ddff3a70b) by @sukvvon
  • examples/react/basic-graphql-request: type post ids as strings and pass the id as a GraphQL variable (#12087) (e39f330fa) by @sukvvon
  • examples/react/algolia: show the search error and use a 'button' that is disabled while fetching for loading more (#12086) (988e69ebf) by @sukvvon
  • examples/react/load-more-infinite-scroll: move the projects query into 'infiniteQueryOptions' in 'src/lib' and type 'nextId' and 'previousId' as nullable (#12085) (0fba30fbe) by @sukvvon
  • examples/react/pagination: share the projects query with 'queryOptions' in 'src/lib' so the next page prefetch respects 'staleTime' (#12084) (7328d02a3) by @sukvvon
  • examples/react/playground: show 'Saved!' only after a successful mutation instead of while idle (#12083) (d338489e0) by @sukvvon
  • examples/react/offline: show query errors in 'List' and 'Detail' and remove the 'MovieError' element that 'react-location' never renders (#12082) (f0dcdca51) by @sukvvon
  • examples/react/nextjs-app-optimistic-updates: stream the prefetched todos with 'useSuspenseQuery' and a 'React.Suspense' boundary (#12081) (3ff2ec167) by @sukvvon
  • examples/react/nextjs: set a default 'staleTime' so the statically generated posts are not refetched right after hydration (#12077) (cd9e573ea) by @sukvvon
  • examples/react/prefetching: show the error instead of an empty list or blank details when fetching characters fails (#12075) (daf7444f9) by @sukvvon
  • examples/react/nextjs: show the error in 'PostList' instead of an empty list when fetching posts fails (#12074) (19ad6d7fd) by @sukvvon

Refactor

  • examples/svelte/optimistic-updates: move the fetchers into 'src/lib/api.ts' and share the todos query with 'queryOptions' (#12124) (959f65e2d) by @sukvvon
  • examples/svelte/load-more-infinite-scroll: type the planets response and move the query into 'src/lib/api.ts' with 'infiniteQueryOptions' (#12123) (2653d67fd) by @sukvvon
  • examples/svelte/optimistic-updates: infer the 'onError' parameter types instead of 'any' and rename 'context' to 'onMutateResult' (#12120) (9e6e51c73) by @sukvvon
  • examples/svelte/star-wars: type the API responses and share the queries with 'queryOptions' (#12116) (adb932ea1) by @sukvvon
  • examples/svelte/ssr: read the cached post with 'postQueryOptions(id).queryKey' instead of a hard-coded key (#12112) (3119e0c6a) by @sukvvon
  • examples/svelte/auto-refetching: move the fetchers into 'src/lib/api.ts' and share the todos query with 'queryOptions' (#12111) (86c01185a) by @sukvvon
  • examples/svelte/basic: share the post queries with 'queryOptions' in 'src/lib/queries.ts' (#12110) (d8ab86342) by @sukvvon
  • examples/solid/default-query-function: type the posts with a 'Post' type instead of 'any' (#12105) (2e86afff5) by @sukvvon
  • examples/solid/basic: remove the always-true 'enabled' and the always-false '!props.postId' check in 'Post' (#12101) (f9d7ec099) by @sukvvon
  • examples/solid/astro: type the pokemon responses and move the queries into 'src/lib/api.ts' with 'queryOptions' (#12102) (0e7d125f0) by @sukvvon
  • examples/react/react-native: refetch only active stale queries in 'useRefreshOnFocus' as in the React Native guide (#12092) (85feb0941) by @sukvvon
  • examples/react/react-native: replace the deprecated 'Paragraph' and 'Title' with 'Text' variants from 'react-native-paper' (#12094) (a8eeff39f) by @sukvvon
  • examples/react/eslint-plugin-demo: rename the 'useApiClient' stub to 'getApiClient' since it is called outside of hooks (#12089) (af1e58044) by @sukvvon
  • examples/react/basic: remove the always-true 'enabled' and the always-false '!postId' check in 'Post' (#12088) (c57cf557c) by @sukvvon
  • examples/react/nextjs-app-prefetching: add 'shouldRedactErrors' to the query client as in the advanced SSR guide (#12076) (9d93dc57d) by @sukvvon
  • examples/react/shadow-dom: type the dogs response and move the query into 'api.ts' with 'queryOptions' (#12072) (2e7c288ed) by @sukvvon
  • examples/react/nextjs-app-optimistic-updates: share the todos query and fetchers with 'queryOptions' (#12071) (0a37fa6f2) by @sukvvon
  • examples/react/prefetching: type the character query and share it with 'queryOptions' (#12070) (5b7f49013) by @sukvvon
  • examples/react/star-wars: type the API responses and share the queries with 'queryOptions' (#12069) (090fb4a41) by @sukvvon
  • examples/react/rick-morty: type the API responses and share the queries with 'queryOptions' (#12068) (256abf45f) by @sukvvon

Chore

  • examples/react/react-native: replace the removed 'expo eject' script with 'expo prebuild' and drop the deprecated global 'expo-cli' install step (#12096) (de10bb0f9) by @sukvvon
  • examples/react: update '@types/react' and '@types/react-dom' to '^19' in the examples still on '^18' (#12067) (ffb1fbb62) by @sukvvon

Packages

  • @tanstack/angular-query-experimental@5.104.5
  • @tanstack/eslint-plugin-query@5.104.5
  • @tanstack/lit-query@0.2.30
  • @tanstack/preact-query@5.104.5
  • @tanstack/preact-query-devtools@5.104.5
  • @tanstack/preact-query-persist-client@5.104.5
  • @tanstack/query-async-storage-persister@5.104.5
  • @tanstack/query-broadcast-client-experimental@5.104.5
  • @tanstack/query-core@5.104.5
  • @tanstack/query-devtools@5.104.5
  • @tanstack/query-persist-client-core@5.104.5
  • @tanstack/query-sync-storage-persister@5.104.5
  • @tanstack/react-query@5.104.5
  • @tanstack/react-query-devtools@5.104.5
  • @tanstack/react-query-next-experimental@5.104.5
  • @tanstack/react-query-persist-client@5.104.5
  • @tanstack/solid-query@5.104.5
  • @tanstack/solid-query-devtools@5.104.5
  • @tanstack/solid-query-persist-client@5.104.5
  • @tanstack/svelte-query@6.3.5
  • @tanstack/svelte-query-devtools@6.3.5
  • @tanstack/svelte-query-persist-client@6.3.5
  • @tanstack/vue-query@5.104.5
  • @tanstack/vue-query-devtools@6.3.5
1 hours ago
react-query

@tanstack/solid-query-devtools@5.104.5

Patch Changes

  • Updated dependencies []:
    • @tanstack/query-devtools@5.104.5
    • @tanstack/solid-query@5.104.5
1 hours ago
react-query

@tanstack/vue-query@5.104.5

Patch Changes

  • Updated dependencies [f608f93]:
    • @tanstack/query-core@5.104.5
1 hours ago
react-query

@tanstack/vue-query-devtools@6.3.5

Patch Changes

  • Updated dependencies []:
    • @tanstack/query-devtools@5.104.5
    • @tanstack/vue-query@5.104.5
1 hours ago
react-query

@tanstack/svelte-query-devtools@6.3.5

Patch Changes

  • Updated dependencies []:
    • @tanstack/query-devtools@5.104.5
    • @tanstack/svelte-query@6.3.5
1 hours ago
react-query

@tanstack/solid-query-persist-client@5.104.5

Patch Changes

  • Updated dependencies []:
    • @tanstack/query-persist-client-core@5.104.5
    • @tanstack/solid-query@5.104.5
1 hours ago
react-query

@tanstack/svelte-query@6.3.5

Patch Changes

  • Updated dependencies [f608f93]:
    • @tanstack/query-core@5.104.5
1 hours ago
react-query

@tanstack/svelte-query-persist-client@6.3.5

Patch Changes

  • Updated dependencies []:
    • @tanstack/query-persist-client-core@5.104.5
    • @tanstack/svelte-query@6.3.5
1 hours ago
react-query

@tanstack/solid-query@5.104.5

Patch Changes

  • Updated dependencies [f608f93]:
    • @tanstack/query-core@5.104.5