Amethyst

Amethyst

Nostr Client for Android

npub

npub142gywvjkq0dv6nupggyn2euhx4nduwc7yz5f24ah9rpmunr2s39se3xrj0

pubkey (hex)

aa9047325603dacd4f8142093567973566de3b1e20a89557b728c3be4c6a844b

nprofile

nprofile1qqs24yz8xftq8kkdf7q5yzf4v7tn2ek78v0zp2y427mj3sa7f34ggjcprf58garswvaz7tmjv4kxz7fwva6kcat8w4k82tnddajshdj5c3

动态 (28)

↳ 回复 Terry Yiu (npub1yaul8k059377u9lsu67de7y637w4jtgeuwcmh5n7788l6xnlnrgs3tvjmf)

Are you planning on having Amethyst support iOS?

Not without your help. :)

Kind-1 (TextNote)

2026-06-17T16:50:37Z

#Amethyst v1.12.1: Health Connect, Samsung/Google Watch Workouts, Share as Image Highlights: - Adds Health Connect: detect recorded workouts and sug...

#Amethyst v1.12.1: Health Connect, Samsung/Google Watch Workouts, Share as Image Highlights: - Adds Health Connect: detect recorded workouts and suggest a NIP-101e post. - Adds Share as Image: turn any note into an uploaded image and share it. - Adds Immersive scrolling: hide the OS system bars while reading and in full-screen media. - Fixes Desktop deployment ## New Features ### Workouts - Detects workouts from Health Connect and suggests a kind 1301 post. - Re-scans Health Connect when the app resumes. - Adds a recent-workouts carousel to the New Workout composer. - Moves Health Connect entirely into the New Workout composer. - Defaults the workout distance unit to the phone's measurement system. - Renders workout notes through the kind-1 text pipeline. - Shows workout metrics in the viewer's own units. - Records the source app or device name from Health Connect. - Aligns Health Connect import with RUNSTR (active calories and title). - Adds a Compose setting to disable workout suggestions. - Limits the feed workout banner to today's workouts. ### Sharing - Shares any note as an uploaded image. - Adds a share-as-image screen with an image preview. ### Reading - Hides the OS status bar during scroll immersive mode. - Hides the OS system bars during full-screen media. ## Improvements and Bug fixes - Modernizes the New Workout composer. - Tightens the New Workout composer vertical spacing. - Centers the activity type chips in the New Workout composer. - Uses the Add icon on the New Workout FAB for consistency. - Stops the connect card from flashing on every screen open. - Keeps Health Connect prefs off the main thread (StrictMode). - Adds the Android 14+ Health Connect permission rationale activity-alias. - Polishes the share-as-image screen. - Fixes a Tor race: sets Active deterministically so the bootstrap callback can't race it. ## Desktop - Ships a consistent macOS .icns and multi-size Windows .ico. - Excludes leaked kotlinx-coroutines-test from the release dmg. ## Translations - Promotes Kenyan Swahili to the base resource qualifier. ## Contributors - nostr:nprofile1qqsyvrp9u6p0mfur9dfdru3d853tx9mdjuhkphxuxgfwmryja7zsvhqpzamhxue69uhhv6t5daezumn0wd68yvfwvdhk6tcpzpmhxue69uhkummnw3ezumt0d5hszythwden5te0dehhxarj9emkjmn99uwfvhl6 - nostr:nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx - nostr:nprofile1qqs9vyevafl4f7rqluqykt500e9nj5ase8eh5k423rgwtfw6qdjhd4spz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsz9mhwden5te0wfjkccte9ehx7um5wghxyctwvshszrnhwden5te0dehhxtnvdakz7axwpzp - nostr:nprofile1qqs827g8dkd07zjvlhh60csytujgd3l9mz7x807xk3fewge7rwlukxgppemhxue69uhkummn9ekx7mp0qydhwumn8ghj7argv4nx7un9wd6zumn0wd68yvfwvdhk6tcpz9mhxue69uhkummnw3ezumrpdejz7d9xcpk - nostr:nprofile1qqswc4nrhvp4lrjct0ayy0ps8f2hvj8e2guucp63dwcx6m6e8pka9fqpr4mhxue69uhkummnw3ezucnfw33k76twv4ezuum0vd5kzmp0qy08wumn8ghj7un9d3shjtnwdaehgu3wwa5hyetydejhgtn2wqhsz9nhwden5te0v4jx2m3wdehhxarj9ekxzmny9ue5n65v - nostr:nprofile1qqsxeh4ue276rhaqtz4c2df209gfkkft9006qdcryh3gaswtfuvxvlgpzamhxue69uhhyetvv9ujuurjd9kkzmpwdejhgtcpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsz9mhwden5te0wfjkccte9en82mnywd68ytndv5hsc2mjk6 ## Translations - Czech, German, Swedish, and Portuguese by nostr:nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx - Hungarian by nostr:nprofile1qqsxekg0s8kxpcrka8ccwztv2m73kz6jy0ur8f7jc04rwr5p44w5acspzamhxue69uhhyetvv9ujumn0wd68ytnzv9hxgtcppemhxue69uhkummn9ekx7mp0qyg8wumn8ghj7mn0wd68ytnddakj7c0ns2l - Dutch by nostr:nprofile1qqs82l74z7g3x8j3avpn2wrjrwn855nyvmpxa4v5pftfvtv5lrvrc5cppemhxue69uhkummn9ekx7mp074ge6h - Polish by nostr:nprofile1qqsdyfz0ewdhmgp3a4r3pxvezx5r8yalrgvjn38v2ml5qrusnv7yywgpzemhxue69uhkummnw3ezucm6v9ejuurvw4ej7qg0waehxw309a3h5ctn9e6x7up0qyg8wumn8ghj7cm6v9ejuurvw4ej79s8c53 - Hindi by nostr:nprofile1qqs88dt78wgnzvaph6fcstfvsd98xc2qs8eg8tllwv2zlutu8ehec2cpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhszrnhwden5te0dehhxtnvdakz7qghwaehxw309aex2mrp0yh8qunfd4skctnwv46z7x03hlx - Slovenian by nostr:nprofile1qqsqqqqqqp0fmkspg7w8d305ln96a0jw0ptwqtuwskkm5pddv2kkjfcppemhxue69uhkummn9ekx7mp0qy2hwumn8ghj7un9d3shjtnyv9kh2uewd9hj7qgkwaehxw309aex2mrp0yhxg6t5w3hjuur4vghsdu406e - Spanish by nostr:nprofile1qqs07tjpyvvlq9ugdpax8h3jfrpwn7kr72k3tc7ky83tggn4et9eangpg3mhxw309ajxyartwdukjery09cxwctsd3ek6cnjdfnxs6t00pnhq7ttdvmkw7nsd3shxdrr0gery6nyva3h2ct0096kyerjw9jzummwd9hkutcprpmhxue69uhkv6tvw3jhytnwdaehgu3wwa5kuef0qyghwumn8ghj7mn0wd68ytnhd9hx2tcxdyhdq - Chinese by hypnotichemionus4 and nostr:nprofile1qqsyxnuhnymz0u0xru2watmqe25vlh8vzzje9jhlsfgvsff9942gc9gprfmhxue69uhhq7tjv9kkjepwve5kzar2v9nzucm0d5hsz9mhwden5te0wfjkccte9e3hsurvv9ujummjvuhsz9nhwden5te0wfjkccte9ehx7um5wghx6mm99urkr68m

Kind-1 (TextNote)

2026-06-17T16:49:57Z

#Amethyst v1.12.0: Cashu, CLINK, Private Posts, Music, Podcasts, Apps & Workouts Highlights: - Adds Cashu wallet: in-app NIP-60 wallet. - Adds CLINK...

