Skip to content
CAI
Software that uses CAICheck a score

w11k/Tydux

52.2

Adequate · 21 September 2026

2.6k

lines of production code

TypeScript

with JavaScript

4

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

This system is a state management library, Tydux, that provides a modern architecture for managing application state through immutable updates and observable streams. It offers framework-specific integrations for React and Angular, enabling components to subscribe to state changes and perform mutations. The core library supports advanced state manipulation patterns, including command mutators and repository-based entity management, while replacing older, legacy store implementations.

Features

Add React hooks for Tydux state management

The \tydux-react\ module introduces the \useFacadeState\ hook, which allows React components to subscribe to a Tydux Facade's state. The hook supports optional state selectors and provides a \nilReplacement\ argument to handle null or undefined values. Configuration files for Babel, Jest, and TypeScript (including ESM5, ESM2015, and spec builds) are added to support the new module's build and test infrastructure.

modules/tydux-react · high confidence

Add command mutators and repository support for state management

Introduces new command mutators (createAssignCommand, createMutator, arrayAppend, arrayPrepend, arrayInsertAtIndex, arrayRemoveFirst, objectPatch, swapPositions) to facilitate state updates, alongside a new Repository pattern (RepositoryCommands, createRepositoryState) for managing collections of entities by ID. The Facade class is updated to support initial state configuration and exposes methods for observing state changes and destruction. Comprehensive test coverage is added for the new mutators, commands, and repository functionality.

modules/tydux/src · high confidence

Initial setup of the Tydux Angular demo application and library

The \tydux-angular\ module is introduced as a new standalone Angular application and library. The application provides a demo featuring a todo list, utilizing the \@w11k/tydux\ state management library via \provideTydux\ and \TyduxModule\. The setup includes full project configuration (Nx, Jest, ESLint, Cypress), a \TodoService\ for fetching and updating todos, and components for rendering the list and context. This change establishes the foundational structure for the Angular integration of Tydux.

modules/tydux-angular · high confidence

Removals

Removal of plain demo application and build configuration

The plain demo application, including the main component logic and the associated webpack build configuration, has been removed from the repository. This eliminates the ability to run or build this specific demo example.

demos, demos/plain · high confidence

Behavioural changes

Removed legacy Store implementation and associated test files

The legacy \Store\ class and its corresponding test file (\Store.test.ts\) have been removed from the \src\ directory. This change eliminates the previous state management implementation, which relied on \icepick\ and \lodash\, in favor of newer abstractions such as \UnboundedObservable\ and \Mutator\-based mutations. The removal includes the \enableDevelopmentMode\ function, the \select\ and \action\ methods on the store, and the associated type definitions, indicating a significant architectural shift in how state is observed and mutated within the application.

src · high confidence

Updated and expanded release automation script

The dev/publish.sh script has been significantly expanded to include a full build, test, and publish workflow, including fetching the latest master branch, building the library, running all tests, creating a git tag for the current version, and publishing the package to the public npm registry. The old dev/update\_libs.sh script was removed.

dev · high confidence

Test coverage

Removed legacy Mocha test configuration and setup files

The test suite configuration file (spec/mocha.opts) and the global test setup file (spec/setup.js) have been removed. This eliminates the previous Mocha-based test runner setup, which included specific reporter and timeout configurations, as well as the global assertion library initialization.

spec · high confidence

Dependencies

The Tydux core library has been updated to version 17.0.0, which now depends on @w11k/rx-ninja ^5.0.0 and requires immer \>= 9.0.0. The React integration (@w11k/tydux-react) has been updated to version 0.0.4, requiring @w11k/tydux \>= 14 and React \>= 16.8.0. The Angular integration (@w11k/tydux-angular) is now at version 16.0.0, requiring @w11k/tydux ^17.0.0. Additionally, the legacy 'typux' package.json has been removed.

(dependencies) · high confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Score

  • CAI 55 → 52 (-2.9)
  • Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.

