# Contributor handoff — reduxjs/redux-toolkit

> Canonical page: https://codevetter.com/unpack/redux-toolkit/agent-handoff

# Contributor handoff — reduxjs/redux-toolkit

Scanned commit e7a8b318df28aaf50ced1e65cd4636b7508263b2 (2026-09-29). Generated by codevetter codevetter 1.15.0 on 2026-10-02.

Source inspection; upstream code and tests were not executed.

Begin from the owning package and public entrypoint before following internal builders. Preserve runtime behavior and exported type inference together, especially across cache identity and package-resolution boundaries. Tests and CI were inspected, not executed, so this report provides test-selection guidance rather than validation results. The inventory and investigation are bounded; uninspected files and scenarios remain unknown.
- Read root/package manifests and pnpm-workspace.yaml before selecting commands: pnpm 11.23.0 is pinned, the workspace is selective, hoisted linking is configured, and autoInstallPeers/linkWorkspacePackages are disabled. — [package.json#L40-L50](https://github.com/reduxjs/redux-toolkit/blob/e7a8b318df28aaf50ced1e65cd4636b7508263b2/package.json#L40-L50) [pnpm-workspace.yaml#L11-L20](https://github.com/reduxjs/redux-toolkit/blob/e7a8b318df28aaf50ced1e65cd4636b7508263b2/pnpm-workspace.yaml#L11-L20) [pnpm-workspace.yaml#L38-L48](https://github.com/reduxjs/redux-toolkit/blob/e7a8b318df28aaf50ced1e65cd4636b7508263b2/pnpm-workspace.yaml#L38-L48)
- For store changes, inspect configureStore and both default-builder files together; custom enhancer callbacks must retain the middleware enhancer, and invariant middleware is added only outside production. — [packages/toolkit/src/configureStore.ts#L207-L247](https://github.com/reduxjs/redux-toolkit/blob/e7a8b318df28aaf50ced1e65cd4636b7508263b2/packages/toolkit/src/configureStore.ts#L207-L247) [packages/toolkit/src/getDefaultMiddleware.ts#L72-L109](https://github.com/reduxjs/redux-toolkit/blob/e7a8b318df28aaf50ced1e65cd4636b7508263b2/packages/toolkit/src/getDefaultMiddleware.ts#L72-L109) [packages/toolkit/src/getDefaultEnhancers.ts#L19-L30](https://github.com/reduxjs/redux-toolkit/blob/e7a8b318df28aaf50ced1e65cd4636b7508263b2/packages/toolkit/src/getDefaultEnhancers.ts#L19-L30)
- For reducer changes, preserve case-before-matcher execution, draft versus primitive handling, and lazy slice reducer construction. The removed object form of extraReducers is rejected outside production. — [packages/toolkit/src/createReducer.ts#L160-L206](https://github.com/reduxjs/redux-toolkit/blob/e7a8b318df28aaf50ced1e65cd4636b7508263b2/packages/toolkit/src/createReducer.ts#L160-L206) [packages/toolkit/src/createSlice.ts#L677-L712](https://github.com/reduxjs/redux-toolkit/blob/e7a8b318df28aaf50ced1e65cd4636b7508263b2/packages/toolkit/src/createSlice.ts#L677-L712) [packages/toolkit/src/createSlice.ts#L727-L738](https://github.com/reduxjs/redux-toolkit/blob/e7a8b318df28aaf50ced1e65cd4636b7508263b2/packages/toolkit/src/createSlice.ts#L727-L738)
- For RTK Query fixes, read createApi, core/module, buildInitiate, and buildThunks before changing cache behavior; preserve serializer precedence and the condition order that allows upserts before blocking pending requests. — [packages/toolkit/src/query/createApi.ts#L366-L392](https://github.com/reduxjs/redux-toolkit/blob/e7a8b318df28aaf50ced1e65cd4636b7508263b2/packages/toolkit/src/query/createApi.ts#L366-L392) [packages/toolkit/src/query/core/module.ts#L581-L619](https://github.com/reduxjs/redux-toolkit/blob/e7a8b318df28aaf50ced1e65cd4636b7508263b2/packages/toolkit/src/query/core/module.ts#L581-L619) [packages/toolkit/src/query/core/buildInitiate.ts#L397-L440](https://github.com/reduxjs/redux-toolkit/blob/e7a8b318df28aaf50ced1e65cd4636b7508263b2/packages/toolkit/src/query/core/buildInitiate.ts#L397-L440) [packages/toolkit/src/query/core/buildThunks.ts#L939-L971](https://github.com/reduxjs/redux-toolkit/blob/e7a8b318df28aaf50ced1e65cd4636b7508263b2/packages/toolkit/src/query/core/buildThunks.ts#L939-L971)
- For listener changes, keep reducer-before-effect ordering and synchronous getOriginalState semantics; cancellation, child-task joining, and executing-listener tracking require coordinated lifecycle handling. — [packages/toolkit/src/listenerMiddleware/index.ts#L341-L356](https://github.com/reduxjs/redux-toolkit/blob/e7a8b318df28aaf50ced1e65cd4636b7508263b2/packages/toolkit/src/listenerMiddleware/index.ts#L341-L356) [packages/toolkit/src/listenerMiddleware/index.ts#L410-L470](https://github.com/reduxjs/redux-toolkit/blob/e7a8b318df28aaf50ced1e65cd4636b7508263b2/packages/toolkit/src/listenerMiddleware/index.ts#L410-L470) [packages/toolkit/src/listenerMiddleware/index.ts#L503-L550](https://github.com/reduxjs/redux-toolkit/blob/e7a8b318df28aaf50ced1e65cd4636b7508263b2/packages/toolkit/src/listenerMiddleware/index.ts#L503-L550)
- When execution is separately authorized, use the owning package's focused Vitest test first, then relevant type tests; Toolkit provides test and type-tests scripts, with type-test discovery configured in tsconfig.test.json. Here these scripts and CI were inspected only. — [packages/toolkit/package.json#L223-L232](https://github.com/reduxjs/redux-toolkit/blob/e7a8b318df28aaf50ced1e65cd4636b7508263b2/packages/toolkit/package.json#L223-L232) [packages/toolkit/tsconfig.test.json#L1-L14](https://github.com/reduxjs/redux-toolkit/blob/e7a8b318df28aaf50ced1e65cd4636b7508263b2/packages/toolkit/tsconfig.test.json#L1-L14) [packages/toolkit/vitest.config.mts#L10-L23](https://github.com/reduxjs/redux-toolkit/blob/e7a8b318df28aaf50ced1e65cd4636b7508263b2/packages/toolkit/vitest.config.mts#L10-L23) [.github/workflows/tests.yml#L150-L163](https://github.com/reduxjs/redux-toolkit/blob/e7a8b318df28aaf50ced1e65cd4636b7508263b2/.github/workflows/tests.yml#L150-L163)
- Public type or export changes need artifact-level review: declarations include .d.ts/.d.mts variants, CI removes source aliases for tarball testing, and CONTRIBUTING requests updating the API report for external-facing type changes. — [packages/toolkit/tsdown.config.mts#L25-L34](https://github.com/reduxjs/redux-toolkit/blob/e7a8b318df28aaf50ced1e65cd4636b7508263b2/packages/toolkit/tsdown.config.mts#L25-L34) [packages/toolkit/tsconfig.base.json#L21-L27](https://github.com/reduxjs/redux-toolkit/blob/e7a8b318df28aaf50ced1e65cd4636b7508263b2/packages/toolkit/tsconfig.base.json#L21-L27) [.github/workflows/tests.yml#L144-L163](https://github.com/reduxjs/redux-toolkit/blob/e7a8b318df28aaf50ced1e65cd4636b7508263b2/.github/workflows/tests.yml#L144-L163) [CONTRIBUTING.md#L88-L95](https://github.com/reduxjs/redux-toolkit/blob/e7a8b318df28aaf50ced1e65cd4636b7508263b2/CONTRIBUTING.md#L88-L95)
- Follow package-specific formatting overrides and edit source rather than emitted bundles. For docs, account for the external website and type-checked MDX; for codegen, distinguish text-return generation from outputFile writes before choosing a verification path. — [.oxfmtrc.json#L17-L42](https://github.com/reduxjs/redux-toolkit/blob/e7a8b318df28aaf50ced1e65cd4636b7508263b2/.oxfmtrc.json#L17-L42) [packages/toolkit/tsdown.config.mts#L135-L149](https://github.com/reduxjs/redux-toolkit/blob/e7a8b318df28aaf50ced1e65cd4636b7508263b2/packages/toolkit/tsdown.config.mts#L135-L149) [docs/README.md#L34-L40](https://github.com/reduxjs/redux-toolkit/blob/e7a8b318df28aaf50ced1e65cd4636b7508263b2/docs/README.md#L34-L40) [packages/rtk-query-codegen-openapi/src/index.ts#L19-L37](https://github.com/reduxjs/redux-toolkit/blob/e7a8b318df28aaf50ced1e65cd4636b7508263b2/packages/rtk-query-codegen-openapi/src/index.ts#L19-L37)

Every claim links to its cited files at the pinned commit. Citations identify source evidence; they do not establish runtime correctness. Independent CodeVetter scan — not reviewed by upstream maintainers.

## Public product links

- [CodeVetter](https://codevetter.com/)
- [Download](https://codevetter.com/download)
- [Documentation](https://codevetter.com/docs/)
- [Source](https://github.com/Codevetter/codevetter)
