Move test-only dependencies out of commonMain to stop androidx.test classes leaking into app runtime, which fixes missing ActivityInvoker in the test APK. Also update instrumented tests to use Compose resource APIs correctly, make navigation assertions resilient to emulator back-stack variance, and use version-catalog lifecycle testing deps where required.
Disable mainClock.autoAdvance in captureForDevice and captureMultiTheme
before calling onRoot(), so infinite animations (e.g. NiaLoadingWheel)
don't block Espresso idle synchronization in Compose 1.8.0.
Upgrade build toolchain (Gradle 8.13, AGP 8.13.0, Kotlin 2.1.20, KSP 2.1.20-1.0.32),
Compose Multiplatform 1.8.0, and all core/test/AndroidX libraries to their latest versions
compatible with Kotlin 2.1.20. Fix all resulting API breakages including Koin 4.1.0 startup,
material3-adaptive suspend navigation, JVM target consistency, and AGP managed device API changes.
- Remove demo/prod flavor references from CI workflow (flavors were
removed during KMP migration)
- Replace tasks.create with tasks.register in convention plugins to fix
EagerGradleConfiguration lint error
- Remove HiltTestApplication references from screenshot and UI tests
(Hilt was replaced by Koin)
- Add Compose plugins to core:screenshot-testing for inline method
resolution
- Add androidx.navigation.testing dependency to feature:topic and
feature:interests for SavedStateHandle.toRoute
- Fix ViewModel tests in commonTest by setting up Dispatchers.Main
(bookmarks, settings)
- Uncomment TopicRoute in TopicViewModelTest SavedStateHandle setup
- Replace NavDestination.id with type-safe popUpTo<ForYouBaseRoute> in
NiaAppState (id property removed in KMP navigation)
- Rename badging golden file from prodRelease to release
- Update dependency guard baselines
- Update AGENTS.md with corrected task names
- Upgrades to a newer version of compose bom that pulls in newer
versions of lint checks that work with AGP 8.12.2
- Bump the minSdk to 23 because compose now requires minSdk 23
- Update Navigation_fontScale2.png due to compose upgrade
- Clean up BuildConfig set up since we already use Gradle 9.0.0
Test: ./gradlew build
Gradle 9.0.0 has the new enforcement that Test task runs that
have sources but no tests run should fail. Without this change we get
Execution failed for task ':core:analytics:testDemoDebugUnitTest'.
> There are test sources present and no filters are applied, but the test task did not discover any tests to execute. This is likely due to a misconfiguration. Please check your test configuration. If this is not a misconfiguration, this error can be disabled by setting the 'failOnNoDiscoveredTests' property to false.
We get this because before this change AndroidCompose was always setting
isIncludeAndroidResources = true which generates a source to the test
task and in the case of :core:analytics it is the only source.
Instead of setting isIncludeAndroidResources in AndroidCompose move to
setting it in relevant build.gradle.kts files (most already had it)