- Bump actions/setup-java@v4 → @v5 in CI workflows (upstream #1970)
- Use sdkComponents.aapt2 API instead of manual SDK path in Badging.kt
(upstream #2017), removing need for BaseExtension parameter
- Fix typo "analyse" → "analyze" in README.md (upstream #2021)
Update KMP string resource usage in TopicScreenTest, restore lifecycle-based undo clearing in bookmarks, and stabilize SyncWorkerTest to validate startup request configuration without depending on runtime Koin initialization.
Co-authored-by: Cursor <cursoragent@cursor.com>
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.
Move core:screenshotTesting from commonTest to androidUnitTest dependencies
to prevent Robolectric's LocalPermissionGranter from leaking into the
instrumented test classpath via KotlinSourceSetTree.test. Add explicit
espresso-core dependency to androidInstrumentedTest.
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.
Add isIncludeAndroidResources to CmpFeatureConventionPlugin so
Robolectric can discover the test manifest with ComponentActivity.
Add missing compose UI test dependencies to feature:foryou.
- 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
- Create AGENTS.md with project overview, build commands, architecture,
and key technology choices for AI coding agents
- Symlink CLAUDE.md -> AGENTS.md so Claude Code picks up the same content
- Add .claude to .gitignore
This is necessary for the app to build with Gradle 9.0.0, otherwise the
following Gradle error occurs:
java.lang.NoSuchMethodError: 'org.gradle.api.Project org.gradle.api.artifacts.ProjectDependency.getDependencyProject()'
at com.jraska.module.graph.assertion.GradleDependencyGraphFactory.listAllDependencies(GradleDependencyGraphFactory.kt:39)
This is due to jraska/modules-graph-assert#305.