Repository navigation
Build: AGP 9, Kotlin 2.4, compileSdk 37 (Agenda Tech toolchain) - #26
Merged
Merged
Conversation
…dk 37) Gradle 8.13 -> 9.8.1, AGP 8.13.2 -> 9.4.1, Kotlin 2.3.21 -> 2.4.10, Hilt 2.57.2 -> 2.60.1, Compose BOM 2026.09.00, Navigation 2.10.2, Hilt Navigation 1.4.0, core-ktx 1.19.1, lifecycle 2.11.0, compileSdk 37. targetSdk stays 36: nothing changes in how the app behaves on a device. Same chain as Agenda Tech and App Manager Tech. - AGP 9 compiles Kotlin itself: the org.jetbrains.kotlin.android plugin is gone. - The Kotlin Gradle Plugin is pinned with `strictly` to the catalog's version, as on App Manager Tech: AGP 9 brings its own KGP, and CodeQL 2.27 refuses Kotlin 2.4.20+. - Gradle 9.8.1: distribution and wrapper jar SHA-256 match services.gradle.org and F-Droid's gradle-transparency-log; distributionSha256Sum is now in the wrapper properties. - Dependabot: the ignores that only existed because of AGP 8 are removed; Kotlin stays capped below 2.4.20. - Lint runs out of the Gradle daemon (android.experimental.runLintInProcess=false). On the first AGP 9 gate, lintAnalyzeDebugUnitTest and lintAnalyzeDebugAndroidTest died on an internal error of lint's Kotlin analyser while KSP2 ran in the same JVM; lint alone, or after KSP, passed. Out of process it shares nothing with KSP. Cost measured: +6 s on the gate. Measured: - Local gate from a clean build, no build cache: green; 425 unit tests, 0 failures (same count as main). Room schema still matches the Flutter one. - Release R8 build: versionCodes 5000-5003, and the same 4 permissions, locales, ABI and targetSdk as the published 3.0.0 APK (aapt2 on both). APK names unchanged, so the F-Droid recipe (NDK 27.0.12077973 and CMake 3.22.1 pinned) builds as before. F-Droid already serves Agenda Tech 1.2.0, built on its servers with AGP 9.4.1 and compileSdk 37. - Instrumented suite on the emulator (API 34): 469/484. The 15 others need what an emulator lacks: a screen lock for the Keystore (12), an enrolled fingerprint (1), a Whisper model (2). The 15 Keystore tests of those classes, run on a Galaxy S9 with a temporary screen lock: 15/15. - R8 release APK (x86_64, debug-signed) driven on the emulator: start-up and SQLCipher open, editor, Markdown preview, links panel, legal pages, a folder turned into a passphrase vault (Argon2 through Bouncy Castle), locked, unlocked, a sealed note created. No crash. - Debug build started on a Galaxy S9 (Android 10) and a Galaxy S24 FE (Android 16). Reviews: Claude Opus 5.5 and GPT-5.6 sol on this diff. GPT: no defect. Claude: one probable finding, AGP 9's R8 defaults (strict full mode for keep rules) could strip a constructor kept by a member-less rule. Both app rules list their members, the app uses no reflection, and the R8 APK above runs every library path that could be affected. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.
Moves Notes Tech to the toolchain Agenda Tech and App Manager Tech already run: Gradle 9.8.1, AGP 9.4.1, Kotlin 2.4.10, Hilt 2.60.1, Compose BOM 2026.09.00, Navigation 2.10.2, compileSdk 37. targetSdk stays 36: nothing changes in how the app behaves on a device.
What changes
org.jetbrains.kotlin.androidplugin is gone.strictlyto the catalog's version (CodeQL 2.27 refuses Kotlin 2.4.20+), as on App Manager Tech.distributionSha256Sum. Distribution and wrapper jar checked against services.gradle.org and F-Droid's gradle-transparency-log.Measured
main)aapt2)F-Droid: the recipe (NDK 27.0.12077973 and CMake 3.22.1 pinned) needs no change; F-Droid already serves Agenda Tech 1.2.0, built on its servers with AGP 9.4.1 and compileSdk 37.
Reviews
Claude Opus 5.5 and GPT-5.6 sol on the diff (0.41 $). GPT: no defect. Claude: one probable finding — AGP 9's stricter R8 keep rules could strip a constructor kept by a member-less rule. Both app rules list their members, the app uses no reflection, and the R8 APK run above covers the library paths.
🤖 Generated with Claude Code