Ketoy 0.4.0-alpha is here
We're shipping 0.4.0-alpha, the release that lifts the toolchain pin. Until now, Ketoy forced your app onto its exact Kotlin / AGP / Compose combination. That's gone. 0.4.0 decouples your project from Ketoy's pinned toolchain on two independent axes.
Coordinates
dependencies {
implementation(platform("dev.ketoy.vm:ketoy-bom:0.4.0-alpha"))
implementation("dev.ketoy.vm:ketoy-runtime")
implementation("dev.ketoy.vm:ketoy-hilt") // optional
implementation("dev.ketoy.vm:ketoy-adapters-material3")
}If you're already on 0.3.x, this is a drop-in upgrade, no breaking API changes. The headline difference is what you're now allowed to do: move your Kotlin, AGP, Gradle and Compose versions without matching Ketoy's.
What landed
- Kotlin / AGP / Gradle fully decoupled. A Gradle worker now drives a pinned
K2JVMCompilerin a classloader isolated from your build. Your Kotlin compiler never loads Ketoy compiler code; Ketoy's pinned Kotlin never sees your toolchain. Verified onDevicesat Kotlin 2.2.10 / AGP 9.1.1 / Gradle 9.3.1, a full AGP major ahead of Ketoy's 8.13. - Compose version decoupled for the supported surface. Parameters are now
keyed by name, not position, so a newer Compose that adds, reorders, or
removes a param no longer shifts your arguments into the wrong slot. The
Material3 1.4.0
Text.autoSizeinsertion that used to silently break custom fonts now renders correctly, verified on a physical Pixel. - Build-time advisories. When your Compose diverges from the catalog, the compiler reports exactly what it dropped (unknown param, type-mismatch) plus a per-bundle coverage summary, a visible advisory instead of a silent wrong render.
Read the full compatibility matrix
The SDK update “Version compatibility: Kotlin, AGP, Gradle & Compose decoupled” walks through the impact of every newer/older version in both directions, and the three paths for pulling in features Ketoy doesn't ship yet (capabilities, custom composable adapters, custom constructor adapters).