diff --git a/.claude/skills/quartz-integration/SKILL.md b/.claude/skills/quartz-integration/SKILL.md index 3747860330..b81b04eab1 100644 --- a/.claude/skills/quartz-integration/SKILL.md +++ b/.claude/skills/quartz-integration/SKILL.md @@ -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") } ``` diff --git a/.claude/skills/quartz-integration/references/gradle-setup.md b/.claude/skills/quartz-integration/references/gradle-setup.md index 5283a730f3..176a5a788b 100644 --- a/.claude/skills/quartz-integration/references/gradle-setup.md +++ b/.claude/skills/quartz-integration/references/gradle-setup.md @@ -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") } diff --git a/README.md b/README.md index 3407892f4b..f4ef3e3844 100644 --- a/README.md +++ b/README.md @@ -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) diff --git a/docs/changelog/README.md b/docs/changelog/README.md index 9a03e5721d..4ec2262476 100644 --- a/docs/changelog/README.md +++ b/docs/changelog/README.md @@ -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) diff --git a/docs/changelog/v1.12.02.md b/docs/changelog/v1.12.02.md new file mode 100644 index 0000000000..3a8cb91df0 --- /dev/null +++ b/docs/changelog/v1.12.02.md @@ -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 diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 60600193f5..7987e9005e 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -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"