Amethyst

Amethyst's avatar
Amethyst
npub142gy...xrj0
Nostr Client for Android
#Amethyst v1.05.0: Bookmark Lists, Voice Notes, and WoT Scores This release introduces Bookmark List management, a complete overhaul of Voice Notes/YakBaks, and the debut of Web of Trust (WoT) scores for a safer social experience. This version adds support for creating, managing, deleting, and viewing multiple bookmark lists, which include both public and private members. You will find an improved "Bookmarks" menu option in the sidebar and extra bookmark options in the context menu of each post, allowing you to add posts directly to one or more individual lists. The Voice Notes UI has been redesigned to allow recording directly within the new Post Screen and a dedicated Voice Reply screen. Users can record a new voice message, preview it with waveform visualization, re-record if needed, select a media server, and post the reply. You now have full control. Amethyst now supports Trusted Assertions. By connecting to a WoT provider, you can see trust scores and verified follower counts directly on user pictures. This helps filter signal from noise, identifying reputable accounts to follow, which DMs to open, and which notifications to prioritize. To activate this, you will need to find a provider capable of computing these scores. While providers are currently limited and resource-constrained, we hope more will bring their own algorithms to Nostr over time. Quartz received a significantly improved database engine capable of sub-microsecond queries using Android's default SQLite database. The engine is optimized for mobile environments, using as little memory as possible to avoid impacting other apps. In the background, we have begun building Amethyst Desktop. While much work remains, the goal is a standalone, mouse-first application that moves away from mobile-centric UI layouts. New Features - Trusted Assertions: Added support for trust scores displayed on user profile pictures - WoT Followers: Displays verified follower counts in user profiles - Bookmark Lists: Full support for custom lists by @npub1a3tx...kq4k - Relay Information: New UI with expanded NIP-11 feature support - Voice Notes & Replies: Redesigned experience by @npub1e2yu...3eef - Profile Banner: New default banner by @Purple Painter - Native Links: Intercept njump, yakihonne, primal, iris.to, zap.stream, and shosho.live to open directly on Amethyst by @npub1lu4l...xa32 Improvements: - New in-memory graph-based cache scheme; moved reports and WoT scores to this new system - Disabled top bar reappearance to prevent feed shifting when navigating between pages - Lenient Kotlin Serialization to prevent crashes from malformed JSON; - Removed expired addressable events from cache - Moves reports from the old caching system to the new Graph-based one. - Reverted to a 500-post load limit for Profile screens to handle high-reply accounts - Moved the QR Code screen from a Dialog to a full Route. - Re-adds name as a tagging name to the profile edit page. Performance: - Faster event id checker by serializing, sha256 hashing, and ID comparison without creating any intermediary buffers. - Faster event JSON parsers by avoiding new variables and thus garbage collection calls - Faster tag array Deserializer - Manages the pool state without having to loop through relays, saving some milliseconds of processing. - Adds a cache system for WoT scores - Improved Compose stability for video UI BugFixes: - Fixes JSON serialization of UTF-8 Emoji surrogates for compatibility with standard Nostr implementations - Improves error message on zap configuration errors with detailed NWC URI by @npub1e2yu...3eef - Centers QR dialog content and reduce excessive top spacing by @StellarStoic - Closes subscriptions when ending them on NostrClient instead of waiting for them to finish - Requires a relay to be an outbox/inbox relay to be able to NOTIFY a user of a payment - Improves the speed of parsing of invalid kinds inside an address string - Fixes count not working for LIMIT queries in the DB - Fixes icon bug with incorrect resource id by @npub1e2yu...3eef - Fixes missing updates to the feed when the top list is not yet available locally - Fixes List of supported NIPs as Integers on NIP-11 by @npub1e2yu...3eef - Fixes ConcurrentExceptions on event outboxes Desktop: - Base Compose Multiplatform Desktop App with posts and global/following feeds by @Robert | Swan Web: - New website by @Derek Ross Quartz: - Adds support for Trust Provider lists and Contact Cards for NIP-85 - Early support for Payment targets as per [NIP-A3]() by @greenart7c3 - Initial support for NIP 46 by @greenart7c3 - Adds support for fast MurMur hash 3 64 bits - Adds a nextLong secure random method - Removing the generalist approach of ptag-mentions - Removes deprecated fields in UserMetadata - Removes compose bom from Quartz to avoid unnecessary dependencies. - Removes datetime dependencies from Quartz - Adds dependency on coroutines directly (instead of through compose runtime) - Removes old secp256 target dependencies - Adds Default scope for NostrClient and Relay Authenticator Quartz-Event Store: - Moves from text tags to probabilistic 64-bit MurMur Hash3 integers for performance - Moves from range index queries to kind,pubkey queries by default. - Adds simpler SQL queries for specific simple Nostr filters - Expose SQL query plans, vacuum, and analyse to lib users - Implements AND Tag queries from [NIP-91]() - Implements GiftWrap deletions by p-Tag with deletions and vanish requests - Offers several indexing strategy options to users. - Adds several test cases that verify not only the SQL but also the indexes used - Exposes raw queries that return columns for relays that might not need the tag array - Forces the use of the index on Addressables and Replaceables on triggers - Fixes duplicated events being returned from the DB - Fixes unused Or condition in the SQL builder - Refine the structure of the module classes for the DB - Removes the Statement cache since statements are not thread safe - Creating interfaces for multiple EventStores Code Quality: - Updates kotlin, compose, multiplatform, activity, serialization, media3, mockk, secp256, tor, androidxCamera, stdlib - Adds a compose stability plugin to allow traces in debug - Updates to the latest Zapstore config - Updates quarts instructions in the ReadMe. Updated translations: - Czech, German, Swedish, and Portuguese by @npub1e2yu...3eef - Polish by @npub16gjy...wyrm - Hungarian by @npub1dnvs...h0tp - Hindi by @ā¤°ā¤žā¤œ - Slovenian by @StellarStoic - Spanish by @npub1luhy...q903 - Latvian by @npub1l60s...w6av - Dutch by @npub1w4la...txcd - French by @npub106ef...r8fz and Alexis Magzalci - Chinese by @CXPLAY
#Amethyst v1.04.1: Bug fixes - Fixes crashing when starting - Fixes hashtag unfollowing for mixed case tags - Fixes release Id for the zap the devs button - Fixes quartz version for a release to Maven - Fixes disappearing of the Zap the Devs Manual Payment screen - Fixes back button of the Zap the Devs Manual Payment screen staying behind the status bar Translations: - Polish by @npub16gjy...wyrm - Hungarian by @npub1dnvs...h0tp Download: