All notable changes to this project will be documented in this file. See Conventional Commits for commit guidelines.
- FutureSignal Direct AsyncSignal Base:
FutureSignalnow extendsAsyncSignaldirectly instead ofStreamSignal, optimizing performance and removing stream-backed event-sink/listener overhead. - Signal Options Encapsulation: Removed individual configuration named parameters (e.g.
autoDispose,debugLabel) from all signal creator functions acrosssignals_core. Options must be passed inside strongly-typed options configuration objects. - SignalBuilder Constructor: Updated
SignalBuilderconstructor signature to accept a required named parameterbuilder:instead of a positional function argument.
- Writable Computed Signals (
linkedSignal/linkedSignalOptions): Implementation of Angular-style writable computed signals. - New Flutter Rendering & Lifecycle Widgets: Added stateless/stateful
SignalWidget, static-cache optimizedSignalAnimatedBuilder, inline side-effectsSignalEffect/SignalListener, and GPU-accelerated drawing targetingSignalCustomPaint. - Memory-Safe watch Context Extension: Built
Expando/WeakReference/Finalizer-based.watch(context)preventing lapsed-listener memory leaks. - Value Semantics options: Integrated copyWith, operator ==, and hashCode across all option variants.
Packages with breaking changes:
- There are no breaking changes in this release.
Packages with other changes:
preact_signals-v6.3.1signals-v6.3.1signals_core-v6.3.1signals_flutter-v6.3.1signals_hooks-v6.3.1signals_lint-v6.3.1
- FIX: Doc comment package import.
- REFACTOR: migrate signal mixins to mixin classes.
- REFACTOR: Rename persisted signal classes to correct typo.
- REFACTOR: Formatting.
- REFACTOR: allow setting a signal value inside computed.
- REFACTOR: inline signal subscribe.
- REFACTOR: share peek() between signal/computed.
- REFACTOR: inline cycle detection.
- REFACTOR: use untracked for signal subscribe.
- FIX: map.remove - only notify when value was removed.
- FIX(signals): accessing cached
SignalContainerinEffectcause loop. - FIX(signals): accessing cached
SignalContainerinEffectcause loop. - FIX: untracked always reset evaluation context.
- FIX: #179 and add overrideWith.
- FIX: #175 - add missing autoDispose/equality on signals.
- FIX: #156.
- FEAT: Impl loading for state reloading and refreshing classes.
- FEAT: Improve async state.
- FEAT: Changed Async{Loading,Data,Error} to be const.
- FEAT: Better type safety on Connect.
- DOCS: rename _computed => _fn.
- DOCS: rename some internal API methods.
- REFACTOR: migrate signal mixins to mixin classes.
- FIX(flutter): prevent ConcurrentModificationError in SignalsMixin.
- FIX(signals_flutter): remove listener on dispose for ValueListenable.toSignal().
- FIX: resolve hashCode collision in .watchSignal.
- FEAT(signals_flutter): return FlutterSignal/-Computed from SignalsMixin.createSignal/-Computed.
- FIX: call super.dispose in SignalHookState.