This commit is contained in:
Vitor Pamplona
2026-06-19 09:22:33 -04:00
parent 47ac693d96
commit cff9634282
6 changed files with 133 additions and 14 deletions
+3 -3
View File
@@ -7,7 +7,7 @@ description: Integration guide for using the Quartz Nostr KMP library in externa
Reference for integrating `com.vitorpamplona.quartz:quartz` into external Nostr KMP projects.
**Published artifact**: `com.vitorpamplona.quartz:quartz:1.12.1` (Maven Central)
**Published artifact**: `com.vitorpamplona.quartz:quartz:1.12.2` (Maven Central)
**Targets**: JVM 21+, Android (minSdk 21+), iOS (XCFramework `quartz-kmpKit`)
**License**: MIT
@@ -19,7 +19,7 @@ Reference for integrating `com.vitorpamplona.quartz:quartz` into external Nostr
```toml
[versions]
quartz = "1.12.1"
quartz = "1.12.2"
[libraries]
quartz = { module = "com.vitorpamplona.quartz:quartz", version.ref = "quartz" }
@@ -41,7 +41,7 @@ kotlin {
```kotlin
dependencies {
implementation("com.vitorpamplona.quartz:quartz:1.12.1")
implementation("com.vitorpamplona.quartz:quartz:1.12.2")
}
```
@@ -3,7 +3,7 @@
## Current version
```
com.vitorpamplona.quartz:quartz:1.12.1
com.vitorpamplona.quartz:quartz:1.12.2
```
Check latest: https://central.sonatype.com/artifact/com.vitorpamplona.quartz/quartz
@@ -16,7 +16,7 @@ Check latest: https://central.sonatype.com/artifact/com.vitorpamplona.quartz/qua
```toml
[versions]
quartz = "1.12.1"
quartz = "1.12.2"
[libraries]
quartz = { module = "com.vitorpamplona.quartz:quartz", version.ref = "quartz" }
@@ -55,7 +55,7 @@ kotlin {
```kotlin
// build.gradle.kts (app module)
dependencies {
implementation("com.vitorpamplona.quartz:quartz:1.12.1")
implementation("com.vitorpamplona.quartz:quartz:1.12.2")
}
```
@@ -70,7 +70,7 @@ plugins {
}
dependencies {
implementation("com.vitorpamplona.quartz:quartz:1.12.1")
implementation("com.vitorpamplona.quartz:quartz:1.12.2")
// JNA needed for libsodium (NIP-44) on JVM
implementation("net.java.dev.jna:jna:5.18.1")
}
+5 -5
View File
@@ -297,16 +297,16 @@ repositories {
Add the following line to your `commonMain` dependencies:
```gradle
implementation('com.vitorpamplona.quartz:quartz:1.12.1')
implementation('com.vitorpamplona.quartz:quartz:1.12.2')
```
Variations to each platform are also available:
```gradle
implementation('com.vitorpamplona.quartz:quartz-android:1.12.1')
implementation('com.vitorpamplona.quartz:quartz-jvm:1.12.1')
implementation('com.vitorpamplona.quartz:quartz-iosarm64:1.12.1')
implementation('com.vitorpamplona.quartz:quartz-iossimulatorarm64:1.12.1')
implementation('com.vitorpamplona.quartz:quartz-android:1.12.2')
implementation('com.vitorpamplona.quartz:quartz-jvm:1.12.2')
implementation('com.vitorpamplona.quartz:quartz-iosarm64:1.12.2')
implementation('com.vitorpamplona.quartz:quartz-iossimulatorarm64:1.12.2')
```
Check versions on [MavenCentral](https://central.sonatype.com/search?q=com.vitorpamplona.quartz)
+1
View File
@@ -2,6 +2,7 @@
Release notes for Amethyst, one file per version. Files are named with zero-padded version numbers so they sort correctly in any file browser. Use [`TEMPLATE.md`](TEMPLATE.md) as the starting point for the next release.
- [v1.12.2 — Road Events, Collapsable replies and some fixes](v1.12.02.md)
- [v1.12.1 — Health Connect Workouts, Share as Image](v1.12.01.md)
- [v1.12.0 — Payments, Private Posts & Workouts](v1.12.00.md)
- [v1.11.0 — NIP-52 Calendars, On-Chain Zap Polish](v1.11.00.md)
+118
View File
@@ -0,0 +1,118 @@
# v1.12.2: Road Events, Collapsable replies and some fixes
Highlights:
- Adds Roadstr road events (kind 1315/1316) with OpenStreetMap map
- Expands the Cashu wallet to surface and manage balances held across every mint, with seed recovery and richer nutzap controls.
- Collapses thread replies on click in thread view and shows the hidden reply count on collapsed cards.
- Adds full-text search across far more event kinds, including direct messages, zap comments, polls, code snippets, and audio.
## New Features
### Road Events (Roadstr)
- Adds kind 1315/1316 road event support, rendered with roadstr-accurate cards.
- Renders the road event location on an OpenStreetMap map that follows the app's dark theme.
- Modernizes road event cards with a map hero and a floating pill.
- Includes road events in geohash feeds.
### Quartz Search
- Adds a pausable, resumable full-text-search reindex to the SQLite and filesystem event stores, and clamps non-positive reindex batch sizes.
- Indexes direct message content (NIP-17 ChatMessageEvent).
- Indexes zap comments (LnZap request/receipt, on-chain zap, and nutzap).
- Makes polls, code snippets, audio, and git/torrent replies and interest sets searchable.
- Indexes parsed JSON fields of profile, channel, and app-handler events.
- Indexes natural-language fields of more event kinds, and makes the remaining text-bearing events searchable.
- Adds full-text-search reindexing to both the SQLite and filesystem event stores, pausable and resumable for large stores.
- Runs the post-migration search reindex in the background so upgrades don't block on it.
### Cashu Wallet
- Surfaces all token-holding mints and syncs them when the wallet opens.
- Highlights balances held at unconfigured mints and lets users move those coins off.
- Recovers from seed across every held mint, not just the configured ones.
- Reframes edit-wallet as a mint editor; adds mints directly from the browser and verifies them in the list.
- Moves mint recommendations to their own screen and nutzap-key rotation into the Danger Zone.
- Adds stop-receiving-nutzaps and delete-wallet actions.
- Keeps the Cashu receive invoice on screen during mint polling.
### Music & Playlists
- Adds a full-screen music playlist composer with cover image and metadata.
- Lets users reorder and remove tracks inside the playlist editor.
- Adds a "Mine" option to the music and playlist feed filters.
### Reading & Sharing
- Collapses thread replies on click in thread view and shows the hidden reply count on collapsed cards.
- Modernizes the quote/repost choice popup and shows both fork states in the boost preview.
- Reduces the scroll sensitivity for bringing back the nav and status bars.
## Share as Image
- Adds Share as Image to a local file, renaming the upload flow to Share as Image Url.
- Shows the image thumbnail in the share sheet for Share as Image.
## Public Chats
- Requires at least one relay to create or edit a public chat
- Broadcasts to observed relays when a channel declares none.
# Pull Notifications
- Better detects background state via a LifecycleEventObserver
- Prunes the connected set when a relay leaves the pool.
- Throttles notification relay-count updates to dodge Android's rate limit
- Distinguishes foreground from background counts in the notification tray
## Tor Management
- Warm-resets Tor on a dead-circuit self-heal instead of wiping all state.
- Fixes a Tor bug by seeding `hasEverBootstrapped` from the on-disk guard sample.
## DM Loading Improvements
- Tracks chatroom senders so DMs from followed contacts land in Known.
## Signer Fixes
- Stops splitting emoji surrogate pairs when truncating alt/summary tags.
## Desktop
- Wires macOS Developer ID signing and notarization.
- Adds an in-process relay seam, a launch benchmark, and a Compose UI test pyramid.
- Collapses icon decoding to a single memoized lazy for faster launch.
## Cli
- Codesigns and notarizes the macOS `amy` tarball.
- Publishes a no-JRE jar bundle and a Homebrew-core formula for `amy`.
- Drops the Compose UI render stack from the `amy` runtime image.
## Build & Documentation
- Bumps stable dependency versions.
- Adds icon, supported NIPs, and publishing-relay documentation to Zapstore config
- Adds a desktop release guard that fails the build if `osxkeychain.so` is stripped.
## Contributors
- @npub1gcxzte5zlkncx26j68ez60fzkvtkm9e0vrwdcvsjakxf9mu9qewqlfnj5z
- @npub1e2yuky03caw4ke3zy68lg0fz3r4gkt94hx4fjmlelacyljgyk79svn3eef
- @npub12cfje6nl2nuxplcqfvhg7ljt89fmpj0n0fd24zxsukja5qm9wmtqd7y76c
- @npub1w4uswmv6lu9yel005l3qgheysmr7tk9uvwluddznju3nuxalevvs2d0jr5
- @npub1a3tx8wcrt789skl6gg7rqwj4wey0j53eesr4z6asd4h4jwrd62jq0wkq4k
- @npub1dn0tej4a5806qk9ts56j572sndvjk27l5qmsxf0z3mquknccve7s4k8tfp
## Translations
- Czech, German, Swedish, and Portuguese by @npub1e2yuky03caw4ke3zy68lg0fz3r4gkt94hx4fjmlelacyljgyk79svn3eef
- Hungarian by @npub1dnvslq0vvrs8d603suykc4harv94yglcxwna9sl2xu8grt2afm3qgfh0tp
- Dutch by @npub1w4la29u3zv09r6crx5u8yxax0ffxgekzdm2egzjkjckef7xc83fs0ftxcd
- Polish by @npub16gjyljum0ksrrm28zzvejydgxwfm7xse98zwc4hlgq8epxeuggushqwyrm
- Hindi by @npub1ww6huwu3xye6r05n3qkjeq62wds5pq0jswhl7uc59lchc0n0ns4sdtw5e6
- Slovenian by @npub1qqqqqqz7nhdqz3uuwmzlflxt46lyu7zkuqhcapddhgz66c4ddynswreecw
- Spanish by @npub1luhyzgce7qtcs6r6v00ryjxza8av8u4dzh3avg0zks38tjktnmxspxq903
- Chinese by hypnotichemionus4 and @npub1gd8e0xfkylc7v8c5a6hkpj4gelwwcy99jt90lqjseqjj2t253s2s6ch58h
+2 -2
View File
@@ -2,8 +2,8 @@
# Amethyst app version — single source of truth consumed by both Android (amethyst/)
# and Desktop (desktopApp/). `appCode` is the Android versionCode: a monotonic
# integer that must increment on every release, even when `app` is unchanged.
app = "1.12.1"
appCode = "449"
app = "1.12.2"
appCode = "450"
accompanistAdaptive = "0.37.3"
cachemapVersion = "0.2.4"
composeMultiplatform = "1.11.1"