Lenses

  • Code Health 78 → 79 (+0.7)
  • Architecture 88 → 86 (-1.9)
  • Maturity 46 → 47 (+1.4)
  • Readiness 45 → 41 (-3.4)
  • Security 75 → 71 (-4.0)

Resolved (56)

  • Coverage not included — suite not readable by the collector
  • Critical CVE: [GHSA redacted] (modules/tydux-angular/package-lock.json)
  • Critical CVE: [GHSA redacted] (modules/tydux-angular/package-lock.json)
  • Critical CVE: [GHSA redacted] (modules/tydux-react/package-lock.json)
  • Critical CVE: [GHSA redacted] (modules/tydux/package-lock.json)
  • Critical CVE: [GHSA redacted] (modules/tydux-angular/package-lock.json)
  • Critical CVE: [GHSA redacted] (modules/tydux-angular/package-lock.json)
  • Critical CVE: [GHSA redacted] (modules/tydux-react/package-lock.json)
  • Critical CVE: [GHSA redacted] (modules/tydux-angular/package-lock.json)
  • Critical CVE: [GHSA redacted] (modules/tydux-react/package-lock.json)
  • Critical CVE: [GHSA redacted] (modules/tydux-angular/package-lock.json)
  • Critical CVE: [GHSA redacted] (modules/tydux-react/package-lock.json)
  • Dependency hygiene not measured — no supported dependency manifest was read
  • High CVE: [GHSA redacted] (modules/tydux-angular/package-lock.json)
  • High CVE: [GHSA redacted] (modules/tydux-angular/package-lock.json)
  • High CVE: [GHSA redacted] (modules/tydux-angular/package-lock.json)
  • High CVE: [GHSA redacted] (modules/tydux-angular/package-lock.json)
  • High CVE: [GHSA redacted] (modules/tydux-angular/package-lock.json)
  • High CVE: [GHSA redacted] (modules/tydux-react/package-lock.json)
  • High CVE: [GHSA redacted] (modules/tydux-angular/package-lock.json)
  • …and 36 more

New (143)

  • Critical CVE: [GHSA redacted] (modules/tydux-angular/package-lock.json)
  • Critical CVE: [GHSA redacted] (modules/tydux-angular/package-lock.json)
  • Critical CVE: [GHSA redacted] (modules/tydux-react/package-lock.json)
  • Critical CVE: [GHSA redacted] (modules/tydux/package-lock.json)
  • Critical CVE: [GHSA redacted] (modules/tydux-angular/package-lock.json)
  • Critical CVE: [GHSA redacted] (modules/tydux-angular/package-lock.json)
  • Critical CVE: [GHSA redacted] (modules/tydux-react/package-lock.json)
  • Critical CVE: [GHSA redacted] (modules/tydux-angular/package-lock.json)
  • Critical CVE: [GHSA redacted] (modules/tydux-react/package-lock.json)
  • Critical CVE: [GHSA redacted] (modules/tydux-angular/package-lock.json)
  • Critical CVE: [GHSA redacted] (modules/tydux-react/package-lock.json)
  • Documentation: no installation or build instructions (README.md)
  • Documentation: no usage examples (README.md)
  • High CVE: [GHSA redacted] (modules/tydux-angular/package-lock.json)
  • High CVE: [GHSA redacted] (modules/tydux-angular/package-lock.json)
  • High CVE: [GHSA redacted] (modules/tydux-angular/package-lock.json)
  • High CVE: [GHSA redacted] (modules/tydux-angular/package-lock.json)
  • High CVE: [GHSA redacted] (modules/tydux-angular/package-lock.json)
  • High CVE: [GHSA redacted] (modules/tydux-react/package-lock.json)
  • High CVE: [GHSA redacted] (modules/tydux-angular/package-lock.json)
  • …and 123 more

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

w11k/Tydux was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 21 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit d8d86b233c2904c1b1860c3982da6523c680c579 — the exact code this score is about.
  • Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-b84573e22831.