Skip to content

solidart-v3.0.0-dev.1

Pre-release
Pre-release

Choose a tag to compare

@nank1ro nank1ro released this 30 Jun 13:51
17d9b48
  • BREAKING: SolidartConfig.autoDispose now defaults to false — auto-dispose is opt-in from v3. Enable it globally (SolidartConfig.autoDispose = true) or per Signal/Computed/Effect via the autoDispose parameter.
  • FIX: Effect now honours its per-instance autoDispose flag (defaulted from SolidartConfig.autoDispose at creation), consistent with Signal and Computed. Previously an effect only auto-disposed when the global SolidartConfig.autoDispose was enabled, ignoring a per-instance autoDispose: true.
  • CHORE: Upgrade alien_signals to ^2.3.1 and adapt the internal reactive adapter to its preset/system APIs.
  • FIX: A lazy nullable Signal (e.g. Signal<int?>.lazy()) now notifies when it is first set to null; previously the NoneSome(null) transition was treated as "no change".
  • FIX: Disposing a signal now fully unlinks its subscribers on both sides of each dependency link — and does so regardless of SolidartConfig.autoDispose (a disposed signal is destroyed, like Effect/Computed disposal) — so a later write to the disposed signal can no longer propagate into an already-detached computed.
  • FIX: Computed.listenerCount now reports the number of subscribers instead of the number of dependencies. This also corrects Resource's source cleanup, which uses listenerCount to decide whether to dispose a Computed passed as its source.
  • FIX: Disposing a Computed now unlinks all of its subscribers instead of only the first (leaving no dangling links back to it) and offers each subscriber the chance to auto-dispose, matching signal disposal.
  • REFACTOR: ReactiveSystem, reactiveSystem, and the MayDisposeDependencies extension are no longer exported from the public solidart.dart barrel — they expose internal alien_signals types and are implementation detail. Sibling packages consume them via package:solidart/solidart_internal.dart.