#Amethyst v1.12.0: Cashu, CLINK, Private Posts, Music, Podcasts, Apps & Workouts Highlights: - Adds Cashu wallet: in-app NIP-60 wallet. - Adds CLINK payments: a new Lightning rail - Adds App Store Feed form ZapStore - Adds Private posts: post, reply, react, and zap privately via NIP-59. - Adds Workout Feed: record and browse NIP-101e workouts in a dedicated feed. - Adds Reaction cards: likes, zaps, and nutzaps render as rich gradient cards. - Adds Music Feed: publish and browse music tracks and playlists. - Adds Podcasts Feed: a new NIP-F4 podcast feed with favorites and an inline player. - Adds support for hashtag labels to posts after they're published. - Adds AppFunctions to allow Gemini to call Amethyst locally. ## New Features ### Payments - Adds unified zap popup for lightning, CLINK, on-chain, and Cashu in one place - Quick 3-state toggle to quickly pick the source of your zap - Defaults to options that both receiver and sender can use - The payment rails now appear live as they resolve. - Adds full Cashu support (NIP-60/61) - A full in-app ecash wallet, beyond the previous redeem-only support. - Create and add a Cashu wallet, with its own screen and settings. - Browse and pick mints from a mint directory. - Mint ecash from Lightning and melt it back to Lightning. - Send and receive ecash tokens. - Top up a mint from a standalone screen. - See per-mint balances on the wallet. - Send NIP-61 nutzaps from the wallet, with a Lightning-style send progress bar. - Cashu top-up is crash-safe on retry. - Funds are checkpointed the instant they leave the wallet. - Adds full CLINK support - Pay and get paid through CLINK Offers and Debits. - Render all schemas inside of Notes - Profiles can show a tappable CLINK Offer chip. - Set one-time or recurring limits. - Resolve a person's payment offer by NIP-05. - A debit connection pulls funds only up to the cap you set. - Adds Unified Send Payment screen. - Long-press any chip in the Profile or this screen to copy that destination. - Use Lightning, CLINK, on-chain Bitcoin, and Cashu/nutzaps from one place. - A "Pay from" selector chooses which wallet the money leaves. - Pay Bitcoin payment targets from the in-app on-chain wallet. ### Posting & Privacy - Adds private posts and private replies - Create and view private posts, replies, and reactions. - Customize who the receivers are for posts and replies. - Adds support for Private reactions to all feeds - React and un-react privately automatically. - Safeguards prevent private content from leaking publicly. - Enhances support for Private zaps - Zaps on private notes are forced private. - Replies to a private zap route into the sender's DM room. - Adds support for NIP-32 hashtag labels. - Add first-class hashtag labels to posts. - Follow-hashtag labels publish through your outbox relays. - They surface in the hashtag feed. - Enhances post's compose screen - Richer notify chips in the new-post screen. - Modernized inline payment cards that show their descriptions. - Enhances hidden words screen - A per-row unblock button on the Hidden Words screen. - Remove a single muted word without clearing the whole list. ### Chat & DMs - Re-engineers DM bootstrapping with dynamic loading - Only loads the last 7 days worth of DMs. - Per-relay download windows realign when DMs are pruned. - A slow Tor connect is no longer mislabeled as "stalled". - The paused-history card shows parked relays. - The sync marker is now tappable. - Adds support for pinning DM conversations - Pins sync across devices via a NIP-78 app-data event. - Adds support for @-mention search in Marmot (MLS) group chats - Search and tag users in the group composer. - Conversation participants rank first. - They are marked with an "In this chat" chip. - Fixes quoted chat messages being rendered as posts - Quotes render inside chat bubbles with the proper chat-reply design. - The redundant reply row is skipped when the quote is already inline. - Fixes MLS reliability - Unread state now persists across app restarts. - The kind:445 backlog is no longer refetched on every launch. - Adds Share to DM ("Send as DM") flow - A new Android share-sheet target, alongside "New Post". - Share text, an image, or a video from another app into a DM. - Pick a recent conversation; the chat composer opens pre-filled and editable. ### Reading & Feeds - Enhances Tor reliability and connection speed - Connects faster by reusing the network directory between launches (about 3× quicker on warm starts). - Watchtower rebuilds Tor automatically when it looks connected but no relay traffic is flowing. - Recovers from stuck entry guards that could leave Tor unable to connect across app restarts. - No longer hangs on a hostile network — bootstrap gives up after 60s and retries instead of wedging. - Holds Tor-routed relays until the proxy is ready, cutting wasted battery and network on launch and Wi-Fi/cellular switches. - Stays stable through self-heal resets and network changes. - Adds new Notifications top nav filter - The old "Global" tab is split into "Curated" and a raw "Global". - Curated is the current system that requires your involvement on a thread to notify you. - Global shows everything, including all hell threads. - Replies to likes/zaps now reach the notifications feed. - Adds Reply to zaps and reactions from the notification screen - Pre-loads reply threads from the feed so opening a thread is faster. - Adds support for LaTeX math in notes. - Use `$...$` for inline equations. - Use `$$...$$` for block equations. - Adds support for first-class reaction rendering - Reactions and zaps anchor their own thread view. - Reactions, zaps, likes, and nutzaps render as gradient cards. - Each card embeds the post it's about. - A single tap on a like/zap chip opens that event's thread. - Adds support for Workouts (new, NIP-101e) - Create and publish workout records (kind 1301), interoperable with the RUNSTR dialect. - Browse a dedicated Workouts feed. - Filter by exercise type, author, community, or hashtag. - Richer workout cards: a hero metric, a fixed stats grid, splits-style breakdowns, and the source app. - Adds support for Music (new) - First-class support for tracks (kind 36787) and playlists. - Browse Music Tracks and Music Playlists feeds. - Publish a new track and create playlists. - Add a track to a playlist from a bottom sheet. - Adds support for Software Apps directory (new, NIP-82). - Browse software applications (kind 32267). - Filter by follows, author, hashtag, or global. - An app detail screen shows screenshots and the author. - Tap a screenshot to open it fullscreen. - Enhances support for App recommendations (NIP-89). - Editable recommendations on your profile. - Tiered ordering in the recommendations editor. - Richer app cards with author attribution. - Adds support for Birdex species collections (kind 12473). - Adds support for Agora fundraiser campaigns (kind 33863). - Adds Audio visualizer picker - A live visualizer for audio-only notes. - Real-time FFT spectrum from the track's decoded audio (no mic, no new permission). - Styles: Classic (default), Spectrum Bars, Color Waves, Radial Ring, Aurora Glow, Static, and Off. - Each style has a live preview in the settings picker. - Your choice syncs across devices via NIP-78. - Fills the art area in fullscreen and shows a fixed strip in the feed. - Adds support for Podcasts (new, NIP-F4) - Dedicated podcast and episode feeds, filterable by follows, authors, communities, or hashtags. - Mark podcasts as favorites. - Tap a podcast to open a show screen with all its episodes and an inline player. - Translatable show and episode descriptions on the feed cards. - The episode audio player is squared so the controls get room. ## Improvements and Bug fixes - Adds Searchable settings. - A search box filters rows by title and curated keywords. - Supports prefix matching and an empty-state. - Adds Swipe for brightness and volume in fullscreen video. - Fixes Quote-reposts (NIP-18) not counting in the repost counter. - Hides reposts of unsupported kinds instead of showing blank cards. - Fixes URLs glued to other words: the "fix missing spaces" pass now indexes URLs by their first character. - Search no longer matches text in `p`, `e`, `a`, `alt`, or `client` tags. - Media uploads in anonymous posts use the ephemeral signer. - Fixes anonymous profile zaps being encrypted as private zaps. - The Cashu wallet row shows the Cashu logo instead of a generic icon. - On-chain zaps highlight the bolt and show as pending in the counter. - Removed the wallet options reordering drag-and-drop UI. - De-duplicates preset amounts in Zap Settings - Fixes the chip-drag interaction in Zap Settings. - Fixes the live-stream chat relay fallback - Zap and non-zap polls now share the same option text when composing a post - Fixes Legacy NIP-71 videos to resolve their address from the real `d` tag. - Fixes the default media server resetting on every launch. - Fixes account cache: Deleting an account now clears its cached entry. - Adds support for birthdays on profile - Fixes cache child back-references when deleting notes - Detaches on-chain-zap, nutzap, and channel sources on cache deletion - Honors relay connection backoff during Tor bootstrap. - Heals sockets opened on the wrong transport by rebuilding them. - Recovers relay connections after the device wakes from sleep. - Keeps a relay's reconnect backoff from resetting on a momentary connection. - Honors the "Money operations via Tor" setting for payments and wallet relay connections - Reduces runtime log noise. - Fixes several edge-case crashes. - Fixes IPv6-literal URLs in posts - Reorganizes changelog into versioned files - Audit fixes across the private-posts, CLINK, and MLS paths. - Adds off-main-thread crypto and leak prevention. - Hides share/bookmark on private notes. ## Desktop - Adds image compression on upload: - An Image Compression settings panel. - Per-post quality presets. - Batch progress in the composer. - A preview-then-publish gate. - A fail-loud dialog if compression fails. - Adds new media player. - Replaced vlcj with kdroidFilter's ComposeMediaPlayer. - Uses a JCodec/FFmpeg backend. - Adds Group DM parity with Android. - Set and update a group name (subject) on encrypted group chats. - Create a group by selecting multiple recipients in the New DM dialog. - Rooms are marked read when opened. - Messages from muted authors no longer mark a room unread. - Desktop now handles group direct messages the same way. - Adds Replies tab on the user profile. - Feeds also show reply context (parent embed plus label) inline. - Adds Feed refresh. - Inline card expansion. - A "New posts" chip that slides in from the top. - Stick-to-top on prepend. - Wired-up like/zap/comment actions. - Smaller fixes. - Copy a Blossom image URL on click, with a hover tooltip and snackbar. - Collapsed-sidebar polish: tighter ripple and hover tooltips. - Amethyst logo on the Tor and account-loading splashes. - Restored inter-word spacing in rich text with mentions/hashtags. - Fixed parent-author metadata loading. - Adds Unhealthy-relay review. - A banner and popup that flag relays behaving poorly. - Adds Namecoin diagnostics. - The diagnostics card was ported from the Android settings. ## Cli - Adds `amy offer` — CLINK offer info and request, including `--payer-data`. - Adds `amy debit` — CLINK debit info, pay, and budget. - Adds `amy zap --with <ndebit>` — settle a zap invoice via a CLINK debit. - Adds `amy offer discover <nip05>` — resolve a profile's offer through NIP-05. - Closed CLINK parity gaps (profile offer, follow, offer pay, GFY detail). - Adds a clink-headless interop harness. ## Quartz - Adds Relay-server toolkit. - Added a `Flow<Event>` REQ-responder SPI with a storage-free dispatch engine. - Added NIP-50 search parsing. - Added suspendable auth hooks. - Split engine/backend/policy packages. - Adds NIP-45 approximate COUNT - Added HyperLogLog with wire support. - Enhances NIP-11 documents. - Added the missing `banner` field. - Relay limits are now a single source of truth served over NIP-11. - Adds Relay Connection observability. - Stable per-connection ids. - A per-connection `RequestContext` threaded into the event source. - Auth identity moved from policy into connection scope. - Fixes NIP-46 double-resume and retry id-reuse race - Fixes NIP-46 error serialization issues - Fixes `q` (quote) tags being dropped by an inverted guard. - Fixes `CommunityRulesEvent` and CLINK DTO serializers - Improves Relay failure logs - Fixes disk cache to recreate cache dir if cleared at runtime ## Build & Documentation - **Dependency updates.** - Bumped Kotlin, Compose Multiplatform 1.11.1, Coil 5, OkHttp 5, Jackson, AndroidX, Firebase, and more. - Adapted the Blossom interceptor test to OkHttp 5's `Interceptor.Chain`. - **iOS CI.** - `commons` `commonTest` now compiles and runs on iOS targets. - CI runs the shared `commonTest` on iOS for `:commons`. - **Amethyst → commons migration (KMP/iOS).** - Moves shared, CLI-safe code out of the Android app into `commons`. - Decryption caches (Mute/People/Community, Hashtag, Favorite-algo, Trust-provider). - Models: InterestSet, LabeledBookmarkList, NwcWalletEntry, CashuToken, OwnedEmojiPack. - The link-preview fetcher, relay broadcast tracker, and CLI-safe util extensions. - `HtmlParser` made KMP (dropped its Java `Charset` dependency). - A consolidated package taxonomy with a new architecture doc. - **Licensing.** - Replaced the GPLv3 `TarsosDSP` dependency with an in-house pitch shifter for the voice anonymizer. - Keeps the project MIT-clean. - **Misc.** - Added a monochrome outline Cashu icon to the Material Symbols set. - Renamed `ReplaceableVideoEvent` to `AddressableVideoEvent` for spec accuracy. - Split the monolithic CHANGELOG into per-version files under `docs/changelog/`. - `versionName` branch detection sets the git cwd, so it works inside git worktrees. - **SonarQube cleanup (S1871).** - Merged duplicate `when`/`if` arms across the codebase. - Migrated `Log` calls to the lambda overload. - **Documentation.** - Updated Privacy Policy to the new requirements from the PlayStore - Documented an Amethyst→commons migration plan and target package hierarchy. - Refreshed several Claude skills, documentation and the Namecoin design doc. - Added a rule requiring a license check when adding any new dependency. ## Contributors - nostr:nprofile1qqsyvrp9u6p0mfur9dfdru3d853tx9mdjuhkphxuxgfwmryja7zsvhqpzamhxue69uhhv6t5daezumn0wd68yvfwvdhk6tcpzpmhxue69uhkummnw3ezumt0d5hszythwden5te0dehhxarj9emkjmn99uwfvhl6 - nostr:nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx - nostr:nprofile1qqs9vyevafl4f7rqluqykt500e9nj5ase8eh5k423rgwtfw6qdjhd4spz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsz9mhwden5te0wfjkccte9ehx7um5wghxyctwvshszrnhwden5te0dehhxtnvdakz7axwpzp - nostr:nprofile1qqs827g8dkd07zjvlhh60csytujgd3l9mz7x807xk3fewge7rwlukxgppemhxue69uhkummn9ekx7mp0qydhwumn8ghj7argv4nx7un9wd6zumn0wd68yvfwvdhk6tcpz9mhxue69uhkummnw3ezumrpdejz7d9xcpk - nostr:nprofile1qqswc4nrhvp4lrjct0ayy0ps8f2hvj8e2guucp63dwcx6m6e8pka9fqpr4mhxue69uhkummnw3ezucnfw33k76twv4ezuum0vd5kzmp0qy08wumn8ghj7un9d3shjtnwdaehgu3wwa5hyetydejhgtn2wqhsz9nhwden5te0v4jx2m3wdehhxarj9ekxzmny9ue5n65v - nostr:nprofile1qqsxeh4ue276rhaqtz4c2df209gfkkft9006qdcryh3gaswtfuvxvlgpzamhxue69uhhyetvv9ujuurjd9kkzmpwdejhgtcpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsz9mhwden5te0wfjkccte9en82mnywd68ytndv5hsc2mjk6 ## Translations - Czech, German, Swedish, and Portuguese by nostr:nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx - Hungarian by nostr:nprofile1qqsxekg0s8kxpcrka8ccwztv2m73kz6jy0ur8f7jc04rwr5p44w5acspzamhxue69uhhyetvv9ujumn0wd68ytnzv9hxgtcppemhxue69uhkummn9ekx7mp0qyg8wumn8ghj7mn0wd68ytnddakj7c0ns2l - Dutch by nostr:nprofile1qqs82l74z7g3x8j3avpn2wrjrwn855nyvmpxa4v5pftfvtv5lrvrc5cppemhxue69uhkummn9ekx7mp074ge6h - Polish by nostr:nprofile1qqsdyfz0ewdhmgp3a4r3pxvezx5r8yalrgvjn38v2ml5qrusnv7yywgpzemhxue69uhkummnw3ezucm6v9ejuurvw4ej7qg0waehxw309a3h5ctn9e6x7up0kvajyt - Hindi by nostr:nprofile1qqs88dt78wgnzvaph6fcstfvsd98xc2qs8eg8tllwv2zlutu8ehec2cpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhszrnhwden5te0dehhxtnvdakz7qghwaehxw309aex2mrp0yh8qunfd4skctnwv46z7x03hlx - Slovenian by nostr:nprofile1qqsqqqqqqp0fmkspg7w8d305ln96a0jw0ptwqtuwskkm5pddv2kkjfcppemhxue69uhkummn9ekx7mp0qy2hwumn8ghj7un9d3shjtnyv9kh2uewd9hj7qgkwaehxw309aex2mrp0yhxg6t5w3hjuur4vghsdu406e - Spanish by nostr:nprofile1qqs07tjpyvvlq9ugdpax8h3jfrpwn7kr72k3tc7ky83tggn4et9eangpg3mhxw309ajxyartwdukjery09cxwctsd3ek6cnjdfnxs6t00pnhq7ttdvmkw7nsd3shxdrr0gery6nyva3h2ct0096kyerjw9jzummwd9hkutcprpmhxue69uhkv6tvw3jhytnwdaehgu3wwa5kuef0qyghwumn8ghj7mn0wd68ytnhd9hx2tcxdyhdq - Chinese by hypnotichemionus4 and nostr:nprofile1qqsyxnuhnymz0u0xru2watmqe25vlh8vzzje9jhlsfgvsff9942gc9gprfmhxue69uhhq7tjv9kkjepwve5kzar2v9nzucm0d5hsz9mhwden5te0wfjkccte9e3hsurvv9ujummjvuhsz9nhwden5te0wfjkccte9ehx7um5wghx6mm99urkr68m

