github vitorpamplona/amethyst v1.17.0
v1.17.0: Cordn and several updates

6 hours ago

What's Changed

  • Remove unnecessary null assertion in SecureKeyStorage by @vitorpamplona in #4131
  • Add picture and video kinds to all home feed legs by @vitorpamplona in #4133
  • New Crowdin Translations by @github-actions[bot] in #4132
  • chore: sync geode Homebrew formula to v1.16.0 by @github-actions[bot] in #4136
  • chore: sync amethyst-nostr cask to v1.16.0 by @github-actions[bot] in #4139
  • chore: sync winget manifests to v1.16.0 by @github-actions[bot] in #4138
  • chore: sync amy Homebrew formula to v1.16.0 by @github-actions[bot] in #4137
  • New Crowdin Translations by @github-actions[bot] in #4140
  • Pin NDK version for reproducible APK builds by @vitorpamplona in #4142
  • New Crowdin Translations by @github-actions[bot] in #4143
  • Add 32-bit ABI support (armeabi-v7a, x86) to Arti build by @vitorpamplona in #4144
  • Overhaul QR scanner with Camera2, zxing-cpp, and reproducible builds by @vitorpamplona in #4146
  • NIP-52: Add relay hints for calendar RSVPs and appointments by @vitorpamplona in #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 #4147
  • Migrate NIP-47 Jackson serializers to Kotlin Serialization by @vitorpamplona in #4148
  • Progressive Health Connect reads: show partial results while metrics load by @vitorpamplona in #4151
  • New Crowdin Translations by @github-actions[bot] in #4150
  • Add NIP-CC geocaching support (kinds 37516, 7516, 7517, 37517) by @vitorpamplona in #4152
  • Extract calendar screen state to ViewModel by @vitorpamplona in #4153
  • New Crowdin Translations by @github-actions[bot] in #4154
  • fix: geocache log relays, multi-code picture picker, and stop the scanner pumping zoom by @vitorpamplona in #4155
  • Add @OptIn(ExperimentalCoroutinesApi) to calendar test classes by @vitorpamplona in #4156
  • fix: stop the QR scanner pumping the zoom in and out by @vitorpamplona in #4158
  • Detect and report coroutine leaks in unit tests by @vitorpamplona in #4157
  • fix: wallet-connect deep links with one colon, and explain why bunker:// cannot sign in by @vitorpamplona in #4160
  • Fix nav-bar tab switching to restore stacks from other tabs by @vitorpamplona in #4161
  • Move LocalCache into commons, and clear the blockers on retiring the Desktop fork by @vitorpamplona in #4149
  • Fix notification deep links and add inline reply feedback by @vitorpamplona in #4162
  • Correct Health Connect declaration and Data safety form by @vitorpamplona in #4163
  • NIP-71 video interop, and a renderer for every NIP-51 list kind by @vitorpamplona in #4135
  • New Crowdin Translations by @github-actions[bot] in #4159
  • Marmot: warn when invites land on another device by @vitorpamplona in #4165
  • Optimize Marmot message log with segmented encryption and sender ratchet tracking by @vitorpamplona in #4167
  • Migrate search field to OutputTransformation and TextFieldState by @vitorpamplona in #4168
  • Migrate string resources from R to Compose Resources by @vitorpamplona in #4169
  • New Crowdin Translations by @github-actions[bot] in #4166
  • refactor: break AccountSettings' UI coupling and move the first 23 model files to commons by @vitorpamplona in #4171
  • Add backup conflict detection and resolution UI by @vitorpamplona in #4174
  • New Crowdin Translations by @github-actions[bot] in #4173
  • Local Blossom cache: fix video playback, harden the bridge, route it only at the HTTP layer by @vitorpamplona in #4172
  • Keep PoW mining alive when app backgrounded, fix draft deletion race by @vitorpamplona in #4179
  • fix(marmot): blank the sender's path on Update proposals by @jeremyd in #4178
  • fix(marmot): keep populated parents when adding a leaf by @jeremyd in #4177
  • refactor: move the UI's bottom layers (theme, leaf composables, Route/INav) from amethyst into commonsUI by @vitorpamplona in #4176
  • Fix race condition in PoWPublishQueue job removal by @vitorpamplona in #4180
  • New Crowdin Translations by @github-actions[bot] in #4175
  • Implement DECK-0003 (SNO) reader, rasterizer, and Cyberspace bag opening by @vitorpamplona in #4186
  • fix(marmot): accept extensions every member supports in GCE proposals by @jeremyd in #4182
  • feat(marmot): Ed25519.keyPairFromSeed by @jeremyd in #4183
  • feat(marmot): send and return authenticated_data on application messages by @jeremyd in #4184
  • feat(marmot): caller-chosen group_id and optional required_capabilities by @jeremyd in #4187
  • feat(marmot): optional leaf lifetime on createKeyPackage by @jeremyd in #4188
  • refactor: Render/Display split, batches 1–3 — shared displays for AccountViewModel-bound composables by @vitorpamplona in #4185
  • New Crowdin Translations by @github-actions[bot] in #4181
  • fix: address the audit of the Render/Display split — desktop uses the shared dialogs, no blank group messages by @vitorpamplona in #4189
  • refactor: one shared user avatar, shared user and event observers, score tags by @vitorpamplona in #4191
  • refactor: share SafeImeInsets, DisappearingScaffold, emoji and name text, clipboard, screen layout, FAB padding and route builders by @vitorpamplona in #4193
  • refactor: share the UI settings and toasts, add LocalDisplaySettings, call LocalCache directly by @vitorpamplona in #4194
  • New Crowdin Translations by @github-actions[bot] in #4192
  • Add Decentralized Lists (kinds 9998, 39998, 9999, 39999) support by @vitorpamplona in #4197
  • test(commons): record decentralized lists as searchable but not rendered by @vitorpamplona in #4198
  • Increase URL preview read limit to 2 MB for YouTube compatibility by @vitorpamplona in #4200
  • Add Cordn group messaging UI and runtime implementation by @vitorpamplona in #4201
  • New Crowdin Translations by @github-actions[bot] in #4195
  • Replace JacksonMapper with native JSON serialization in CordnMigration by @vitorpamplona in #4202
  • fix: green main again — the three CI jobs #4201 broke by @vitorpamplona in #4203
  • refactor: move the preference layer off EncryptedSharedPreferences and into commons by @vitorpamplona in #4190
  • fix(browser): the two device crashes in the new Compose chrome by @vitorpamplona in #4204
  • Migrate backup conflict strings to composResources by @vitorpamplona in #4205
  • DRAFT — hold: d-tag collision for addressable tagging targets is a Tapestry spec defect by @vitorpamplona in #4199
  • refactor: rename Quartz event classes to match their NIP names by @vitorpamplona in #4207
  • feat(browser): name the browser the hand-off tile will open by @vitorpamplona in #4208
  • feat(browser): Chrome-PWA parity and a shared Compose chrome for every browser surface by @vitorpamplona in #4211
  • refactor(commonsUI): move ScreenLayout, TimeAgo, the theme core, chat bubbles and single-blocker components by @vitorpamplona in #4210
  • feat(quartz): NIP-FE relay commands over HTTP by @vitorpamplona in #4212
  • fix(browser): the pill's site-settings line only told the truth after you opened page info by @vitorpamplona in #4213
  • New Crowdin Translations by @github-actions[bot] in #4206
  • chore(i18n): fill missing cs/de/sv/pt-BR translations and pluralise count strings by @davotoula in #4217
  • New Crowdin Translations by @github-actions[bot] in #4218
  • New Crowdin Translations by @github-actions[bot] in #4219
  • fix(quartz): give search the release notes, list roles and caption words it was missing by @vitorpamplona in #4215
  • fix(audio): make the audio visualizer update in real time by @davotoula in #4216
  • Migrate 68 unblocked ui/ files to commons and commonsUI by @vitorpamplona in #4221
  • fix(quartz): a superseded replaceable is REPLACED (OK false), not a duplicate by @vitorpamplona in #4222
  • New Crowdin Translations by @github-actions[bot] in #4220
  • fix(quartz): NIP-FE review fixes, NIP-98 sign-in policy vote, frames without sub id, drop /neg by @vitorpamplona in #4214
  • fix(embed): stop RemoteImeView taking focus from the rest of the app by @vitorpamplona in #4224
  • feat: redesign Backup Keys (hand-copyable nsec, confirm-then-encrypt ncryptsec) + NIP-49 fixes by @vitorpamplona in #4209
  • New Crowdin Translations by @github-actions[bot] in #4223
  • New Crowdin Translations by @github-actions[bot] in #4225
  • New Crowdin Translations by @github-actions[bot] in #4227
  • fix(cast): Android 17 Chromecast discovery, receiver failure messages and teardown fixes by @davotoula in #4226
  • New Crowdin Translations by @github-actions[bot] in #4229
  • Add navDrawer() to distinguish drawer destinations from in-app pushes by @vitorpamplona in #4230
  • Add NIP-FE (HTTP relay commands) support to geode by @vitorpamplona in #4231
  • fix(marmot): send reactions and deletions inside the group, not as NIP-17 DMs by @vitorpamplona in #4233
  • fix(marmot): treat the relay echo of our own unconfirmed commit as its confirmation by @vitorpamplona in #4232
  • New Crowdin Translations by @github-actions[bot] in #4234
  • fix(relay): drop a kind the relay refuses by name instead of losing the whole REQ by @vitorpamplona in #4238
  • fix(marmot): apply edits from other clients, live and after restart by @vitorpamplona in #4240
  • feat(android): opt into ARM Memory Tagging Extension (async) by @vitorpamplona in #4228
  • New Crowdin Translations by @github-actions[bot] in #4241
  • feat: catch up with the last 3 months of NIP spec changes by @vitorpamplona in #4236
  • fix(quartz): NIP-62 vanish matches the url clients write; NIP-77 reconcile ignores REQ page limits by @vitorpamplona in #4243
  • fix(relay): fit a REQ under a relay's filter-count cap by merging (re-land of #4239) by @vitorpamplona in #4242
  • Add Tor connection splash screen with escape hatch for desktop by @vitorpamplona in #4249
  • Marmot/White Noise interop batch: 22 fixes, tested on tablet + WN Android + WN iOS by @vitorpamplona in #4245
  • New Crowdin Translations by @github-actions[bot] in #4247
  • Fix Material 3 API deprecations and test GC issues by @vitorpamplona in #4250
  • Fix iOS charset decoder and test naming by @vitorpamplona in #4252
  • Upgrade dependencies: Compose, Kotlin, Gradle, and libraries by @vitorpamplona in #4251
  • test: pin cache fixtures so a GC can't flake 13 test classes by @vitorpamplona in #4254
  • fix: NIP-49 passwords on Linux, private zaps over NIP-46 and in Android notifications by @vitorpamplona in #4255
  • New Crowdin Translations by @github-actions[bot] in #4253
  • chore(i18n): translate 61 new strings into cs, de, sv, pt-BR; pluralize password min-length by @davotoula in #4256
  • New Crowdin Translations by @github-actions[bot] in #4257
  • Calendar: show appointments inside RSVP cards with attendee faces by @vitorpamplona in #4258
  • refactor: one UI, waves 4–5 — Account, AccountViewModel, NoteCompose and RichTextViewer into commons/commonsUI by @vitorpamplona in #4248
  • fix(calendar): the RSVP strip drops its time label past a week by @vitorpamplona in #4259
  • Implement CORD spec conformance: fragments, pins, rekey, dissolution by @vitorpamplona in #4262
  • New Crowdin Translations by @github-actions[bot] in #4263
  • Add NIP-71 video view events and push notification support by @vitorpamplona in #4266
  • fix(quartz): correct tag readers found by the graph link review; remove ForkTag by @vitorpamplona in #4267
  • New Crowdin Translations by @github-actions[bot] in #4268
  • feat(concord): pins, disappearing messages, Invite Registry and Direct Invites by @vitorpamplona in #4264
  • fix(concord): cross-client interop with Armada and Accordion by @vitorpamplona in #4265
  • Fix amy build by @vitorpamplona in #4274
  • fix(mls): name the sender when a ratchet generation is reused by @jeremyd in #4270
  • feat(mls): keep skipped-generation secrets across a restore by @jeremyd in #4271
  • feat(mls): derive secret-tree leaves from the unexpanded node secrets by @jeremyd in #4275
  • feat(mls): open late application messages from retained former epochs by @jeremyd in #4272
  • refactor: one-UI step 6 waves 3–7 — upload port, 140 shared screens, audit fixes by @vitorpamplona in #4278
  • Extract test constants in ConcordChannelListFragmentationTest by @vitorpamplona in #4281
  • Fix image zoom transition clipping during open/close animation by @vitorpamplona in #4280
  • feat(concord): private channels, Kick, audit fixes and the remaining CORD features by @vitorpamplona in #4277
  • New Crowdin Translations by @github-actions[bot] in #4279
  • feat: display Ultra HDR photos in HDR by @davotoula in #4284
  • Add Buzz protocol event types and NIP-MP conformance fixtures by @vitorpamplona in #4282
  • Concord: Direct Invites in Notifications/Messages, inline confirmations, AUTH prompt on Concord relays, amy honors Kicks by @vitorpamplona in #4283
  • Add NIP-34 Git status event rendering support by @vitorpamplona in #4288
  • fix(browser): ask before any page-initiated download is saved by @vitorpamplona in #4287
  • New Crowdin Translations by @github-actions[bot] in #4285
  • fix(browser): embedded browser/napplet tabs: black screens, NIP-07 routing, Tor proxy, lifecycle by @vitorpamplona in #4260
  • feat(cordn): fold "Review invitations" into the Cordn card on the new-conversation screen by @vitorpamplona in #4291
  • chore: translate new commonsUI strings into cs, de, sv and pt-BR by @davotoula in #4292
  • New Crowdin Translations by @github-actions[bot] in #4294
  • Split kind 38000 into mint recommendations, prediction markets and ballots by @vitorpamplona in #4293
  • chore(actions): bump the actions group with 2 updates by @dependabot[bot] in #4289
  • fix(buzz): Buzz Desktop interop fixes from a live two-way test by @vitorpamplona in #4295
  • Add NIP-38 music status sharing (now playing) feature by @vitorpamplona in #4297
  • Preview pages without OpenGraph from title, description, and favicon by @vitorpamplona in #4298
  • test: point the search-parity oracle at wss://search.brainstorm.world by @vitorpamplona in #4299
  • New Crowdin Translations by @github-actions[bot] in #4296
  • refactor: one-UI step 6, waves 7–10 — 204 of 252 screens shared by @vitorpamplona in #4290
  • Add audio card UI for playable media in posts by @vitorpamplona in #4300
  • New Crowdin Translations by @github-actions[bot] in #4301
  • fix: follow-ups that missed #4300 (Linux now-playing timeout, audio cover overflow) by @vitorpamplona in #4302
  • Display NIP-82 software apps as compact rows in app curation sets by @vitorpamplona in #4303
  • Add NIP-17 group chat subject rename system message by @vitorpamplona in #4304
  • Refactor chat UI: extract preview text logic, add render tests by @vitorpamplona in #4305
  • Drop blank lines after block-level rich text segments by @vitorpamplona in #4307
  • Fix possessive @mentions and prevent p-tags in NIP-17 DMs by @vitorpamplona in #4308
  • New Crowdin Translations by @github-actions[bot] in #4306
  • Move load progress from ProgressBar to BrowserChromeHost pill by @vitorpamplona in #4310
  • New Crowdin Translations by @github-actions[bot] in #4311
  • Unify Apple and Linux LargeCache to shared Kotlin/Native impl by @vitorpamplona in #4313
  • Add search engine selection and improve browser omnibox UX by @vitorpamplona in #4312
  • New Crowdin Translations by @github-actions[bot] in #4314
  • New Crowdin Translations by @github-actions[bot] in #4315
  • feat: show Tor connection in sidebar by @atesfurkan in #4309
  • Add NIP-42 relay auth event rendering and preview support by @vitorpamplona in #4316
  • Index natural-language tag values in Decentralized Lists by @vitorpamplona in #4318
  • New Crowdin Translations by @github-actions[bot] in #4319
  • Add NIP-92 imeta support for profile picture and banner by @vitorpamplona in #4320
  • Pin TimeUtils.now() for ts-mls fixture KeyPackage lifetime by @vitorpamplona in #4321
  • fix: v1.17.0 release QA — R8 contract, Marmot latency, browser/map/empty-state polish by @vitorpamplona in #4322

New Contributors

Full Changelog: v1.16.0...v1.17.0

Don't miss a new amethyst release

NewReleases is sending notifications on new releases.