github InsertKoinIO/koin 4.2.1
Koin 4.2.1

11 hours ago

Bug Fixes

  • Fix stacked-params lookup on linked scopes (#2387) — The 4.2.0 resolver rewrite (CoreResolverV2) walked linked scopes but dropped the per-parent stacked-parameters check that 4.1.x performed via recursion. This broke patterns where AndroidParametersHolder is stacked on the factory scope by KoinViewModelFactory and SavedStateHandle is then resolved from a child ViewModel scope. Linked-scope resolution now also checks stacked params on each parent scope.

  • Restore ABI compatibility for runOnKoinStarted (#2391) — The 4.2.0 release inadvertently broke binary compatibility for runOnKoinStarted on JVM. Fixed by restoring the original JVM class name via @JvmName/@JvmMultifileClass annotations.

  • Fix scope _closed concurrency issue (#2389) — The Scope._closed flag was not volatile, which could cause stale reads under concurrent access.

Improvements

  • Improved Scope resolution error messagesCoreResolverV2 now provides clearer error messages when scope resolution fails, making it easier to diagnose misconfigured scopes.

  • Added apiCheck to CI — Binary compatibility validation (kotlinx.binary-compatibility-validator) now runs on every PR to prevent future ABI breaks.

Documentation

  • parametersOf type-collision warning (#2328) — Added a caution note explaining that when a value passed via parametersOf has the same type as the requested definition, Koin returns the value directly and skips the factory block. Suggests using a wrapper type as a workaround.

Contributors

Thanks to the following contributors for this release:

Don't miss a new koin release

NewReleases is sending notifications on new releases.