Kind-1 (TextNote)

2026-06-16T18:35:49Z

↳ 回复 事件不存在

1ba04e1ed68d217baa5cc228150b22055741c1f96c49a940b9661d1ce3a66ccd

Lots to improve yet. Let me know if you want anything better.

Kind-1 (TextNote)

2026-05-21T00:30:11Z

#Amethyst v1.11.0: Calendars Highlights: 1. NIP-52 Calendars — feed, day/week/month views, event/collection editors, RSVP, ICS export, "starting soo...

#Amethyst v1.11.0: Calendars Highlights: 1. NIP-52 Calendars — feed, day/week/month views, event/collection editors, RSVP, ICS export, "starting soon" notifications, share-as-nostr-link, gallery picker. 2. On-Chain zaps — splits with dust gating, shows in the reaction gallery, display transaction history, privacy guidance 3. Payment-targets redesign (QR + copy + pay), public-address chip + confirmation 4. Inline nowhere-link cards in rich text. PRs: - Restore Lightning Address + LNURL fields in Edit Profile - Raise the default maximum hashtag limit from 5 to 8 - Include on-chain zaps in notification summary stats - Add electrum.nmc.ethicnology.com to default ElectrumX server set - Translate call-permission and git-repo strings (cs, pt-BR, sv, de) + New Crowdin translations - Subscribe and observe PaymentTargetsEvent for other users - Only bridge to local cache when URL is BUD-01 layout; dedupe public-channel rows; normalize video/x-m4v to video/mp4 - Enable Send when typed name resolves via NIP-05; on-chain Bit recipient - Inline Namecoin resolution indicator + result row on on-chain zaps - Inline Namecoin resolution indicator in global search bar - Long-press to copy Nostr Address, Website, LN Address, identities, payment targets - macOS VLC bundled discovery and video rendering - Make RelayAuthenticator authStatus thread-safe - Pad GitRepositoryOverview content to clear top/bottom bars - Use LargeCache for RelayAuthenticator authStatus - MIME-type normalization for MediaStore - Split delivery vs display, add Categories section in notifications - Accept floating-point dimensions in imeta so image space is reserved pre-load - Explain hashtag-limit hide reason in HiddenNote - Route media-upload signing through launchSigner - Render nowhere links inline as branded cards - Release MediaController after 30s in background; skip timer for PiP - Clickable on-chain card opens transaction history; tappable on-chain rows + txid index in LocalCache - Disable ProGuard optimization entirely on desktop (fixes kmp-tor crash); .deb launch CI smoke test - Show on-chain zappers in expanded reactions gallery - Convert hashtag-limit message to <plurals> and add cs/pt-BR/sv/de translations - Restore long-press on root note + anchor popup to the card - Keep filter chips visible on empty on-chain transactions list - Make playback notification tap open the note on warm-pool resume - Validate zap receipts against LNURL provider's nostrPubkey (NIP-57 Appendix F) - Stable sort in ShortsFeedFilter to avoid TimSort contract crash - Align push notifications with Notifications feed filter; resolve addressable events to their replaceable note; WakeUp bypass + lookup hoist - Update on-chain-zap + headers-explorer plans for NIP-BC inline SPV tags - Start zoomable dialog close animation from zoomed bounds - Scaffold I2P as a parallel privacy transport to Tor; route-aware HTTP stack; BlockedRouteException - Reorder feed filter popup sections (DVMs before Communities, interest sets next to hashtags) - Stop spinning Around Me when Geocoder is unavailable - NIP-52 calendars — feed, day/week/month views, RSVP, ICS export, reminders, edit, share-as-nostr-link, participant picker, multi-day bars - Audit follow-ups on MLS reply paths; route reply button on MLS messages to the encrypted group - Use LaunchedEffect instead of remember for VM reset - Switch to Dispatchers.IO around the whole executeAsync call in relay-info - Drop crossfade around the card feed in notifications - Observe locale in CalendarDateTimePickerButton - Modernize zap amount choice popup to match reactions popup style - Catch ForegroundServiceStartNotAllowedException in PlaybackService - Include crashing thread name in crash report - Convert remaining .gradle files to Kotlin DSL - Redesign payment targets modal with QR, copy and pay buttons - Add Public chip to on-chain wallet card; clarify privacy guidance on on-chain wallet popup - Require running material-symbols-subset.sh when adding new icons; add new information icon - Re-add Nostrcheck.me Blossom server to defaults - Surface on-chain zaps from the reactions zap button - On-chain zap splits — drop sender from splits, merge duplicates, gate Send on dust - On-chain option on the Zap the Devs button - On-chain handoff from the custom-zap dialog - Keep listening on default index+search relays for users with no kind 10002 - Skip offline relays when fetching user metadata - Include indexer and proxy relays in the trusted relay list to avoid Tor - Confirm on-chain copy with public-address warning - Swallow LegacyCursorAnchorInfo IllegalArgumentException - Render ContactListEvent in NoteCompose with tap-through user list; add preview for DisplayContactList ## Contributors - nostr:nprofile1qqsyvrp9u6p0mfur9dfdru3d853tx9mdjuhkphxuxgfwmryja7zsvhqpzamhxue69uhhv6t5daezumn0wd68yvfwvdhk6tcpzpmhxue69uhkummnw3ezumt0d5hszythwden5te0dehhxarj9emkjmn99uwfvhl6 - nostr:nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx - nostr:nprofile1qqs9vyevafl4f7rqluqykt500e9nj5ase8eh5k423rgwtfw6qdjhd4spz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsz9mhwden5te0wfjkccte9ehx7um5wghxyctwvshszrnhwden5te0dehhxtnvdakz7axwpzp - nostr:nprofile1qqs827g8dkd07zjvlhh60csytujgd3l9mz7x807xk3fewge7rwlukxgppemhxue69uhkummn9ekx7mp0qydhwumn8ghj7argv4nx7un9wd6zumn0wd68yvfwvdhk6tcpz9mhxue69uhkummnw3ezumrpdejz7d9xcpk - nostr:nprofile1qqswc4nrhvp4lrjct0ayy0ps8f2hvj8e2guucp63dwcx6m6e8pka9fqpr4mhxue69uhkummnw3ezucnfw33k76twv4ezuum0vd5kzmp0qy08wumn8ghj7un9d3shjtnwdaehgu3wwa5hyetydejhgtn2wqhsz9nhwden5te0v4jx2m3wdehhxarj9ekxzmny9ue5n65v - nostr:nprofile1qqsxeh4ue276rhaqtz4c2df209gfkkft9006qdcryh3gaswtfuvxvlgpzamhxue69uhhyetvv9ujuurjd9kkzmpwdejhgtcpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsz9mhwden5te0wfjkccte9en82mnywd68ytndv5hsc2mjk6 ## Translations - Czech, German, Swedish, and Portuguese by nostr:nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx - Hungarian by nostr:nprofile1qqsxekg0s8kxpcrka8ccwztv2m73kz6jy0ur8f7jc04rwr5p44w5acspzamhxue69uhhyetvv9ujumn0wd68ytnzv9hxgtcppemhxue69uhkummn9ekx7mp0qyg8wumn8ghj7mn0wd68ytnddakj7c0ns2l - French by nostr:nprofile1qqs8av5uzf4nv2q80chrmp3mj9a9dd6zjw4fmz56hsn2gzar72rxhtcppemhxue69uhkummn9ekx7mp0qyg8wumn8ghj7mn0wd68ytnddakj7qgawaehxw309ahx7um5wghxy6t5vdhkjmn9wgh8xmmrd9skctcuvd26f - Dutch by nostr:nprofile1qqs82l74z7g3x8j3avpn2wrjrwn855nyvmpxa4v5pftfvtv5lrvrc5cppemhxue69uhkummn9ekx7mp074ge6h - Polish by nostr:nprofile1qqsdyfz0ewdhmgp3a4r3pxvezx5r8yalrgvjn38v2ml5qrusnv7yywgpzemhxue69uhkummnw3ezucm6v9ejuurvw4ej7qg0waehxw309a3h5ctn9e6x7up0kvajyt - Hindi by nostr:nprofile1qqs88dt78wgnzvaph6fcstfvsd98xc2qs8eg8tllwv2zlutu8ehec2cpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhszrnhwden5te0dehhxtnvdakz7qghwaehxw309aex2mrp0yh8qunfd4skctnwv46z7x03hlx - Slovenian by nostr:nprofile1qqsqqqqqqp0fmkspg7w8d305ln96a0jw0ptwqtuwskkm5pddv2kkjfcppemhxue69uhkummn9ekx7mp0qy2hwumn8ghj7un9d3shjtnyv9kh2uewd9hj7qgkwaehxw309aex2mrp0yhxg6t5w3hjuur4vghsdu406e - Bengali by nostr:nprofile1qqsgs9hgjw87vz36jf2r83m5zree2q87zvs8s7kty9jljdz7wprytyspremhxue69uhkummnw3ezu6m0de5kueedv3jkwunpv9nzumnv9uq3kamnwvaz7tm5d4cz6un9d3shjtnrv4ekxtn5wfskgef0qy28wumn8ghj7mn0wd68yt3k8quzummjvuhsg63aw2 - Spanish by nostr:nprofile1qqs07tjpyvvlq9ugdpax8h3jfrpwn7kr72k3tc7ky83tggn4et9eangpg3mhxw309ajxyartwdukjery09cxwctsd3ek6cnjdfnxs6t00pnhq7ttdvmkw7nsd3shxdrr0gery6nyva3h2ct0096kyerjw9jzummwd9hkutcprpmhxue69uhkv6tvw3jhytnwdaehgu3wwa5kuef0qyghwumn8ghj7mn0wd68ytnhd9hx2tcxdyhdq - Chinese by hypnotichemionus4 and nostr:nprofile1qqsyxnuhnymz0u0xru2watmqe25vlh8vzzje9jhlsfgvsff9942gc9gprfmhxue69uhhq7tjv9kkjepwve5kzar2v9nzucm0d5hsz9mhwden5te0wfjkccte9e3hsurvv9ujummjvuhsz9nhwden5te0wfjkccte9ehx7um5wghx6mm99urkr68m - Russian by Anton Zhao

Kind-1 (TextNote)

2026-05-20T22:57:40Z

↳ 回复 Bartus (npub1w4la29u3zv09r6crx5u8yxax0ffxgekzdm2egzjkjckef7xc83fs0ftxcd)

Is my Dutch translation not shipped?

My bad (@npub1gcxzte5zlkncx26j68ez60fzkvtkm9e0vrwdcvsjakxf9mu9qewqlfnj5z) it was shipped.. but I didn't add you to the list :(

Kind-1 (TextNote)

2026-05-20T14:18:43Z

↳ 回复 a39d19ec... (npub15ww3nmpr3tcmzjuv7dsct2fnk9qln98zlaapxgayewm970vg7c0q3wqdm3)

The standard is that only see my replies and notes. Nothing else. First have to visit the profiles...

Can you reset your Index relay list and Search relay list? I wonder if we are not finding the relay setup of those users. Since those lists are privat...

