Skip to content

better_effect 0.3.0

Choose a tag to compare

@github-actions github-actions released this 20 Aug 17:28
4d09d95

better_effect 0.3.0

  • Added Runtime.executeWith, runWith, and runExitWith for temporary
    execution-scoped Modules.
  • Execution Modules resolve local providers first and fall back to the root
    Runtime without mutating root registrations.
  • Local constructor injection can combine execution-local and root services,
    including typed ServiceKey registrations.
  • Execution Module resources share the managed execution Scope and remain owned
    until physical completion after timeout or interruption.
  • Partial local startup failures release previously acquired resources before
    publishing an execution defect.
  • Added the optional ResolverBackendOverlayFactory capability for custom
    backends; AutoInjectorBackend supports isolated overlays by default.
  • Added synchronous, SDK-neutral RuntimeObserver callbacks for execution,
    service resolution, resource acquisition/release, interruption, and cleanup
    failures.
  • Runtime observer failures are isolated and can be reported through a
    best-effort RuntimeObserverErrorHandler without changing Effect outcomes.
  • Execution events now expose labels, physical duration, opaque Scope identity,
    logical outcomes, and selected local metadata.
  • Added EffectLocal.metadata, typed EffectLocal.bind, and Effect.withLocals
    for heterogeneous batch context composition.
  • Added service resolution paths, execution-scoped Module event propagation,
    Flutter Command label verification, observer-ordering tests, and a standalone
    no-observer overhead benchmark.
  • Added package:better_effect/testing.dart with TestRuntime, typed Exit
    matchers/extractors, deterministic gates and signals, ordered event recording,
    Runtime event waits, and active-execution leak assertions.
  • Added a public ResolverBackend compatibility kit covering lifetimes, keys,
    constructor resolution, missing/circular dependencies, duplicate and
    post-commit registration, startup cleanup, close semantics, overlays, and
    optional native disposal probes.

Full changelog: better_effect-v0.2.0...better_effect-v0.3.0