Android 0.11

versionCode 11, versionName 0.11. 0.10 published 2026-09-05 18:12
(`39ccfbde…`) and everything below has merged since, so a rebuild at code
10 would have reached nobody — Android refuses an APK whose versionCode
is not higher than the installed one, and the two builds would have been
different bytes under the same number.

User-visible in this build:

- **A bridge, for networks that block Flamenet.** Account → Network takes
  a bridge line and carries relay traffic inside obfs4 to it. Off unless
  a line is pasted, validated before it is stored, and the screen reports
  whether a handshake has actually completed rather than what is saved.
- **Sign-up could sit on "Checking what this server uses…" forever.** The
  relay probe had no deadline and no way to report failure, so a server
  that never answered left the form on that sentence permanently, with no
  error and nothing to act on.

The rest is internals: the Kotlin obfs4 port itself, proven against real
lyrebird in both directions, and CI that now actually runs the module's
~100 tests and the twenty protocol vector tests that had never passed
there.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Paul Hitt
2026-09-06 19:07:15 -04:00
co-authored by Claude Opus 5
parent 10295e08f8
commit b3daf0eb0f
+2 -2
View File
@@ -33,8 +33,8 @@ 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 = 10
versionName = "0.10"
versionCode = 11
versionName = "0.11"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
}