Can you reset your Index relay list and Search relay list? I wonder if we are not finding the relay setup of those users. Since those lists are private to you, I cannot test it here :(

Kind-1 (TextNote)

2026-05-20T14:06:21Z

↳ 回复 事件不存在

b8928123acaae28efd1d99908e53408f5012f9e30866e8e14d7650b7c68f5de8

v1.09.2 fixes this

Kind-1 (TextNote)

2026-05-16T17:01:05Z

↳ 回复 事件不存在

3f0d6fa0b412dcf92d71c1a703b3939fe6262d2e90cf4b279579d204cc1c851a

Hum... Its because the hashtags you added were in uppercase, so the Union Berlin 3x0 Augsburg has 6, 3 in the original spelling with uppercase and 3 i...

Hum... Its because the hashtags you added were in uppercase, so the Union Berlin 3x0 Augsburg has 6, 3 in the original spelling with uppercase and 3 in lowercase as the NIP requires. I will change amethyst to stop considering the original spelling of each hashtag to match in the count

Kind-1 (TextNote)

2026-05-16T15:08:52Z

↳ 回复 6svjszwk (npub1sxgnpqfyd5vjexj4j5tsgfc826ezyz2ywze3w8jchd0rcshw3k6svjszwk)

啧啧啧,那是满奇怪的

Check if it is not the amount of hashtags. The new version has a new filter that removes any post citying 5 or more hashtags. Spammers love putting a...

Check if it is not the amount of hashtags. The new version has a new filter that removes any post citying 5 or more hashtags. Spammers love putting all the irrelevant hashtags in a single post so this filter removes all of them. You can change the filter in Security Filters setting, but many other clients do the same: hide any post that cites more than 5 hashtags.

Kind-1 (TextNote)

2026-05-16T15:06:06Z

↳ 回复 Global Sports Central (npub1qspus6smkn8mcdxg5jflh50s69vdgtwsd5p74gmjpzp2qekn5duqfv5afj)

Not even there, but on #wisp i see them all

Ohhhh It's the number of hashtags. The new Security filter by default removes all posts that have more than 5 hashtags because spammers just spam all ...

Ohhhh It's the number of hashtags. The new Security filter by default removes all posts that have more than 5 hashtags because spammers just spam all hashtags to get attention.

Kind-1 (TextNote)

2026-05-16T15:04:15Z

↳ 回复 事件不存在

354df3227d7035775d1a2c682026a62549c80c976b875afdc60c5bcdbad8f09a

Nice, I was able to replicate... let me see what's off with that post in particular..

Kind-1 (TextNote)

2026-05-16T15:02:33Z

↳ 回复 Global Sports Central (npub1qspus6smkn8mcdxg5jflh50s69vdgtwsd5p74gmjpzp2qekn5duqfv5afj)

Not even there, but on #wisp i see them all

I just logged in with your npub and I can see them just fine. How many relays is it connecting to? I am getting something like 252/1004 relays in your...

I just logged in with your npub and I can see them just fine. How many relays is it connecting to? I am getting something like 252/1004 relays in your account.

Kind-1 (TextNote)

2026-05-16T14:59:12Z

↳ 回复 Global Sports Central (npub1qspus6smkn8mcdxg5jflh50s69vdgtwsd5p74gmjpzp2qekn5duqfv5afj)

I have my 3 relays set and picked, the crazy thing is my published notes I can't see, the scheduled ...

Can you see them in your profile? Or not even there?

Kind-1 (TextNote)

2026-05-16T14:55:56Z

↳ 回复 Global Sports Central (npub1qspus6smkn8mcdxg5jflh50s69vdgtwsd5p74gmjpzp2qekn5duqfv5afj)

.01 ipdate and i still can't see some of my own notes, and i scheduled a post and it showed up on my...

On the relay screen, can you check if you are connected to your Outbox relays correctly? Showing your own notes is quite straight forward, so there mi...

On the relay screen, can you check if you are connected to your Outbox relays correctly? Showing your own notes is quite straight forward, so there might be something wrong with the connectivity to your outbox relays directly. Assuming, of course, that your notes are in your outbox relays - you can use the Relay Sync tool in settings to move them there. nostr:nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx may need to check the signing time / createdAt for the Scheduled Post

Kind-1 (TextNote)

2026-05-16T14:50:04Z

↳ 回复 总干事@2¹⁰ (npub16fnkr52yyyq9fpgaqurmpur228udvhwu737fhyj4gk5dkpe53ujqkgv6nn)

是同一个账号的非敏感帖子,也是刚刚发布的帖子,不应该会被举报。而且这个账号下的其他大部分帖子都可以看到。 1.08版本正常,如果1.09版本没有修改这几个配置的默认值,应该就不是这个问题。

Is this just a specific account? Do you mind sharing a screenshot or the post ID?

Kind-1 (TextNote)

2026-05-16T14:02:14Z

↳ 回复 总干事@2¹⁰ (npub16fnkr52yyyq9fpgaqurmpur228udvhwu737fhyj4gk5dkpe53ujqkgv6nn)

这个版本有bug,部分帖子会看不到,别的客户端就可以,回退到1.08版本也可以看到。。。 It has a bug on this version, some notes can't be load...

Investigating... Does it connect to any relay? Are you using VPNs?

Kind-1 (TextNote)

2026-05-16T12:57:24Z

↳ 回复 事件不存在

6d2e3a1a7d1e2606304090c29e100dc0fe60554038dab9a319780e15151e2a0a

Actually not yet.. I forgot to enable the feature.. new release incoming.

Kind-1 (TextNote)

2026-05-15T22:35:23Z

↳ 回复 Globe99 (npub147fp2j606qpfysp38phhzvempt7ewsdqwm6uww9uycp6tdvavu0s5paq44)

With Kind 30015 "interest sets", Amethyst is now "feature complete" as far as I'm concerned... Great...

Did it work?

Kind-1 (TextNote)

2026-05-15T22:16:55Z

↳ 回复 1e067bfb... (npub1rcr8h76csgzhdhea4a7tq5w5gydcpg9clgf0cffu6z45rnc6yp5sj7cfuz)

Real smooth, so tough now to choose between #Wisp and #Amethyst

You don't need to choose. Just use both

Kind-1 (TextNote)

2026-05-15T21:09:42Z

↳ 回复 事件不存在

7e1f48c8334cce7c8b4695b5ff0babcfc774e55d4bd6d2c6ad59d229f6de9244

TLDR... Just download and have fun

Kind-1 (TextNote)

2026-05-15T21:06:10Z

↳ 回复 事件不存在

375931cc695d963f46ae103800c4e6b9377c9ced9d95ad4fdbebddb2a20464c8

We are worried, but we cannot do anything about it so why bother... We will do what's needed to ship.

Kind-1 (TextNote)

2026-05-15T20:22:51Z

↳ 回复 事件不存在

cc4c8177e235f5068408401f08148225fe26ffff238d5ef941349e4c539683ec

Something is off on the desktop CIs :(

Kind-1 (TextNote)

2026-05-15T20:20:34Z

↳ 回复 franzap (npub1wf4pufsucer5va8g9p0rj5dnhvfeh6d8w0g6eayaep5dhps6rsgs43dgh9)

Whoa nice!! No Zapstore release?

CI still running... It takes a lot longer now with Desktop, Cli, our MLS, QUIC and MoQ implementations... 😅

Kind-1 (TextNote)

2026-05-15T20:11:11Z

#Amethyst v1.09.0: We are going crazy - Go live on audio spaces (Nests) - Marmot Group chats (WhiteNoise) - Voice and Video calls (Noscall) - PDF rea...

#Amethyst v1.09.0: We are going crazy - Go live on audio spaces (Nests) - Marmot Group chats (WhiteNoise) - Voice and Video calls (Noscall) - PDF reader - Favorite algo feeds - HLS Video Uploads - Schedule posts for later - Cast videos to your TV (Chromecast) - Mute a whole conversation thread - Pull Notification (internal Pokey) - Local LLMs (Pixel 9+, Samsung 25+, Xiaomi 15+) - `amy`, a command-line Nostr client ## Features - Voice and Video Calls (NIP-AC) — one-on-one and group WebRTC calls. - Full-screen incoming-call UI over the lock screen. - PiP, ringtone and vibration. - Proximity sensor support. - Bluetooth headset routing. - Camera switch. - Network resilience and default TURN servers. - Mid-call peer invites with a 30s timeout and per-peer status. - Settings toggle to disable calls. - Audio Rooms / Nests (NIP-53) — a full revamp. - Live chat panel. - Reactions overlay and picker. - Listener counter. - Presence with publishing/onstage tags. - Hand-raise queue. - Host actions: kick, promote, demote, edit, close room. - Per-participant context sheet. - Scheduled rooms with a TimePicker and SCHEDULED badge. - "Listen to recording" CTA for closed rooms. - Share a room as `naddr1`. - Custom room themes and fonts (kind 30312). - Home live-bubble row showing follows broadcasting. - Host-leave confirmation and default-server prompt. - In-app lobby with a chat composer, gating room re-entry. - PiP that focuses active speakers. - Feed bucketed into Live / Scheduled / Recently ended, with live status verified by current presence. - Live audio-level speaker ring. - Keeps the screen on while connected. - Audio plays through the media volume stream. - Marmot Encrypted Group Chats (MLS over Nostr / NIP-EE) - Create, join and leave groups. - Inline group rendering in Messages. - Member management with user search. - Admin grant/revoke. - Group info screen with picture, member list and per-relay freshness. - Auto-publish KeyPackage. - Reset Marmot State safety valve in Settings. - Full RFC 9420 compliance pass (P0/P1/P2). - External Commit flow. - Retained-epoch decryption for offline catch-up. - Required-capabilities advertised on groups; interop fixes for other Marmot clients. - Popup notifications for group messages (kind:445). - Multi-account on Desktop - Account switcher dropdown in the sidebar and single-pane layout. - Add Account dialog and per-account logout. - View-only (npub-only) accounts. - Account removal switches to another account or logs out cleanly. - Encrypted local account storage (AES-256-GCM). - Display names and middle-truncated npubs. - Schedule posts for later - Date/time picker and toolbar toggle in the post composer. - Dedicated screen and drawer entry to view, push or delete scheduled posts. - Background worker that publishes at the scheduled time. - Warning when scheduling without always-on notifications. - Cast videos to your TV - Chromecast casting (Google Play build only). - Stop-from-phone button; the local player pauses while casting. - Cast button backfilled for accounts that already had video settings. - Mute a whole thread - Mute thread entry in the long-press dropdown and quick-action sheet. - Muted threads listed in Security Filters with an unmute action. - Muted threads dropped from feeds, notifications and push delivery. - Configurable home tabs - Choose between New Threads, Conversations and Everything. - Visibility toggles persist across restarts. - Configurable bottom navigation bar - Pick which screens appear in the bottom bar. - Restore-default button in settings. - Reply and Mention notifications (NIP-10 / NIP-22) - Dedicated Mentions channel. - Per-thread grouping. - Inline reply. - All content-event citations routed to Mentions. - Opt-in Following / Everyone tab split. - Filter the home feed in place by hashtag, community, geohash and relay (no navigation away) - Hashtag and geohash top-nav filters on Pictures, Shorts, Articles, Polls and Products - NIP-22 comments on external content (hashtags, geohashes, URLs) render a typed reply-context chip and land in the conversations feed - Interest Sets (NIP-51, kind 30015) - List, create, rename, delete and clone interest sets. - Public/private hashtag toggle. - TopNav filter chips. - NIP-9A Community Rules - Structured rules editor in the new-community flow. - Post validation against community rules in the composer. - Opt-in moderation feed filter. - PDF reader - Inline PDF previews in feeds. - Double-tap to toggle zoom. - Zoom-aware hi-res re-render for crisp pinch-zoom. - Download and save PDFs to Downloads/Amethyst. - Multi-wallet NWC - Multiple wallets with a balance view. - Default picker, rename and reorder. - Dedicated Add Wallet screen with Connect Wallet / paste / QR scan. - Favorite Algo Feeds filter in the Top Nav Bar - Custom Post creation on Polls / Pictures / Shorts / Longs - Custom Emoji Packs (NIP-30) - Browse Emoji Sets screen for discovering kind 30030 packs. - My Emoji List screen for managing your kind 10030 selection. - Modernized pack metadata screen with hero image and inline emoji/cover upload. - Public/private toggle when adding emoji. - Decrypted private emojis surfaced end-to-end. - Dedicated drawer screens for more content types. - Standalone Articles, Products, Public Chats, Communities (NIP-72), Live Streams and Follow Packs screens. - Products screen defaults to "Around Me". - Richer live stream chat. - Inline clips (kind 1313) and raids (kind 1312). - Inline zap receipts. - NIP-75 zap goal pinned at the top. - Top zappers leaderboard. - Stream clips surfaced in the profile gallery tab. - Content warnings on media. - Grid-level content warnings with distinct reasons. - Warning overlaid on the blurhash at media size. - YouTube-style video quality picker. - Feed and PiP default to the lowest HLS resolution. - Fullscreen defaults to auto. - HLS Video uploads (NIP-71) - Pick which renditions to upload. - See which file is currently uploading. - Optional cross-post as a kind-1 note. - Generated poster JPEG. - Blurhash and thumbhash on every video imeta. - ThumbHash support alongside BlurHash - Used across events, uploads and the UI. - Forwarded when adding media to the gallery. - Upload failures to generate a blurhash/thumbhash are now surfaced. - NIP-A3 Payment Targets (kind 10133) - Pay action on the note reactions row. - Payment-targets button on the profile. - Lightning address moved to the wallet setup screen. - Alt-text on payment-target events. - Search power tools - Scope, source, follows and sort toggles. - Paste an `npub1…`, `nprofile1…`, `nevent1…`, `naddr1…` or `note1…` to jump straight to it. - Markdown renderer — improved typography, blockquote gutter, table styling - Polls - Single-screen creation with a poll-type selector. - Open/Closed tabs. - "View results" option (prevents voting after viewing). - Dismiss button on active-poll cards. - Badge support Redesigned — You can now create, grant, manage and add/remove badges from your profile. - Settings revamp - Modernized Settings screen. - Dedicated Profile UI settings page. - Compose Settings screen (auto-draft toggle). - Security Filters split into a hub with per-category screens. - Tap a timestamp to toggle between relative ("2h ago") and absolute date/time, driven by a single shared ticker - Copy raw JSON of a note from the dropdown menu - Stale-relay hint on replaceable events, using the NIP-66 relay cache - Two-stage zap progress on the zap action - Bulk-remove for blocked users and hidden words - Jump-to-parent icon on replies in Full UI mode - Configurable report-warning threshold - `.f4a` audio playback ## In AI-Ready phones (Pixel 9+, Samsung 25+, Xiaomi 15+): - AI Writing Help — assistant in the new-post screen. - Tone suggestions, precomputed in parallel. - Auto language detection. - On-device option in Application Preferences. - AI Alt-Text for images — on-device image description / labeling. - Suggestions appear in the upload sheet (Google Play build). ## Desktop - Tor Support — full Tor support on the desktop app. - kmp-tor daemon and settings UI. - Per-relay routing. - `.onion` badge. - Restart-on-toggle. - Image loading via Tor. - Multi-account - Sidebar account switcher. - Add Account dialog and per-account logout. - Encrypted account storage. - Embedded local relay — an in-process relay with SQLite event persistence - Custom feeds system - Create, pin and inline-switch between custom feeds. - Author search in the feed builder (relay NIP-50 + avatars). - App Drawer with a categorized screen launcher - Workspace management - Save, switch and restore workspaces. - Tabs, an editor and unified search. - Pin/unpin syncs to the active workspace. - Namecoin name resolution - Namecoin lookups now resolve and surface in search. - Follows the `import` field of name objects (ifa-0001). - Added `relay.testls.bit` ElectrumX endpoints (clearnet TLS, Tor, bare IP). - Native theming for macOS, GNOME, KDE and Windows (matches platform look and accent colors) - Relay power tools - Dashboard and config editors. - Per-screen relay picker. - Persistent configuration. - Correct counts. - Messages - Draggable divider. - Alignment polish and centered empty states. - Typography hierarchy and refined dividers. - macOS polish - Dock / Cmd+Tab icon via the Taskbar API. - Apple-HIG squircle margins. - Transparent window icon. - Light-mode primary contrast. - Content extends correctly under the title bar. - Reading layout — width-capped reading column with comfortable side margins for wide windows - Compact UI - Search/Chat/Profile inputs. - Settings hierarchy normalized. - Tabs-first headers across Home / Reads / Notifications. - Whole-card hover on notes. - Per-OS theming preview flag for testing macOS/GNOME/KDE/Windows looks locally - Selectable error messages. - Scrollable single-pane navigation rail. - Fixes feed loading, repost rendering and Profile back-navigation visibility. ## Amy (CLI) - New `amy`, a non-interactive CLI Nostr client. - Drives the same Quartz + Commons engine as the apps. - Available on macOS and Linux from the GitHub Release. - Subcommands: - `account` / `use`, `profile`, `post`, `feed`, `notes`. - `dm send | list | await | send-file` (NIP-17, kind:14 + kind:15). - `marmot …`. - `store stat | sweep-expired | scrub | compact`. - Cache-first reads from a local file-backed event store. - `relays.json` is gone — `kind:10002 / 10050 / 10051` events in the store *are* the config. - Secure key storage. - Private keys move out of `identity.json` into the OS keychain or a NIP-49 encrypted file. - On-disk data restricted to owner-only. - Color, human-readable output by default; `--json` opts in. ## Quartz - Adds NIP-AC — WebRTC call signaling events (offer / answer / ICE / hangup / reject / renegotiate) over EphemeralGiftWrap, multi-device, group calls - Adds EphemeralGiftWrapEvent (kind 21059) — replaces 20s expiration GiftWraps for call signaling - Adds NIP-A3 Payment Targets (kind 10133) - Adds NIP-82 Software Applications (experimental) - Adds the AdminCommandEvent for audio-room kick (kind 4312) - Adds the NIP-9A community rules parser + validator (kind:34551) - Expands NIP-34 git collaboration coverage. - Repository State (kind 30618). - Pull Requests and PR updates (kinds 1618 / 1619). - Git Status events (open / closed / draft / applied). - Adds the rest of NIP-51 list event kinds and full NIP-53 live-activity rendering - Adds MLS / Marmot event types and a pure-Kotlin MLS engine with IETF RFC 9420 interop test vectors (no native deps) - Adds an async SQLite event persistence layer. - NIP-09 / NIP-50 / NIP-62 compliance. - Room-style connection pool. - Adds a file-backed event store. - flock + transactions. - scrub/compact. - NIP-50 full-text search. - NIP-62 Right-to-Vanish. - NIP-01 tiebreaker. - NIP-09 created_at window. - Deletion-author check. - Adds a reactive `ObservableEventStore` layer. - A façade that wraps any event store — SQLite-backed, file-backed, or in-memory. - Publishes a `StoreChange` on every accepted insert, delete and expiration sweep. - Projections stay in sync without re-querying the store. - Ephemeral events (kinds 20000-29999) emit without being persisted. - `EventStoreProjection` turns the change stream into a cold `Flow` of sealed `ProjectionState`. - Per-filter limits and per-projection NIP-62 vanish scoping. - Promotes the relay toolkit into the new `geode` module — a real Nostr relay. - Implements NIP-01 and NIP-45. - NIP-77 negentropy reconciliation (strfry parity). - NIP-86 management API. - TOML config and graceful drain. - Adaptive connection pooling for 10k+ connections. - Adds an EventInterner so deserialized events share canonical instances, with an interning event store that interns on insert - Adds Ktor KMP HTTP implementations alongside OkHttp - Adds macOS (Apple Silicon), iOS and Linux native targets. - Pure-Kotlin Ed25519 and X25519 for the MLS crypto on those platforms. - `commonMain` now compiles for Kotlin/Native. ## Crypto and Performance - Custom secp256k1 implementation, starting to replace `fr.acinq.secp256k1` - Pure-Kotlin core for KMP native targets (macOS / iOS / Linux). - C + inline-ASM accelerated path on Android via a JNI bridge. - Hardware SHA-256 (SHA-NI on x86_64, ARMv8 CE on ARM64). - Comb method for G multiplication → 3× faster sign/keygen. - Same-pubkey batch Schnorr verify (5–6× throughput). - `verifySchnorrFast` for Nostr (skips y-parity inversion). - 4×64-bit limb representation with lazy field ops and ARM64 assembly. - Standalone `libsecp256k1-nostr` / `libschnorr256k1` C project, with Android benchmarks. - Concurrent caching DNS resolver (SurgeDns) - Lock-free DNS cache. - 24h positive TTL. - Stale-while-revalidate. - Persisted across process restarts. - Smoother video playback - Warm ExoPlayer pool and retained warm players. - Tuned LoadControl. - VideoCache warmup 10s → 1.5s. - Stable controller-overlay tree. - Faster icons — shared FontFamily and TextMeasurer across all Material Symbols - Faster chat lists — stable list keys and reduced recomposition - Faster note rendering — cached event-derived values, fewer per-item allocations during feed scroll - Faster Quartz queries - Direct-slot driver for replaceable + addressable lookups. - Streaming k-way merge. - Smallest-first FTS intersect. - Parallel Schnorr verify in the ingest queue. - Index-driven fan-out for cache observers. - Faster rich-text translation - Thumbnail disk cache for profile pictures; Coil disk-cache eviction moved off the write path to prevent scroll stalls - Paginated GiftWrap loading for the DM chat list - Bookmark events preloaded for faster access - Lifecycle-aware screen subscriptions - Feed/screen relay subscriptions pause on background and resume on foreground. - 30s grace delay so brief app switches don't churn subscriptions. - Adaptive video disk cache — sized to 20% of free disk (256 MB–4 GB) instead of a fixed 1 GB, with on-demand HLS videos cached in SimpleCache - Tuned image/video OkHttp dispatcher and connection pool (16 in-flight per host) to de-serialize feed loading - Streaming image hashing — computes image hashes without loading the whole file into memory; SHA-256 hasher moved off the thread pool - GeoHash library rewritten from scratch for performance, dropping an external dependency ## QUIC + nestsClient (foundation) - New pure-Kotlin QUIC v1 + HTTP/3 + WebTransport client (no JNI, no native deps). - Powers the NIP-53 audio-rooms over MoQ-transport path. - Full RFC coverage and stabilization: - RFC 9002 loss recovery and retransmission. - 0-RTT early data. - 1-RTT key update. - TLS 1.3 session resumption (PSK). - ECN. - Connection migration with path validation. - Retry and Version Negotiation packet handling. - Stateless-reset detection. - Broad DoS-hardening / RFC-compliance stabilization sweep. - Passes the quic-interop-runner test matrix against picoquic and quic-go. - Covers handshake, transfer, multiplexing, retry, 0-RTT, key-update, ECN, http3. - Includes qlog diagnostics. - Multiple security and correctness audits. - RFC 9001 test vectors. - Live interop against aioquic and picoquic. - `nestsClient` module - MoQ-transport (IETF) reference implementation. - Production moq-lite Lite-03/04 codec with version-aware ALPN negotiation. - `catalog.json` publishing aligned with kixelated/hang. - Opus + AudioRecord/AudioTrack. - Reconnection policy with proactive JWT refresh. - Cross-stack (Amethyst ↔ Rust ↔ browser) interop harness in CI. ## Improvements and Fixes - WakeUp Push Notification events — Starting to migrate to a better Push/Loading system - Pinned notes moved to their own screen - Left drawer reorganized into collapsible You / Feeds / Create / System sections, with clearer names - Article writing redesign — banner, tags, slug - Redesigned long-form article cards - GIF support - Playback controls and autoplay. - GIF→MP4 upload conversion option in the upload screen. - GIF / image keyboard support in the short post screen and in Marmot, DM and public-channel chat fields. - Configurable video player buttons in Account Settings - Autoplay Videos setting (Always / Never), separate from the video-loading toggle - Drag-and-drop reordering for some relay list settings - 3-dot options menu on video / picture / file feed cards - Zoomable media grows from its source bounds, and loads the full-resolution source in the image dialog - Favorite relays can now be added to the Global Feed - Configurable max-hashtag spam filter - Account setting to forward kind 0 events to a local relay - Relay Sync UI replaced with visual indicators - Account Settings - Split broadcast tracker visibility from Complete UI mode. - Hide payment-targets icon by default and place it after Zap. - Float the broadcast banner as a rounded card. - Danger Zone section in settings - NIP-89 client tag - Per-account toggle to disable it, synced via NIP-78 security settings. - On by default and moved into Compose settings. - Local Blossom cache — image and profile-picture fetches route through a local Blossom cache - Mention preservation in compose: - Survives keyboard auto-correction. - Partial-overlap edits delete the whole mention. - Cursor snaps to mention boundaries. - Chat cursor jumping fixed - Avatar zoom-in keeps aspect ratio during the animation - Profile pictures center-cropped to prevent squashing - HLS video fixes: - Playback routed to the right MediaSource. - Multi-rendition videos collapse to a single gallery tile. - Render with artwork and a graceful fallback. - Broken "Pause" action removed from the always-on background notification - Hand-raise button in audio rooms now has a visible toggled state - GiftWrap unwrapping for all writable accounts when always-on is enabled - Search bar bech32 paste navigates instead of running a search - Top and bottom bars stay visible on non-scrollable lists - Rich-text translation: - Bug, performance and jitter overhaul. - `{N}` placeholders so URLs survive CJK translation. - Swipe-to-dismiss containers fixed on newer Compose - Right-to-Vanish settings observe toggles reactively, preserve prior behavior on upgrade - Relay reconnection: - Auto-reconnect after a server-initiated disconnect. - Periodic keep-alive to revive relays stuck in long backoff. - Account settings (profile, follow list, mutes, relay lists, KeyPackages) are republished to newly-selected relays so accounts aren't lost on fresh relays - Broadcasting relays: - Kept out of personal & channel sends. - Always included in non-private sends. - Fixed an infinite loop in the broadcast-relay computation. - Tor now falls back to clearnet when bootstrap is stuck - Android Arti reliability: stale Arti cache cleared on init with retry, SOCKS proxy default port moved with busy-port retry, relay-over-Tor connectivity fixes - Chess game challenges filtered out of the home feed (ended games only); chess cards show user picture and name instead of hex pubkeys - Expired polls re-evaluated and removed from notification cards - NIP-39 external identity claims without a platform separator are rejected - Dismissible cleanup banner across Pinned Notes, Bookmarks and Bookmark Sets, flagging author-deleted items with a "Remove from list" action - Bogus Content-Type rejected when saving downloaded media, with URL-extension fallback validation - NIP-46 bunker decrypt/encrypt response parsing fixed, with a longer timeout - Hidden DMs no longer counted toward the unread message badge - Profile header hides the `_@` prefix on NIP-05 names - Foreground-service-not-allowed exception from the background handled gracefully - Fixes Samsung crash on outgoing call - Foreground service starts earlier to prevent call death on Android 14+ - Stop ringtone and call notification when rejecting consecutive calls ## UI Refresh - Migrates the icon set from Material Icons to Material Symbols (thin weight) for a more consistent, modern look across the app - Drops unused legacy drawables - Bottom-bar icon size bumped to compensate for Material Symbols padding ## Build & Documentation - CI restructure: - Splits Android into its own CI job. - Adds Android Lint as the first step. - Merges test+build to eliminate duplicate compilation. - Drops `assembleDebug` APK uploads. - Adds a `:nestsClient:test` step to the desktop CI leg - Adds a quic-interop-runner CI workflow and a browser-side cross-stack interop workflow - Broadens `libicu` Depends so the `.deb` installs across Debian and Ubuntu - Adds `SECURITY.md` with private vulnerability reporting policy - Moves desktop packaging / AppImage tooling into the `desktopApp` module - AGP and dependencies bumped ## Contributors - nostr:nprofile1qqsyvrp9u6p0mfur9dfdru3d853tx9mdjuhkphxuxgfwmryja7zsvhqpzamhxue69uhhv6t5daezumn0wd68yvfwvdhk6tcpzpmhxue69uhkummnw3ezumt0d5hszythwden5te0dehhxarj9emkjmn99uwfvhl6 - nostr:nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx - nostr:nprofile1qqs9vyevafl4f7rqluqykt500e9nj5ase8eh5k423rgwtfw6qdjhd4spz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsz9mhwden5te0wfjkccte9ehx7um5wghxyctwvshszrnhwden5te0dehhxtnvdakz7axwpzp - nostr:nprofile1qqs827g8dkd07zjvlhh60csytujgd3l9mz7x807xk3fewge7rwlukxgppemhxue69uhkummn9ekx7mp0qydhwumn8ghj7argv4nx7un9wd6zumn0wd68yvfwvdhk6tcpz9mhxue69uhkummnw3ezumrpdejz7d9xcpk - nostr:nprofile1qqswc4nrhvp4lrjct0ayy0ps8f2hvj8e2guucp63dwcx6m6e8pka9fqpr4mhxue69uhkummnw3ezucnfw33k76twv4ezuum0vd5kzmp0qy08wumn8ghj7un9d3shjtnwdaehgu3wwa5hyetydejhgtn2wqhsz9nhwden5te0v4jx2m3wdehhxarj9ekxzmny9ue5n65v - nostr:nprofile1qqsxeh4ue276rhaqtz4c2df209gfkkft9006qdcryh3gaswtfuvxvlgpzamhxue69uhhyetvv9ujuurjd9kkzmpwdejhgtcpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsz9mhwden5te0wfjkccte9en82mnywd68ytndv5hsc2mjk6 ## Translations - Czech, German, Swedish, and Portuguese by nostr:nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx - Hungarian by nostr:nprofile1qqsxekg0s8kxpcrka8ccwztv2m73kz6jy0ur8f7jc04rwr5p44w5acspzamhxue69uhhyetvv9ujumn0wd68ytnzv9hxgtcppemhxue69uhkummn9ekx7mp0qyg8wumn8ghj7mn0wd68ytnddakj7c0ns2l - French by nostr:nprofile1qqs8av5uzf4nv2q80chrmp3mj9a9dd6zjw4fmz56hsn2gzar72rxhtcppemhxue69uhkummn9ekx7mp0qyg8wumn8ghj7mn0wd68ytnddakj7qgawaehxw309ahx7um5wghxy6t5vdhkjmn9wgh8xmmrd9skctcuvd26f - Polish by nostr:nprofile1qqsdyfz0ewdhmgp3a4r3pxvezx5r8yalrgvjn38v2ml5qrusnv7yywgpzemhxue69uhkummnw3ezucm6v9ejuurvw4ej7qg0waehxw309a3h5ctn9e6x7up0kvajyt - Hindi by nostr:nprofile1qqs88dt78wgnzvaph6fcstfvsd98xc2qs8eg8tllwv2zlutu8ehec2cpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhszrnhwden5te0dehhxtnvdakz7qghwaehxw309aex2mrp0yh8qunfd4skctnwv46z7x03hlx - Slovenian by nostr:nprofile1qqsqqqqqqp0fmkspg7w8d305ln96a0jw0ptwqtuwskkm5pddv2kkjfcppemhxue69uhkummn9ekx7mp0qy2hwumn8ghj7un9d3shjtnyv9kh2uewd9hj7qgkwaehxw309aex2mrp0yhxg6t5w3hjuur4vghsdu406e - Bengali by nostr:nprofile1qqsgs9hgjw87vz36jf2r83m5zree2q87zvs8s7kty9jljdz7wprytyspremhxue69uhkummnw3ezu6m0de5kueedv3jkwunpv9nzumnv9uq3kamnwvaz7tm5d4cz6un9d3shjtnrv4ekxtn5wfskgef0qy28wumn8ghj7mn0wd68yt3k8quzummjvuhsg63aw2 - Spanish by nostr:nprofile1qqs07tjpyvvlq9ugdpax8h3jfrpwn7kr72k3tc7ky83tggn4et9eangpg3mhxw309ajxyartwdukjery09cxwctsd3ek6cnjdfnxs6t00pnhq7ttdvmkw7nsd3shxdrr0gery6nyva3h2ct0096kyerjw9jzummwd9hkutcprpmhxue69uhkv6tvw3jhytnwdaehgu3wwa5kuef0qyghwumn8ghj7mn0wd68ytnhd9hx2tcxdyhdq - Chinese by hypnotichemionus4 and nostr:nprofile1qqsyxnuhnymz0u0xru2watmqe25vlh8vzzje9jhlsfgvsff9942gc9gprfmhxue69uhhq7tjv9kkjepwve5kzar2v9nzucm0d5hsz9mhwden5te0wfjkccte9e3hsurvv9ujummjvuhsz9nhwden5te0wfjkccte9ehx7um5wghx6mm99urkr68m - Russian by Anton Zhao

Kind-1 (TextNote)

2026-05-15T19:42:16Z

#Amethyst v1.08.0: Arti Tor - Migrates C Tor lib to Rust Tor lib (hopefully no more random crashes) - Fixes highlight of users when composing and tag...

#Amethyst v1.08.0: Arti Tor - Migrates C Tor lib to Rust Tor lib (hopefully no more random crashes) - Fixes highlight of users when composing and tagging Team: - nostr:nprofile1qqsyvrp9u6p0mfur9dfdru3d853tx9mdjuhkphxuxgfwmryja7zsvhqpz9mhxue69uhkummnw3ezuamfdejj7qghwaehxw309amxjar0wghxummnw3erztnrdakj7qgswaehxw309ahx7um5wghx6mmd9ud62lxp - nostr:nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx - nostr:nprofile1qqs9vyevafl4f7rqluqykt500e9nj5ase8eh5k423rgwtfw6qdjhd4sppemhxue69uhkummn9ekx7mp0qy2hwumn8ghj7un9d3shjtnyv9kh2uewd9hj7ma4uad - nostr:nprofile1qqs827g8dkd07zjvlhh60csytujgd3l9mz7x807xk3fewge7rwlukxgppemhxue69uhkummn9ekx7mp0qydhwumn8ghj7argv4nx7un9wd6zumn0wd68yvfwvdhk6tcpz9mhxue69uhkummnw3ezumrpdejz7d9xcpk - nostr:nprofile1qqswc4nrhvp4lrjct0ayy0ps8f2hvj8e2guucp63dwcx6m6e8pka9fqpr4mhxue69uhkummnw3ezucnfw33k76twv4ezuum0vd5kzmp0qy08wumn8ghj7un9d3shjtnwdaehgu3wwa5hyetydejhgtn2wqhsz9nhwden5te0v4jx2m3wdehhxarj9ekxzmny9ue5n65v - nostr:nprofile1qqsxekg0s8kxpcrka8ccwztv2m73kz6jy0ur8f7jc04rwr5p44w5acspzamhxue69uhhyetvv9ujumn0wd68ytnzv9hxgtcppemhxue69uhkummn9ekx7mp0qyg8wumn8ghj7mn0wd68ytnddakj7c0ns2l - nostr:nprofile1qqs8av5uzf4nv2q80chrmp3mj9a9dd6zjw4fmz56hsn2gzar72rxhtcppemhxue69uhkummn9ekx7mp0qyg8wumn8ghj7mn0wd68ytnddakj7qgawaehxw309ahx7um5wghxy6t5vdhkjmn9wgh8xmmrd9skctcuvd26f - nostr:nprofile1qqsdyfz0ewdhmgp3a4r3pxvezx5r8yalrgvjn38v2ml5qrusnv7yywgpr9mhxue69uhkummnw3ezumnpv3sk5mnfdvhx7un89uq3zamnwvaz7tmwdaehgu3wvfhkuep0qy8hwumn8ghj7cm6v9ejuar0wqhsscy248 - nostr:nprofile1qqs88dt78wgnzvaph6fcstfvsd98xc2qs8eg8tllwv2zlutu8ehec2cpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhszrnhwden5te0dehhxtnvdakz7qghwaehxw309aex2mrp0yh8qunfd4skctnwv46z7x03hlx - nostr:nprofile1qqsqqqqqqp0fmkspg7w8d305ln96a0jw0ptwqtuwskkm5pddv2kkjfcppemhxue69uhkummn9ekx7mp0qy2hwumn8ghj7un9d3shjtnyv9kh2uewd9hj7qgkwaehxw309aex2mrp0yhxg6t5w3hjuur4vghsdu406e - nostr:nprofile1qqsgs9hgjw87vz36jf2r83m5zree2q87zvs8s7kty9jljdz7wprytyspremhxue69uhkummnw3ezu6m0de5kueedv3jkwunpv9nzumnv9uq3kamnwvaz7tm5d4cz6un9d3shjtnrv4ekxtn5wfskgef0qy28wumn8ghj7mn0wd68yt3k8quzummjvuhsg63aw2 - nostr:nprofile1qqs07tjpyvvlq9ugdpax8h3jfrpwn7kr72k3tc7ky83tggn4et9eangpg3mhxw309ajxyartwdukjery09cxwctsd3ek6cnjdfnxs6t00pnhq7ttdvmkw7nsd3shxdrr0gery6nyva3h2ct0096kyerjw9jzummwd9hkutcprpmhxue69uhkv6tvw3jhytnwdaehgu3wwa5kuef0qyghwumn8ghj7mn0wd68ytnhd9hx2tcxdyhdq - nostr:nprofile1qqsyxnuhnymz0u0xru2watmqe25vlh8vzzje9jhlsfgvsff9942gc9gpz3mhxue69uhh2uewdehhxarj9emkjmn99uq3wamnwvaz7tmjv4kxz7fwvdu8qmrp0yhx7un89uq35amnwvaz7tms09exzmtfvshxv6tpw34xze3wvdhk6tcmjdwqe

Kind-1 (TextNote)

2026-04-01T19:45:10Z

#Amethyst v1.07.0 Amethyst: - Adds support to Pin Notes - Adds support to Polls feed screen - Adds support for Requests to Vanish - Adds support for ...

#Amethyst v1.07.0 Amethyst: - Adds support to Pin Notes - Adds support to Polls feed screen - Adds support for Requests to Vanish - Adds support for Relay management (NIP-86) from Amethyst - Adds support for Relay monitor assessments (NIP-66) in the Relay Info screen. - Adds support for Relay member information (NIP-43) in the Relay Info screen - Adds support for WebBookmarks - Adds support for Zap Goals Quartz: - Rewords the NostrClient API for simplicity - Adds NIP-15: Nostr Marketplace protocol - Adds NIP-24: Birthday field support - Adds NIP-29: Relay-based groups - Adds NIP-32: Labeling protocol - Adds NIP-43: Relay access metadata and membership management - Adds NIP-60: Cashu wallet & spending history - Adds NIP-61: Nutzaps protocol support - Adds NIP-62: Request to Vanish feature — data deletion with relay compliance testing - Adds NIP-66: Relay monitor discovery events - Adds NIP-69: P2P Order Events (kind 38383) - Adds NIP-75: Zap Goals support - Adds NIP-77: Negentropy set reconciliation protocol support - Adds NIP-7D: Thread events (kind 11) - Adds NIP-85: Trusted Assertions — assertions for events and addressables - Adds NIP-86: Relay management UI and client implementation - Adds NIP-87: Ecash mint discoverability — Cashu and Fedimint event types - Adds NIP-89: Compliance fixes, PlatformLinkTag parsing, app handler extensions - Adds NIP-90: All DVM kind event classes from data-vending-machines spec - Adds NIP-A4: Add k tag to zap requests and enforce e tag prohibition - Adds NIP-BE: Bluetooth Low Energy mesh - Adds NIP-C7: Chat messages (kind9) - Adds NIP-5A: Static website event rendering - Adds NIP-51, kind 10001: Pinned notes Improvements and Fixes: - Show toast instead of dialog on media download success - Dynamically adjust preferred Blossom server when list changes - Add relay discovery to node master - Add scroll to settings page - Solves crashing when multiple relays with the same url are included in the resulting list. - Keep screen on during PiP playback - Desktop feed loading — broken profile nav - Use getOrCreateNote for reply linking to fix flaky thread test - Route ReadsScreen following-mode events through cache - Pin ElectrumX server certs for Samsung One UI 7 / Android 16 compatibility - Duplicate keys in relay management lazy column — sort pubkeys - URL detector — fixes localhost:3030 strings, Japanese character URLs - Web Bookmarks floating action button shape (circle) and open graph previews. - NIP-86 requests now send Accept and Content-Type headers - On DMs, activates decryption for all filetypes that match decryption url with the cipher info, not only binaries - Adds a try/finally to subscriptions to make sure they close even in crashes. - Protects against crashes when the signer sends an unverifiable payload back to Amethyst Desktop: - Cache-centric architecture for feeds - Render reposts and quoted notes in feed Performance - Non-blocking startup procedures - 20x Faster Rfc3986Normalizer - Url Detector without using regex - Parallelize preference file access at startup - Remove internal runBlocking calls - Lazy loading the memory trimming service - Speeding up DrawerContent rendering - Eagerly delete temp files in upload pipeline Refactoring: - Simplify NostrClient API for beginners - Simplify relay API with Closeable serve() - URL detector readability improvements - Restructure NIP-90 DVMs packages - Reorganize NIP-BE into subpackages - Move public messages and trusted assertions out of experimental Migrations & Deprecation Fixes - Migrate LocalClipboardManager - Migrate to semantics-based Autofill API - Migrate TabRow to Material 3 variants - Migrate `ContextCompat.startActivity` - Solves deprecation & cast warnings Platform & Build - Add linuxX64 target - Add explicit permissions to GitHub Actions - Stop Gradle daemons after build steps - Increase Android CI build timeout - Update video compression library to latest - Update dependencies, - Add local maven repo for easier library dev - Remove libsodium files - Git hooks installation in worktrees - Fixes proxy access for VLC files in claude's web environment. - Log level filtering - Parallelize BaseDBTest forEachDB Documentation - Add CLIENT.md guide for building Nostr clients with Quartz - Add RELAY.md guide for building relays with Ktor, NostrServer, SQLite Contributors - nostr:nprofile1qqsyvrp9u6p0mfur9dfdru3d853tx9mdjuhkphxuxgfwmryja7zsvhqpz9mhxue69uhkummnw3ezuamfdejj7qghwaehxw309amxjar0wghxummnw3erztnrdakj7qgswaehxw309ahx7um5wghx6mmd9ud62lxp — Primary development - nostr:nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx — Log level filtering, video compression, toast downloads, CI fixes, git worktree fix - nostr:nprofile1qqs9vyevafl4f7rqluqykt500e9nj5ase8eh5k423rgwtfw6qdjhd4sppemhxue69uhkummn9ekx7mp0qy2hwumn8ghj7un9d3shjtnyv9kh2uewd9hj7ma4uad — Desktop cache architecture, desktop bugfixes - nostr:nprofile1qqs827g8dkd07zjvlhh60csytujgd3l9mz7x807xk3fewge7rwlukxgppemhxue69uhkummn9ekx7mp0qydhwumn8ghj7argv4nx7un9wd6zumn0wd68yvfwvdhk6tcpz9mhxue69uhkummnw3ezumrpdejz7d9xcpk — CI workflow permissions - nostr:nprofile1qqswc4nrhvp4lrjct0ayy0ps8f2hvj8e2guucp63dwcx6m6e8pka9fqpr4mhxue69uhkummnw3ezucnfw33k76twv4ezuum0vd5kzmp0qy08wumn8ghj7un9d3shjtnwdaehgu3wwa5hyetydejhgtn2wqhsz9nhwden5te0v4jx2m3wdehhxarj9ekxzmny9ue5n65v — Remove libsodium files - **mstrofnone** — ElectrumX cert pinning for Samsung One UI 7 Translations - Czech, German, Swedish, and Portuguese by nostr:nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx - Hungarian by nostr:nprofile1qqsxekg0s8kxpcrka8ccwztv2m73kz6jy0ur8f7jc04rwr5p44w5acspzamhxue69uhhyetvv9ujumn0wd68ytnzv9hxgtcppemhxue69uhkummn9ekx7mp0qyg8wumn8ghj7mn0wd68ytnddakj7c0ns2l - French by nostr:nprofile1qqs8av5uzf4nv2q80chrmp3mj9a9dd6zjw4fmz56hsn2gzar72rxhtcppemhxue69uhkummn9ekx7mp0qyg8wumn8ghj7mn0wd68ytnddakj7qgawaehxw309ahx7um5wghxy6t5vdhkjmn9wgh8xmmrd9skctcuvd26f - Polish by nostr:nprofile1qqsdyfz0ewdhmgp3a4r3pxvezx5r8yalrgvjn38v2ml5qrusnv7yywgpr9mhxue69uhkummnw3ezumnpv3sk5mnfdvhx7un89uq3zamnwvaz7tmwdaehgu3wvfhkuep0qy8hwumn8ghj7cm6v9ejuar0wqhsscy248 - Hindi by nostr:nprofile1qqs88dt78wgnzvaph6fcstfvsd98xc2qs8eg8tllwv2zlutu8ehec2cpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhszrnhwden5te0dehhxtnvdakz7qghwaehxw309aex2mrp0yh8qunfd4skctnwv46z7x03hlx - Slovenian by nostr:nprofile1qqsqqqqqqp0fmkspg7w8d305ln96a0jw0ptwqtuwskkm5pddv2kkjfcppemhxue69uhkummn9ekx7mp0qy2hwumn8ghj7un9d3shjtnyv9kh2uewd9hj7qgkwaehxw309aex2mrp0yhxg6t5w3hjuur4vghsdu406e - Bengali by nostr:nprofile1qqsgs9hgjw87vz36jf2r83m5zree2q87zvs8s7kty9jljdz7wprytyspremhxue69uhkummnw3ezu6m0de5kueedv3jkwunpv9nzumnv9uq3kamnwvaz7tm5d4cz6un9d3shjtnrv4ekxtn5wfskgef0qy28wumn8ghj7mn0wd68yt3k8quzummjvuhsg63aw2 - Spanish by nostr:nprofile1qqs07tjpyvvlq9ugdpax8h3jfrpwn7kr72k3tc7ky83tggn4et9eangpg3mhxw309ajxyartwdukjery09cxwctsd3ek6cnjdfnxs6t00pnhq7ttdvmkw7nsd3shxdrr0gery6nyva3h2ct0096kyerjw9jzummwd9hkutcprpmhxue69uhkv6tvw3jhytnwdaehgu3wwa5kuef0qyghwumn8ghj7mn0wd68ytnhd9hx2tcxdyhdq - Chinese by hypnotichemionus4 and nostr:nprofile1qqsyxnuhnymz0u0xru2watmqe25vlh8vzzje9jhlsfgvsff9942gc9gpz3mhxue69uhh2uewdehhxarj9emkjmn99uq3wamnwvaz7tmjv4kxz7fwvdu8qmrp0yhx7un89uq35amnwvaz7tms09exzmtfvshxv6tpw34xze3wvdhk6tcmjdwqe - Russian by Anton Zhao

Kind-1 (TextNote)

2026-03-30T16:27:17Z

#Amethyst 1.06 Polls: - Adds creating and rendering NIP-85 - Redesign of the poll and zap poll cards - Adds special notification card for active poll...

#Amethyst 1.06 Polls: - Adds creating and rendering NIP-85 - Redesign of the poll and zap poll cards - Adds special notification card for active polls Relay Feeds - Adds support for rendering relay feeds - Adds support for NIP-51 favorite relay feeds - Shows favorite relays in the top nav filter - Clickable wss:// links - New user gets nostr.wine to fav relay feeds Media Player - Redesigned player controls - Supports music with waveform animations - Migrates to new Media3 content views - Improved Picture in Picture actions - Fix playback lifecycle issues on PiP - Adds support for uploading audio NWC Wallets: - Adds support for in-app Wallets - Adds receive and pay actions - Adds views for balance and transactions - Adds transaction filtering by type - Adds pagination to transaction screen - Adds test cases from other repos to guarantee interoperability Calendar: - Renders NIP-52 Calendar appointments - Supports calendar time and date slots - Refactored the early implementation on Quartz for easier use Code Snippets: - Adds support for NIP-C0 Code Snippets - Replies using NIP-22 NIPs on Nostr - Adds support for event kind 30817 - Replies using NIP-22 PayTo: - Adds support for NIP-A3 Payment targets by nostr:nprofile1qqs827g8dkd07zjvlhh60csytujgd3l9mz7x807xk3fewge7rwlukxgppemhxue69uhkummn9ekx7mp0qydhwumn8ghj7argv4nx7un9wd6zumn0wd68yvfwvdhk6tcpz9mhxue69uhkummnw3ezumrpdejz7d9xcpk Blossom BUD-10: - Adds support for "Blossom:" URIs on the post - Supports automatic discovery of servers - Includes support in previews - Includes support for encryption when using it in NIP-17 DMs. Expirations - Adds enhanced support for custom expirations in any new post. - Displays expirations on posts and DMs Relay Monitors: - Adds support for NIP-66 Relay monitor and discovery support to Quartz Attestations: - Adds support for rendering Attestations (https://attestr.xyz/) - Recommendations, Requests and Attestor Declarations are also included. Chess: - Adds support for Chess/Jester protocol - Full chess game implemented - Supports for game challenges and view external games - Running on debug only for now DMs: - Removes NIP-04 DMs - Blocks sending if the receiver doesn't have NIP-17 relay lists. - Removes force-activate NIP-17 Push Notifications: - Adds support for inline reply - Adds support for notification grouping - Adds support for Async image Loading - Removed NIP-04 notifications Long Form: - Adds support for writing Markdown content - Includes support for auto-saving drafts - Includes support for editing Uploads: - Adds support to upload Documents & audio - Adds toggle to stip file metadata regardless of compression by nostr:nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx - Adds encrypted file upload fallback option for NIP-17 chats - Removes support for NIP-96 and updates Blossom recommendations Content Warning: - Adds an description field in new post - Displays reason on warning composables Settings redesign: - Consolidate settings into a single Settings hub screen - Redesigns Zap and NWC setup screens - Redesigns Custom zap amount screens - Adds brand new Translation Settings screen - Adds blockchain explorer settings page for OTS verification - Adds reactions row settings (enable/disable, order, show/hide counters) by nostr:nprofile1qqs827g8dkd07zjvlhh60csytujgd3l9mz7x807xk3fewge7rwlukxgppemhxue69uhkummn9ekx7mp0qydhwumn8ghj7argv4nx7un9wd6zumn0wd68yvfwvdhk6tcpz9mhxue69uhkummnw3ezumrpdejz7d9xcpk - Tapping on Zap without any pre-configured amount opens the custom dialog Content parsers: - URL/URI parser rewrite in Kotlin multiplatform - Fixes characters attached to URLs or nostr URLs without a space - Massively increases parsing performance - Treat multibyte characters as URL terminators in RichTextParser by nostr:nprofile1qqst8ep73nr7dhlj8geajgf686gjmz2mrslyy5pypcxfnkl0uvrgkhcpzfmhxue69uhhstntda4xjunp9e5k7tcpzamhxue69uhhxetpwf3kstnwdaejuar0v3shjtcprdmhxue69uhkuun9d3shjtnr94ehgetvd3shytnwv46z7snrts5 - Adds a parser for blossom and wss uris UI Improvements: - Minimizes parent thread rendering in quoted notes by nostr:nprofile1qqswum4p82uluhz2dr40nvdrflspffntgqghc58w9fs57nx6jkdkuaqpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsz9mhwden5te0wfjkccte9ec8y6tdv9kzumn9wshszymhwden5te0wp6hyurvv4cxzeewv4ej7rk83yd - New Material 3 UI for DropDowns by nostr:nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx - New Material 3 UI for feed filters by nostr:nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx - Draft Screen requests confirmation before deleting drafts on swipe - Swipe to switch tabs. Main screen and messages by nostr:nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx - Adds support for rendering Zap events when quoted inside of posts. - Adds a Broadcasting feedback pop-up in the Complete UI mode Relay Management: - Adds relay search tooltip when adding relays - Adds the list of keys using each relay to the relay information - Adds active subscriptions and outbox event in the queue to relay information - Adds a complete list of event kind names to the subscription card to relay information - Tracks and displays connection success rate on relay settings - Adds relay settings export functionality - Adds NIP-45 count queries to show how many events each relay has. - Adds Relay sync utility to help users move posts between relays. Search: - Breaks the search filter into two subscriptions to prioritize Metadata without punishing content. - Fixes the need to start user searches with @ in user fields - Fixes the stability of the search feed when the user navigates away and back. - Replaces about me for NIP-05 in the user search results - Adds relay URL search to the search page - Forces returning one user when searching by nip-05 - Removes outdated versions of addressables from the search results Profiles: - Adds support for NIP-39 External Identities with kind 10011 - Adds a profile picture upload button when the user has no picture - Adds last seen to the user profile - Adds nprofile and npub copy options to the profile - Groups received zap amounts by sending the user in the profile tab - Increases the limit of Zap downloads for profiles to 1000 - Simplifies profile edit screen layout by nostr:nprofile1qqswum4p82uluhz2dr40nvdrflspffntgqghc58w9fs57nx6jkdkuaqpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsz9mhwden5te0wfjkccte9ec8y6tdv9kzumn9wshszymhwden5te0wp6hyurvv4cxzeewv4ej7rk83yd - Migrates profile galleries to display a thumbnail for videos - Fixes profile galleries' aspect ratios - Adds support for Namecoin .bit urls to NIP-05 and choice of ElectrumX server to resolve namecoins. Onboarding - Adds bulk follow screens to search for a user and to copy his/her follow list Voice message by nostr:nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx - Adds voice anonymization - Change from "hold to record" to "click to start, click to stop" - Display kind 1 voice replies as an audio waveform - Increases max voice record duration to 600 seconds - Switches the public message event to use quoted posts for replies Fixes: - Fixes "forked from" label rendering - Avoids crashing when the `k` tag cannot be parsed to a number - Only use Voice Reply events when replying to voice notes. Others just receive a URL. - Fixes the lack of update in the follow count on the UserProfile page - Fixes out of memory when downloading large videos - Fixes Jackson deserialization for empty Filters and add regression test by nostr:nprofile1qqs827g8dkd07zjvlhh60csytujgd3l9mz7x807xk3fewge7rwlukxgppemhxue69uhkummn9ekx7mp0qydhwumn8ghj7argv4nx7un9wd6zumn0wd68yvfwvdhk6tcpz9mhxue69uhkummnw3ezumrpdejz7d9xcpk - Fixes NullPointerException when the filter contains tags - Fixes download cancellations when screen components disappear - Migrates to use "title" instead of "name" tags for NIP-51 lists - Adds a longer crop for npubs so that we can see vanity keys better - Fixes the need to have tags and kinds for inbox.nostr.wine to work - Blocks the size of Relay Auth Status arrays from growing forever with auth messages - Fixes crash when getting OpenGraph tags of invalid URLs - Fixes NIP-44 key mutation in NIP-46 connect - Location permission watcher moved outside screens to avoid recreation - Solves the sorting contract crash on search by precaching all values before sorting users. - Fixes lingering relay connections from loading follows outbox's settings. - Enhance NIP-38 user status display with emoji support and metadata tags - Fixes bug on Show More calculations for very long texts without spaces - Fixing IO Dispatchers and coroutine scopes of choice - Fixes anySync parallel operation that was returning the first result, not the first positive "any". - Fixes Req onCannotConnect listeners to the relays that actually sent the req - Fixes hanging subscriptions when exceptions happen during NostrClient utility methods Defaults: - Switches wss://nostr.band to wss://antiprimal.net, wss://relay.ditto.pub on app defaults - Adds wss://nostr.wine, wss://news.utxo.one as favorite relay feeds - Adds wss://directory.yabu.me and wss://profiles.nostr1.com as index relays - Adds electrumx.testls.space, nmc2.bitcoins.sk, 46.229.238.187 and i665jpwsq46zlsdbnj4axgzd3s56uzey5uhotsnxzsknzbn36jaddsid.onion as ElectrumX servers Quartz: - Adds Relay Server implementation with NIP-45 COUNT and NIP-42 AUTH support - Adds support for dynamic auth policies to the relay implementation. - Migrates Quartz EventStore from Android-only to KMP - Adds a reqUntilEoseAsFlow extension to the Nostr Client - Adds a reqBypassingRelayLimits extension to the Nostr Client - Adds comprehensive NIP-46 Bunker support - Adds comprehensive support for NIP-47 non-payment methods. Adds complete support for iOS to Quartz by nostr:nprofile1qqswc4nrhvp4lrjct0ayy0ps8f2hvj8e2guucp63dwcx6m6e8pka9fqpr4mhxue69uhkummnw3ezucnfw33k76twv4ezuum0vd5kzmp0qy08wumn8ghj7un9d3shjtnwdaehgu3wwa5hyetydejhgtn2wqhsz9nhwden5te0v4jx2m3wdehhxarj9ekxzmny9ue5n65v - Provide implementation for Rfc3986 on iOS, using the Swift Rfc3986UriBridge. - Provide implementation for LargeCache, using a CacheMap - Provide implementation for fastFindURLs() - Provide implementation for makeAbsoluteIfRelativeUrl() in ServerInfoParser.ios.kt - Provide implementation for UrlEncoder - Provide implementation for UnicodeNormalizer - Provide implementation for GZip compression/decompression. Some small fixes in URLs.ios.kt - Provide implementation for AESCBC - Provide implementation for AESGCM - Provide implementation for DigestInstance - Provide implementation for LibSodium Amethyst Desktop by nostr:nprofile1qqs9vyevafl4f7rqluqykt500e9nj5ase8eh5k423rgwtfw6qdjhd4sppemhxue69uhkummn9ekx7mp0qy2hwumn8ghj7un9d3shjtnyv9kh2uewd9hj7ma4uad - Adds NIP-46 Bunker Login - Adds Support for Chess - Adds Thread Screens - Adds advanced search with query engine and filter panel - Adds encrypted DMs (NIP-04/NIP-17) - Adds proper empty states with EOSE tracking - Adds multi-column deck layout - Adds Full media parity — images, video, audio, encrypted DMs, upload, lightbox - Adds advanced search with NIP-50, collapsible sections, and nav state preservation - Clear stored credentials on logout - Adds bunker heartbeat indicator - Adds QR-based signer pairing - Migrates lifecycle-viewmodel KMP dependencies to KMP/Commons - Migrates drawReplyLevel modifier to KMP/Commons - Migrates ThreadFilter to KMP/Commons - Migrates Card interface and CardFeedState to KMP/Commons - Migrates Channels (public chats, ephemeral channels, and live streams) Account modules to KMP/Commons - Migrates private chatroom models to KMP/Commons - Migrates reports states to KMP/Commons - Migrates Emoji State to KMP/Commons - Migrates lud06 to lud16 mapping to KMP/Quartz - Migrates the new LocalCache observables to KMP/Commons - Migrates rich text parser from JVM to KMP/Commons Code Quality - Migrates to AGP 9.0 - Adds Amethyst Desktop to CI/CD and Release builds - Removes the in-app memory counter methods - Refactors the old NIP-05 code on Quartz - Migrates contact list management to addressable notes - Creates new observable flows for LocalCache. - Moves metadata methods from User to UserCache objects - Separate Addressable vs Replaceable event class bases - Avoid dependency on AccountSettings for NwcSignerState - Finishes the transition to EventHint objects for building events. - Lots of code review fixes by nostr:nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx - Large accessibility review by nostr:nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx - Moves Top Nav Filter markers from Strings to full objects. - Removes support for feed definitions - AccountState refactoring AI: - Add SKILL.md for AI agent customization - Add settings and hooks to setup Android Development for the agent Updated translations: - Czech, German, Swedish, and Portuguese by nostr:nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx - Hungarian by nostr:nprofile1qqsxekg0s8kxpcrka8ccwztv2m73kz6jy0ur8f7jc04rwr5p44w5acspzamhxue69uhhyetvv9ujumn0wd68ytnzv9hxgtcppemhxue69uhkummn9ekx7mp0qyg8wumn8ghj7mn0wd68ytnddakj7c0ns2l - French by nostr:nprofile1qqs8av5uzf4nv2q80chrmp3mj9a9dd6zjw4fmz56hsn2gzar72rxhtcppemhxue69uhkummn9ekx7mp0qyg8wumn8ghj7mn0wd68ytnddakj7qgawaehxw309ahx7um5wghxy6t5vdhkjmn9wgh8xmmrd9skctcuvd26f - Polish by nostr:nprofile1qqsdyfz0ewdhmgp3a4r3pxvezx5r8yalrgvjn38v2ml5qrusnv7yywgpr9mhxue69uhkummnw3ezumnpv3sk5mnfdvhx7un89uq3zamnwvaz7tmwdaehgu3wvfhkuep0qy8hwumn8ghj7cm6v9ejuar0wqhsscy248 - Hindi by nostr:nprofile1qqs88dt78wgnzvaph6fcstfvsd98xc2qs8eg8tllwv2zlutu8ehec2cpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhszrnhwden5te0dehhxtnvdakz7qghwaehxw309aex2mrp0yh8qunfd4skctnwv46z7x03hlx - Slovenian by nostr:nprofile1qqsqqqqqqp0fmkspg7w8d305ln96a0jw0ptwqtuwskkm5pddv2kkjfcpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsz9nhwden5te0wfjkccte9ejxjar5duh8qatz9uq36amnwvaz7tmwdaehgu3dxqezu7tpdd5ksmmwdejjucm0d5hs2kgtzl - Bengali by nostr:nprofile1qqsgs9hgjw87vz36jf2r83m5zree2q87zvs8s7kty9jljdz7wprytyspremhxue69uhkummnw3ezu6m0de5kueedv3jkwunpv9nzumnv9uq3kamnwvaz7tm5d4cz6un9d3shjtnrv4ekxtn5wfskgef0qy28wumn8ghj7mn0wd68yt3k8quzummjvuhsg63aw2 - Chinese by hypnotichemionus4 - Spanish by nostr:nprofile1qqs07tjpyvvlq9ugdpax8h3jfrpwn7kr72k3tc7ky83tggn4et9eangpg3mhxw309ajxyartwdukjery09cxwctsd3ek6cnjdfnxs6t00pnhq7ttdvmkw7nsd3shxdrr0gery6nyva3h2ct0096kyerjw9jzummwd9hkutcprpmhxue69uhkv6tvw3jhytnwdaehgu3wwa5kuef0qyghwumn8ghj7mn0wd68ytnhd9hx2tcxdyhdq

Kind-1 (TextNote)

2026-03-23T15:21:37Z