better_effect_flutter 0.4.0
better_effect_flutter: ^0.4.0 copied to clipboard
Flutter MVVM integration for better_effect with typed EffectCommand state, scoped Runtime bootstrap, and one-shot UI listeners.
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, andqueuecoordination 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 contextual
EffectClockservice. -
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.
0.3.0 #
- Added
package:better_effect_flutter/testing.dart, re-exporting the core testing toolkit with Flutter-specific Command and widget helpers. - Added
EffectCommandProbewaits and history assertions, typed sealed-state extractors,EffectCommandListenerProbefor one-shot delivery, andBetterEffectTestAppfor externally owned Runtime widget tests.
0.2.0 #
- Effect Commands now start work through core
EffectExecutionhandles. - Command cancellation and disposal request cooperative core interruption while
retaining
onCancelas an optional adapter hook. - Command debug labels now flow into Runtime execution metadata.
- Existing
drop,latest, andqueuestate-authority semantics remain unchanged;latestdoes not cancel stale work unless a future policy opts in. - Runtime shutdown interruption now reaches visible Command state.
- Added explicit
BetterEffectRuntimeOwnershipvalues for external, widget, and application-owned Runtimes. - Added
BetterEffectLifecyclePolicyfor widget disposal, application exit, cooperative interruption, and shutdown grace periods. - Providers and bootstrap roots now remove a Runtime from the widget tree before lifecycle-triggered shutdown begins.
- Runtime replacement closes the previous owned Runtime exactly once, while
BetterEffectProvider.valuenever assumes ownership. BetterEffectBootstrapnow restarts whenbackendFactorychanges and closes stale startup attempts safely.- Existing
closeRuntimeOnDisposeandcloseRuntimeOnDetachconstructor arguments remain as deprecated migration parameters. - Added deterministic regression coverage for queue cancellation, retained
physical ownership, Command disposal versus Runtime shutdown, repeated
cancellation races, and stale
latestcompletions.
0.1.1 #
- Expanded the package documentation with complete bootstrap, Command, ViewModel, widget, lifecycle, testing, and concurrency guidance.
- Updated the hosted
better_effectdependency to0.1.1.
0.1.0 #
- Added
EffectCommand0and typed-inputEffectCommand. - Added sealed idle/running/success/failure/defect/interrupted UI states.
- Added drop, latest, and queue execution policies.
- Added one-shot
EffectCommandListener, builder, and consumer widgets. - Added
EffectCommands,EffectViewModel, and automatic command disposal. - Added
BetterEffectScope, provider, bootstrap widget, and app bootstrap helper. - Added an MVVM task application example and Flutter test suite.