better_effect 0.4.0
·
38 commits
to main
since this release
Published on pub.dev: https://pub.dev/packages/better_effect/versions/0.4.0
- Added the repository-level normative semantic contract and an independent
cross-package conformance suite mapping stable lifecycle/outcome rules to
executable rule IDs. - Semantic compatibility changes now require the matching conformance scenario,
affected package changelog entries, and a semantic migration ledger entry. - Added
Runtime.forkfor feature-length child environments with local-first
resolution and parent fallback. - Child Module resources survive multiple executions, close exactly once with
the child Runtime, and are coordinated before parent resources during parent
shutdown. - Runtime observer contexts now expose
runtimeId,parentRuntimeId, and
runtimeLabelso feature and execution boundaries can be correlated. - Nested execution overlays preserve the complete parent fallback chain.
- Added typed-failure
Effect.retrywithnone, fixed, linear, and
exponential policies, optional full jitter, maximum delays, and
explicit attempt-count semantics. - Each retry attempt owns a child Scope that closes before policy
evaluation or delay; cleanup defects retain Runtime precedence and
prevent a broken typed-failure attempt from retrying. - Added optional
EffectClockandEffectRandomcontracts with host,
seeded, and manual test implementations; no service is installed
implicitly. - Added observable
RetryEventdecisions, deterministic tests, package
and website guides, and a retry benchmark. - Added lazy
Effect.allandEffect.forEachcollection composition with
sequential-by-default and positive bounded concurrency. - Added explicit
Effect.allUnboundedandEffect.forEachUnboundedAPIs so
unbounded fan-out cannot happen through an omitted limit. - Collection results preserve input order and are returned as unmodifiable
Lists, while scheduling remains FIFO. - Typed failure selection is deterministic by lowest started input index; no new
work starts after failure or interruption, and already-started operations
remain physically owned until completion. - Collection defects stay defects, worker resources retain normal Scope cleanup
semantics, and sequential/bounded/unbounded benchmarks are included.