From b3b0f53672d6d60947f4b72a1aae99b6a70eb6ae Mon Sep 17 00:00:00 2001 From: LandWarderer2772 Date: Wed, 18 Mar 2026 11:46:41 +0530 Subject: [PATCH 01/10] fix: Disabled options in sentry configuration in build.gradle to fix differences in RB --- app/build.gradle | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 40e186d0fa..bf38836e9b 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -240,12 +240,13 @@ sentry { // this will upload your source code to Sentry to show it as part of the stack traces // disable if you don't want to expose your sources - includeSourceContext = true + includeSourceContext = false // Skip all Sentry Gradle plugin tasks (source upload, mapping upload, etc.) // if SENTRY_AUTH_TOKEN is not provided — avoids build errors in local/dev environments def sentryAuthToken = System.getenv('SENTRY_AUTH_TOKEN') - includeSourceContext = sentryAuthToken != null && !sentryAuthToken.isEmpty() - autoUploadProguardMapping = sentryAuthToken != null && !sentryAuthToken.isEmpty() - autoUploadSourceContext = sentryAuthToken != null && !sentryAuthToken.isEmpty() + includeSourceContext = false + autoUploadProguardMapping = false + autoUploadSourceContext = false + tracingInstrumentation { enabled = false } } From 5a24984d1531b84a3b5399c51ea540f67ae63260 Mon Sep 17 00:00:00 2001 From: LandWarderer2772 Date: Fri, 20 Mar 2026 16:23:11 +0530 Subject: [PATCH 02/10] fixes --- app/build.gradle | 32 +++++++++++++++++--------------- gradle/libs.versions.toml | 2 ++ 2 files changed, 19 insertions(+), 15 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index bf38836e9b..57816bd244 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -210,6 +210,7 @@ dependencies { implementation libs.kizzyrpc implementation libs.conscrypt.android + implementation libs.sentry.android debugImplementation libs.leakcanary.android nightlyImplementation libs.leakcanary.android @@ -233,20 +234,21 @@ dependencies { kspAndroidTest libs.hilt.android.compiler } - sentry { - org = "appfuton" - projectName = "android" - - // this will upload your source code to Sentry to show it as part of the stack traces - // disable if you don't want to expose your sources - includeSourceContext = false - - // Skip all Sentry Gradle plugin tasks (source upload, mapping upload, etc.) - // if SENTRY_AUTH_TOKEN is not provided — avoids build errors in local/dev environments - def sentryAuthToken = System.getenv('SENTRY_AUTH_TOKEN') - includeSourceContext = false - autoUploadProguardMapping = false - autoUploadSourceContext = false - tracingInstrumentation { enabled = false } + org = "appfuton" + projectName = "android" + authToken = System.getenv('SENTRY_AUTH_TOKEN') ?: '' + + // Disable all uploads + includeSourceContext = false + autoUploadProguardMapping = false + autoUploadSourceContext = false + + // Disable instrumentation that causes manifest/UUID changes + tracingInstrumentation { enabled = false } + autoInstallation { enabled = false } + + // Disable telemetry and dependency reporting that cause non-deterministic builds + includeDependenciesReport = false + telemetry = false } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index b0a0d4ad01..ed404b1087 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -39,6 +39,7 @@ preference = "1.2.1" recyclerview = "1.4.0" room = "2.7.2" serialization = "1.9.0" +sentry = "8.36.0" ssiv = "v4.1" swiperefreshlayout = "1.1.0" testRules = "1.7.0" @@ -112,6 +113,7 @@ okhttp = { module = "com.squareup.okhttp3:okhttp" } okhttp-dnsoverhttps = { module = "com.squareup.okhttp3:okhttp-dnsoverhttps" } okhttp-tls = { module = "com.squareup.okhttp3:okhttp-tls" } okio = { module = "com.squareup.okio:okio", version.ref = "okio" } +sentry-android = { module = "io.sentry:sentry-android", version.ref = "sentry" } ssiv = { module = "com.github.AppFuton:subsampling-scale-image-view", version.ref = "ssiv" } workinspector = { module = "com.github.Koitharu:WorkInspector", version.ref = "workinspector" } androidx-window = { module = "androidx.window:window", version.ref = "window" } From 5fa2c76cb843e88d0c52692347e1eaf96006c766 Mon Sep 17 00:00:00 2001 From: LandWarderer2772 Date: Sun, 22 Mar 2026 00:31:39 +0530 Subject: [PATCH 03/10] Updated Parser version --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index ed404b1087..c992dde3be 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -34,7 +34,7 @@ material = "1.14.0-alpha05" moshi = "1.15.2" okhttp = "5.2.1" okio = "3.16.1" -parsers = "2a2243f907" +parsers = "4c0ce00c35" preference = "1.2.1" recyclerview = "1.4.0" room = "2.7.2" From 8fb6c12ad64ad66dbe29fea1ca2b6848ae60b2c9 Mon Sep 17 00:00:00 2001 From: LandWarderer2772 Date: Sun, 22 Mar 2026 00:36:46 +0530 Subject: [PATCH 04/10] chore: update version to 9.6.14 and add changelog for new features and fixes --- CHANGELOG.md | 11 +++++++++++ app/build.gradle | 4 ++-- app/src/main/AndroidManifest.xml | 4 ++-- metadata/changelogs/90614.txt | 10 ++++++++++ 4 files changed, 25 insertions(+), 4 deletions(-) create mode 100644 metadata/changelogs/90614.txt diff --git a/CHANGELOG.md b/CHANGELOG.md index 7fc04a9319..7aeef7f01a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,17 @@ Date: Late March 2026 - (Work in progress) +--- +## v9.6.14 +Date: 2026-03-18 + +### Highlights +- Moved to Kotatsu-Redo parsers thanks to the Kotatsu-Redo dev. +- Fixed SSL errors. +- New website landing page. + +### Fixes +- Fixed Reproducible builds issue. --- ## v9.6.13 diff --git a/app/build.gradle b/app/build.gradle index 57816bd244..44ef160329 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -30,8 +30,8 @@ android { applicationId 'io.github.landwarderer.futon' minSdk = 23 targetSdk = 36 - versionCode project.hasProperty('versionCode') ? project.property('versionCode').toInteger() : 90613 - versionName project.hasProperty('versionName') ? project.property('versionName') : '9.6.13' + versionCode project.hasProperty('versionCode') ? project.property('versionCode').toInteger() : 90614 + versionName project.hasProperty('versionName') ? project.property('versionName') : '9.6.14' generatedDensities = [] testInstrumentationRunner 'io.github.landwarderer.futon.HiltTestRunner' ksp { diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index c99a096b1c..2a4d82633b 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,8 +1,8 @@ diff --git a/metadata/changelogs/90614.txt b/metadata/changelogs/90614.txt new file mode 100644 index 0000000000..40aedf35f8 --- /dev/null +++ b/metadata/changelogs/90614.txt @@ -0,0 +1,10 @@ +Date: 2026-03-18 +Highlights + +- Moved to Kotatsu-Redo parsers thanks to the Kotatsu-Redo dev. +- Fixed SSL errors. +- New website landing page. + +Fixes + +- Fixed Reproducible builds issue. \ No newline at end of file From 4543b77672382074e130fae25da724e6619d31e7 Mon Sep 17 00:00:00 2001 From: LandWarderer2772 Date: Wed, 18 Mar 2026 11:46:41 +0530 Subject: [PATCH 05/10] fix: Disabled options in sentry configuration in build.gradle to fix differences in RB --- app/build.gradle | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 0cfb495996..90203c97f7 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -240,12 +240,13 @@ sentry { // this will upload your source code to Sentry to show it as part of the stack traces // disable if you don't want to expose your sources - includeSourceContext = true + includeSourceContext = false // Skip all Sentry Gradle plugin tasks (source upload, mapping upload, etc.) // if SENTRY_AUTH_TOKEN is not provided — avoids build errors in local/dev environments def sentryAuthToken = System.getenv('SENTRY_AUTH_TOKEN') - includeSourceContext = sentryAuthToken != null && !sentryAuthToken.isEmpty() - autoUploadProguardMapping = sentryAuthToken != null && !sentryAuthToken.isEmpty() - autoUploadSourceContext = sentryAuthToken != null && !sentryAuthToken.isEmpty() + includeSourceContext = false + autoUploadProguardMapping = false + autoUploadSourceContext = false + tracingInstrumentation { enabled = false } } From 267df63817fb630272c992e3bef6d76d36ce3568 Mon Sep 17 00:00:00 2001 From: LandWarderer2772 Date: Fri, 20 Mar 2026 16:23:11 +0530 Subject: [PATCH 06/10] fixes --- app/build.gradle | 32 +++++++++++++++++--------------- gradle/libs.versions.toml | 2 ++ 2 files changed, 19 insertions(+), 15 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 90203c97f7..a2005139c2 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -210,6 +210,7 @@ dependencies { implementation libs.kizzyrpc implementation libs.conscrypt.android + implementation libs.sentry.android debugImplementation libs.leakcanary.android nightlyImplementation libs.leakcanary.android @@ -233,20 +234,21 @@ dependencies { kspAndroidTest libs.hilt.android.compiler } - sentry { - org = "appfuton" - projectName = "android" - - // this will upload your source code to Sentry to show it as part of the stack traces - // disable if you don't want to expose your sources - includeSourceContext = false - - // Skip all Sentry Gradle plugin tasks (source upload, mapping upload, etc.) - // if SENTRY_AUTH_TOKEN is not provided — avoids build errors in local/dev environments - def sentryAuthToken = System.getenv('SENTRY_AUTH_TOKEN') - includeSourceContext = false - autoUploadProguardMapping = false - autoUploadSourceContext = false - tracingInstrumentation { enabled = false } + org = "appfuton" + projectName = "android" + authToken = System.getenv('SENTRY_AUTH_TOKEN') ?: '' + + // Disable all uploads + includeSourceContext = false + autoUploadProguardMapping = false + autoUploadSourceContext = false + + // Disable instrumentation that causes manifest/UUID changes + tracingInstrumentation { enabled = false } + autoInstallation { enabled = false } + + // Disable telemetry and dependency reporting that cause non-deterministic builds + includeDependenciesReport = false + telemetry = false } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 6b974a466c..a9adbebc73 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -39,6 +39,7 @@ preference = "1.2.1" recyclerview = "1.4.0" room = "2.7.2" serialization = "1.9.0" +sentry = "8.36.0" ssiv = "v4.1" swiperefreshlayout = "1.1.0" testRules = "1.7.0" @@ -112,6 +113,7 @@ okhttp = { module = "com.squareup.okhttp3:okhttp" } okhttp-dnsoverhttps = { module = "com.squareup.okhttp3:okhttp-dnsoverhttps" } okhttp-tls = { module = "com.squareup.okhttp3:okhttp-tls" } okio = { module = "com.squareup.okio:okio", version.ref = "okio" } +sentry-android = { module = "io.sentry:sentry-android", version.ref = "sentry" } ssiv = { module = "com.github.AppFuton:subsampling-scale-image-view", version.ref = "ssiv" } workinspector = { module = "com.github.Koitharu:WorkInspector", version.ref = "workinspector" } androidx-window = { module = "androidx.window:window", version.ref = "window" } From bfdea774f4991235bafa367041fde04abde722e7 Mon Sep 17 00:00:00 2001 From: LandWarderer2772 Date: Sun, 22 Mar 2026 00:31:39 +0530 Subject: [PATCH 07/10] Updated Parser version --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index a9adbebc73..c992dde3be 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -34,7 +34,7 @@ material = "1.14.0-alpha05" moshi = "1.15.2" okhttp = "5.2.1" okio = "3.16.1" -parsers = "e7302508ac" +parsers = "4c0ce00c35" preference = "1.2.1" recyclerview = "1.4.0" room = "2.7.2" From 9930abf4fac1682b9930b344787fc6972ba3c260 Mon Sep 17 00:00:00 2001 From: LandWarderer2772 Date: Sun, 22 Mar 2026 00:36:46 +0530 Subject: [PATCH 08/10] chore: update version to 9.6.14 and add changelog for new features and fixes --- CHANGELOG.md | 11 +++++++++++ app/build.gradle | 2 +- app/src/main/AndroidManifest.xml | 4 ++-- metadata/changelogs/90614.txt | 10 ++++++++++ 4 files changed, 24 insertions(+), 3 deletions(-) create mode 100644 metadata/changelogs/90614.txt diff --git a/CHANGELOG.md b/CHANGELOG.md index 7fc04a9319..7aeef7f01a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,17 @@ Date: Late March 2026 - (Work in progress) +--- +## v9.6.14 +Date: 2026-03-18 + +### Highlights +- Moved to Kotatsu-Redo parsers thanks to the Kotatsu-Redo dev. +- Fixed SSL errors. +- New website landing page. + +### Fixes +- Fixed Reproducible builds issue. --- ## v9.6.13 diff --git a/app/build.gradle b/app/build.gradle index a2005139c2..24837d9d29 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -31,7 +31,7 @@ android { minSdk = 23 targetSdk = 36 versionCode project.hasProperty('versionCode') ? project.property('versionCode').toInteger() : 90614 - versionName project.hasProperty('versionName') ? project.property('versionName') : '9.6.13' + versionName project.hasProperty('versionName') ? project.property('versionName') : '9.6.14' generatedDensities = [] testInstrumentationRunner 'io.github.landwarderer.futon.HiltTestRunner' ksp { diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index c99a096b1c..2a4d82633b 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,8 +1,8 @@ diff --git a/metadata/changelogs/90614.txt b/metadata/changelogs/90614.txt new file mode 100644 index 0000000000..40aedf35f8 --- /dev/null +++ b/metadata/changelogs/90614.txt @@ -0,0 +1,10 @@ +Date: 2026-03-18 +Highlights + +- Moved to Kotatsu-Redo parsers thanks to the Kotatsu-Redo dev. +- Fixed SSL errors. +- New website landing page. + +Fixes + +- Fixed Reproducible builds issue. \ No newline at end of file From 33967292695824dccb34e416bb4a55eb0b286f97 Mon Sep 17 00:00:00 2001 From: LandWarderer2772 Date: Sun, 22 Mar 2026 12:37:24 +0530 Subject: [PATCH 09/10] fix: fixed update checker --- .../landwarderer/futon/core/github/AppUpdateRepository.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/kotlin/io/github/landwarderer/futon/core/github/AppUpdateRepository.kt b/app/src/main/kotlin/io/github/landwarderer/futon/core/github/AppUpdateRepository.kt index 6ffc408f2f..0deceba200 100644 --- a/app/src/main/kotlin/io/github/landwarderer/futon/core/github/AppUpdateRepository.kt +++ b/app/src/main/kotlin/io/github/landwarderer/futon/core/github/AppUpdateRepository.kt @@ -56,7 +56,7 @@ class AppUpdateRepository @Inject constructor( val json = JSONObject(response.body?.string() ?: "{}") val currentVersion = VersionId(BuildConfig.VERSION_NAME) - val releaseVersion = VersionId(json.getString("name").removePrefix("v")) + val releaseVersion = VersionId(json.getString("tag_name").removePrefix("v")) // Only return update if there's a newer version available if (releaseVersion <= currentVersion) { From 1fe352c395f3dd09ee59d19a5567806b8dafe274 Mon Sep 17 00:00:00 2001 From: LandWarderer2772 Date: Sun, 22 Mar 2026 17:10:49 +0530 Subject: [PATCH 10/10] Updated .gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index f429aecdb4..51fc0ce4f3 100644 --- a/.gitignore +++ b/.gitignore @@ -39,3 +39,4 @@ replay_pid*.log # Keystore files — never commit signing keys *.jks *.keystore +.idea/