Published on pub.dev: https://pub.dev/packages/better_effect_flutter/versions/0.4.0
-
Added the repository-level normative semantic contract and an independent
cross-package conformance suite for Command authority, one-shot delivery, and
Flutter Runtime ownership alongside the core lifecycle rules. -
Semantic compatibility changes now require the matching conformance scenario,
affected package changelog entries, and a semantic migration ledger entry. -
Added
BetterEffectFeatureScopefor feature-owned child Runtimes with
loading/error/retry startup, nested feature environments, and generation-safe
restart behavior. -
ViewModels and Commands inside a feature automatically bind to the child
environment, while feature disposal never closes the parent Runtime. -
Added
EffectCommandSelectorwith strongly typed state and snapshot selection. -
Added default
==and custom equality strategies for selected values. -
Added
EffectCommandBuilder.buildWhenand matching Consumer support. -
Added read-only
EffectCommandSnapshotupdates for pending, queued, and trigger-pending counts without artificial state revisions. -
Added immutable
CommandPolicy.drop,latest, andqueue
coordination without adding new Command classes. -
Added optional cooperative previous-execution interruption for
CommandPolicy.latest(cancelPrevious: true). -
Added typed-input debounce and throttle triggers driven by the
contextualEffectClockservice. -
Added bounded FIFO queues with explicit reject-newest,
drop-newest, and drop-oldest overflow decisions. -
Policy replacement and rejection use
ExitInterruptedinstead
of inventing domain failures or a new Exit variant. -
Added
EffectCommandPolicyEvent, shared/local policy observers,
EffectCommandPolicyProbe, and deterministic ManualEffectClock
regression coverage. -
Existing
EffectCommandConcurrencycall sites remain source
compatible and translate exactly to the corresponding policies.