Coaction v1.5.0
Highlights
- Hardened core store update semantics and synchronization.
coactionnow filters unsafe keys during initialization and fast-path updates, preserves symbol-keyed descriptors, treatssetState(null)as a no-op, removes duplicate patch notifications, preserves slice siblings in local object fast paths, and rejects stalefullSyncfallbacks before they can roll back mirrored state. - Reworked React auto selectors to use explicit cached selector maps via
useStore.auto()anduseStore({ autoSelector: true }), avoiding hidden hook calls in property getters. - Fixed full-state React subscriptions for mutable adapters so MobX, Pinia, and Valtio-backed stores rerender correctly for both full-state readers and selectors.
Adapter Updates
@coaction/jotaiand@coaction/reduxnow notify Coaction subscribers after external writes, keeping bindings and middleware in sync.@coaction/mobx,@coaction/pinia,@coaction/valtio, and@coaction/zustandnow clean up adapter-installed subscriptions more reliably onstore.destroy().@coaction/xstategained official binder-adapter contract and type coverage for local whole-store integrations.@coaction/yjswas internally refactored into focused sync, value-conversion, and remote-operation modules without changing the public API.@coaction/loggernow guarantees trace cleanup when traced actions throw or reject.- All maintained adapters are aligned with
coaction@^1.5.0.
Documentation & Quality
- Refreshed the README and added architecture, adapter-contract, runtime, threading, API-evolution, and support-matrix docs.
- Documented
autoSelectorkey limitations and clarified maintained runtime, adapter, and middleware boundaries for the 1.5 line. - Added broader binder-adapter contract coverage, mutable-adapter React tests, and middleware-order coverage.
Full Changelog: v1.4.1...v1.5.0