Back to Freedom.Tech Back
All Amethyst releasesAll versions
Release Sat, Aug 22, 2026 6 min read

Amethyst 1.14.0

Original release notes

What's Changed

  • Add NIP-84 highlights support: composer, feed, and share intent by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/3793
  • New Crowdin Translations by @github-actions[bot] in https://github.com/vitorpamplona/amethyst/pull/3794
  • Desktop: profile screen parity - tabs, header actions, banner/bio, zaps by @nrobi144 in https://github.com/vitorpamplona/amethyst/pull/3795
  • Work around a fatal media3 crash on Low-Latency HLS (LL-HLS), eg NoGoodRadio by @davotoula in https://github.com/vitorpamplona/amethyst/pull/3796
  • Harden workflow-ship.sh and pin it with a regression harness by @davotoula in https://github.com/vitorpamplona/amethyst/pull/3797
  • New Crowdin Translations by @github-actions[bot] in https://github.com/vitorpamplona/amethyst/pull/3799
  • chore: sync geode Homebrew formula to v1.13.1 by @github-actions[bot] in https://github.com/vitorpamplona/amethyst/pull/3802
  • chore: sync amy Homebrew formula to v1.13.1 by @github-actions[bot] in https://github.com/vitorpamplona/amethyst/pull/3801
  • Add Pictures, Videos, Shorts, and Torrents feed types by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/3803
  • Address buzz CLI review findings; pin the wrapper copies and the amy arg surface by @davotoula in https://github.com/vitorpamplona/amethyst/pull/3798
  • chore: sync winget manifests to v1.13.1 by @github-actions[bot] in https://github.com/vitorpamplona/amethyst/pull/3805
  • New Crowdin Translations by @github-actions[bot] in https://github.com/vitorpamplona/amethyst/pull/3806
  • Refactor chat bubble swipe gesture to use lower-level pointer APIs by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/3807
  • Fix flaky PeerUniStreamDrainTest by confining drainer to producer's event loop by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/3809
  • Make draft posts in thread view open edit screen on tap by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/3811
  • NIP-29: Channel deletion, archival, and Buzz community UI by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/3812
  • New Crowdin Translations by @github-actions[bot] in https://github.com/vitorpamplona/amethyst/pull/3808
  • Consolidate NIP-71 video event types under shared interface by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/3813
  • Add Nostr badge watermark to notification icons by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/3815
  • Remove facepile from channel rows, simplify layout by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/3814
  • feat(nip73): show rich previews for external-content comments by @dmnyc in https://github.com/vitorpamplona/amethyst/pull/3810
  • New Crowdin Translations by @github-actions[bot] in https://github.com/vitorpamplona/amethyst/pull/3816
  • Confine Blossom cache probe and resolver to IO dispatcher by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/3818
  • perf(nip73): prefetch external-content preview URLs by @dmnyc in https://github.com/vitorpamplona/amethyst/pull/3820
  • Extract RelayNameChip to shared component and add it to relay group message headers by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/3822
  • Fix Torclearnet fallback banner logic with live socket state by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/3823
  • Redesign channel invite cards as feed rows with metadata-only observers by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/3821
  • fix: quiet the default log, add a boot narrative, and stop pinning Concord entities across a Refounding by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/3819
  • Handle blank and malformed metadata gracefully by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/3824
  • Add media share targets for Pictures, Shorts, and Video feeds by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/3825
  • Fix metadata JSON parsing to use lenient parser consistently by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/3828
  • Listen only while foregrounded, and fix the meter that measures it by @davotoula in https://github.com/vitorpamplona/amethyst/pull/3827
  • Fix ServiceType parsing to handle edge cases safely by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/3830
  • New Crowdin Translations by @github-actions[bot] in https://github.com/vitorpamplona/amethyst/pull/3826
  • Fix SharedKeyCache hash collision vulnerability & add constant-time MAC comparison by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/3833
  • feat(relays): explain why every subscription exists, and fix what that exposed by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/3832
  • New Crowdin Translations by @github-actions[bot] in https://github.com/vitorpamplona/amethyst/pull/3831
  • chore(actions): bump the actions group with 5 updates by @dependabot[bot] in https://github.com/vitorpamplona/amethyst/pull/3834
  • Add optimized decode64/decode128 and encode64/encode128 to Hex by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/3837
  • NIP-66: measure relays from the traffic a client already makes by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/3836
  • Fix InProcessWebSocket race condition in connect-time AUTH delivery by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/3838
  • New Crowdin Translations by @github-actions[bot] in https://github.com/vitorpamplona/amethyst/pull/3839
  • Let a monitor publish what it learned without dialling by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/3841
  • New Crowdin Translations by @github-actions[bot] in https://github.com/vitorpamplona/amethyst/pull/3840
  • Add StoreQueryContext for observer-relative ranking in stores by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/3842
  • rtt-open is the transport's handshake, not our own queueing by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/3843
  • refactor: decouple LocalCache and Account god classes (behavior-preserving) by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/3844
  • Test: Type ExplainedFilter.copy() result as base Filter by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/3845
  • fix: request follower-count provider's 30382 cards in UserCardsSubAssembler by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/3846
  • Stop COUNT from inheriting the default page size by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/3848
  • Fix fetchAllPages cropping streaming pages; normalize accessory timeouts to idle windows by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/3850
  • New Crowdin Translations by @github-actions[bot] in https://github.com/vitorpamplona/amethyst/pull/3849
  • fix(relay): stripe the subscription-state lock per relay to end an ANR convoy by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/3851
  • docs: Add three store-implementer skills (event-store-semantics, nip85, searchable-events) by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/3853
  • nip50Search: search grammar + weighted field extraction; nip01Core: shared store-semantics rules by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/3854
  • quartz/geode: sync accessories from vespa-relay, InsertOutcome.Failed contract, mirror resume coverage by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/3855
  • fix(relay): compare every filter in FiltersChanged, not just the first by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/3856
  • NIP-66 relay monitoring: streaming probes, read/write checks, URL fixes by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/3857
  • New Crowdin Translations by @github-actions[bot] in https://github.com/vitorpamplona/amethyst/pull/3852
  • Support IPv6 overlay relays (Yggdrasil) with RFC 5952 canonicalization by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/3859
  • Fix URL detection to exclude quotes from parsed URLs by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/3860
  • SyncCoverage: one band interval cannot speak for several kinds by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/3862
  • Replace BackHandler with KeyboardAwareBackHandler in posting screens by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/3864
  • Suspend the incoming-message chain down to SubscriptionListener.onEvent by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/3863
  • New Crowdin Translations by @github-actions[bot] in https://github.com/vitorpamplona/amethyst/pull/3861
  • New Crowdin Translations by @github-actions[bot] in https://github.com/vitorpamplona/amethyst/pull/3867
  • Make the left drawer configurable by @davotoula in https://github.com/vitorpamplona/amethyst/pull/3866
  • fix(media): stop rendering non-media NIP-94 files as video by @davotoula in https://github.com/vitorpamplona/amethyst/pull/3868
  • fix(ime): settle the keyboard in Nav so every screen stops stranding imePadding by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/3870
  • New Crowdin Translations by @github-actions[bot] in https://github.com/vitorpamplona/amethyst/pull/3869
  • negentropy: size reconcile windows from the caller's index, and state the relay's cap by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/3871
  • Stop the outbox getting slower with every publish by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/3872
  • Repair bare-subtype imeta MIME types so images can be shared by @davotoula in https://github.com/vitorpamplona/amethyst/pull/3874
  • New Crowdin Translations by @github-actions[bot] in https://github.com/vitorpamplona/amethyst/pull/3875
  • New Crowdin Translations by @github-actions[bot] in https://github.com/vitorpamplona/amethyst/pull/3876
  • Quartz: give SyncCoverage's persistence a typed band key by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/3877
  • Rename parameters for clarity and consistency by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/3878
  • feat(resourceusage): measure why relay data is spent, not just how much by @davotoula in https://github.com/vitorpamplona/amethyst/pull/3879
  • feat(concord): staff-held control_root write-gates the Control Plane (CORD-02 2) by @alexgleason in https://github.com/vitorpamplona/amethyst/pull/3873
  • New Crowdin Translations by @github-actions[bot] in https://github.com/vitorpamplona/amethyst/pull/3880
  • fix(quartz): update NIP-66 relay records instead of rebuilding them by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/3882
  • fix(quartz): merge probe verdicts into the record they replace by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/3883
  • Let a drained paged walk close the sync leg below it by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/3884
  • New Crowdin Translations by @github-actions[bot] in https://github.com/vitorpamplona/amethyst/pull/3881
  • fix(concord): close the soft-ban authority holes (audit A1-A4, B1, B2, B4) by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/3885
  • fix: stop reposts from being bundled with the always-on service notification by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/3886
  • Align napplet host with current NIP-5D and NAPs by @dskvr in https://github.com/vitorpamplona/amethyst/pull/3858
  • quartz: make a paged walk terminate - floor the cursor at 0, stop when a relay ignores it by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/3889
  • feat(concord): close the CORD-05/06 invite lifecycle - Invite List, re-mint on Refounding, revocation by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/3888
  • negentropy: let a caller decline an id before the download REQ by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/3892
  • feat(desktop): per-visible metadata + reaction loading via shared finders in commons by @nrobi144 in https://github.com/vitorpamplona/amethyst/pull/3890
  • New Crowdin Translations by @github-actions[bot] in https://github.com/vitorpamplona/amethyst/pull/3891
  • fix(nav): switching between two pinned web-app tabs crashed onto the wrong one by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/3894
  • fix(embed): bring the keyboard back on a tap in an already-focused field by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/3895
  • Declare pointer hints on Report, ChatMessage, Classifieds and ChannelCreate events by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/3896
  • Add "Copy Original/Translated" chooser for translated notes by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/3897
  • feat(polls): extended poll results page with voter list by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/3898
  • New Crowdin Translations by @github-actions[bot] in https://github.com/vitorpamplona/amethyst/pull/3893
  • Redesign relay auth permissions UI and decision flow by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/3899
  • Optimize locale application to skip redundant system calls by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/3901
  • Fix push registration to fail loudly on HTTP errors by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/3900
  • New Crowdin Translations by @github-actions[bot] in https://github.com/vitorpamplona/amethyst/pull/3902
  • Add bulk audience picker for short-note composer by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/3903
  • New Crowdin Translations by @github-actions[bot] in https://github.com/vitorpamplona/amethyst/pull/3904
  • Auth: recognize NIP-29 groups and Concord communities as joined venues by @vitorpamplona in https://github.com/vitorpamplona/amethyst/pull/3906