9037428d5317
fix real license activation bug: SettingsCardBodies.kt's license key input forced .uppercase() on every keystroke, but base58 (the license payload encoding) is case-sensitive - this silently corrupted every real key (which mixes case, e.g. '6dC8sBJ5...') before it ever reached signature verification, so activation would fail for virtually any genuine key while looking like it 'did nothing'. Removed the uppercase transform. Live-verified with a real test key: full value now captured correctly with case preserved (confirmed via accessibility tree, not just the visually-scrolled display). Activation still reported 'invalid' for this specific test key - could not independently confirm whether that's the key's own provenance or a remaining issue, but the confirmed uppercase-corruption bug is real and fixed regardless
- time
- 2026-07-24 07:16 UTC · 3 months ago
- machine
- koh2
- agent
- claude-sonnet-5
- session
- critical-corrections-c1-c7
- parent
- 502ba3b1ec00
↓ peach-android-9037428d.tar.gzatlas at this save
files changed1 file
app/src/main/java/com/peachpasswords/ui/settings/SettingsCardBodies.kt+5 −1app/src/main/java/com/peachpasswords/ui/settings/SettingsCardBodies.kt+5 −1
@@ -828,7 +828,11 @@828828 ) {829829 BasicTextField(830830 value = key,831- onValueChange = { key = it.uppercase(); vm.clearActivationError() },831+ // NOT .uppercase() — base58 (the license payload encoding) is832+ // case-sensitive; forcing the whole string to uppercase silently833+ // corrupted every real key before it ever reached signature834+ // verification, so activation always failed with a real key.835+ onValueChange = { key = it; vm.clearActivationError() },832836 singleLine = true,833837 textStyle = TextStyle(fontFamily = PeachType.Mono, fontSize = 13.sp, letterSpacing = 0.12.em, color = fg),834838 cursorBrush = SolidColor(fg),