Amethyst v0.74.3: Private DMs and Group Chats, UI Improvements & More
Amethyst is a free and open source Nostr client for Android.
The latest updates to Amethyst include:
v0.74.3: Bugfixes
- Adds Copy URL and Copy Note ID popups for images and videos for Gigi
- BugFix for empty global feeds
- BugFix to re-broadcast GiftWraps
- BugFix to include zap events signed by the user's main key in the summary chart
- BugFix for Playback services taking too long to start on Samsung phones
- Updates media control dependencies to the latest version
v0.74.2: JSON Parser Migration, UI Improvements, StemStr, New Modules
- Adds support for Stemstr's kind 1808
- Adds a waveform visual to audio playback when available
- Creates a Quartz Module for Nostr Events
- Creates a Benchmark Module to test Performance
- Migrates from GSon to Jackson for Performance gains, adapts all serializers accordingly
- Automatically activates NIP24 chats when users have received NIP24 messages from the counterparty
- Implements contextual rounded corners for images and videos
- Caches NIP-44 shared key for performance.
- Improves BechUtils encoding performance.
- Recreates Hex encoding/decoding classes for Performance.
- Migrates NIP24 to the new ByteArray concat encoding.
- Fixes Zap Notifications when the Zap payer is the logged-in user
- Fixes ThreadAssembler when there are two roots to a conversation branch
- Fixes the color of the historical chart to follow the chosen theme in settings
- Fixes chatroom names when clients send the same user twice in the p-tags.
- Removes support for lenient choices in the. events.
- Refactors TLV's, Events, and NIP-19 dependencies.
- Adds a large set of events as a test case for signature validation
- Adds new translations for cs/de/se by @npub1e2yuky03caw4ke3zy68lg0fz3r4gkt94hx4fjmlelacyljgyk79svn3eef
- Fixes url regex pattern for URLs with a dash by @npub1l60d6h2uvdwa9yq0r7r2suhgrnsadcst6nsx2j03xwhxhu2cjyascejxe5
- Fixes image uploading tests without an account
- Adds account info to image uploads test suites
- Moves navigation's top bar to use the Arrow Back UI Concept
- Trims display names when possible
- Don't display the username if the display name is available.
- Moves Relay List to a composable surface
- Migrates the use of pubkey prefixes in filters from 6 to 8 because more relays seem to work with this
- Adds read support for NIP-65
- Adds UI Improvements to the Settings Interface
- BugFix: Highlight event builder using the wrong kind
- BugFix: Avoids displaying a NIP-94 event without a url tag
- Updates SDK and dependencies to the latest
v0.73.3: BugFixes
- BugFix for the blank screen when pressing the message button on a User Profile without any history of Chats
- BugFix for the crashing route when clicking in the GiftWrap DM Notification
- BugFix: Correctly updates Hashtags on a note after a new follow/unfollow
- Moves Zap Amount calculator from Compose scope to ViewModel Scope
- Avoids account state recompositions
- Moves Show And Hide functions from the Compose Scope to ViewModel Scope
- Moves the creation of the TopBar live data for lists into the AccountViewModel
- Moves HTTP and EMAIL regex compilation to a singleton
v0.73.2: PushNotifications for GiftWraps
- Adds PushNotification for all GiftWrapped Events
- Fix: Marking All GiftWraped DMs as read
- Fix: Displays GiftWraped DM as Messages in the Notification Screen
- Fix: Menu drawer half open when switching to landscape mode by @npub1a3tx8wcrt789skl6gg7rqwj4wey0j53eesr4z6asd4h4jwrd62jq0wkq4k
- Fix: Forces the creation of Notification Channels to enable toggles in the Settings of Samsung phones
- Fix: Correctly displaying/hiding pictures in Chat Compose
v0.73.1: Private DMs and Group Chats
- "This is an alpha release of the new GiftWrapped DMs. Please do not consider anything to be private until we have a stable version. This is early and there might be bugs that leak information."
- "This implementation is very similar to how Slack manages direct DMs to multiple users. If three users are having a conversation and want to add a forth person, the forth's user will not see the past. This guarantees maximum privacy: only the receivers of a message at the time of writting will ever be able to decrypt it."
The claims of this new method are:
- Messages are encrypted with a superior XChaCha algorithm to each participant's public key individually.
- Chat participant identities, each message's real date and time, event kinds, and other tags are all hidden from the public.
- Senders and receivers cannot be linked with public information alone.
- Minimal trust in counterparties: Counterparties cannot expose verifiable details of your message, including the metadata, without exposing their entire user and all of their other messages (private key)
- There is no central queue, channel or otherwise converging event id to link or count all messages in the same group.
- There is no moderation role (i.e. no group admins, no invitations or bans)
- There is no chatroom secret that can leak or be mistakently shared
- Messages can be fully recoverable in any client (that implements NIP-24) with the receiver or the sender's private key
- The protocol's messages can flow through public relays without loss of privacy. Private relays can increase privacy further, but they are not needed.
- The protocol is extensible to make any other event kind fully private (private likes, private reports, private long-form content, etc)
In the near future, we will implement Forward Secrecy:
- Users will be able to opt-in for "Disappearing Messages" that are not recoverable with their private key
- Users will be able to also opt-in to sharing messages with a new key exclusive for DM backup and recovery.
"You can activate this mode by clicking in the Incognito icon on the Chat screen. For now, only Amethyst supports this NIP. Thus we recommend only testing with other Amethyst users. Coracle and 0xChat are finishing their implementations in the upcoming days/weeks."
- Support for NIP-24 Private Messages and Small Groups
- Support for NIP-59 Gift Wraps & Seals
- Support for NIP-44 Versioned Encrypted Payloads
- Support for XChaCha encryption algorithm
- Fix: Loading of Alby's NWC URI
- Fix: Only requests notification permission once.
- Fix: Show reposts and reactions in search
- Fix: Signed byte used for array slice inside the TLV by @npub1xpuz4qerklyck9evtg40wgrthq5rce2mumwuuygnxcg6q02lz9ms275ams
- Fix: Global feed only shows events from Global-active relays by @npub10npj3gydmv40m70ehemmal6vsdyfl7tewgvz043g54p0x23y0s8qzztl5h
- Updates Dutch translations by @npub1w4la29u3zv09r6crx5u8yxax0ffxgekzdm2egzjkjckef7xc83fs0ftxcd