From d91dea3fd03649794c517e10514984d6ae4807c8 Mon Sep 17 00:00:00 2001 From: Paul Hitt Date: Mon, 7 Sep 2026 19:35:51 -0400 Subject: [PATCH] Publish as 0.11, with the code still climbing 0.11 was built on 2026-09-07 and never published, so the public jumped 0.10 -> 0.12 and skipped a number. This closes that gap in the NAME, which is the part a person reads. The code does not go back to 11. Android refuses an APK whose versionCode is lower than the installed one, and 12 is already published -- so code 11 would be uninstallable for anyone who took it, with no way out but an uninstall that wipes their vault. The code is ordering; the name is the label. They are allowed to differ, and a comment says why so it does not get "corrected" later. Verified: 0.11 (code 13) installs over 0.12 (code 12) with no downgrade refusal, session intact. Co-Authored-By: Claude Opus 5 --- app/build.gradle.kts | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index fa64737..d1cc8f7 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -33,8 +33,15 @@ android { // ⚠️ Android also refuses to install an APK whose `versionCode` is // lower than the installed one, so a code that goes backwards makes a // release uninstallable for everybody already on the higher number. - versionCode = 12 - versionName = "0.12" + // ⚠️ **The code is one ahead of the name, deliberately.** 0.11 was built + // on 2026-09-07 and never published; the build that followed it went out + // as versionCode 12 before the name was settled on. Going back to code + // 11 would make the release uninstallable for anyone already on 12 — see + // the paragraph above — so the code keeps climbing and the NAME is what + // closes the 0.10 -> 0.12 gap. They are allowed to differ: the code is + // ordering, the name is what a person reads. + versionCode = 13 + versionName = "0.11" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" }