|
| 1 | +<a id="v1.05.0"></a> |
| 2 | +# [Release v1.05.0: Bookmark Lists and WoT Scores](https://github.com/vitorpamplona/amethyst/releases/tag/v1.05.0) - 2025-01-08 |
| 3 | + |
| 4 | +#Amethyst v1.05.0: Bookmark Lists, Voice Notes, and WoT Scores |
| 5 | + |
| 6 | +This release introduces Bookmark List management, a complete overhaul of Voice Notes/YakBaks, |
| 7 | +and the debut of Web of Trust (WoT) scores for a safer social experience. |
| 8 | + |
| 9 | +This version adds support for creating, managing, deleting, and viewing multiple bookmark lists, |
| 10 | +which include both public and private members. You will find an improved "Bookmarks" menu option in |
| 11 | +the sidebar and extra bookmark options in the context menu of each post, allowing you to add posts |
| 12 | +directly to one or more individual lists. |
| 13 | + |
| 14 | +The Voice Notes UI has been redesigned to allow recording directly within the new Post Screen and a |
| 15 | +dedicated Voice Reply screen. Users can record a new voice message, preview it with waveform |
| 16 | +visualization, re-record if needed, select a media server, and post the reply. You now have full control. |
| 17 | + |
| 18 | +Amethyst now supports Trusted Assertions. By connecting to a WoT provider, you can see trust scores |
| 19 | +and verified follower counts directly on user pictures. This helps filter signal from noise, identifying |
| 20 | +reputable accounts to follow, which DMs to open, and which notifications to prioritize. To activate |
| 21 | +this, you will need to find a provider capable of computing these scores. While providers are |
| 22 | +currently limited and resource-constrained, we hope more will bring their own algorithms to Nostr over time. |
| 23 | + |
| 24 | +Quartz received a significantly improved database engine capable of sub-microsecond queries using Android's |
| 25 | +default SQLite database. The engine is optimized for mobile environments, using as little memory as |
| 26 | +possible to avoid impacting other apps. |
| 27 | + |
| 28 | +In the background, we have begun building Amethyst Desktop. While much work remains, the goal is a |
| 29 | +standalone, mouse-first application that moves away from mobile-centric UI layouts. |
| 30 | + |
| 31 | +New Features |
| 32 | +- Trusted Assertions: Added support for trust scores displayed on user profile pictures |
| 33 | +- WoT Followers: Displays verified follower counts in user profiles |
| 34 | +- Bookmark Lists: Full support for custom lists by @npub1a3tx8wcrt789skl6gg7rqwj4wey0j53eesr4z6asd4h4jwrd62jq0wkq4k |
| 35 | +- Relay Information: New UI with expanded NIP-11 feature support |
| 36 | +- Voice Notes & Replies: Redesigned experience by @npub1e2yuky03caw4ke3zy68lg0fz3r4gkt94hx4fjmlelacyljgyk79svn3eef |
| 37 | +- Profile Banner: New default banner by @npub1tx5ccpregnm9afq0xaj42hh93xl4qd3lfa7u74v5cdvyhwcnlanqplhd8g |
| 38 | +- Native Links: Intercept njump, yakihonne, primal, iris.to, zap.stream, and shosho.live to open directly on Amethyst by @npub1lu4l4wh7482u8vq0u63g2yuj8yqjdq8ne06r432n92rnd22lspcq0cxa32 |
| 39 | + |
| 40 | +Improvements: |
| 41 | +- New in-memory graph-based cache scheme; moved reports and WoT scores to this new system |
| 42 | +- Disabled top bar reappearance to prevent feed shifting when navigating between pages |
| 43 | +- Lenient Kotlin Serialization to prevent crashes from malformed JSON; |
| 44 | +- Removed expired addressable events from cache |
| 45 | +- Moves reports from the old caching system to the new Graph-based one. |
| 46 | +- Reverted to a 500-post load limit for Profile screens to handle high-reply accounts |
| 47 | +- Moved the QR Code screen from a Dialog to a full Route. |
| 48 | +- Re-adds name as a tagging name to the profile edit page. |
| 49 | + |
| 50 | +Performance: |
| 51 | +- Faster event id checker by serializing, sha256 hashing, and ID comparison without creating any intermediary buffers. |
| 52 | +- Faster event JSON parsers by avoiding new variables and thus garbage collection calls |
| 53 | +- Faster tag array Deserializer |
| 54 | +- Manages the pool state without having to loop through relays, saving some milliseconds of processing. |
| 55 | +- Adds a cache system for WoT scores |
| 56 | +- Improved Compose stability for video UI |
| 57 | + |
| 58 | +BugFixes: |
| 59 | +- Fixes JSON serialization of UTF-8 Emoji surrogates for compatibility with standard Nostr implementations |
| 60 | +- Improves error message on zap configuration errors with detailed NWC URI by @npub1e2yuky03caw4ke3zy68lg0fz3r4gkt94hx4fjmlelacyljgyk79svn3eef |
| 61 | +- Centers QR dialog content and reduce excessive top spacing by @npub1qqqqqqz7nhdqz3uuwmzlflxt46lyu7zkuqhcapddhgz66c4ddynswreecw |
| 62 | +- Closes subscriptions when ending them on NostrClient instead of waiting for them to finish |
| 63 | +- Requires a relay to be an outbox/inbox relay to be able to NOTIFY a user of a payment |
| 64 | +- Improves the speed of parsing of invalid kinds inside an address string |
| 65 | +- Fixes count not working for LIMIT queries in the DB |
| 66 | +- Fixes icon bug with incorrect resource id by @npub1e2yuky03caw4ke3zy68lg0fz3r4gkt94hx4fjmlelacyljgyk79svn3eef |
| 67 | +- Fixes missing updates to the feed when the top list is not yet available locally |
| 68 | +- Fixes List of supported NIPs as Integers on NIP-11 by @npub1e2yuky03caw4ke3zy68lg0fz3r4gkt94hx4fjmlelacyljgyk79svn3eef |
| 69 | +- Fixes ConcurrentExceptions on event outboxes |
| 70 | + |
| 71 | +Desktop: |
| 72 | +- Base Compose Multiplatform Desktop App with posts and global/following feeds by @npub12cfje6nl2nuxplcqfvhg7ljt89fmpj0n0fd24zxsukja5qm9wmtqd7y76c |
| 73 | + |
| 74 | +Web: |
| 75 | +- New website by @npub18ams6ewn5aj2n3wt2qawzglx9mr4nzksxhvrdc4gzrecw7n5tvjqctp424 |
| 76 | + |
| 77 | +Quartz: |
| 78 | +- Adds support for Trust Provider lists and Contact Cards for NIP-85 |
| 79 | +- Early support for Payment targets as per [NIP-A3](https://github.com/nostr-protocol/nips/pull/2119) by @npub1w4uswmv6lu9yel005l3qgheysmr7tk9uvwluddznju3nuxalevvs2d0jr5 |
| 80 | +- Initial support for NIP 46 by @npub1w4uswmv6lu9yel005l3qgheysmr7tk9uvwluddznju3nuxalevvs2d0jr5 |
| 81 | +- Adds support for fast MurMur hash 3 64 bits |
| 82 | +- Adds a nextLong secure random method |
| 83 | +- Removing the generalist approach of ptag-mentions |
| 84 | +- Removes deprecated fields in UserMetadata |
| 85 | +- Removes compose bom from Quartz to avoid unnecessary dependencies. |
| 86 | +- Removes datetime dependencies from Quartz |
| 87 | +- Adds dependency on coroutines directly (instead of through compose runtime) |
| 88 | +- Removes old secp256 target dependencies |
| 89 | +- Adds Default scope for NostrClient and Relay Authenticator |
| 90 | + |
| 91 | +Quartz-Event Store: |
| 92 | +- Moves from text tags to probabilistic 64-bit MurMur Hash3 integers for performance |
| 93 | +- Moves from range index queries to kind,pubkey queries by default. |
| 94 | +- Adds simpler SQL queries for specific simple Nostr filters |
| 95 | +- Expose SQL query plans, vacuum, and analyse to lib users |
| 96 | +- Implements AND Tag queries from [NIP-91](https://github.com/nostr-protocol/nips/pull/1365) |
| 97 | +- Implements GiftWrap deletions by p-Tag with deletions and vanish requests |
| 98 | +- Offers several indexing strategy options to users. |
| 99 | +- Adds several test cases that verify not only the SQL but also the indexes used |
| 100 | +- Exposes raw queries that return columns for relays that might not need the tag array |
| 101 | +- Forces the use of the index on Addressables and Replaceables on triggers |
| 102 | +- Fixes duplicated events being returned from the DB |
| 103 | +- Fixes unused Or condition in the SQL builder |
| 104 | +- Refine the structure of the module classes for the DB |
| 105 | +- Removes the Statement cache since statements are not thread safe |
| 106 | +- Creating interfaces for multiple EventStores |
| 107 | + |
| 108 | +Code Quality: |
| 109 | +- Updates kotlin, compose, multiplatform, activity, serialization, media3, mockk, secp256, tor, androidxCamera, stdlib |
| 110 | +- Adds a compose stability plugin to allow traces in debug |
| 111 | +- Updates to the latest Zapstore config |
| 112 | +- Updates quarts instructions in the ReadMe. |
| 113 | + |
| 114 | +Updated translations: |
| 115 | +- Czech, German, Swedish, and Portuguese by @npub1e2yuky03caw4ke3zy68lg0fz3r4gkt94hx4fjmlelacyljgyk79svn3eef |
| 116 | +- Polish by @npub16gjyljum0ksrrm28zzvejydgxwfm7xse98zwc4hlgq8epxeuggushqwyrm |
| 117 | +- Hungarian by @npub1ww8kjxz2akn82qptdpl7glywnchhkx3x04hez3d3rye397turrhssenvtp @npub1dnvslq0vvrs8d603suykc4harv94yglcxwna9sl2xu8grt2afm3qgfh0tp |
| 118 | +- Hindi by @npub1ww6huwu3xye6r05n3qkjeq62wds5pq0jswhl7uc59lchc0n0ns4sdtw5e6 |
| 119 | +- Slovenian by @npub1qqqqqqz7nhdqz3uuwmzlflxt46lyu7zkuqhcapddhgz66c4ddynswreecw |
| 120 | +- Spanish by @npub1luhyzgce7qtcs6r6v00ryjxza8av8u4dzh3avg0zks38tjktnmxspxq903 |
| 121 | +- Latvian by @npub1l60stxkwwmkts76kv02vdjppka9uy6y3paztck7paau7g64l687saaw6av |
| 122 | +- Dutch by @npub1w4la29u3zv09r6crx5u8yxax0ffxgekzdm2egzjkjckef7xc83fs0ftxcd |
| 123 | +- French by @npub106efcyntxc5qwl3w8krrhyt626m59ya2nk9f40px5s968u5xdwhsjsr8fz and Alexis Magzalci |
| 124 | +- Chinese by @npub1gd8e0xfkylc7v8c5a6hkpj4gelwwcy99jt90lqjseqjj2t253s2s6ch58h |
| 125 | + |
| 126 | +<a id="v1.04.2"></a> |
| 127 | +# [Release v1.04.2: Fix for Google Play](https://github.com/vitorpamplona/amethyst/releases/tag/v1.04.2) - 2025-11-15 |
| 128 | + |
| 129 | +Quick release for Google. |
| 130 | + |
1 | 131 | <a id="v1.04.1"></a> |
2 | 132 | # [Release v1.04.1: Bugfixes](https://github.com/vitorpamplona/amethyst/releases/tag/v1.04.1) - 2025-11-15 |
3 | 133 |
|
|
0 commit comments