From d6fd8acd6932dd69c2a8a287b6e18bf837b6c835 Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 2 Jul 2026 19:13:58 +0000 Subject: [PATCH] fix(build): restore theme switching by re-aligning the Compose stack (release 26.07.02) Lifecycle 2.11.0 (from the 26.07.01 dependency refresh) transitively pulls a newer androidx.compose.ui/runtime than composeBom 2024.12.01 pins, splitting the Compose stack across versions; preference-driven recomposition broke and theme selections persisted without repainting the app. Pin lifecycle back to 2.10.0 (the last BOM-aligned version), teach dependabot to hold androidx.lifecycle until it moves together with the Compose BOM, and cut 26.07.02. Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_016AYAgNYmBkxsEYcgzSAjgT --- .github/dependabot.yml | 4 ++++ CHANGELOG.md | 10 ++++++++++ app/build.gradle.kts | 2 +- gradle/libs.versions.toml | 8 ++++++-- 4 files changed, 21 insertions(+), 3 deletions(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 9f936e6..279a91c 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -33,6 +33,10 @@ updates: - dependency-name: "*" update-types: - version-update:semver-major + # androidx.lifecycle 2.11+ drags a newer androidx.compose.ui/runtime onto the classpath than + # composeBom pins, splitting the Compose stack across versions (broke theme switching in + # 26.07.01). Hold lifecycle here until it is bumped together with the Compose BOM, manually. + - dependency-name: "androidx.lifecycle:*" groups: gradle-minor-patch: update-types: diff --git a/CHANGELOG.md b/CHANGELOG.md index 4458edd..628a14a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,16 @@ versioning (`YY.MM.VV`). ## [Unreleased] +## 26.07.02 — 2026-07-02 + +### Fixed +- **Theme changes apply again.** 26.07.01's AndroidX Lifecycle 2.11 update pulled a newer Compose + UI/runtime onto the classpath than the pinned Compose BOM provides, splitting the Compose stack + across versions and breaking recomposition of preference-driven UI — selecting a theme (or theme + mode) in Settings persisted but never repainted the app. Lifecycle is pinned back to 2.10.0, the + last version aligned with the BOM, and is now held by the dependency bot until it can be bumped + together with the Compose BOM. + ## 26.07.01 — 2026-07-02 ### Added diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 1f90d3f..e42f6e4 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -51,7 +51,7 @@ val hasReleaseSigning = // date versioning: YY.MM.VV (two-digit year, month, and per-month build), set manually each release. // `versionCode` is derived as (YY*10000 + MM*100 + VV) so it always increases monotonically with the // date (e.g. 26.05.00 -> 260500, 26.06.00 -> 260600, 27.01.00 -> 270100). Bump this on each release. -val appVersionName = "26.07.01" +val appVersionName = "26.07.02" val appVersionCode = appVersionName .split("-")[0] diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 61a128d..d6b7220 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -3,10 +3,14 @@ agp = "9.2.1" kotlin = "2.4.0" coreKtx = "1.19.0" activityCompose = "1.13.0" -lifecycleRuntimeKtx = "2.11.0" +# Lifecycle is pinned to the last version compatible with composeBom 2024.12.01: 2.11.0 pulls a +# newer androidx.compose.ui/runtime transitively, splitting the Compose stack across versions and +# breaking recomposition of preference-driven UI (theme changes stopped applying). Bump these two +# ONLY together with composeBom (see the dependabot ignore rule). +lifecycleRuntimeKtx = "2.10.0" composeBom = "2024.12.01" navigationCompose = "2.9.8" -lifecycleViewmodelCompose = "2.11.0" +lifecycleViewmodelCompose = "2.10.0" junit = "4.13.2" junitExt = "1.3.0" espressoCore = "3.7.0"