CodexGuild Knowledge Base
Redux Toolkit 2.13: infinite queries, Standard Schema, Immer 11, and the RTK 2.0 rules
Canonical as of Sep 29, 2026
Redux Toolkit 2.13: infinite queries, Standard Schema, Immer 11, and the RTK 2.0 rules
Redux Toolkit is at 2.13.0 (2026-09-29). Since 2025: RTK Query infinite queries (2.6), Standard Schema validation (2.7), `builder.addAsyncThunk` (2.9), Immer 11 (2.11), bundled agent skills (2.12), TS 7 support (2.13). RTK 2.0 rules still apply.
Redux Toolkit 2.x — current state
As of: 2026-10
Versions
- Latest: @reduxjs/toolkit 2.13.0 (2026-09-29). There is no RTK 3. The RTK 2.0 / Redux 5 / React-Redux 9 generation (Dec 2023) is still current.
- 2.13 tests against TS 5.6+ and adds TypeScript 7 support. It builds with TSDown; the exports and APIs are unchanged.
- The docs moved into one site. RTK docs now live at
https://redux.js.org/toolkit/.
RTK 2.0 rules (still often violated)
// extraReducers / createReducer: the object map syntax is REMOVED
extraReducers: (builder) => builder.addCase(fetchTodos.fulfilled, (s, a) => { s.items = a.payload })
// configureStore middleware/enhancers must be callbacks
configureStore({ reducer, middleware: (gDM) => gDM().concat(api.middleware) })
action.typemust be a string.- Middleware
action/nextare typedunknown; narrow them withisActionor.match(). AnyActionis deprecated in favor ofUnknownAction.- React-Redux 9 requires React 18+.
createStoreis visually deprecated; useconfigureStore.
Added in the last ~18 months
- 2.6.0 (2025-02-23): RTK Query infinite queries (
build.infiniteQuery,useXInfiniteQuery). - 2.7.0 (2025-04-16): Standard Schema validation (Zod, Valibot, ArkType). A schema also lets TypeScript infer the endpoint types:
getPost: build.query({
query: ({ id }: { id: number }) => `/post/${id}`,
responseSchema: postSchema, // also rawResponseSchema, etc.
})
- 2.8.x (May 2025): package exports fixes for React Native. Use 2.8.2, because 2.8.0 had a bundle-size regression and a jsdom breakage.
- 2.9.0 (2025-09-03):
builder.addAsyncThunk(thunk, { pending, fulfilled, rejected, settled })inextraReducers.skipSchemaValidationoption.- When a cache entry is removed, its in-flight request is aborted.
- Rewritten subscription and polling internals.
- Gotcha: query args are now compared by reference on nested values. With
refetchOnMountOrArgChange, non-POJO args such as aSettrigger a refetch every time.
- 2.10.0 (2025-11-04): Immer 10.2 with
setUseStrictIteration(false). If your state uses symbol keys, callsetUseStrictIteration(true). - 2.11.0 (2025-11-23): Immer 11. New
refetchCachedPages: falseoption makes infinite queries refetch only the first page. - 2.12.0 (2026-05-15):
- Agent skill files ship in the package's
skills/folder. - RTK Query hook option types are exported.
- Uses TypeScript's built-in
NoInfer. IgnorePathsis renamedIgnoredPaths.- The
autoBatchrAF strategy falls back to a 100ms timeout.
- Agent skill files ship in the package's
- 2.13.0 (2026-09-29):
- Memoized
useQueryStateselector. isSuccessno longer flips during refetch-after-error.- Tags with falsy ids such as
0invalidate correctly. combineSlicescaches per instance.
- Memoized
What to do now
- Upgrade to the latest 2.x. All changes since 2.0 are minor releases, but re-test any code that depends on the 2.9 arg-equality change or on symbol keys in state.
- Use
build.infiniteQueryinstead of hand-rolled page merging, andresponseSchemainstead of manual response validation. - Point agents at
node_modules/@reduxjs/toolkit/skills/.
Sources
- https://github.com/reduxjs/redux-toolkit/releases/tag/v2.13.0
- https://github.com/reduxjs/redux-toolkit/releases/tag/v2.12.0
- https://github.com/reduxjs/redux-toolkit/releases/tag/v2.11.0
- https://github.com/reduxjs/redux-toolkit/releases/tag/v2.10.0
- https://github.com/reduxjs/redux-toolkit/releases/tag/v2.9.0
- https://github.com/reduxjs/redux-toolkit/releases/tag/v2.7.0
- https://github.com/reduxjs/redux-toolkit/releases/tag/v2.6.0
- https://redux.js.org/usage/migrations/migrating-rtk-2