First major release: Ktor 3 support (#33) and a module split that removes Ktor from the core engine.
⚠️ Breaking changes
1. Requires Ktor 3 (for the HTTP workers)
Ktor 2.3.12 → 3.1.1. Ktor 2 and Ktor 3 share the same Maven coordinates and are binary-incompatible — an app classpath can hold only one. If you're still on Ktor 2, pin dev.brewkits:kmpworkmanager:2.5.1 until you migrate.
2. HTTP workers moved to a new artifact
The core kmpworkmanager no longer depends on Ktor at all. The six Ktor-based workers (HttpRequest, HttpSync, HttpDownload, HttpUpload, ParallelHttpDownload, ParallelHttpUpload) + HttpClientProvider now live in dev.brewkits:kmpworkmanager-http.
implementation("dev.brewkits:kmpworkmanager:3.0.0") // core engine (no Ktor)
implementation("dev.brewkits:kmpworkmanager-http:3.0.0") // optional — Ktor 3 HTTP workersRegister the HTTP workers via HttpWorkerRegistry (e.g. in a CompositeWorkerFactory). Worker class names and config are unchanged — persisted task IDs and JSON keep working.
Fixed
- HTTP download EOF handling — Ktor 3 returns
-1at end-of-stream (Ktor 2 returned0); download loops now break correctly. - iOS network reachability — real
NWPathMonitorimplementation, replacing the hardcoded placeholder (#40). - iOS test flakiness — fixed a queue-counter data race (#38) and a maintenance-job leak that crashed test runs (#43).
Upgrade guide
Known issues
- iOS
FileCompressionWorkerhas no real ZIP codec yet (#39) — fail-fast by default, opt-in uncompressed fallback. - CI Android-instrumented emulator boot is flaky (#45); 2 pre-existing AlarmManager tests fail on device (#46). Neither affects the core/HTTP/iOS suites.
Full changelog: CHANGELOG.md