Skip to content

Commit bb01918

Browse files
committed
v1.05.0
1 parent f2bda2e commit bb01918

File tree

4 files changed

+139
-9
lines changed

4 files changed

+139
-9
lines changed

CHANGELOG.md

Lines changed: 130 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,133 @@
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+
1131
<a id="v1.04.1"></a>
2132
# [Release v1.04.1: Bugfixes](https://github.com/vitorpamplona/amethyst/releases/tag/v1.04.1) - 2025-11-15
3133

README.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -259,16 +259,16 @@ repositories {
259259
Add the following line to your `commonMain` dependencies:
260260

261261
```gradle
262-
implementation('com.vitorpamplona.quartz:quartz:<Amethyst Version>')
262+
implementation('com.vitorpamplona.quartz:quartz:1:05.0')
263263
```
264264

265265
Variations to each platform are also available:
266266

267267
```gradle
268-
implementation('com.vitorpamplona.quartz:quartz-android:<Amethyst Version>')
269-
implementation('com.vitorpamplona.quartz:quartz-jvm:<Amethyst Version>')
270-
implementation('com.vitorpamplona.quartz:quartz-iosarm64:<Amethyst Version>')
271-
implementation('com.vitorpamplona.quartz:quartz-iossimulatorarm64:<Amethyst Version>')
268+
implementation('com.vitorpamplona.quartz:quartz-android:1:05.0')
269+
implementation('com.vitorpamplona.quartz:quartz-jvm:1:05.0')
270+
implementation('com.vitorpamplona.quartz:quartz-iosarm64:1:05.0')
271+
implementation('com.vitorpamplona.quartz:quartz-iossimulatorarm64:1:05.0')
272272
```
273273

274274
Check versions on [MavenCentral](https://central.sonatype.com/search?q=com.vitorpamplona.quartz)

amethyst/build.gradle

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,9 +45,9 @@ android {
4545
applicationId = "com.vitorpamplona.amethyst"
4646
minSdk = libs.versions.android.minSdk.get().toInteger()
4747
targetSdk = libs.versions.android.targetSdk.get().toInteger()
48-
versionCode = 430
49-
versionName = generateVersionName("1.04.2")
50-
buildConfigField "String", "RELEASE_NOTES_ID", "\"3a03c75d85aaf6b181d3b232d064c4d4feea5c73f0bea2bd91ed61b8da7cd6a6\""
48+
versionCode = 431
49+
versionName = generateVersionName("1.05.0")
50+
buildConfigField "String", "RELEASE_NOTES_ID", "\"b457a20195ffcf501389fcb708f0ef73f4ee263e3bba63f1b893a896129e4c79\""
5151

5252
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
5353
vectorDrawables {

quartz/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -264,7 +264,7 @@ mavenPublishing {
264264
coordinates(
265265
groupId = "com.vitorpamplona.quartz",
266266
artifactId = "quartz",
267-
version = "1.04.2"
267+
version = "1.05.0"
268268
)
269269

270270
// Configure publishing to Maven Central

0 commit comments

Comments
 (0)