Back to Freedom.Tech Back
All Amethyst releasesAll versions
Release Mon, Oct 5, 2026 6 min read

Amethyst 1.17.0

Original release notes

What's Changed

  • Remove unnecessary null assertion in SecureKeyStorage by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/4131
  • Add picture and video kinds to all home feed legs by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/4133
  • New Crowdin Translations by @github-actions[bot] in https://github.com/vitorpamplona/amethyst/pull/4132
  • chore: sync geode Homebrew formula to v1.16.0 by @github-actions[bot] in https://github.com/vitorpamplona/amethyst/pull/4136
  • chore: sync amethyst-nostr cask to v1.16.0 by @github-actions[bot] in https://github.com/vitorpamplona/amethyst/pull/4139
  • chore: sync winget manifests to v1.16.0 by @github-actions[bot] in https://github.com/vitorpamplona/amethyst/pull/4138
  • chore: sync amy Homebrew formula to v1.16.0 by @github-actions[bot] in https://github.com/vitorpamplona/amethyst/pull/4137
  • New Crowdin Translations by @github-actions[bot] in https://github.com/vitorpamplona/amethyst/pull/4140
  • Pin NDK version for reproducible APK builds by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/4142
  • New Crowdin Translations by @github-actions[bot] in https://github.com/vitorpamplona/amethyst/pull/4143
  • Add 32-bit ABI support (armeabi-v7a, x86) to Arti build by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/4144
  • Overhaul QR scanner with Camera2, zxing-cpp, and reproducible builds by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/4146
  • NIP-52: Add relay hints for calendar RSVPs and appointments by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/4145
  • fix(qr): audit follow-ups - keep key material off the screen and out of the log, guard the QR native library by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/4147
  • Migrate NIP-47 Jackson serializers to Kotlin Serialization by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/4148
  • Progressive Health Connect reads: show partial results while metrics load by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/4151
  • New Crowdin Translations by @github-actions[bot] in https://github.com/vitorpamplona/amethyst/pull/4150
  • Add NIP-CC geocaching support (kinds 37516, 7516, 7517, 37517) by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/4152
  • Extract calendar screen state to ViewModel by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/4153
  • New Crowdin Translations by @github-actions[bot] in https://github.com/vitorpamplona/amethyst/pull/4154
  • fix: geocache log relays, multi-code picture picker, and stop the scanner pumping zoom by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/4155
  • Add @OptIn(ExperimentalCoroutinesApi) to calendar test classes by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/4156
  • fix: stop the QR scanner pumping the zoom in and out by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/4158
  • Detect and report coroutine leaks in unit tests by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/4157
  • fix: wallet-connect deep links with one colon, and explain why bunker:// cannot sign in by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/4160
  • Fix nav-bar tab switching to restore stacks from other tabs by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/4161
  • Move LocalCache into commons, and clear the blockers on retiring the Desktop fork by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/4149
  • Fix notification deep links and add inline reply feedback by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/4162
  • Correct Health Connect declaration and Data safety form by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/4163
  • NIP-71 video interop, and a renderer for every NIP-51 list kind by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/4135
  • New Crowdin Translations by @github-actions[bot] in https://github.com/vitorpamplona/amethyst/pull/4159
  • Marmot: warn when invites land on another device by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/4165
  • Optimize Marmot message log with segmented encryption and sender ratchet tracking by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/4167
  • Migrate search field to OutputTransformation and TextFieldState by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/4168
  • Migrate string resources from R to Compose Resources by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/4169
  • New Crowdin Translations by @github-actions[bot] in https://github.com/vitorpamplona/amethyst/pull/4166
  • refactor: break AccountSettings' UI coupling and move the first 23 model files to commons by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/4171
  • Add backup conflict detection and resolution UI by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/4174
  • New Crowdin Translations by @github-actions[bot] in https://github.com/vitorpamplona/amethyst/pull/4173
  • Local Blossom cache: fix video playback, harden the bridge, route it only at the HTTP layer by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/4172
  • Keep PoW mining alive when app backgrounded, fix draft deletion race by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/4179
  • fix(marmot): blank the sender's path on Update proposals by @jeremyd in https://github.com/vitorpamplona/amethyst/pull/4178
  • fix(marmot): keep populated parents when adding a leaf by @jeremyd in https://github.com/vitorpamplona/amethyst/pull/4177
  • refactor: move the UI's bottom layers (theme, leaf composables, Route/INav) from amethyst into commonsUI by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/4176
  • Fix race condition in PoWPublishQueue job removal by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/4180
  • New Crowdin Translations by @github-actions[bot] in https://github.com/vitorpamplona/amethyst/pull/4175
  • Implement DECK-0003 (SNO) reader, rasterizer, and Cyberspace bag opening by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/4186
  • fix(marmot): accept extensions every member supports in GCE proposals by @jeremyd in https://github.com/vitorpamplona/amethyst/pull/4182
  • feat(marmot): Ed25519.keyPairFromSeed by @jeremyd in https://github.com/vitorpamplona/amethyst/pull/4183
  • feat(marmot): send and return authenticated_data on application messages by @jeremyd in https://github.com/vitorpamplona/amethyst/pull/4184
  • feat(marmot): caller-chosen group_id and optional required_capabilities by @jeremyd in https://github.com/vitorpamplona/amethyst/pull/4187
  • feat(marmot): optional leaf lifetime on createKeyPackage by @jeremyd in https://github.com/vitorpamplona/amethyst/pull/4188
  • refactor: Render/Display split, batches 1-3 - shared displays for AccountViewModel-bound composables by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/4185
  • New Crowdin Translations by @github-actions[bot] in https://github.com/vitorpamplona/amethyst/pull/4181
  • fix: address the audit of the Render/Display split - desktop uses the shared dialogs, no blank group messages by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/4189
  • refactor: one shared user avatar, shared user and event observers, score tags by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/4191
  • refactor: share SafeImeInsets, DisappearingScaffold, emoji and name text, clipboard, screen layout, FAB padding and route builders by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/4193
  • refactor: share the UI settings and toasts, add LocalDisplaySettings, call LocalCache directly by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/4194
  • New Crowdin Translations by @github-actions[bot] in https://github.com/vitorpamplona/amethyst/pull/4192
  • Add Decentralized Lists (kinds 9998, 39998, 9999, 39999) support by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/4197
  • test(commons): record decentralized lists as searchable but not rendered by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/4198
  • Increase URL preview read limit to 2 MB for YouTube compatibility by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/4200
  • Add Cordn group messaging UI and runtime implementation by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/4201
  • New Crowdin Translations by @github-actions[bot] in https://github.com/vitorpamplona/amethyst/pull/4195
  • Replace JacksonMapper with native JSON serialization in CordnMigration by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/4202
  • fix: green main again - the three CI jobs #4201 broke by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/4203
  • refactor: move the preference layer off EncryptedSharedPreferences and into commons by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/4190
  • fix(browser): the two device crashes in the new Compose chrome by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/4204
  • Migrate backup conflict strings to composResources by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/4205
  • DRAFT - hold: d-tag collision for addressable tagging targets is a Tapestry spec defect by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/4199
  • refactor: rename Quartz event classes to match their NIP names by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/4207
  • feat(browser): name the browser the hand-off tile will open by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/4208
  • feat(browser): Chrome-PWA parity and a shared Compose chrome for every browser surface by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/4211
  • refactor(commonsUI): move ScreenLayout, TimeAgo, the theme core, chat bubbles and single-blocker components by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/4210
  • feat(quartz): NIP-FE relay commands over HTTP by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/4212
  • fix(browser): the pill's site-settings line only told the truth after you opened page info by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/4213
  • New Crowdin Translations by @github-actions[bot] in https://github.com/vitorpamplona/amethyst/pull/4206
  • chore(i18n): fill missing cs/de/sv/pt-BR translations and pluralise count strings by @davotoula in https://github.com/vitorpamplona/amethyst/pull/4217
  • New Crowdin Translations by @github-actions[bot] in https://github.com/vitorpamplona/amethyst/pull/4218
  • New Crowdin Translations by @github-actions[bot] in https://github.com/vitorpamplona/amethyst/pull/4219
  • fix(quartz): give search the release notes, list roles and caption words it was missing by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/4215
  • fix(audio): make the audio visualizer update in real time by @davotoula in https://github.com/vitorpamplona/amethyst/pull/4216
  • Migrate 68 unblocked ui/ files to commons and commonsUI by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/4221
  • fix(quartz): a superseded replaceable is REPLACED (OK false), not a duplicate by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/4222
  • New Crowdin Translations by @github-actions[bot] in https://github.com/vitorpamplona/amethyst/pull/4220
  • fix(quartz): NIP-FE review fixes, NIP-98 sign-in policy vote, frames without sub id, drop /neg by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/4214
  • fix(embed): stop RemoteImeView taking focus from the rest of the app by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/4224
  • feat: redesign Backup Keys (hand-copyable nsec, confirm-then-encrypt ncryptsec) + NIP-49 fixes by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/4209
  • New Crowdin Translations by @github-actions[bot] in https://github.com/vitorpamplona/amethyst/pull/4223
  • New Crowdin Translations by @github-actions[bot] in https://github.com/vitorpamplona/amethyst/pull/4225
  • New Crowdin Translations by @github-actions[bot] in https://github.com/vitorpamplona/amethyst/pull/4227
  • fix(cast): Android 17 Chromecast discovery, receiver failure messages and teardown fixes by @davotoula in https://github.com/vitorpamplona/amethyst/pull/4226
  • New Crowdin Translations by @github-actions[bot] in https://github.com/vitorpamplona/amethyst/pull/4229
  • Add navDrawer() to distinguish drawer destinations from in-app pushes by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/4230
  • Add NIP-FE (HTTP relay commands) support to geode by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/4231
  • fix(marmot): send reactions and deletions inside the group, not as NIP-17 DMs by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/4233
  • fix(marmot): treat the relay echo of our own unconfirmed commit as its confirmation by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/4232
  • New Crowdin Translations by @github-actions[bot] in https://github.com/vitorpamplona/amethyst/pull/4234
  • fix(relay): drop a kind the relay refuses by name instead of losing the whole REQ by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/4238
  • fix(marmot): apply edits from other clients, live and after restart by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/4240
  • feat(android): opt into ARM Memory Tagging Extension (async) by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/4228
  • New Crowdin Translations by @github-actions[bot] in https://github.com/vitorpamplona/amethyst/pull/4241
  • feat: catch up with the last 3 months of NIP spec changes by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/4236