CodeVetter
← All unpacks
CodeVetter · Repo Unpack evidence

reduxjs/redux

Scanned commit 56abca4749 dated 2026-09-29 — last upstream commit. Generated by codevetter 1.15.0 on 2026-10-02.

github.com/reduxjs/redux ↗ · 331 files · 1.9 MB

Redux Redux is a JS library for predictable and maintainable global state management.

Deep analysis by cli:codex via the codex CLI on 2026-10-02 (341s) — every claim below links to its cited source files. Source inspection; upstream code and tests were not executed.

Overview

Redux is a TypeScript implementation of a framework-independent JavaScript state container for application developers: actions enter a synchronous reducer pipeline, and subscribers read the resulting state. This checkout at 56abca4749921d68f40cda20afd2043af9751f72 packages Redux 5.0.1, maintains runtime and type compatibility tests, and hosts a combined documentation website for several Redux libraries. Its distinctive boundaries are a small in-memory core, composable middleware and store enhancers, and separately maintained React examples that illustrate both modern Toolkit usage and older Redux patterns.

System map

The primary deliverable is an npm library whose public boundary is src/index.ts. Store execution, reducer composition, middleware composition, and public types occupy separate modules. Application state lives in a store closure, while React integration belongs to external packages used by examples. The documentation site has its own dependency installation, external source acquisition, and static deployment configuration.

Feature catalog

Redux exposes state-management APIs rather than an application router or hosted backend. Users can create stores, subscribe to changes, compose reducers, bind action creators, customize dispatch, replace reducers, and consume observable state. Teaching applications demonstrate counters, todos, shopping carts, and normalized trees. The website adds multi-library navigation, search, production error explanations, and opt-in live examples.

Data flow

The core input boundary is dispatch, with preloaded state supplying the initial state boundary. Reducers transform state synchronously, and subscribers retrieve the resulting value rather than receiving action or state arguments. Middleware can interpret other input forms before reaching base dispatch. Documentation has a separate pipeline from external source acquisition through code-block checking and static page generation.

Behavior traces

The traced flows cover core startup, browser interaction, middleware construction, async counter behavior, reducer replacement, observable delivery, checkout, and documentation acquisition. These walkthroughs follow source execution order and preserve the important conditional branches. They describe expected behavior from code inspection, without asserting successful runtime execution.

Testing signals

Tests and CI were inspected, not executed; no passing result or coverage percentage is established here. Root Vitest tests exercise runtime contracts, while TypeScript fixtures exercise API inference and extension types. CI describes source tests, packed-artifact tests, a compiler-version matrix, and consumer integration builds. This is a bounded inspection, and test discovery and direct source imports limit what can be inferred about examples, documentation, and distribution coverage.

Risk map

These are source observations and explicitly marked hypotheses, not confirmed vulnerabilities. The inspected core executes caller-provided reducers and middleware in process and validates only a limited action shape. Operational boundaries appear in documentation acquisition, mutable build output, browser embeds, and publishing automation. Compatibility and validation gaps require attention because the library has several distributed formats and the site consumes independently changing repositories.

Extension points

Core extensibility comes from function interfaces rather than a named plugin registry. Reducers define state transitions, middleware wraps dispatch, and enhancers wrap store creation. Runtime reducer replacement and observable interoperability expose additional integration seams. Website extensibility uses explicit library metadata, Docusaurus plugin instances, navbar component registration, and configurable Markdown transformation hooks.

Contributor handoff

Start with the public export surface and the implementation/type pair for the affected API. Preserve synchronous reduction, subscriber snapshot behavior, and package-format compatibility when editing the core. Tests and CI were inspected, not executed, and this bounded report does not establish exhaustive coverage or passing checks. Website acquisition and root build commands have side effects, so future execution requires authority beyond this read-only investigation.

Languages

LanguageFilesShare of source
Markdown112docs/config
TypeScript7153%
JavaScript6246%
JSON22docs/config
CSS11docs/config
YAML11docs/config
HTML6docs/config
TOML11%

Start reading here

Probable source entrypoint: src/ — inferred from the directory tree and manifest, not the upstream docs.

Source roots

src/ (17 files)

Source layout — src/

PathFiles
src/types/1
src/applyMiddleware.ts1
src/createStore.ts1

Repository structure

Top-level pathFiles
examples/106
docs/90
website/50
test/22
src/17
.github/15
scripts/3
logo/2

Docs found: CONTRIBUTING.mdLICENSE.mdREADME.mddocs/FAQ.mddocs/api/Store.mddocs/api/api-reference.mddocs/api/applyMiddleware.mddocs/api/bindActionCreators.mddocs/api/combineReducers.mddocs/api/compose.md

Package

package.json — redux v5.0.1, 17 declared dependencies.

@arethetypeswrong/cli@babel/core@types/babel__core@types/babel__helper-module-imports@types/nodecross-envglobnetlify-plugin-cacheoxfmtoxlintpkg-pr-newrxjs

CI & config entrypoints

Structural health signals

Average score 9.5/10 across 96 analyzed source files; 1 hotspot surfaced.

These are deterministic review leads — size, churn, and structural signals — not proof of a bug in this project.

Recent history