build(deps): bump kotlin to 2.4.10 and coil to 3.5.0#1107
Merged
Conversation
Combines Dependabot PRs #1087 (kotlin 2.3.21 -> 2.4.10) and #947 (compose-coil 3.4.0 -> 3.5.0), which were held back individually. Kotlin 2.4.0 promotes the Compose compiler plugin's singular `stabilityConfigurationFile` (RegularFileProperty) to an ERROR-level deprecation in favor of the plural `stabilityConfigurationFiles` (ListProperty). Migrate both usages accordingly. KSP is left at 2.3.10: it compiles cleanly under Kotlin 2.4.10 across all kspDebugKotlin tasks (Hilt, Room, FeatureFlagProcessor) with no compatibility warning. Coil 3.5.0 needs no source changes. Verified: :apps:flipcash:app:assembleDebug succeeds and the debug APK launches and renders on-device (Maestro launch + login navigation). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DgP1XtH7buYQ5bFPN9uU3v
Kotlin 2.4's control-flow analysis promotes "Check for instance is always 'false'" from a warning to a compile error. Two tests assert that specific sealed-error leaf types are NOT NotifiableError, using an `is` check the compiler can now prove is statically false (the leaf types don't implement the interface). Widen the reference to the sealed parent (which does have a notifiable variant) so the check is legal while still verifying the runtime contract. No behavior change. - SwapErrorTest: Timeout / Terminal are not NotifiableError - CoinbaseOnRampEventHandlerTest: RegionMismatch / PaymentSheetTimeout are not NotifiableError Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DgP1XtH7buYQ5bFPN9uU3v
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Combines the two Dependabot bumps that were held back for review — #1087 (kotlin
2.3.21→2.4.10) and #947 (compose-coil3.4.0→3.5.0) — into a single coordinated change, verified end-to-end.Why combined
Both were flagged during dependency review: Coil #947 as merge-safe but stale, and Kotlin #1087 as blocked on the theory that no KSP 2.4.x release exists. Empirical testing in an isolated worktree disproved that — see below.
Changes
gradle/libs.versions.tomlkotlin2.3.21 → 2.4.10gradle/libs.versions.tomlcompose-coil3.4.0 → 3.5.0build-logic/.../AndroidLibraryComposeConventionPlugin.ktstabilityConfigurationFile.set(…)→stabilityConfigurationFiles.add(…)apps/flipcash/app/build.gradle.ktsThe only real migration: Kotlin 2.4.0 promotes the Compose compiler plugin's singular
stabilityConfigurationFile(aRegularFileProperty) to an ERROR-level deprecation in favor of the pluralstabilityConfigurationFiles(ListProperty). Coil 3.5.0 needs no source changes.KSP note
kspis intentionally left at 2.3.10. Contrary to the pre-merge concern, it compiles cleanly under Kotlin 2.4.10 across everykspDebugKotlintask (Hilt, Room, the customFeatureFlagProcessor) with no compatibility warning.Verification
./gradlew :apps:flipcash:app:assembleDebug→ BUILD SUCCESSFUL, debug APK produced.FATAL/NoClassDefFound/NoSuchMethodError/ Coil errors in logcat.launchApp→ tap Log in → navigate to the key-entry screen all pass; the screen renders and is interactive.Follow-ups (not blocking)
stabletypes asUncertain, silently disabling skipping. Functionally fine; a perf-hygiene check. Updatecompose_compiler_config.confif needed.seed_input_screenno longer exists; appId still references the.devsuffix) — unrelated to this PR.Closes #1087
Closes #947