<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <updated>2026-05-16T17:00:03Z</updated>
  <generator>https://nostr.now</generator>

  <title>Nostr notes by amethyst</title>
  <author>
    <name>amethyst</name>
  </author>
  <link rel="self" type="application/atom+xml" href="https://nostr.now/npub142gywvjkq0dv6nupggyn2euhx4nduwc7yz5f24ah9rpmunr2s39se3xrj0.rss" />
  <link href="https://nostr.now/npub142gywvjkq0dv6nupggyn2euhx4nduwc7yz5f24ah9rpmunr2s39se3xrj0" />
  <id>https://nostr.now/npub142gywvjkq0dv6nupggyn2euhx4nduwc7yz5f24ah9rpmunr2s39se3xrj0</id>
  <icon>https://image.nostr.build/11634d2402a4c037cced83c58387271e1777e3f1099bf5c03d05b83817ce5ee5.jpg</icon>
  <logo>https://image.nostr.build/11634d2402a4c037cced83c58387271e1777e3f1099bf5c03d05b83817ce5ee5.jpg</logo>




  <entry>
    <id>https://nostr.now/nevent1qqszet6d82zkjny7a96wqyllqt2g5t94nesgwkdcwn23xqal2v0m6tqzyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykgeptq6</id>
    
      <title type="html">do videos play well on Windows? checking this link issue. It ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqszet6d82zkjny7a96wqyllqt2g5t94nesgwkdcwn23xqal2v0m6tqzyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykgeptq6" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsdnd404zsafmd5j4va88rjjukrsqs7dqm24r065j9s2uj8zqkxz5qpzamhxue69uhhyetvv9ujuurjd9kkzmpwdejhgtcmlpwyd&#39;&gt;nevent1q…pwyd&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;do videos play well on Windows? checking this link issue. It should send to the default browser...
    </content>
    <updated>2026-10-27T20:52:08Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsft7rucetzppd28szspkn460sy2ahm7q0zagj8ka5wp34nqzn05cqzyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zyk4y30f9</id>
    
      <title type="html">#Amethyst v1.20.0: Desktop Self-Update, an Emoji Picker, ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsft7rucetzppd28szspkn460sy2ahm7q0zagj8ka5wp34nqzn05cqzyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zyk4y30f9" />
    <content type="html">
      #Amethyst v1.20.0: Desktop Self-Update, an Emoji Picker, Hand-Drawn Posts, and Developer Tools&lt;br/&gt;&lt;br/&gt;Highlights:&lt;br/&gt;&lt;br/&gt;- **Updates the desktop app by itself** from releases signed with&lt;br/&gt;  Amethyst&amp;#39;s key over Nostr (NIP-82), and tells Homebrew, Flatpak and&lt;br/&gt;  read-only installs how to update instead.&lt;br/&gt;- Adds an **emoji picker** to every composer: Unicode emoji with search and&lt;br/&gt;  skin tones, your favorites, and a section per custom emoji pack. It docks&lt;br/&gt;  where the keyboard would be.&lt;br/&gt;- Lets you **draw a post by hand** and post it as a GIF that replays the&lt;br/&gt;  drawing.&lt;br/&gt;- Gives **~250 new event kinds their own cards** instead of raw JSON or&lt;br/&gt;  ciphertext, and a readable fallback card for kinds no one knows yet.&lt;br/&gt;- Adds a small **Developer Tools**: a NIP-19 converter, an event inspector, a kind&lt;br/&gt;  browser that samples real events, and a raw relay console.&lt;br/&gt;- Opens a **profile card on mouse-over** of faces and names, with follow,&lt;br/&gt;  message and block.&lt;br/&gt;- **Spell-checks** the desktop composers and prose fields.&lt;br/&gt;- Creates **git repositories** from the app, and attaches pictures to git&lt;br/&gt;  issues.&lt;br/&gt;- Signs in via NIP-46 with a **NIP-05 address** through the signer its domain&lt;br/&gt;  advertises, and shows NIP-46 `auth_url` pages instead of waiting silently.&lt;br/&gt;- Brings **Marmot groups up to MDK v0.14.0** (White Noise): encrypted&lt;br/&gt;  polls, custom emoji, admin deletion and in-group reports.&lt;br/&gt;- Parses relay messages with **Kite**, Quartz&amp;#39;s own JSON engine, in about&lt;br/&gt;  half the time of the old path.&lt;br/&gt;&lt;br/&gt;## New Features&lt;br/&gt;&lt;br/&gt;### Emoji Picker and Reactions&lt;br/&gt;&lt;br/&gt;- Adds an emoji picker to the note, comment, DM, public chat, Concord and&lt;br/&gt;  Nest composers: Unicode categories, name search, skin tones, your&lt;br/&gt;  reaction choices as Favorites, and one section per selected NIP-30 pack.&lt;br/&gt;- Docks the picker as a panel at the bottom of the view that owns the&lt;br/&gt;  composer, keeps it open between picks, and closes it with Back, Esc, its&lt;br/&gt;  close button or when the keyboard comes up.&lt;br/&gt;- Draws emoji in the system&amp;#39;s color emoji font on desktop, which had no&lt;br/&gt;  way to type an emoji.&lt;br/&gt;- Rebuilds the reaction choices screen around the same picker: chosen&lt;br/&gt;  emoji as removable chips on top, one search over Unicode names and pack&lt;br/&gt;  shortcodes, and a second tap to remove a choice.&lt;br/&gt;- Saves reaction choices on every tap, signing one event for a burst of&lt;br/&gt;  taps, and drops the Save button.&lt;br/&gt;- Keeps keycaps and flags whole, and finds a choice saved in another skin&lt;br/&gt;  tone, so a tap no longer adds a near-duplicate.&lt;br/&gt;- Imports images and `.zip` archives into an emoji pack in one go, each&lt;br/&gt;  image named after its file, with a live grid of the uploads and a summary&lt;br/&gt;  of what was skipped and why.&lt;br/&gt;- Explains an empty emoji pack and offers the import from there.&lt;br/&gt;&lt;br/&gt;### Hand-Drawn Posts&lt;br/&gt;&lt;br/&gt;- Adds a Draw button to the short-note composer: brush (with stylus&lt;br/&gt;  pressure), pencil, spray, eraser and mirror, eight inks and a pen size.&lt;br/&gt;- Draws on plain paper, sticky notes, a notebook page, grid, dots, a&lt;br/&gt;  chalkboard, or your own picture, kept per account to draw on again.&lt;br/&gt;- Previews the replay before posting, then posts a looping GIF of the&lt;br/&gt;  drawing being made, plus a PNG of the finished drawing.&lt;br/&gt;- Suggests alt text with the on-device describer on the Play build.&lt;br/&gt;&lt;br/&gt;### Event Cards&lt;br/&gt;&lt;br/&gt;- Adds feed and thread cards for about 250 kinds that printed raw JSON,&lt;br/&gt;  ciphertext or nothing: DVM jobs, Buzz records, agents and workflows,&lt;br/&gt;  moderation, git CI, P2P orders, chess, drafts and many more.&lt;br/&gt;- Shows encrypted and machine-only records as one quiet &amp;#34;Private&amp;#34; line with&lt;br/&gt;  their alt text.&lt;br/&gt;- Draws kinds Quartz doesn&amp;#39;t know as a card of their title, summary,&lt;br/&gt;  picture, people, links and tags, and keeps them reachable by link.&lt;br/&gt;- Sends the author prose in those cards through the translatable rich text,&lt;br/&gt;  with links, mentions and custom emoji.&lt;br/&gt;- Adds cards for Open Markets product collections, shipping options and&lt;br/&gt;  product reviews, and status badges and shipping costs on listings.&lt;br/&gt;- Renders NIP-51 release artifact sets with their notes.&lt;br/&gt;- Draws decentralized list items in three tiers, from raw tags to custom&lt;br/&gt;  views for GitHub accounts, books and food places, with maps for places.&lt;br/&gt;- Shows a rated list item&amp;#39;s title and cover in entity ratings.&lt;br/&gt;- Turns 3D Simple Nostr Objects in place in the feed, and accepts objects&lt;br/&gt;  over 512 vertices.&lt;br/&gt;&lt;br/&gt;### Developer Tools&lt;br/&gt;&lt;br/&gt;- Adds a Developer Tools hub under Settings › App settings.&lt;br/&gt;- Converts any NIP-19 code or hex to every other encoding and opens it.&lt;br/&gt;- Inspects a pasted event, relay frame or nembed: recomputes the id,&lt;br/&gt;  verifies the signature and flags odd fields. &amp;#34;Inspect event&amp;#34; opens it&lt;br/&gt;  from a note&amp;#39;s menu.&lt;br/&gt;- Samples a kind&amp;#39;s recent events from your relays and groups them by&lt;br/&gt;  client or shape, each with a real example&amp;#39;s JSON.&lt;br/&gt;- Opens a raw WebSocket console to one relay, with REQ, COUNT and EVENT&lt;br/&gt;  builders and AUTH behind a confirmation.&lt;br/&gt;&lt;br/&gt;### Profiles and Hover Cards&lt;br/&gt;&lt;br/&gt;- Opens a profile card after resting the mouse 250 ms on a face or name,&lt;br/&gt;  in feeds, threads, chats and notification galleries, with message,&lt;br/&gt;  follow, lists and the block/report menu.&lt;br/&gt;- Shows the NIP-85 follower count on the card when a provider has one.&lt;br/&gt;- Adds a Repos tab to profiles with git repositories.&lt;br/&gt;- Redesigns the edit-nickname dialog around the person&amp;#39;s avatar and name.&lt;br/&gt;- Plays GIF banners as muted images on the profile and hover card.&lt;br/&gt;&lt;br/&gt;### Git&lt;br/&gt;&lt;br/&gt;- Creates NIP-34 repositories from the Git Repositories screen, with a live&lt;br/&gt;  preview, GRASP servers and an identifier check, as `ngit init` writes them.&lt;br/&gt;- Shows the owner of an empty repository how to push the first commit.&lt;br/&gt;- Attaches pictures and videos to a new git issue.&lt;br/&gt;- Searches git repositories by author with `from:npub…`, `from:name.bit`&lt;br/&gt;  or a NIP-05, rewriting the name in place once it resolves.&lt;br/&gt;- Drops the Git Repositories inline filter, which sat hidden under the top&lt;br/&gt;  bar, for the top bar&amp;#39;s search.&lt;br/&gt;&lt;br/&gt;### Remote Signers (NIP-46)&lt;br/&gt;&lt;br/&gt;- Signs in with `name@domain` through the remote signer the domain&amp;#39;s&lt;br/&gt;  `nostr.json` advertises, instead of a read-only account.&lt;br/&gt;- Shows a signer&amp;#39;s `auth_url` page with an Open button, and takes it down&lt;br/&gt;  when the request ends.&lt;br/&gt;- Moves to the signer&amp;#39;s relays when it asks (`switch_relays`), and tells&lt;br/&gt;  the signer on logout.&lt;br/&gt;- As a signer, moves nostrconnect apps to your inbox relays, and answers a&lt;br/&gt;  pairing only once it listens on the app&amp;#39;s relays.&lt;br/&gt;- Reaches signer relays directly, like your own relays, instead of waiting&lt;br/&gt;  for Tor.&lt;br/&gt;&lt;br/&gt;### Marmot Groups&lt;br/&gt;&lt;br/&gt;- Adds encrypted polls to Marmot groups: a new poll sheet with @ mentions&lt;br/&gt;  and `:emoji:`, votes cast inside the group with Change vote, and tallies&lt;br/&gt;  counted the way MDK counts them.&lt;br/&gt;- Sends and shows custom emoji in group messages, edits, polls and&lt;br/&gt;  reactions as encrypted attachments, never fetching an emoji&amp;#39;s public URL,&lt;br/&gt;  and suggests them as you type `:` in the group composer.&lt;br/&gt;- Lets group admins delete a message for everyone (kind 4891), and reports&lt;br/&gt;  a group message inside the group, where an admin can dismiss the reports.&lt;br/&gt;- Opens each attachment with the media key of the epoch that carried it,&lt;br/&gt;  and sends an upload in the epoch that encrypted it, so a commit during an&lt;br/&gt;  upload no longer leaves members unable to open it.&lt;br/&gt;- Uses the current group-avatar scheme, publishes new members&amp;#39; commits to&lt;br/&gt;  the group&amp;#39;s relays, and keeps KeyPackages confirmed and fresh.&lt;br/&gt;- Keeps deleted group messages gone after a restart and out of&lt;br/&gt;  notifications.&lt;br/&gt;- Stops showing votes, reports and labels as chat bubbles, and shows&lt;br/&gt;  `&amp;lt;t:…&amp;gt;` timestamps in your locale.&lt;br/&gt;&lt;br/&gt;### Accent Colors and Synced Settings&lt;br/&gt;&lt;br/&gt;- Lets each account pick its own accent color under Account Settings, and&lt;br/&gt;  keeps the application color for the login screen and the rest.&lt;br/&gt;- Themes account-bound screens (signer consent, calls, nests) with their&lt;br/&gt;  account&amp;#39;s color.&lt;br/&gt;- Syncs more account settings across devices through NIP-78: home tabs,&lt;br/&gt;  feed filters, custom feeds, chat view modes, relay AUTH policy, upload&lt;br/&gt;  defaults and calls.&lt;br/&gt;&lt;br/&gt;### Notes and Feeds&lt;br/&gt;&lt;br/&gt;- Adds Show Less to expanded notes, pinned in the author column on notes&lt;br/&gt;  taller than the screen.&lt;br/&gt;- Adds a back-to-top button to every feed screen and the profile.&lt;br/&gt;- Makes Share a submenu of the 3-dot menu, and the reaction row&amp;#39;s Share&lt;br/&gt;  button a dropdown.&lt;br/&gt;- Shares a note as an image with its pictures, link previews and a still of&lt;br/&gt;  its videos, and waits for them to load.&lt;br/&gt;- Previews three relays of a relay-list card and opens long lists, up to&lt;br/&gt;  thousands of relays, in their own screen.&lt;br/&gt;- Shows each listed relay&amp;#39;s icon, name and badges, and adds it to one of&lt;br/&gt;  your relay lists in one tap.&lt;br/&gt;- Folds a Concord community&amp;#39;s actions into one menu and its description&lt;br/&gt;  into the top bar&amp;#39;s panel.&lt;br/&gt;- Opens cordn.net share links and QR codes, and folds Cordn&amp;#39;s header&lt;br/&gt;  actions into one menu.&lt;br/&gt;- Clears cookies and site data for all sites from the browser menu.&lt;br/&gt;&lt;br/&gt;## Performance&lt;br/&gt;&lt;br/&gt;- Parses relay messages with Kite, Quartz&amp;#39;s hand-written JSON engine: about&lt;br/&gt;  half the time of the Jackson path with ~40% less allocation, and 30%&lt;br/&gt;  faster again in Quartz 2.2.0.&lt;br/&gt;- Interns an event&amp;#39;s strings when the cache keeps it, not while parsing:&lt;br/&gt;  ~60% of the parse, paid even by duplicates.&lt;br/&gt;- Parses a zap receipt&amp;#39;s embedded request only when it is read.&lt;br/&gt;- Shares one object per relay URL: re-reading an 8,464-relay list went from&lt;br/&gt;  33-150 ms to 6-8 ms.&lt;br/&gt;- Stops `fetchAsFlow` and `subscribeAsFlow` copying the whole list per&lt;br/&gt;  event, ~12.5M copies for a 5,000-event answer.&lt;br/&gt;- Prunes muted authors in one pass per store, instead of one scan per mute.&lt;br/&gt;- Stops verifying new kind 0 and kind 5 events twice, and rebuilding the&lt;br/&gt;  notification cards twice per deletion.&lt;br/&gt;- Lets galleries wait for their first image&amp;#39;s shape instead of polling it&lt;br/&gt;  five times a second.&lt;br/&gt;- Sizes Android&amp;#39;s warm video players by RAM and prefetches the first&lt;br/&gt;  512 KiB of the videos below the screen, releasing them under memory&lt;br/&gt;  pressure.&lt;br/&gt;- Starts the watched video first on desktop media feeds: a cold Shorts open&lt;br/&gt;  went from 8-13 s to 4-5 s on a 4 MB/s link.&lt;br/&gt;- Stops reading a link preview&amp;#39;s page at the end of its head: a GitHub repo&lt;br/&gt;  page reads ~34 KB instead of ~495 KB.&lt;br/&gt;&lt;br/&gt;## Improvements and Bug fixes&lt;br/&gt;&lt;br/&gt;- Loads a single relay picked in a feed&amp;#39;s top bar, which sent no request in&lt;br/&gt;  25 feeds (Pictures, Shorts, Videos, Music, Polls and more).&lt;br/&gt;- Trusts the relays you favorited as feeds, which stayed unconnected.&lt;br/&gt;- Fixes a second profile, community, repository or follow pack on the same&lt;br/&gt;  relay getting only the first one&amp;#39;s recent history.&lt;br/&gt;- Fixes an older version of an article, wiki or listing replacing a newer&lt;br/&gt;  one, and an old deletion removing the current version.&lt;br/&gt;- Keeps a deletion that lands during a feed update from coming back.&lt;br/&gt;- Watches for newer versions of on-screen articles and lists.&lt;br/&gt;- Checks an NWC response&amp;#39;s signature before it uses up the pending payment.&lt;br/&gt;- Validates nSite path hashes, rumor ids, NIP-28 channel metadata, private&lt;br/&gt;  zap targets and nutzap amounts from other people.&lt;br/&gt;- Asks before acting on `nostrconnect://` and relay-group invite links.&lt;br/&gt;- Stops a malformed lightning address crashing the app on OkHttp&amp;#39;s thread.&lt;br/&gt;- Bounds nembed inflation to 256 KiB and parses `lnurlp` URLs without a&lt;br/&gt;  backtracking regex.&lt;br/&gt;- Keeps pinned DM rooms on top when their newest entry is a draft.&lt;br/&gt;- Keeps bare URLs whole in markdown notes, so `_SL1499_.jpg` images load.&lt;br/&gt;- Shows anamorphic videos at their display shape, and uploads them that way.&lt;br/&gt;- Keeps glyph icons at their weight under Android&amp;#39;s Bold text.&lt;br/&gt;- Stops the notification service crashing on start with&lt;br/&gt;  `ForegroundServiceDidNotStartInTimeException`.&lt;br/&gt;- Fixes the scheduled-posts list crashing, and drains scheduled posts&lt;br/&gt;  through the shared publisher with its signature checks.&lt;br/&gt;- Says when relays are waiting for a Tor that is not coming up: the&lt;br/&gt;  drawer&amp;#39;s Tor icon turns red after a minute, and relay lists mark onion&lt;br/&gt;  badges &amp;#34;Waiting for Tor&amp;#34;.&lt;br/&gt;- Lets DM and untrusted relays connect after &amp;#34;Continue without Tor&amp;#34; on&lt;br/&gt;  Android, which still waited for Tor.&lt;br/&gt;- Sends reactions, deletions, poll votes and reports on a Marmot or Concord&lt;br/&gt;  message through its room. Voting on a group poll from its notification&lt;br/&gt;  used to sign a public event.&lt;br/&gt;- Shows edited text in Concord previews, and asks before &amp;#34;Delete for&lt;br/&gt;  everyone&amp;#34;.&lt;br/&gt;- Gives freshly logged-in accounts their Cashu counter store, which failed&lt;br/&gt;  until a restart.&lt;br/&gt;- Fixes a nostrconnect login hang on Tor, a cancelled nutzap shown as a mint&lt;br/&gt;  failure, and a cancelled Marmot reset left half done.&lt;br/&gt;- Fixes a crash while typing a coordinator pubkey in Cordn and a crash from&lt;br/&gt;  duplicate Concord list entries.&lt;br/&gt;- Keeps a restarted audio-room publisher&amp;#39;s audio after its broadcast ends.&lt;br/&gt;- Fixes follow toggles answering for the previous hashtag, geohash or relay.&lt;br/&gt;- Finds UI Preferences when searching for its options.&lt;br/&gt;- Reads &amp;#34;What should we call you?&amp;#34; on sign-up.&lt;br/&gt;&lt;br/&gt;## Desktop&lt;br/&gt;&lt;br/&gt;- Updates itself from GitHub Release installs (DMG, MSI, zip, AppImage,&lt;br/&gt;  tarball, deb/rpm), checking each file&amp;#39;s SHA-256 against the signed&lt;br/&gt;  release, and shows the release notes. Settings › App › Updates controls it.&lt;br/&gt;- Draws OpenStreetMap maps for places, locations, geocaches and the&lt;br/&gt;  geocaches Map tab.&lt;br/&gt;- Opens `nostr:` and `amethyst:` links, routing them to a running copy.&lt;br/&gt;- Mirrors the drawer in the macOS menu bar, with a submenu per settings&lt;br/&gt;  category and a Window menu.&lt;br/&gt;- Draws at the desktop&amp;#39;s fractional scale on X11 (125%, 150%).&lt;br/&gt;- Downscales images with mipmaps, so avatars are no longer blocky, and&lt;br/&gt;  decodes large JPEGs at a fraction of their size.&lt;br/&gt;- Plays audio-only media (music, podcasts, voice notes) on macOS and&lt;br/&gt;  Windows.&lt;br/&gt;- Gives each on-screen video card its own player, keeps videos in a 2 GB&lt;br/&gt;  disk cache, shapes Shorts before they play, and replays ended videos.&lt;br/&gt;- Pauses a feed video on leaving its screen unless you chose to watch it.&lt;br/&gt;- Folds the notifications panel into a strip with a missed-count badge.&lt;br/&gt;- Shares notes as images to the clipboard.&lt;br/&gt;- Offers a QR code and Copy for a payment no installed wallet can open.&lt;br/&gt;- Scans QR codes from a file or the clipboard, posts calendar reminders and&lt;br/&gt;  refreshes the Web of Trust.&lt;br/&gt;- Runs a second copy beside the first with its own Tor and caches.&lt;br/&gt;- Mines proof of work with all cores but two, and shows the live hash rate.&lt;br/&gt;- Stops GStreamer&amp;#39;s segfault trap from closing the app on Linux.&lt;br/&gt;- Fixes the reactions grid crashing on scroll, and dark-mode white columns&lt;br/&gt;  in the deck and chat panes.&lt;br/&gt;&lt;br/&gt;## Cli&lt;br/&gt;&lt;br/&gt;- Adds `amy releases publish`, which signs the desktop, Zapstore (APK) and&lt;br/&gt;  Orchard (Flatpak) NIP-82 events in one run.&lt;br/&gt;- Adds `amy emoji` for NIP-30 packs and bulk imports from a folder, `.zip`&lt;br/&gt;  or list.&lt;br/&gt;- Adds `amy publish --file` and `amy fetch --out` to move a corpus between&lt;br/&gt;  relays.&lt;br/&gt;- Resumes `amy fetch --paginate` after a dropped connection.&lt;br/&gt;- **Breaking:** `amy fetch --paginate` exits 1 with `incomplete` on a&lt;br/&gt;  partial walk, and reports silent relays as `timeout`.&lt;br/&gt;- Logs in with `amy login name@domain` through the domain&amp;#39;s signer, and&lt;br/&gt;  sends `switch_relays` and `logout` from bunker accounts.&lt;br/&gt;- Saves a bunker account under the key its signer signs for.&lt;br/&gt;- Speaks MDK v0.14.0 in `amy marmot`: `message delete` removes another&lt;br/&gt;  member&amp;#39;s message as an admin, `group download-image` is new, `group&lt;br/&gt;  set-image` accepts `--mime`, and media sends stay in their epoch.&lt;br/&gt;- Writes `--json` output and `~/.amy` files with kotlinx, byte for byte as&lt;br/&gt;  before.&lt;br/&gt;&lt;br/&gt;## Quartz&lt;br/&gt;&lt;br/&gt;- Moves to its own repository, vitorpamplona/quartz, published to Maven&lt;br/&gt;  Central. Crypto now comes from crypto-kmp, QUIC from quic-kmp, MLS from&lt;br/&gt;  mls-kmp, and the Marmot and cordn group managers from marmot-kmp and&lt;br/&gt;  cordn-kmp.&lt;br/&gt;- Adds Kite (`JsonEngine.KITE`), a hand-written reader and writer for every&lt;br/&gt;  Nostr message, byte-identical to Jackson&amp;#39;s output.&lt;br/&gt;- Adds `publishStream` for windowed bulk publishing, `keepConnected`, and&lt;br/&gt;  `fetchAllPagesResuming`.&lt;br/&gt;- Replays a fresh connection&amp;#39;s subscriptions before anything else goes out,&lt;br/&gt;  keeps the messages a relay sent before closing, and redials when the&lt;br/&gt;  backoff ends.&lt;br/&gt;- Fixes lost listener registrations under concurrency, the pool dropping a&lt;br/&gt;  relay under an in-flight EVENT, and `fetchAsFlow` never ending on a&lt;br/&gt;  refusal.&lt;br/&gt;- Adds Open Markets collections, shipping options and reviews, and&lt;br/&gt;  OpenAgents capability and package events.&lt;br/&gt;- Picks full or midstate SHA-256 per event for NIP-13 mining.&lt;br/&gt;- Rejects malformed ids, keys and kinds in `naddr`, `nevent` and NIP-10&lt;br/&gt;  tags, and keeps NIP-11 documents with kind ranges or large fees.&lt;br/&gt;&lt;br/&gt;## Geode&lt;br/&gt;&lt;br/&gt;- Answers an oversized EVENT with `OK false` instead of only a NOTICE.&lt;br/&gt;- Stops a negative filter limit from reading the whole store.&lt;br/&gt;- Fixes a blank search narrowing a filter, and a `tagsAll` `#d` deleting&lt;br/&gt;  every row.&lt;br/&gt;&lt;br/&gt;## Build &amp;amp; Documentation&lt;br/&gt;&lt;br/&gt;- Removes Jackson from the app modules, which moved to kotlinx.&lt;br/&gt;- Runs the CI lint job&amp;#39;s KMP metadata compiles before pushing to main.&lt;br/&gt;- Runs each JVM suite once in CI and starts every job at once.&lt;br/&gt;- Fits a pre-push build in 16 GB of RAM.&lt;br/&gt;- Adds a Flathub manifest that builds Amethyst from source, and a Linux&lt;br/&gt;  screenshot in the metainfo.&lt;br/&gt;- Moves the release macOS legs to macos-15 and pins the JetBrains Runtime.&lt;br/&gt;- Generates the changelog&amp;#39;s contributors with `scripts/contributors.sh`.&lt;br/&gt;- Moves to marmot-kmp 2.0.0 and mls-kmp 1.2.0.&lt;br/&gt;- Bumps Gradle, Kotlin, Compose Multiplatform and dependencies.&lt;br/&gt;- Bumps `appCode` to 465.&lt;br/&gt;&lt;br/&gt;## Contributors&lt;br/&gt;&lt;br/&gt;- &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsyvrp9u6p0mfur9dfdru3d853tx9mdjuhkphxuxgfwmryja7zsvhqpzamhxue69uhhv6t5daezumn0wd68yvfwvdhk6tcpzpmhxue69uhkummnw3ezumt0d5hszythwden5te0dehhxarj9emkjmn99uwfvhl6&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;VitorPamplona&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…vhl6&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wdjkuerfwshxummnvekxzun99e3k7mf0qythwumn8ghj7un9d3shjtnswf5k6ctv9ehx2ap028kcfw&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;⚡ Dee Kay ⚡&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…kcfw&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsyxxz7mm9kwkyjsf935da90ulyqlaautk6wgq68q5m3n6t5lzmfuqur0zgt&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;mstrofnone&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…0zgt&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;## Translations&lt;br/&gt;&lt;br/&gt;- Czech, German, Swedish, and Brazilian Portuguese by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wdjkuerfwshxummnvekxzun99e3k7mf0qythwumn8ghj7un9d3shjtnswf5k6ctv9ehx2ap028kcfw&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;⚡ Dee Kay ⚡&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…kcfw&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Hindi by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqs88dt78wgnzvaph6fcstfvsd98xc2qs8eg8tllwv2zlutu8ehec2cppemhxue69uhkummn9ekx7mp0qythwumn8ghj7un9d3shjtnswf5k6ctv9ehx2ap0qyt8wumn8ghj7un9d3shjtnyd968gmewwp6kytcmlz0lu&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;राज&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…z0lu&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Hungarian by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsxekg0s8kxpcrka8ccwztv2m73kz6jy0ur8f7jc04rwr5p44w5acspzamhxue69uhhyetvv9ujumn0wd68ytnzv9hxgtcppemhxue69uhkummn9ekx7mp0qyg8wumn8ghj7mn0wd68ytnddakj7c0ns2l&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;summoner&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…ns2l&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Polish by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsdyfz0ewdhmgp3a4r3pxvezx5r8yalrgvjn38v2ml5qrusnv7yywgpzemhxue69uhkummnw3ezucm6v9ejuurvw4ej7qg0waehxw309a3h5ctn9e6x7up0qyg8wumn8ghj7cm6v9ejuurvw4ej79s8c53&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;Polak&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…8c53&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Slovenian by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsqqqqqqp0fmkspg7w8d305ln96a0jw0ptwqtuwskkm5pddv2kkjfcppemhxue69uhkummn9ekx7mp0qyt8wumn8ghj7un9d3shjtnyd968gmewwp6kytcpzemhxue69uhhyetvv9ujumt0wd68ytnsw43z7s23gag&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;StellarStoic&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…3gag&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Uzbek by fiddleway
    </content>
    <updated>2026-10-24T20:15:29Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsz8xhgv35vmw0ydgtx4q3p29n6wf0jkv83a6r0c0x86nu8jzvtfvqzyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykev02ch</id>
    
      <title type="html">#Amethyst v1.19.0: A New Login, Remote Signers on Android, ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsz8xhgv35vmw0ydgtx4q3p29n6wf0jkv83a6r0c0x86nu8jzvtfvqzyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykev02ch" />
    <content type="html">
      #Amethyst v1.19.0: A New Login, Remote Signers on Android, Wayland, and Marketplace Cards&lt;br/&gt;&lt;br/&gt;Highlights:&lt;br/&gt;&lt;br/&gt;- Redesigns the **login and sign-up screens** around signers: your signer&lt;br/&gt;  app or a remote signer first, then the key field, on every platform.&lt;br/&gt;- Adds **NIP-46 remote signer login on Android**, and makes it work with&lt;br/&gt;  Opal and other signers that percent-encode their bunker addresses.&lt;br/&gt;- Opens **gift wraps in parallel** for remote-signer accounts: a cold start&lt;br/&gt;  that waited ~85s using a remote signer for DMs now takes ~20s.&lt;br/&gt;- Gives the **desktop first-class key storage**: a status card in Key&lt;br/&gt;  Backup, a password file when there is no system keyring, and an opt-out.&lt;br/&gt;- Draws **natively on Wayland** in every Linux release, with the&lt;br/&gt;  compositor&amp;#39;s own title bar where it has one.&lt;br/&gt;- **Compresses videos on desktop** through the system&amp;#39;s ffmpeg, with the&lt;br/&gt;  same quality table as Android.&lt;br/&gt;- Honors **relay rate limits**: a relay&amp;#39;s `rate-limited:` back-off now holds&lt;br/&gt;  and re-sends the refused commands instead of losing them.&lt;br/&gt;- Adds cards for **NIP-15 marketplaces**, NIP-85 trust assertions, Trusted&lt;br/&gt;  Lists, decentralized lists and NIP-29 group metadata.&lt;br/&gt;&lt;br/&gt;## New Features&lt;br/&gt;&lt;br/&gt;### Login and Sign-up&lt;br/&gt;&lt;br/&gt;- Redesigns the login, sign-up and remote-signer screens on one shared frame:&lt;br/&gt;  the logo over a soft glow, rounded fields and buttons, Tor settings as a&lt;br/&gt;  chip, and a brand-and-card split on windows 840 dp and wider.&lt;br/&gt;- Shows the same order everywhere: the signer app where one is installed,&lt;br/&gt;  the remote signer wherever it works, then &amp;#34;or&amp;#34;, then the key field.&lt;br/&gt;- Names and draws the installed signer app (&amp;#34;Login with Amber&amp;#34; and its&lt;br/&gt;  icon), or says &amp;#34;a signer app&amp;#34; when there are several.&lt;br/&gt;- Lights up Login once a key is typed, and Create Account once there is a&lt;br/&gt;  name, and puts the terms checkbox at the top, gating every way in.&lt;br/&gt;- Puts each error right under what it is about: the key field, the password&lt;br/&gt;  field, the signer app&amp;#39;s button or the remote signer&amp;#39;s button.&lt;br/&gt;- Fits the logged-off screens and the remote-signer dialog on small phones,&lt;br/&gt;  and keeps the Add New Account bar above the form, not over it.&lt;br/&gt;- Uses white and frosted cards instead of grey for the login, remote-signer,&lt;br/&gt;  key-storage and Key Backup surfaces.&lt;br/&gt;&lt;br/&gt;### Remote Signers (NIP-46)&lt;br/&gt;&lt;br/&gt;- Logs in with a NIP-46 remote signer on Android too: paste a `bunker://`&lt;br/&gt;  or show the `nostrconnect://` code.&lt;br/&gt;- Hands the code to a signer app with Open signer, from an in-app menu when&lt;br/&gt;  several take it, never to Amethyst itself.&lt;br/&gt;- Shows the code in a large frame ringed by the logo&amp;#39;s colors while it&lt;br/&gt;  waits, with Copy, Open signer and the relays as pills.&lt;br/&gt;- Lets you pick the relay your signer uses, or one of your inbox relays,&lt;br/&gt;  when it can&amp;#39;t reach the defaults.&lt;br/&gt;- Uses relay.nip46.com, nrs.primal.net and bucket.coracle.social, the relays&lt;br/&gt;  Amber and Opal default to, instead of relay.nsec.app, which stopped&lt;br/&gt;  answering.&lt;br/&gt;- Reads percent-encoded bunker addresses, as Opal writes them, and fails&lt;br/&gt;  with an error instead of spinning forever.&lt;br/&gt;- Accepts only an answer that carries the code&amp;#39;s secret. Anyone who saw the&lt;br/&gt;  code could reply first and pose as the signer.&lt;br/&gt;- Resends the same request on a retry, so a signer that queues requests for&lt;br/&gt;  approval (Amber) no longer asks twice.&lt;br/&gt;- Waits five minutes for the signer instead of two, and introduces each&lt;br/&gt;  platform by its own name and icon.&lt;br/&gt;- Opens gift wraps, seals and drafts up to 8 at a time ahead of the indexer.&lt;br/&gt;  With Amber over NIP-46, a desktop cold start opened its 118 wraps in&lt;br/&gt;  ~20 s instead of ~85 s.&lt;br/&gt;- Tries remote-signer accounts last when decrypting push notifications, so&lt;br/&gt;  an offline bunker no longer holds every other account&amp;#39;s notifications.&lt;br/&gt;&lt;br/&gt;### Desktop Key Storage&lt;br/&gt;&lt;br/&gt;- Shows where your keys live in a status card at the top of Key Backup,&lt;br/&gt;  with Try again when the keychain refuses and Unlock when the key file is&lt;br/&gt;  locked.&lt;br/&gt;- Keeps keys in a password-protected NIP-49 file (`keys.ncryptsec`) when the&lt;br/&gt;  computer has no system keyring, asking for the password once per launch.&lt;br/&gt;- Adds &amp;#34;Remember my key on this device&amp;#34;: turn it off and the key is asked&lt;br/&gt;  for at each launch.&lt;br/&gt;- Adds Save keys to take back this run&amp;#39;s &amp;#34;Don&amp;#39;t save&amp;#34;.&lt;br/&gt;- Stops rewriting the private key to the macOS Keychain on every settings&lt;br/&gt;  save, which brought the Keychain password prompt back over and over.&lt;br/&gt;- Fixes view-only, bunker and signer-app logins failing to load after a&lt;br/&gt;  restart on Windows and Linux.&lt;br/&gt;- Fixes the Linux OS keyring in release builds (deb, rpm, AppImage and&lt;br/&gt;  Flatpak), which always fell back to the password file.&lt;br/&gt;- Treats KWallet&amp;#39;s missing item as absent, so a fresh KWallet no longer&lt;br/&gt;  shows &amp;#34;Keychain error&amp;#34; on every launch.&lt;br/&gt;- Upgrades a read-only session when you Unlock, Try again or log in again&lt;br/&gt;  with the nsec.&lt;br/&gt;- Reports a key the vault could not keep once per run, instead of on every&lt;br/&gt;  settings save.&lt;br/&gt;- Keeps the `nostrconnect://` secret out of the logs.&lt;br/&gt;&lt;br/&gt;### Desktop Video Compression&lt;br/&gt;&lt;br/&gt;- Compresses videos through the system&amp;#39;s ffmpeg at the quality slider&amp;#39;s&lt;br/&gt;  level, with Android&amp;#39;s resolution and bitrate table, HEVC when asked, and&lt;br/&gt;  H.264 otherwise.&lt;br/&gt;- Strips video metadata by remuxing the original when it is the one going&lt;br/&gt;  up, and asks before uploading if the strip fails.&lt;br/&gt;- Names the picked video and its target on the slider, such as&lt;br/&gt;  &amp;#34;High · 4K video → 2160p, 8 Mbps&amp;#34;.&lt;br/&gt;- Hides the H.265 and GIF-to-MP4 switches without ffmpeg, showing an&lt;br/&gt;  install hint instead.&lt;br/&gt;- Tells you when an encode was discarded for not being smaller.&lt;br/&gt;- Finds Homebrew and other package-manager installs of ffmpeg when the app&lt;br/&gt;  is launched from Finder.&lt;br/&gt;&lt;br/&gt;### Marketplaces (NIP-15)&lt;br/&gt;&lt;br/&gt;- Adds cards for stalls, products, marketplaces, auctions, bids and bid&lt;br/&gt;  confirmations, which showed as raw JSON or not at all.&lt;br/&gt;- Shows a product&amp;#39;s gallery, price, stock, stall, specs and a Message&lt;br/&gt;  seller button that drafts a DM with the listing.&lt;br/&gt;- Shows an auction&amp;#39;s starting bid, its start and end with the merchant&amp;#39;s&lt;br/&gt;  extensions, an Upcoming/Live/Ended badge, and its highest bid and bid&lt;br/&gt;  count.&lt;br/&gt;- Reads marketplace events leniently (prices as strings, missing ids, tag&lt;br/&gt;  form auctions from hash21 and mkauction), and keeps other apps&amp;#39; records&lt;br/&gt;  on the same kinds out.&lt;br/&gt;&lt;br/&gt;### Trust and List Cards&lt;br/&gt;&lt;br/&gt;- Adds one card for NIP-85 trusted assertions (30382-30385): what it scores,&lt;br/&gt;  the rank, hops, every other metric as a tile, timestamps as dates, and the&lt;br/&gt;  provider.&lt;br/&gt;- Shows a kind 10040&amp;#39;s designated providers, with the services each serves.&lt;br/&gt;- Adds cards for Trusted Lists (30392-30395) with members best first and&lt;br/&gt;  their scores.&lt;br/&gt;- Adds cards for decentralized list headers and items (9998/9999,&lt;br/&gt;  39998/39999), loading a header&amp;#39;s items while it is on screen, with `url`,&lt;br/&gt;  `tel` and `email` fields as links.&lt;br/&gt;- Adds a card for NIP-29 group metadata (39000) that opens the group.&lt;br/&gt;- Renders hashtags, links and people in bookmark lists and sets, and quotes&lt;br/&gt;  pinned notes instead of printing raw `nevent` strings.&lt;br/&gt;- Pages long rosters (3, then 50 per Show more) and caps chip rows with a&lt;br/&gt;  &amp;#34;&#43;N more&amp;#34; chip, since event authors decide how many tags a card gets.&lt;br/&gt;&lt;br/&gt;### Feeds and Cards&lt;br/&gt;&lt;br/&gt;- Adds an info button to each feed filter that explains what it shows, and&lt;br/&gt;  on the Notifications screen, what it does to notifications.&lt;br/&gt;- Loads the relay lists of people-list members you don&amp;#39;t follow, so list&lt;br/&gt;  feeds, follow packs and All Follows find their notes.&lt;br/&gt;- Draws live streams with their summary, start time, viewer count, and a&lt;br/&gt;  Watch recording button over the cover once ended.&lt;br/&gt;- Shows a classified&amp;#39;s location and a Sold badge, a zap goal&amp;#39;s end&lt;br/&gt;  countdown, a calendar event&amp;#39;s own time zone, and a long-form article&amp;#39;s&lt;br/&gt;  reading time and topics.&lt;br/&gt;- Renders every kind as the thread&amp;#39;s main note the way the feed does:&lt;br/&gt;  RSVPs, calendars, lists, chess, live activities and more drew nothing or&lt;br/&gt;  plain text there.&lt;br/&gt;- Resolves NIP-30 custom emoji on reaction notification cards, and draws an&lt;br/&gt;  untagged `:shortcode:` reaction as text instead of an empty image.&lt;br/&gt;- Plays Blossom&amp;#39;s `.mpga` audio files and Podcasting 2.0 trailers.&lt;br/&gt;- Draws a kind 31337 as a music track only when it has a file to play, and&lt;br/&gt;  leaves the rest (ad-skip data, game state) out of the feeds.&lt;br/&gt;&lt;br/&gt;## Performance&lt;br/&gt;&lt;br/&gt;- Makes the outbox&amp;#39;s delivery state mutable under its lock: a publish cost&lt;br/&gt;  O(relays²) in copies, ~3,400 ns per relay at 100 relays, now ~150 ns.&lt;br/&gt;- Makes a screen&amp;#39;s subscription invalidation lock-free: 1.1 ns instead of&lt;br/&gt;  up to 8,300 ns while an update is running.&lt;br/&gt;- Returns at once when pruning frees a note that is not a zap.&lt;br/&gt;&lt;br/&gt;## Improvements and Bug fixes&lt;br/&gt;&lt;br/&gt;- Shows a relay that refused a post with a back-off as retrying while the&lt;br/&gt;  client waits it out.&lt;br/&gt;- Stops one relay&amp;#39;s hang-up during a publish retry from reconnecting the&lt;br/&gt;  whole relay pool.&lt;br/&gt;- Fixes acks from different relays being lost, which kept an event in the&lt;br/&gt;  outbox and re-sent it on every reconnect.&lt;br/&gt;- Fixes a forged copy of a note getting the real one dropped as its&lt;br/&gt;  duplicate, and deleting an addressable&amp;#39;s old version removing the&lt;br/&gt;  current one.&lt;br/&gt;- Downloads the Web of Trust network in ~10 s and 39 MB instead of minutes&lt;br/&gt;  and 380 MB: it no longer fetches every deletion the provider signed, and&lt;br/&gt;  learns of retracted cards over NIP-77.&lt;br/&gt;- Routes the Web of Trust provider&amp;#39;s relays like your own: clearnet by&lt;br/&gt;  default instead of through Tor.&lt;br/&gt;- Stops a Web of Trust download on mobile data when it is not allowed,&lt;br/&gt;  keeps it through list updates, and checkpoints it so an interruption&lt;br/&gt;  loses less.&lt;br/&gt;- Fixes the zoom animation for images scrolled partly out of the feed or&lt;br/&gt;  under the bars, and makes GIFs shrink back into their thumbnail.&lt;br/&gt;- Fixes tapping a quoted reply in a chat scrolling to the wrong message.&lt;br/&gt;- Stops the like icon crossfading from an empty heart on every scroll.&lt;br/&gt;- Stops demoting the threads of audio rooms and video playback, which made&lt;br/&gt;  audio stutter under load.&lt;br/&gt;- Stops an audio room&amp;#39;s service restarting after the app was killed and&lt;br/&gt;  holding audio focus and a wake lock for a room that was gone.&lt;br/&gt;- Stops any app from controlling picture-in-picture video playback.&lt;br/&gt;- Reads timestamps written in milliseconds as seconds, which made goals&lt;br/&gt;  and live streams end in &amp;#34;54,000 years&amp;#34;.&lt;br/&gt;- Keeps the Git Repositories search&amp;#39;s `kind:git` chip out of the Namecoin&lt;br/&gt;  and `.bit` lookups.&lt;br/&gt;- Gives a room&amp;#39;s name width before its label in Messages, so a Cordn group&lt;br/&gt;  no longer shows only its coordinator.&lt;br/&gt;- Follows the testls.space ElectrumX port swap for Namecoin.&lt;br/&gt;&lt;br/&gt;## Desktop&lt;br/&gt;&lt;br/&gt;- Draws natively on Wayland in every Linux package, with the JetBrains&lt;br/&gt;  Runtime. Set `AMETHYST_X11=1` to stay on XWayland.&lt;br/&gt;- Uses the compositor&amp;#39;s title bar on KDE, sway, Hyprland, COSMIC and niri;&lt;br/&gt;  GNOME keeps the GTK one.&lt;br/&gt;- Fixes video playback on Windows, which said &amp;#34;Video playback unavailable&amp;#34;&lt;br/&gt;  in 1.18.0, and on macOS release builds.&lt;br/&gt;- Keeps the chart library intact in release builds, which ProGuard broke.&lt;br/&gt;- Lets the `.deb` install on Ubuntu 22.04, Debian 12 and their derivatives.&lt;br/&gt;- Fixes `.deb` and `.rpm` installs and removals failing on systems without&lt;br/&gt;  `/usr/share/desktop-directories`, and upgrades that removed the menu&lt;br/&gt;  entry.&lt;br/&gt;- Requires the system libraries and a font in the `.rpm`, so minimal Fedora&lt;br/&gt;  and openSUSE installs launch.&lt;br/&gt;- Renames the Flatpak app ID to `com.vitorpamplona.amethyst.Amethyst`, so it&lt;br/&gt;  doesn&amp;#39;t share the Android package&amp;#39;s listing in Nostr app stores. See&lt;br/&gt;  `BUILDING.md` to move your v1.18.0 data.&lt;br/&gt;- Fixes the Web of Trust download, which never started on desktop, and&lt;br/&gt;  keeps Cordn&amp;#39;s group state on disk.&lt;br/&gt;- Drops the image viewer&amp;#39;s URL tooltip and click-to-copy; Copy URL stays in&lt;br/&gt;  its menu.&lt;br/&gt;- Removes the Intel macOS options from the README: only Apple Silicon is&lt;br/&gt;  built.&lt;br/&gt;&lt;br/&gt;## Cli&lt;br/&gt;&lt;br/&gt;- Fixes `amy` 1.18.0&amp;#39;s self-contained bundles crashing on every command with&lt;br/&gt;  `NoClassDefFoundError: java/lang/management/ManagementFactory`.&lt;br/&gt;- Lists relays `amy fetch --paginate` could not page under `unpaged_relays`,&lt;br/&gt;  and warns that the result may be partial.&lt;br/&gt;- Adds `retry_after_ms` to `rejected_by` entries.&lt;br/&gt;- Fetches all of a search such as `include:spam` on search.brainstorm.world:&lt;br/&gt;  `amy fetch` returned 5,000 of 35,578 events, and `amy sync` none.&lt;br/&gt;&lt;br/&gt;## Quartz&lt;br/&gt;&lt;br/&gt;- Implements NIP-01 rate-limit back-offs (nostr-protocol/nips#2498):&lt;br/&gt;  `OkMessage` and `ClosedMessage` carry `params` and `retryAfterMs`.&lt;br/&gt;- Holds a relay&amp;#39;s refused commands on its connection (`RateLimitGate`) and&lt;br/&gt;  re-sends them when the back-off passes, across reconnects and pool&lt;br/&gt;  changes, with the subscription&amp;#39;s current filters.&lt;br/&gt;- Adds `RateLimiter` and `RateLimitPolicy` for relays, with&lt;br/&gt;  `PolicyResult.Rejected.rateLimited`.&lt;br/&gt;- Pages a NIP-50 search with no words to rank, keeps `observer:` searches on&lt;br/&gt;  one page, and carries the search on `fetchByIds`.&lt;br/&gt;- Re-asks a page cut short inside its boundary second instead of reporting&lt;br/&gt;  DRAINED.&lt;br/&gt;- Fixes a decoder hang on short OK, CLOSED and NEG-ERR frames, a truncated&lt;br/&gt;  JSON object looping, and a field like `jE` replacing an event&amp;#39;s `id`.&lt;br/&gt;- Fixes `subscribeAsFlow` and `fetchAsFlow` dropping the newest list on a&lt;br/&gt;  burst.&lt;br/&gt;- Fixes `QuicReader` overflowing on a peer-chosen length, and a bad datagram&lt;br/&gt;  escaping to the crash handler.&lt;br/&gt;- Reads NIP-15 marketplace events leniently, with `isWellFormed()`,&lt;br/&gt;  `AuctionData.endsAt()` and `AuctionBidSummary`.&lt;br/&gt;- Adds `AssertionMetric` readers, Trusted List accessors and D-list&lt;br/&gt;  `fieldDeclarations()`, `displayHints()` and `listImage()`, with `tel` and&lt;br/&gt;  `email` field types.&lt;br/&gt;- Adds `TimeUtils.toUnixSeconds` for millisecond timestamps.&lt;br/&gt;- `EmojiUrlTag.decode` returns null unless both shortcode and url are present.&lt;br/&gt;&lt;br/&gt;## Geode&lt;br/&gt;&lt;br/&gt;- Adds a `[rate_limits]` section for events and REQs per client per minute,&lt;br/&gt;  answering with the NIP-01 back-off and 429 with `Retry-After` over NIP-FE.&lt;br/&gt;  Off by default.&lt;br/&gt;- Counts an IPv6 client by its /64.&lt;br/&gt;- Caps WebSocket frames at 1 MiB by default; one header could cost 2 GB.&lt;br/&gt;&lt;br/&gt;## Build &amp;amp; Documentation&lt;br/&gt;&lt;br/&gt;- Fails the desktop release if ProGuard strips a JNI native method, a&lt;br/&gt;  D-Bus transport or leaves a stale jar signature.&lt;br/&gt;- Fails the `amy` build when its runtime lacks a JDK module its jars use.&lt;br/&gt;- Self-tests the OS keyring on every packaged desktop build in CI.&lt;br/&gt;- Speeds up `.deb` post-processing from 156 s to 51 s.&lt;br/&gt;- Splits the iOS CI jobs and caches the Kotlin/Native toolchain, so they&lt;br/&gt;  finish under their timeout.&lt;br/&gt;- Adds `tools/desktop-run` to run and screenshot the shared UI headless, and&lt;br/&gt;  asks agents to look at a UI change before calling it done.&lt;br/&gt;- Clears the build and lint warnings across modules, and removes 125 unused&lt;br/&gt;  Android strings and 10 unused drawables.&lt;br/&gt;- Publishes the Flatpak to Orchard.&lt;br/&gt;- States that issue bounties are not a promise of payment.&lt;br/&gt;&lt;br/&gt;## Contributors&lt;br/&gt;&lt;br/&gt;- &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsyvrp9u6p0mfur9dfdru3d853tx9mdjuhkphxuxgfwmryja7zsvhqpzamhxue69uhhv6t5daezumn0wd68yvfwvdhk6tcpzpmhxue69uhkummnw3ezumt0d5hszythwden5te0dehhxarj9emkjmn99uwfvhl6&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;VitorPamplona&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…vhl6&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wdjkuerfwshxummnvekxzun99e3k7mf0qythwumn8ghj7un9d3shjtnswf5k6ctv9ehx2ap028kcfw&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;⚡ Dee Kay ⚡&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…kcfw&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsyxxz7mm9kwkyjsf935da90ulyqlaautk6wgq68q5m3n6t5lzmfuqpz9mhxue69uhkummnw3ezuamfdejj7qg4waehxw309aex2mrp0yhxgctdw4eju6t09uqsuamnwvaz7tmwdaejumr0dshsqfznmg&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;mstrofnone&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…znmg&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;## Translations&lt;br/&gt;&lt;br/&gt;- Czech, German, Swedish, and Brazilian Portuguese by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wdjkuerfwshxummnvekxzun99e3k7mf0qythwumn8ghj7un9d3shjtnswf5k6ctv9ehx2ap028kcfw&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;⚡ Dee Kay ⚡&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…kcfw&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Hindi by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqs88dt78wgnzvaph6fcstfvsd98xc2qs8eg8tllwv2zlutu8ehec2cppemhxue69uhkummn9ekx7mp0qythwumn8ghj7un9d3shjtnswf5k6ctv9ehx2ap0qyt8wumn8ghj7un9d3shjtnyd968gmewwp6kytcmlz0lu&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;राज&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…z0lu&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Hungarian by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsxekg0s8kxpcrka8ccwztv2m73kz6jy0ur8f7jc04rwr5p44w5acspzamhxue69uhhyetvv9ujumn0wd68ytnzv9hxgtcppemhxue69uhkummn9ekx7mp0qyg8wumn8ghj7mn0wd68ytnddakj7c0ns2l&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;summoner&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…ns2l&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Polish by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsdyfz0ewdhmgp3a4r3pxvezx5r8yalrgvjn38v2ml5qrusnv7yywgpzemhxue69uhkummnw3ezucm6v9ejuurvw4ej7qg0waehxw309a3h5ctn9e6x7up0qyg8wumn8ghj7cm6v9ejuurvw4ej79s8c53&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;Polak&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…8c53&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;
    </content>
    <updated>2026-10-14T12:59:01Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsp0apphtc67m3ltgdexagrlxq2wv2h3awnahp5yzvwgluu8qvmy5gzyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykfa8ter</id>
    
      <title type="html">#Amethyst v1.18.0: Amethyst Desktop, Web of Trust, Privacy Lock, ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsp0apphtc67m3ltgdexagrlxq2wv2h3awnahp5yzvwgluu8qvmy5gzyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykfa8ter" />
    <content type="html">
      #Amethyst v1.18.0: Amethyst Desktop, Web of Trust, Privacy Lock, and a Deck&lt;br/&gt;&lt;br/&gt;Highlights:&lt;br/&gt;&lt;br/&gt;- Ships **Amethyst Desktop**: the desktop app now runs the same screens and navigation as Android, and the legacy desktop app is gone.&lt;br/&gt;- Adds a **Web of Trust** network from your NIP-85 provider. Strangers&amp;#39; DMs go&lt;br/&gt;  to New Requests, and Curated notifications and replies leave them out.&lt;br/&gt;- Adds a **Privacy lock** for the whole app, your messages or your wallet,&lt;br/&gt;  with biometrics on Android and a password on desktop.&lt;br/&gt;- Adds **Custom feeds** built from people, hashtags, kinds and relays, and an&lt;br/&gt;  opt-in **Deck** of columns for wide windows.&lt;br/&gt;- Rewrites **web-app signing prompts** to say what each request does, and&lt;br/&gt;  stops one stuck prompt from blocking every later signature.&lt;br/&gt;- Lets you **drag the panes** in wide windows, and opens every chat type&lt;br/&gt;  beside its list.&lt;br/&gt;- Redesigns **My Fitness** around weekly goals, with streaks, history and&lt;br/&gt;  charts.&lt;br/&gt;- Makes the **Messages toggles** stop loading NIP-04 or NIP-17, instead of&lt;br/&gt;  only hiding them.&lt;br/&gt;- Renders **NIP-82 software releases** with their app, release notes, and&lt;br/&gt;  downloads for your device first.&lt;br/&gt;&lt;br/&gt;## New Features&lt;br/&gt;&lt;br/&gt;### Privacy Lock&lt;br/&gt;&lt;br/&gt;- Adds a Privacy lock settings screen with three switches, all off by default:&lt;br/&gt;  lock the entire app, lock messages, lock the wallet. Plus an idle timeout.&lt;br/&gt;- Unlocks with biometrics or the device credential on Android, and with an&lt;br/&gt;  app password on desktop.&lt;br/&gt;- Locks you out for 30 s after five wrong passwords, doubling up to&lt;br/&gt;  5 minutes, and keeps the lockout across restarts.&lt;br/&gt;- Asks for the credential before a lock is turned off or its timeout made&lt;br/&gt;  longer.&lt;br/&gt;- Hides message text in notifications while the messages or app lock is on,&lt;br/&gt;  and guards the secret-key backup behind any lock.&lt;br/&gt;- Locks the Marmot and Cordn group screens, drafts, and the payment and mint&lt;br/&gt;  top-up screens too.&lt;br/&gt;&lt;br/&gt;### Custom Feeds and Deck&lt;br/&gt;&lt;br/&gt;- Adds custom feeds: pick people, hashtags, kinds and relays, minus hidden&lt;br/&gt;  people and keywords. They show in the Home feed picker under &amp;#34;Your feeds&amp;#34;,&lt;br/&gt;  with a manage screen and an editor.&lt;br/&gt;- Adds an opt-in Deck (Settings › App › Deck) for windows 1,200 dp and wider,&lt;br/&gt;  in place of the notification panel.&lt;br/&gt;- Makes every Deck column any screen, with its own back stack. Columns can be&lt;br/&gt;  added, moved, resized, reset and closed, across up to nine workspaces.&lt;br/&gt;- Adds Deck shortcuts on desktop: Ctrl/Cmd&#43;T, &#43;W, &#43;Shift&#43;PageUp/PageDown,&lt;br/&gt;  &#43;Alt&#43;1–9 and &#43;Shift&#43;S, plus a Deck menu on macOS.&lt;br/&gt;- Imports the legacy desktop app&amp;#39;s feeds, workspaces and lock settings.&lt;br/&gt;&lt;br/&gt;### Web of Trust&lt;br/&gt;&lt;br/&gt;- Downloads your NIP-85 rank provider&amp;#39;s trust cards into a compact index on&lt;br/&gt;  the device, and keeps it current with small, cheap updates.&lt;br/&gt;- Treats people below a minimum trust score as strangers. Their DMs go to New&lt;br/&gt;  Requests, Curated notifications drop them (in-app and push, zaps exempt),&lt;br/&gt;  and their thread replies start collapsed. Follows always pass.&lt;br/&gt;- Adds a Web of Trust settings screen: the network&amp;#39;s size over a histogram of&lt;br/&gt;  ranks, a minimum-score slider with a live count, and sync status.&lt;br/&gt;- Sets up Brainstorm&amp;#39;s GrapeRank with a guided sign-up, or any NIP-85 provider&lt;br/&gt;  by its key and relay.&lt;br/&gt;- Reads rank and follower badges from the index, without a subscription per&lt;br/&gt;  profile.&lt;br/&gt;- Shows on a profile whether the person is in your network, with their score&lt;br/&gt;  or &amp;#34;You follow them&amp;#34;. Tapping it opens the Web of Trust settings.&lt;br/&gt;- Collapses runs of public-chat messages from people outside your network&lt;br/&gt;  into one &amp;#34;3 messages from outside your network · Show&amp;#34; row, in NIP-28,&lt;br/&gt;  live-stream, ephemeral and relay-group chats.&lt;br/&gt;- Orders people search, mentions and people lists by follows, then trust&lt;br/&gt;  score, then everyone else.&lt;br/&gt;- Resumes a cut-off trust network download instead of starting over.&lt;br/&gt;- Lets you copy another person&amp;#39;s trust view, or enter a provider key with its&lt;br/&gt;  tags as chips, under &amp;#34;Set up by hand&amp;#34;.&lt;br/&gt;- Opens the provider&amp;#39;s website in Amethyst&amp;#39;s browser, signed in with this&lt;br/&gt;  account.&lt;br/&gt;- Adds the Brainstorm relay to the default search and indexer relays.&lt;br/&gt;&lt;br/&gt;### Signing&lt;br/&gt;&lt;br/&gt;- Times out a web-app signing prompt after 120 s. A prompt left behind Home&lt;br/&gt;  used to block every later request from every web app.&lt;br/&gt;- Brings a pending prompt back when Amethyst returns to the foreground.&lt;br/&gt;- Shows what each request does: the private message inside a seal, the relay&lt;br/&gt;  of a relay login, the method and URL of a NIP-98 request, and the verb, file&lt;br/&gt;  and server of a Blossom upload or delete.&lt;br/&gt;- Previews a profile edit as the new profile, with &amp;#34;Changes your bio ·&lt;br/&gt;  Removes your lightning address&amp;#34; lines.&lt;br/&gt;- Summarizes follow, mute, deletion and report changes in one line, and shows&lt;br/&gt;  reports as report cards.&lt;br/&gt;- Asks before signing a report under the Reasonable trust level, and asks&lt;br/&gt;  once, not twice, in Paranoid mode.&lt;br/&gt;- Warns when a prompt has been open a minute or more that the app may have&lt;br/&gt;  stopped waiting.&lt;br/&gt;- Fixes Connected Apps for web apps: Forget now forgets an app&amp;#39;s decisions, a&lt;br/&gt;  new trust level takes effect, and an app no longer shows once per account.&lt;br/&gt;  A forgotten app could keep signing logins without a prompt.&lt;br/&gt;- Only the buttons and Back decide a prompt now. A tap beside it no longer&lt;br/&gt;  denies silently.&lt;br/&gt;- Removes the 40-requests-per-10-seconds limit on Amethyst&amp;#39;s own NIP-46&lt;br/&gt;  signer for paired apps, and answers their requests in parallel, so busy&lt;br/&gt;  clients are no longer refused. Unpaired keys get 10 requests a minute each,&lt;br/&gt;  100 in total, and the rest are dropped unanswered.&lt;br/&gt;&lt;br/&gt;### Messages&lt;br/&gt;&lt;br/&gt;- Turns NIP-04 or NIP-17 loading, paging and subscriptions off when you turn&lt;br/&gt;  its toggle off. With NIP-17 off, its rooms, composer and calls are gone, and&lt;br/&gt;  the gift-wrap subscription asks only for what Marmot or Concord still need.&lt;br/&gt;- Brings cached messages back when a protocol is turned on again.&lt;br/&gt;- Pages NIP-17 history one round at a time. A quiet chat offers Keep looking&lt;br/&gt;  and Stop instead of walking every gift wrap you ever received, and names the&lt;br/&gt;  relays that didn&amp;#39;t answer.&lt;br/&gt;- Pages NIP-17 history from your DM relay list only, 500 gift wraps at a time.&lt;br/&gt;- Pages history (messages, notifications, Cashu wallet) only for the account&lt;br/&gt;  on screen. With several accounts logged in, a NIP-17 group showed only its&lt;br/&gt;  last message.&lt;br/&gt;- Keeps pinned conversations in the list when none of their messages is&lt;br/&gt;  loaded yet.&lt;br/&gt;- Opens every chat type beside its list on wide screens: Buzz, Marmot, Cordn,&lt;br/&gt;  Concord, relay groups and location channels, like DMs.&lt;br/&gt;- Softens the bubble colors: other people&amp;#39;s bubbles are lighter in the light&lt;br/&gt;  theme, and your own keep the accent&amp;#39;s hue without the neon glare.&lt;br/&gt;- Checks the stock Concord relays for invites every 15 minutes instead of&lt;br/&gt;  keeping them open.&lt;br/&gt;&lt;br/&gt;### Wide Windows&lt;br/&gt;&lt;br/&gt;- Lets you drag the splitters between the drawer and the content, the content&lt;br/&gt;  and the notification panel, and a chat list and its chat. Widths are saved&lt;br/&gt;  per device.&lt;br/&gt;- Opens a note&amp;#39;s menu as a dropdown by its ⋮ button, with keyboard navigation&lt;br/&gt;  and submenus, instead of a dialog in the middle of the screen.&lt;br/&gt;- Wraps the composer&amp;#39;s tools under the text instead of scrolling them&lt;br/&gt;  sideways, with hover tooltips.&lt;br/&gt;- Opens the account switcher as a menu from the docked drawer.&lt;br/&gt;- Scrolls the feed with the mouse wheel over the empty gutters beside it.&lt;br/&gt;- Adds a refresh button to the docked notification panel, and shows today&amp;#39;s&lt;br/&gt;  counts and the 7-day chart in it.&lt;br/&gt;- Opens the drawer from a tab pager only after a 120 dp swipe or a fast&lt;br/&gt;  flick, instead of on the first pixel, and keeps wheel and trackpad scrolls&lt;br/&gt;  with the pager.&lt;br/&gt;- Puts Navigate before You in the drawer when there is no bottom bar.&lt;br/&gt;&lt;br/&gt;### My Fitness&lt;br/&gt;&lt;br/&gt;- Redesigns My Fitness around weekly goals: rings for active minutes, workouts&lt;br/&gt;  and active days, plus an optional weekly distance, each &amp;#34;on track&amp;#34; or&lt;br/&gt;  &amp;#34;behind pace&amp;#34;.&lt;br/&gt;- Adds a goal editor. The default is 150 active minutes a week, the WHO&lt;br/&gt;  guideline.&lt;br/&gt;- Adds 12 weeks of weekly active time, a 18-week consistency heatmap with&lt;br/&gt;  streaks, your busiest days and times, and the activity mix against the&lt;br/&gt;  previous four weeks.&lt;br/&gt;- Fetches your own published workouts, instead of only those another screen&lt;br/&gt;  had loaded.&lt;br/&gt;- Stops counting fasting, diet and meditation as active time.&lt;br/&gt;&lt;br/&gt;### Composer and Uploads&lt;br/&gt;&lt;br/&gt;- Adds a custom-emoji picker to the note, comment, DM and public-chat&lt;br/&gt;  composers. It inserts your NIP-30 emoji as `:shortcode:`.&lt;br/&gt;- Makes the image quality slider also set a maximum size: 640, 1280 or&lt;br/&gt;  1920 px, then uncompressed. Posts start at 1280 px on phones, now at JPEG&lt;br/&gt;  quality 85 instead of 75.&lt;br/&gt;- Resizes photos on Android to exactly that size. A 12 MP photo used to go up&lt;br/&gt;  at about 2016 px whatever the setting.&lt;br/&gt;- Previews the first image compressed in the upload dialog, with its size and&lt;br/&gt;  dimensions next to the original&amp;#39;s. Tap it to compare both full screen at&lt;br/&gt;  their real resolution, with zoom; tap again to flip between them.&lt;br/&gt;- Deletes the temporary copies a compression leaves behind when the quality&lt;br/&gt;  slider moves on before it finishes.&lt;br/&gt;- Tags music uploads with their `format` (m4a, mp3, …), so other clients&lt;br/&gt;  know the `.mp4` Blossom returns is audio.&lt;br/&gt;- Adds imeta (hash, size, type, dimensions, blurhash) to images pasted as&lt;br/&gt;  links in the note, comment, public message, classified and new group DM&lt;br/&gt;  composers, so readers can lay them out before they load. Links without an&lt;br/&gt;  image extension count when their preview is an image.&lt;br/&gt;- Waits up to 3 s for a link just pasted before posting, so its imeta goes&lt;br/&gt;  out with the post.&lt;br/&gt;- Fetches a pasted link once for its preview card and its imeta.&lt;br/&gt;&lt;br/&gt;### Feeds and Cards&lt;br/&gt;&lt;br/&gt;- Renders NIP-82 software releases with the app&amp;#39;s icon and name, markdown&lt;br/&gt;  release notes and OS chips.&lt;br/&gt;- Groups release downloads by OS, with the best match for this device on top,&lt;br/&gt;  and splits pre-releases from the latest release.&lt;br/&gt;- Trusts a release only from the app&amp;#39;s publisher or its listed maintainers.&lt;br/&gt;- Opens Zapstore apps instead of an empty group chat. Only group content&lt;br/&gt;  follows its `h` tag to a NIP-29 group.&lt;br/&gt;- Loads an app&amp;#39;s releases on its own page, even when it is opened from a&lt;br/&gt;  link, profile or mention.&lt;br/&gt;- Fills bare app cards with their OSes, license and links, renders app&lt;br/&gt;  descriptions like a note body with translation, and groups platform chips&lt;br/&gt;  by OS.&lt;br/&gt;- Adds cards for Kanban boards and cards, WalletScrutiny verdicts and Mostro&lt;br/&gt;  instance terms.&lt;br/&gt;- Adds a CI status badge and runs sheet, and cover notes, to NIP-34 git PRs,&lt;br/&gt;  patches and issues.&lt;br/&gt;- Finds Marmot key packages of White Noise users who publish only the legacy&lt;br/&gt;  kind 443, so they can be invited.&lt;br/&gt;- Shows the caption above the reactions on video and file cards.&lt;br/&gt;- Plays an audio-only `.mp4` as audio, with its cover, by reading the file&amp;#39;s&lt;br/&gt;  track list. Blossom serves every M4A upload as `.mp4` / `video/mp4`, so&lt;br/&gt;  these showed a black video box. A music track or podcast whose file is a&lt;br/&gt;  real music video plays as video instead of inside the waveform strip.&lt;br/&gt;- Shows the cover, title and player of audio tracks, and the player of audio&lt;br/&gt;  headers that carry their file in a `url` tag.&lt;br/&gt;&lt;br/&gt;## Performance&lt;br/&gt;&lt;br/&gt;- Moves blocking and lock-touching work off `Dispatchers.Default`: external&lt;br/&gt;  signer calls, proof-of-work mining, relay health saves, cache scans and&lt;br/&gt;  cyberspace bag sweeps. One slow job no longer stalls feeds and relay&lt;br/&gt;  verification behind it.&lt;br/&gt;&lt;br/&gt;## Improvements and Bug fixes&lt;br/&gt;&lt;br/&gt;- Shows each relay&amp;#39;s median post, query and first-result times, and a&lt;br/&gt;  &amp;#34;Slow N×&amp;#34; chip on a relay that lags the others.&lt;br/&gt;- Hides the broadcast banner once your outbox relays accept a post, instead of&lt;br/&gt;  waiting for every relay. It can always be dismissed, and an outbox failure&lt;br/&gt;  stays with a Retry.&lt;br/&gt;- Stops a dead outbox relay or a dropped connection from showing a post as&lt;br/&gt;  failed.&lt;br/&gt;- Counts every connected relay under a job in the always-on notification, and&lt;br/&gt;  says &amp;#34;Connected to N relays&amp;#34; instead of &amp;#34;inbox relays&amp;#34;.&lt;br/&gt;- Asks before opening a scanned 64-character hex key as a profile, since it&lt;br/&gt;  might be a private key.&lt;br/&gt;- Completes multi-part QR codes from the camera and from images, waits for a&lt;br/&gt;  tap when several codes are in view, and keeps zoom and torch when the camera&lt;br/&gt;  reopens.&lt;br/&gt;- Fixes the wallet invoice QR being clipped in wide windows.&lt;br/&gt;- Converts GIFs to MP4 in comment, public message, classified and edit&lt;br/&gt;  composers, which ignored the switch.&lt;br/&gt;- Fixes uploads of keyboard GIFs and stickers failing with a permission error&lt;br/&gt;  after the upload dialog had been open a while.&lt;br/&gt;- Makes text fields in embedded web apps behave as in the browser: Enter&lt;br/&gt;  sends, cleared fields stay cleared, chips, paste, maxlength, and Next on&lt;br/&gt;  forms.&lt;br/&gt;- Fixes the image zoom animation popping to full size instead of growing from&lt;br/&gt;  the thumbnail with its rounded corners.&lt;br/&gt;- Fixes a pasted `nevent` to a music track, or any addressable event, showing&lt;br/&gt;  twice in search.&lt;br/&gt;- Shows a reaction notification for a reaction to your reply. It was checked&lt;br/&gt;  against the thread root&amp;#39;s author.&lt;br/&gt;- Shows nested NIP-22 replies in community feeds.&lt;br/&gt;- Fixes zap splits without a relay being saved so that Amethyst and other&lt;br/&gt;  clients read them as weight 0. Old splits still load.&lt;br/&gt;- Counts on-chain and BOLT12 zaps toward your zap income only when you are the&lt;br/&gt;  payee, and attaches a BOLT12 zap only to the live activity it names.&lt;br/&gt;- Fixes hashtag feeds asking only the first relay.&lt;br/&gt;- Shows &amp;#34;Messages&amp;#34; in the Messages top bar instead of the Amethyst logo.&lt;br/&gt;- Fixes weekday labels on the notification chart after a daylight-saving&lt;br/&gt;  change.&lt;br/&gt;- Opens scanned links written in uppercase, and keeps a split nsec in an&lt;br/&gt;  image from being listed piece by piece.&lt;br/&gt;- Reports an LNURL server&amp;#39;s error as &amp;#34;service unavailable&amp;#34; with its message.&lt;br/&gt;- Stops a bare word in a relay hint turning into a fake relay.&lt;br/&gt;- Fixes a StackOverflowError on reply cycles in threads, and a link detector&lt;br/&gt;  that took 27 s on colon-heavy text.&lt;br/&gt;- Fixes a second reaction with the same emoji missing from the reaction&lt;br/&gt;  gallery.&lt;br/&gt;- Keeps a feed&amp;#39;s subscription when the app comes back right at the end of its&lt;br/&gt;  background grace period.&lt;br/&gt;- Opens a chat when you tap its name next to a community label.&lt;br/&gt;- Fixes a crash on videos with side-loaded captions. They now show as&lt;br/&gt;  subtitles, and formats no parser reads are left out.&lt;br/&gt;- Fixes padding under the disappearing bars on My Fitness.&lt;br/&gt;- Fixes the call timer showing blank in Polish, and the web-app profile-edit&lt;br/&gt;  prompt not naming the changed fields in Polish.&lt;br/&gt;- Shows errors with a severity icon, a selectable message and the stack trace&lt;br/&gt;  behind Details. Messages queue instead of replacing each other.&lt;br/&gt;- Moves the navigation to Navigation 3. Tabs keep their scroll position, and&lt;br/&gt;  pinned web apps no longer share one saved screen.&lt;br/&gt;&lt;br/&gt;## Desktop&lt;br/&gt;&lt;br/&gt;- Runs the shared app: the same screens, navigation shell, login, account&lt;br/&gt;  switcher and settings as Android. The legacy desktop app is deleted, and its&lt;br/&gt;  accounts, feeds, deck and lock settings are imported.&lt;br/&gt;- Gains what the legacy app lacked: zaps and the reactions row, chess, Git&lt;br/&gt;  repositories, calendar RSVPs, post editing, markdown with inline media,&lt;br/&gt;  Cordn groups, the audio-room list, and crash reports offered on the next&lt;br/&gt;  start.&lt;br/&gt;- Drops the hashtag-spam filter, the WoT badge, the live-now bar, the relay&lt;br/&gt;  dashboard, the advanced search and the GIF search.&lt;br/&gt;- Adds a 2560 px step to the image quality slider, and starts posts at&lt;br/&gt;  1920 px.&lt;br/&gt;- Keeps phone photos upright: compression applies the EXIF orientation, and&lt;br/&gt;  the metadata strip keeps that one tag. Photos stored sideways were uploaded&lt;br/&gt;  on their side.&lt;br/&gt;- Strips metadata from photos with two EXIF blocks, as some editors save&lt;br/&gt;  them. These were uploaded unstripped, GPS location included.&lt;br/&gt;- Keeps the space for images and GIFs without a declared size while they&lt;br/&gt;  load, and caches decoded GIF frames so a GIF shown again isn&amp;#39;t downloaded or&lt;br/&gt;  decoded again.&lt;br/&gt;- Fixes tall photos spilling over the text and reactions around them.&lt;br/&gt;- Draws QR codes with the shared renderer. Long payloads fall back to a lower&lt;br/&gt;  error-correction level instead of crashing.&lt;br/&gt;- Plays video like Android: autoplay muted, pause out of view, resume where it&lt;br/&gt;  stopped, Android-style controls and a now-playing bar. Encrypted media plays,&lt;br/&gt;  and Tor-routed videos stream through Tor.&lt;br/&gt;- Renders music tracks, podcast episodes, audio tracks, audio headers, voice&lt;br/&gt;  messages and audio in posts, which drew nothing before, with a waveform&lt;br/&gt;  player that seeks on click. Podcast soundbites and chapters jump there.&lt;br/&gt;- Plays audio linked in posts, including audio-only `.mp4`s, in the audio&lt;br/&gt;  player instead of the video engine (&amp;#34;Can&amp;#39;t play this video&amp;#34;).&lt;br/&gt;- Fits portrait videos, preloads the next videos in a feed, and no longer&lt;br/&gt;  blinks to black when one starts.&lt;br/&gt;- Zooms photos and videos from their card to full screen and back.&lt;br/&gt;- Redesigns the now-playing bar with thin sliders and hours in long times, and&lt;br/&gt;  keeps its stop button in narrow windows.&lt;br/&gt;- Renders PDFs in notes, with a full-window reader that turns pages with the&lt;br/&gt;  arrow keys.&lt;br/&gt;- Shows OS notifications with the same title and text as Android, when&lt;br/&gt;  previews are on, and skips muted authors.&lt;br/&gt;- Replaces the bare system error box with a crash window that can send the&lt;br/&gt;  report to the developers.&lt;br/&gt;- Uses desktop text sizes, a lighter hover, and a menu bar only on macOS. The&lt;br/&gt;  title bar blends into the app on macOS.&lt;br/&gt;- Sizes the drawer&amp;#39;s text and rows for the desktop, and keeps the photo&lt;br/&gt;  viewer&amp;#39;s close button clear of the macOS window buttons.&lt;br/&gt;- Opens a notice instead of crashing on screens the desktop doesn&amp;#39;t have yet,&lt;br/&gt;  and hides their entry points, such as DM calls and the geocache Map tab.&lt;br/&gt;- Drops the media setting&amp;#39;s Wi-Fi choice, where it behaved like Always.&lt;br/&gt;- Keeps the top bar on Scheduled posts when there is no post store, instead&lt;br/&gt;  of a blank screen.&lt;br/&gt;- Shows a text reply button on voice notes where recording isn&amp;#39;t available.&lt;br/&gt;- Brings a background window forward on the first click without pressing what&lt;br/&gt;  is under the pointer, and stops hover while scrolling.&lt;br/&gt;- Fixes the pull-to-refresh indicator staying half-pulled after a mouse-wheel&lt;br/&gt;  scroll.&lt;br/&gt;- Opens at a larger size and reopens where you left it, and never saves a&lt;br/&gt;  window collapsed to a sliver.&lt;br/&gt;- Names the app &amp;#34;Amethyst&amp;#34; in Linux docks and app switchers.&lt;br/&gt;- Only hands http, https and lightning links to the OS.&lt;br/&gt;- Keeps accounts, drafts and settings in the Flatpak across restarts. Every&lt;br/&gt;  Flatpak shipped so far lost them.&lt;br/&gt;- Renames the Flatpak app ID to `com.vitorpamplona.amethyst`, on runtime&lt;br/&gt;  26.08. Remove the old `com.vitorpamplona.amethyst.Desktop` bundle and log&lt;br/&gt;  in again (see `BUILDING.md`).&lt;br/&gt;- Declares GStreamer as a dependency of the Linux `.deb` and `.rpm`.&lt;br/&gt;&lt;br/&gt;## Cli&lt;br/&gt;&lt;br/&gt;- Adds `amy notes show`, `thread`, `reply`, `quote`, `react` and `repost`,&lt;br/&gt;  plus `delete`, `notifications` and `notes feed --hashtag`, on the app&amp;#39;s own&lt;br/&gt;  routing, tagging and thread code.&lt;br/&gt;- Adds `amy trust setup`, `status`, `sync`, `check` and `copy` for the Web of&lt;br/&gt;  Trust network.&lt;br/&gt;- Reports `relay_errors` from `amy fetch`, and fails with `no_relay_served`&lt;br/&gt;  when no relay served the request. It used to exit 0 with `count: 0`.&lt;br/&gt;- Streams `amy fetch --paginate --limit 0` with flat memory, and logs every&lt;br/&gt;  REQ with `--verbose`.&lt;br/&gt;- Runs every `amy sync` direction through negentropy.&lt;br/&gt;- Answers AUTH in `amy fetch`.&lt;br/&gt;- Refuses reposts and quotes of NIP-29 group content, and sends group content&lt;br/&gt;  only to its host relay.&lt;br/&gt;- Shows a zap&amp;#39;s sender only when the zap request proves it, so a spoofed&lt;br/&gt;  zapper no longer shows.&lt;br/&gt;- Fails interaction verbs with `read_only` on npub-only accounts, filters&lt;br/&gt;  `amy notifications --type` at the relay, and applies deletions by address.&lt;br/&gt;- Trims `notes post` text and rewrites bare npub/note words like the composer.&lt;br/&gt;- Keeps amy&amp;#39;s data files owner-only on Windows (NTFS ACLs), without eight&lt;br/&gt;  warnings per file.&lt;br/&gt;&lt;br/&gt;## Quartz&lt;br/&gt;&lt;br/&gt;- Makes `fetchAllPages` hold up on production relays: it learns each relay&amp;#39;s&lt;br/&gt;  limit, drops repeated events, paces throttled relays, and walks each filter&lt;br/&gt;  on its own cursor. Multi-filter walks lost most of their events before.&lt;br/&gt;- Fixes `negentropySync` finishing &amp;#34;clean&amp;#34; on relays that truncate their set,&lt;br/&gt;  and makes `fetchByIds` public.&lt;br/&gt;- Returns null from `count` at once on relays without NIP-45.&lt;br/&gt;- Fixes a WebSocket dial race that opened two connections per relay, and&lt;br/&gt;  REQs sent while a WebSocket was still opening being dropped silently.&lt;br/&gt;- Breaking: `fetchAllPages` drops `DEFAULT_PAGE_SIZE`; `pageSize` is now an&lt;br/&gt;  optional cap. Adds `streamAllPagesFromPoolWithHooks` for walks too large to&lt;br/&gt;  hold in memory.&lt;br/&gt;- Keeps a relay&amp;#39;s CLOSED or connection message in `PagedFetchResult.message`,&lt;br/&gt;  and adds an `onRelayResult` callback to `fetchAllPagesFromPool`.&lt;br/&gt;- Adds NIP-85 trust network sync and a compact index.&lt;br/&gt;- Types the event kinds found by a census of 743 relays: Marmot 443, NIP-34&lt;br/&gt;  cover notes and NIP-C1 CI, Mostro, RoboSats, Ditto, Zapstore identity&lt;br/&gt;  proofs, Kanban, WalletScrutiny, NIP-4E key transfer, private note storage&lt;br/&gt;  and more.&lt;br/&gt;- Completes hint providers on 184 kinds and NIP-50 indexing on 72. Existing&lt;br/&gt;  stores need `reindexFullTextSearch()`.&lt;br/&gt;- Adds `RelayUrlNormalizer.normalizeHintOrNull`, a strict parser for relay&lt;br/&gt;  hints from other clients.&lt;br/&gt;- Names every tag relationship with an accessor, such as `mentions()`,&lt;br/&gt;  `quotedEvents()` and `recipient()`.&lt;br/&gt;- Writes the `a` and `f` tags NIP-82 releases require, and adds NIP-82 version&lt;br/&gt;  ordering.&lt;br/&gt;- Verifies Zapstore identity proofs (kind 30509) against an APK signing&lt;br/&gt;  certificate (RSA, EC, Ed25519) on JVM and Android.&lt;br/&gt;- Reads NIP-4E draft 10044 keys, which were always empty before, and adds&lt;br/&gt;  `EncryptionKeyStore`. Parses NIP-69 bonds as decimals.&lt;br/&gt;- Registers `FeedDefinitionEvent` (31890) and `EncryptionKeyListEvent` (10044)&lt;br/&gt;  in `EventFactory`, and indexes an emoji pack&amp;#39;s public shortcodes instead of&lt;br/&gt;  its encrypted content.&lt;br/&gt;- Breaking: adds abstract `BaseRepostEvent.originalAuthorKeys()` and&lt;br/&gt;  `ZapReceiptEventInterface.zappedAddresses()`, and `DecoupledCipher` takes an&lt;br/&gt;  `EncryptionKeyStore`.&lt;br/&gt;- Shares secp256k1 across every target and one native crypto set across&lt;br/&gt;  Apple and Linux, and implements `LargeSoftCache` on iOS.&lt;br/&gt;- Adds a &amp;#34;One-shot Reads&amp;#34; section to `CLIENT.md` (`fetchAll`, `fetchFirst`,&lt;br/&gt;  `fetchAllPages`, `count`), switches it to the Maven artifact and the bundled&lt;br/&gt;  OkHttp transport, and ships an installable agent skill for projects that&lt;br/&gt;  use Quartz (`quartz/agent-skill/`).&lt;br/&gt;- Adds `AudioTrackEvent.title()`, `url()`, `image()` (with `mediaUrl()`,&lt;br/&gt;  `coverUrl()`, `displayTitle()`), `AudioHeaderEvent.url()` / `mediaUrl()`,&lt;br/&gt;  and a `format` parameter to `MusicTrackEvent.edit`.&lt;br/&gt;&lt;br/&gt;## Build &amp;amp; Documentation&lt;br/&gt;&lt;br/&gt;- Continues One UI: Navigation 3 with the navigation shell in `commonsUI`,&lt;br/&gt;  more screens and ViewModels moved to `commons`/`commonsUI`, a headless&lt;br/&gt;  `BaseAccountViewModel` with typed user notices, and feature-based ViewModel&lt;br/&gt;  packages.&lt;br/&gt;- Adds plans for iOS and web apps on the shared UI.&lt;br/&gt;- Adds Navigation 3 1.1.2 and Apache PDFBox 3.0.8 (desktop only), both&lt;br/&gt;  Apache-2.0, and removes `navigation-compose`.&lt;br/&gt;- Turns on incremental compilation for the KMP modules: a one-line change in&lt;br/&gt;  `commons` rebuilds in 9.5 s instead of 38.6 s.&lt;br/&gt;- Builds zxing-cpp reproducibly from any NDK path, from a pinned commit.&lt;br/&gt;- Requires a human to review the diff and test on a device before an AI&lt;br/&gt;  contribution becomes a PR.&lt;br/&gt;- Gives Claude Code and Codex the same rules, skills and pre-push checks:&lt;br/&gt;  `AGENTS.md` holds the rules, `.agents/skills` links to `.claude/skills`, and&lt;br/&gt;  the checks live in `tools/agent-hooks/`. A new check, run before every push&lt;br/&gt;  and in CI, keeps them in sync.&lt;br/&gt;- Cuts the agent skills from 33 to 14, each rewritten against the current&lt;br/&gt;  code, so the list fits Codex&amp;#39;s skill budget.&lt;br/&gt;- Fixes the Compose string-escaping pre-push check, which never blocked a&lt;br/&gt;  push.&lt;br/&gt;- Documents Homebrew as autobumped, and verifies the cask instead of&lt;br/&gt;  submitting it.&lt;br/&gt;- Bumps `appCode` to 463.&lt;br/&gt;&lt;br/&gt;## Contributors&lt;br/&gt;&lt;br/&gt;- &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsyvrp9u6p0mfur9dfdru3d853tx9mdjuhkphxuxgfwmryja7zsvhqpzamhxue69uhhv6t5daezumn0wd68yvfwvdhk6tcpzpmhxue69uhkummnw3ezumt0d5hszythwden5te0dehhxarj9emkjmn99uwfvhl6&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;VitorPamplona&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…vhl6&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wdjkuerfwshxummnvekxzun99e3k7mf0qythwumn8ghj7un9d3shjtnswf5k6ctv9ehx2ap028kcfw&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;⚡ Dee Kay ⚡&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…kcfw&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;## Translations&lt;br/&gt;&lt;br/&gt;- Czech, German, Swedish, and Brazilian Portuguese by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wdjkuerfwshxummnvekxzun99e3k7mf0qythwumn8ghj7un9d3shjtnswf5k6ctv9ehx2ap028kcfw&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;⚡ Dee Kay ⚡&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…kcfw&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Hindi by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqs88dt78wgnzvaph6fcstfvsd98xc2qs8eg8tllwv2zlutu8ehec2cppemhxue69uhkummn9ekx7mp0qythwumn8ghj7un9d3shjtnswf5k6ctv9ehx2ap0qyt8wumn8ghj7un9d3shjtnyd968gmewwp6kytcmlz0lu&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;राज&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…z0lu&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Hungarian by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsxekg0s8kxpcrka8ccwztv2m73kz6jy0ur8f7jc04rwr5p44w5acspzamhxue69uhhyetvv9ujumn0wd68ytnzv9hxgtcppemhxue69uhkummn9ekx7mp0qyg8wumn8ghj7mn0wd68ytnddakj7c0ns2l&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;summoner&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…ns2l&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Polish by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsdyfz0ewdhmgp3a4r3pxvezx5r8yalrgvjn38v2ml5qrusnv7yywgpzemhxue69uhkummnw3ezucm6v9ejuurvw4ej7qg0waehxw309a3h5ctn9e6x7up0qyg8wumn8ghj7cm6v9ejuurvw4ej79s8c53&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;Polak&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…8c53&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;
    </content>
    <updated>2026-10-11T19:05:22Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsxeyyps6d7x30nnwmnlyds3y86vql4tlx0xtvmenp5cjcpc2ff2tgzyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zyk7w87a6</id>
    
      <title type="html">#Amethyst v1.17.0: Cordn, Geocaching, a New QR Scanner, and One ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsxeyyps6d7x30nnwmnlyds3y86vql4tlx0xtvmenp5cjcpc2ff2tgzyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zyk7w87a6" />
    <content type="html">
      #Amethyst v1.17.0: Cordn, Geocaching, a New QR Scanner, and One UI&lt;br/&gt;&lt;br/&gt;Highlights:&lt;br/&gt;&lt;br/&gt;- Adds **Cordn** group chats: MLS groups over an MCP coordinator, with the&lt;br/&gt;  full chat experience, device migration and encrypted backups.&lt;br/&gt;- Adds **Geocaching** (NIP-CC): a hub, a map, hunts, and QR-verified finds.&lt;br/&gt;- Rebuilds the **QR scanner** on CameraX &#43; zxing-cpp. It reads off-axis, blurry&lt;br/&gt;  and low-contrast codes the old one could not.&lt;br/&gt;- Brings **Concord** up to spec: pins, Direct Invites, private channels with key&lt;br/&gt;  rotation, disappearing messages, kick and dissolve.&lt;br/&gt;- Brings the **in-app browser** close to an installed Chrome PWA, with a new&lt;br/&gt;  omnibox and a search-engine setting.&lt;br/&gt;- Shows **Ultra HDR** photos, plays **audio posts** as cards with&lt;br/&gt;  picture-in-picture, and shares what you listen to as **Now Playing**.&lt;br/&gt;- Asks before another app&amp;#39;s version of your **backed-up lists** drops items.&lt;br/&gt;- Moves ~200 screens into shared UI on the way to **one UI** for Android and&lt;br/&gt;  Desktop.&lt;br/&gt;&lt;br/&gt;## New Features&lt;br/&gt;&lt;br/&gt;### Cordn&lt;br/&gt;&lt;br/&gt;- Adds Cordn group chats to the Messages inbox, beside DMs, Marmot and Concord.&lt;br/&gt;  Messages never enter the event cache, so they are never searchable.&lt;br/&gt;- Builds the chat on the shared components: bubbles, gestures, reactions,&lt;br/&gt;  quoted replies, day and unread dividers, and the rich text renderer.&lt;br/&gt;- Adds replies, reactions, edits, deletions and pins, interoperable with the&lt;br/&gt;  reference client. Pins sit in a one-line carousel above the chat.&lt;br/&gt;- Uses the shared composer: @-mentions, emoji shortcodes, GIF keyboard and paste.&lt;br/&gt;- Adds encrypted attachments over Blossom and encrypted voice notes, with the&lt;br/&gt;  shared upload dialog and media viewer.&lt;br/&gt;- Keeps drafts, unread counts and messages on disk, so rooms no longer open&lt;br/&gt;  empty after a relaunch.&lt;br/&gt;- Redesigns New group as four steps: name, people, coordinator, and who can&lt;br/&gt;  add and remove. Shows how many of your people each coordinator can reach.&lt;br/&gt;- Invites the whole roster in one commit, so one failed invite cannot fork the&lt;br/&gt;  group. People without a key package get a share link instead.&lt;br/&gt;- Finds coordinators from their ContextVM announcements and names them by&lt;br/&gt;  profile, instead of asking for a 64-character key.&lt;br/&gt;- Adds member management: add by name, npub or NIP-05, remove, rename, and admin&lt;br/&gt;  mode. Enforces admin rights like the reference client.&lt;br/&gt;- Adds a metadata-exposure card explaining what each coordinator can learn.&lt;br/&gt;- Shares groups as `cordn1…` links and QR codes, and adds an invitations screen&lt;br/&gt;  with Join and Decline.&lt;br/&gt;- Adds join requests, coordinator health and management, and a key-package&lt;br/&gt;  screen that keeps your pool topped up.&lt;br/&gt;- Adds device migration: the old phone shows a handoff code, the new phone scans&lt;br/&gt;  it and restores every group with its history. Keys are never in the code.&lt;br/&gt;- Adds encrypted backup and restore of groups and their messages.&lt;br/&gt;- Groups all Cordn settings under one entry, and adds Cordn Groups to the drawer&lt;br/&gt;  and the bottom-bar catalog.&lt;br/&gt;&lt;br/&gt;### Geocaching (NIP-CC)&lt;br/&gt;&lt;br/&gt;- Renders geocache listings and found logs as cards, with a photo hero, map&lt;br/&gt;  inset, rating, distance and badges.&lt;br/&gt;- Adds a Geocaches hub (Nearby, Map, Hunts, Finds, Mine), cache details with&lt;br/&gt;  their log thread, and composers for caches, hunts and logs.&lt;br/&gt;- Verifies a find by scanning the cache&amp;#39;s QR code. The secret signs once and is&lt;br/&gt;  never stored.&lt;br/&gt;- Hides hints behind a tap, and detects whether each was written in plaintext&lt;br/&gt;  or ROT13.&lt;br/&gt;- Sorts Nearby by distance only when you ask.&lt;br/&gt;- Opens caches and hunts from feeds, notifications, `naddr` links, QR scans and&lt;br/&gt;  search.&lt;br/&gt;&lt;br/&gt;### QR Codes&lt;br/&gt;&lt;br/&gt;- Rebuilds the scanner on CameraX &#43; zxing-cpp, with autofocus, tap-to-focus,&lt;br/&gt;  pinch zoom and a torch. The old decoder read 31 of 48 test codes.&lt;br/&gt;- Lets you pick when several codes are in frame or in a picture, and reassembles&lt;br/&gt;  multi-part codes.&lt;br/&gt;- Reads codes from the gallery, the clipboard and the share sheet, and adds a&lt;br/&gt;  &amp;#34;Scan QR code&amp;#34; launcher shortcut.&lt;br/&gt;- Explains a code it cannot open instead of closing, and keeps private keys off&lt;br/&gt;  the result screen and out of the logs.&lt;br/&gt;- Keeps the screen bright while showing your own QR code.&lt;br/&gt;&lt;br/&gt;### Concord&lt;br/&gt;&lt;br/&gt;- Adds pinned messages, with a pin badge in the channel header and&lt;br/&gt;  jump-to-message.&lt;br/&gt;- Adds Direct Invites: invite by npub, and accept or decline from the hub,&lt;br/&gt;  Notifications or Messages.&lt;br/&gt;- Adds Public and Private community modes. A ban in a Private community rotates&lt;br/&gt;  the keys.&lt;br/&gt;- Adds private channels, with Make private, Make public and Rotate key.&lt;br/&gt;- Adds disappearing messages, with a timer from 1 day to 1 year.&lt;br/&gt;- Adds cooperative Kick and community dissolution.&lt;br/&gt;- Moves the Community List to the fragmented kind 33302, migrating the old list.&lt;br/&gt;- Lets you edit your own thread replies and retract a reaction by tapping it&lt;br/&gt;  again.&lt;br/&gt;- Shows the community description at the top of the channel list.&lt;br/&gt;&lt;br/&gt;### Marmot&lt;br/&gt;&lt;br/&gt;- Adds editing your own messages, compatible with White Noise edits.&lt;br/&gt;- Detects a group this device has fallen out of sync with, and offers a Reset&lt;br/&gt;  that keeps history.&lt;br/&gt;- Names unnamed groups after their members, and hides names on bubbles in&lt;br/&gt;  two-person groups, like DMs.&lt;br/&gt;- Commits a member&amp;#39;s leave automatically when you are an admin.&lt;br/&gt;- Applies White Noise admin deletions.&lt;br/&gt;- Adds Marmot Groups to the drawer, and makes the list read like the DM list.&lt;br/&gt;- Warns when another device of yours is receiving your invites, and offers to&lt;br/&gt;  move them here.&lt;br/&gt;&lt;br/&gt;### Buzz&lt;br/&gt;&lt;br/&gt;- Brings Buzz to parity with upstream: artifacts, huddle liveness, team catalog,&lt;br/&gt;  projects and thread windows.&lt;br/&gt;- Writes channel messages as kind 9, as Buzz&amp;#39;s own clients do, and lets you edit&lt;br/&gt;  them.&lt;br/&gt;- Labels agents as &amp;#34;Agent · managed by Alice&amp;#34;, and tells apart members with the&lt;br/&gt;  same name.&lt;br/&gt;&lt;br/&gt;### Browser&lt;br/&gt;&lt;br/&gt;- Brings the in-app browser close to an installed Chrome PWA: new windows,&lt;br/&gt;  Tor-aware downloads, fullscreen, find in page, text size, desktop site and&lt;br/&gt;  crash recovery.&lt;br/&gt;- Redraws every browser surface with one shared pill.&lt;br/&gt;- Reworks the address field into an omnibox with paste-and-go and completions.&lt;br/&gt;- Adds a search-engine setting: DuckDuckGo, Brave, Startpage, Mojeek, Qwant,&lt;br/&gt;  Ecosia, Kagi, Google or Bing.&lt;br/&gt;- Adds per-site camera, microphone and location permissions, with &amp;#34;Only this&lt;br/&gt;  time&amp;#34;.&lt;br/&gt;- Adds &amp;#34;Add to Home screen&amp;#34;. Shortcuts open in Amethyst and wait for Tor.&lt;br/&gt;- Shows page alerts and prompts, which used to be silently cancelled.&lt;br/&gt;- Replaces the WebView error page with a readable one, with Try again and Try&lt;br/&gt;  without Tor.&lt;br/&gt;- Asks before every download, with the real name, size and source, and blocks&lt;br/&gt;  files pretending to be another type.&lt;br/&gt;&lt;br/&gt;### Media&lt;br/&gt;&lt;br/&gt;- Shows Ultra HDR photos in HDR, capped at 2x in the feed.&lt;br/&gt;- Plays audio files in posts as a waveform or cover card, with&lt;br/&gt;  picture-in-picture.&lt;br/&gt;- Shares what you are listening to as a NIP-38 music status, from Amethyst,&lt;br/&gt;  other apps or desktop players. Off by default.&lt;br/&gt;- Adds captions to NIP-71 videos, with a CC toggle in the player.&lt;br/&gt;- Shows video credits, and checks collaborators who accepted.&lt;br/&gt;- Plays divine.video&amp;#39;s adaptive HLS streams.&lt;br/&gt;- Adds Cast on Android 17, and names the format a receiver refuses.&lt;br/&gt;&lt;br/&gt;### Backups&lt;br/&gt;&lt;br/&gt;- Asks before another app&amp;#39;s version of your follows, mutes, relays, profile,&lt;br/&gt;  wallets or settings drops items you backed up.&lt;br/&gt;- Shows a card on Home for each conflict, with one-tap Accept.&lt;br/&gt;- Adds a review screen per conflict that lists every removed, added and changed&lt;br/&gt;  entry.&lt;br/&gt;- Keeps open conflicts across restarts, and closes them when the other app puts&lt;br/&gt;  the items back.&lt;br/&gt;&lt;br/&gt;### Key Backup&lt;br/&gt;&lt;br/&gt;- Shows the nsec as a numbered, grouped grid you can copy onto paper. It hides&lt;br/&gt;  again when the app goes to the background.&lt;br/&gt;- Adds a confirm-then-encrypt flow for the ncryptsec backup.&lt;br/&gt;- Requires passwords of at least 12 characters for new ncryptsecs. Old ones&lt;br/&gt;  still open.&lt;br/&gt;- Accepts hand-typed keys at login, with uppercase letters, spaces or dashes.&lt;br/&gt;&lt;br/&gt;### Profiles&lt;br/&gt;&lt;br/&gt;- Reads NIP-92 `imeta` for profile pictures and banners, trying the declared&lt;br/&gt;  fallback URLs when the main one fails.&lt;br/&gt;- Shows the banner&amp;#39;s blurhash while it loads.&lt;br/&gt;- Publishes an `imeta` for freshly uploaded pictures and banners, on Android and&lt;br/&gt;  Desktop.&lt;br/&gt;&lt;br/&gt;### Signing&lt;br/&gt;&lt;br/&gt;- Shows a relay login (kind 22242) as a login card in signing prompts, naming&lt;br/&gt;  each relay exactly as signed. Odd-looking addresses get a &amp;#34;check before&lt;br/&gt;  signing&amp;#34; warning.&lt;br/&gt;- Makes the event preview in signing prompts read-only, so you can no longer&lt;br/&gt;  react, zap, vote or RSVP on an event that does not exist yet.&lt;br/&gt;&lt;br/&gt;### Notifications&lt;br/&gt;&lt;br/&gt;- Shows DMs, Marmot groups and Buzz rooms as Android conversations, with&lt;br/&gt;  per-chat priority and launcher shortcuts.&lt;br/&gt;- Shows inline-reply progress, with a Retry that keeps your text.&lt;br/&gt;&lt;br/&gt;### Calendar&lt;br/&gt;&lt;br/&gt;- Shows follows&amp;#39; &amp;#34;Going&amp;#34; RSVPs on Home, with a toggle in Settings.&lt;br/&gt;- Adds a &amp;#34;Friends going&amp;#34; lens of upcoming events your list attends.&lt;br/&gt;&lt;br/&gt;### Feeds and Lists&lt;br/&gt;&lt;br/&gt;- Renders 3D Simple Nostr Objects, shards and cyberspace avatars, with a&lt;br/&gt;  full-screen viewer.&lt;br/&gt;- Opens cyberspace region bags, showing how long the search will take.&lt;br/&gt;- Renders every NIP-51 list kind as a card, instead of encrypted text.&lt;br/&gt;- Adds favorite follow sets: star any follow set to use it as a feed.&lt;br/&gt;- Shows prediction markets and ballots as their own cards, and hides kind-38000&lt;br/&gt;  spam.&lt;br/&gt;- Shows Zapstore app curation sets, NIP-34 git status events and video curation&lt;br/&gt;  lists as cards.&lt;br/&gt;- Shows a compact link preview for pages without an OpenGraph image.&lt;br/&gt;- Shows follow-list petnames as a display-name fallback.&lt;br/&gt;- Adds Cash App, Nano, Revolut, silent payments and BIP-353 payment targets.&lt;br/&gt;&lt;br/&gt;### Messages&lt;br/&gt;&lt;br/&gt;- Redesigns the Messages list: unread drives emphasis, and previews show @Name or&lt;br/&gt;  &amp;#34;Photo&amp;#34; instead of raw links.&lt;br/&gt;- Redesigns the chat screen: softer bubbles, clock times and the avatar outside&lt;br/&gt;  the bubble.&lt;br/&gt;- Shows sent messages immediately with a sending state, and retries a failed&lt;br/&gt;  send on tap.&lt;br/&gt;- Plays voice messages and encrypted audio in the waveform player.&lt;br/&gt;- Shows a DM rename as &amp;#34;Alice renamed the conversation&amp;#34;.&lt;br/&gt;&lt;br/&gt;### Uploads&lt;br/&gt;&lt;br/&gt;- Falls back through your Blossom servers when an upload fails. The signer is&lt;br/&gt;  asked once.&lt;br/&gt;- Shows why an upload failed, and lets you remove a failed attachment.&lt;br/&gt;&lt;br/&gt;### Relays&lt;br/&gt;&lt;br/&gt;- Adds an event allow list, roles and claims to relay management (NIP-86).&lt;br/&gt;- Detects when a NIP-29 group has moved to another relay, and supports group&lt;br/&gt;  banners and `a` pins.&lt;br/&gt;&lt;br/&gt;### Android&lt;br/&gt;&lt;br/&gt;- Enables ARM Memory Tagging on supporting devices to catch native memory bugs.&lt;br/&gt;&lt;br/&gt;## Performance&lt;br/&gt;&lt;br/&gt;- Loads My Fitness progressively instead of behind a 2–3s spinner.&lt;br/&gt;- Cuts the DEX from 31.1 MB to 29.9 MB by dropping kotlin-reflect.&lt;br/&gt;- Confirms a Marmot group change at the first relay that accepts it, so creating&lt;br/&gt;  a group no longer waits for the slowest relay.&lt;br/&gt;- Stops the Marmot key-package lookup shortly after the first package arrives, so&lt;br/&gt;  adding a member no longer takes most of a minute.&lt;br/&gt;- Stops rewriting the whole Marmot message log and group state on every send.&lt;br/&gt;- Removes a duplicate encryption on every Marmot send.&lt;br/&gt;- Loads cached Blossom images straight from disk, also offline.&lt;br/&gt;- Remembers missing Blossom files for 30s, so videos no longer stall 10s per&lt;br/&gt;  retry.&lt;br/&gt;- Makes the audio visualizer smooth: 46 frames a second instead of 5.&lt;br/&gt;- Speeds up the 3D renderer 4x and cuts its GC from 51% of a core to 7.7%.&lt;br/&gt;- Speeds up the event cache&amp;#39;s list observers 1.3–4x.&lt;br/&gt;- Stops calendar screens rescanning the cache on every event.&lt;br/&gt;- Stops the fullscreen image dialog recomposing on every frame of a swipe.&lt;br/&gt;- Stops rebuilding Notifications and Messages on every Concord update.&lt;br/&gt;&lt;br/&gt;## Improvements and Bug fixes&lt;br/&gt;&lt;br/&gt;- Shows Tor status in the drawer. The icon hides when Tor is off and opens Tor&lt;br/&gt;  settings on tap.&lt;br/&gt;- Fixes devices stuck on &amp;#34;Loading account&amp;#34; forever because they reject the&lt;br/&gt;  AES/GCM/PKCS7Padding cipher.&lt;br/&gt;- Fixes encrypted stores that could write but not read back.&lt;br/&gt;- Moves settings and account data from SharedPreferences to DataStore, and keys&lt;br/&gt;  off the deprecated androidx.security. Old files stay for downgrades.&lt;br/&gt;- Fixes Tor never working on 32-bit ARM and x86 devices, which shipped without&lt;br/&gt;  the Tor library.&lt;br/&gt;- Fixes notifications opening on a black screen after a cold start.&lt;br/&gt;- Opens DM and private reply notifications in their conversation, under the&lt;br/&gt;  right account.&lt;br/&gt;- Fixes kind-5 deletions matching any author: one user could hide another&amp;#39;s&lt;br/&gt;  note.&lt;br/&gt;- Decrypts private zaps for the zapped user, showing the real zapper.&lt;br/&gt;- Fixes zap goals reading only 0% or 100%.&lt;br/&gt;- Saves Cashu counters before using them, so a crash cannot lock funds at the&lt;br/&gt;  mint.&lt;br/&gt;- Keeps proof-of-work posts mining in the background, and saves the draft first.&lt;br/&gt;- Fetches your own profile and lists from inbox relays when you have no write&lt;br/&gt;  relays.&lt;br/&gt;- Fits subscriptions under a relay&amp;#39;s filter cap instead of losing the whole REQ.&lt;br/&gt;- Keeps a subscription alive when a relay refuses one kind by name.&lt;br/&gt;- Splits large profile requests, so relays that cap results do not leave authors&lt;br/&gt;  unnamed.&lt;br/&gt;- Fixes quoted notes stuck on &amp;#34;Loading quoted note...&amp;#34;.&lt;br/&gt;- Sends calendar RSVPs to the host&amp;#39;s and every invitee&amp;#39;s inbox relays.&lt;br/&gt;- Keeps the calendar&amp;#39;s view and scroll when you come back to it, and stops&lt;br/&gt;  appointments flickering.&lt;br/&gt;- Fixes Marmot groups forking on relay echoes, simultaneous commits, and&lt;br/&gt;  commits that leave you alone.&lt;br/&gt;- Sends Marmot reactions and deletions inside the group, so White Noise sees&lt;br/&gt;  them.&lt;br/&gt;- Fixes Concord messages being invisible in Accordion and other applesauce&lt;br/&gt;  clients.&lt;br/&gt;- Fixes Concord joins: channels show at once, and failures are reported.&lt;br/&gt;- Keeps a private channel&amp;#39;s old keys, so history survives a rotation.&lt;br/&gt;- Lets a banned Concord member return when re-invited after an unban.&lt;br/&gt;- Fixes Direct Invites that never arrived.&lt;br/&gt;- Fixes Buzz Desktop interop: uploads, mentions, profile, and relay refusal&lt;br/&gt;  reasons.&lt;br/&gt;- Shows Buzz Join only to non-members and Leave only to members.&lt;br/&gt;- Keeps browser pages on Tor whenever any surface uses Tor, and fails closed&lt;br/&gt;  when Tor cannot be applied.&lt;br/&gt;- Keeps NIP-07 replies with the page that asked, and holds signing and payments&lt;br/&gt;  from tabs you are not looking at.&lt;br/&gt;- Brings back black browser tabs and restores the page after Android reclaims&lt;br/&gt;  memory.&lt;br/&gt;- Stops deleting a private DM from publishing a public NIP-09.&lt;br/&gt;- Fixes NIP-49 rejecting some valid keys and crashing on very high scrypt costs.&lt;br/&gt;- Plays videos from a local Blossom cache over Tor, and falls back to the server&lt;br/&gt;  when the cache is closed.&lt;br/&gt;- Restores YouTube link previews.&lt;br/&gt;- Stops the keyboard staying up after leaving a text field.&lt;br/&gt;- Keeps the bottom bar on every pinnable tab.&lt;br/&gt;- Returns a tablet rail tap to that tab&amp;#39;s root.&lt;br/&gt;- Makes all floating action buttons circular.&lt;br/&gt;- Fixes amounts rounding wrongly, such as 12,500 showing as &amp;#34;12k&amp;#34;.&lt;br/&gt;- Fixes &amp;#34;100%%&amp;#34; in relay uptime labels.&lt;br/&gt;- Fixes NWC notifications for wallets on the new NIP-47 extensions spec.&lt;br/&gt;- Shows the bunker&amp;#39;s error when a NIP-46 signer refuses.&lt;br/&gt;- Encrypts every private relay entry, including ones other clients left in&lt;br/&gt;  plain text.&lt;br/&gt;- Uses plurals for counts, so Czech and Polish read correctly.&lt;br/&gt;- Fixes two release-only crashes on launch in the minified build.&lt;br/&gt;&lt;br/&gt;## Desktop&lt;br/&gt;&lt;br/&gt;- Stops offline users being stuck on &amp;#34;Connecting to Tor...&amp;#34;: after 10s it offers&lt;br/&gt;  a regular connection.&lt;br/&gt;- Reads now-playing from Linux MPRIS, macOS Spotify and Music, and Windows media&lt;br/&gt;  controls.&lt;br/&gt;- Shows names and avatars for thread replies, and stops holding every note in&lt;br/&gt;  memory.&lt;br/&gt;- Shows the nsec in the hand-copyable grid, and requires 12-character passwords.&lt;br/&gt;- Uses the shared report dialog, which now also mutes the author.&lt;br/&gt;- Renames the AppImage to `amethyst-desktop-&amp;lt;ver&amp;gt;-&amp;lt;arch&amp;gt;.AppImage`.&lt;br/&gt;&lt;br/&gt;## Cli&lt;br/&gt;&lt;br/&gt;- Adds `amy cordn` for refs, exposure, coordinators, key packages, groups,&lt;br/&gt;  invites, sending, `watch` and `migrate`.&lt;br/&gt;- Adds `amy sno` to validate 3D objects and avatar proof of work.&lt;br/&gt;- Adds `amy cyberspace`, which matches the reference cyberspace-cli.&lt;br/&gt;- Adds `amy concord` pins, invites, private channels, kick, dissolve and timer.&lt;br/&gt;- Adds `amy admin` commands for NIP-86 allow lists, roles and claims.&lt;br/&gt;- Adds `amy relaygroup pin/unpin` and joins from invite links.&lt;br/&gt;- Catches up correctly on Marmot groups after being offline.&lt;br/&gt;- Accepts hand-copied keys in `amy login` and `amy key decrypt`.&lt;br/&gt;&lt;br/&gt;## Quartz&lt;br/&gt;&lt;br/&gt;- Adds ContextVM (MCP over Nostr) with all 12 CEPs, and the Cordn protocol.&lt;br/&gt;- Moves the MLS engine to `quartz/mls/`, shared by Marmot and Cordn, with&lt;br/&gt;  several RFC 9420 interop fixes.&lt;br/&gt;- Adds NIP-CC geocaching, Simple Nostr Objects, cyberspace region bags and&lt;br/&gt;  Tapestry Decentralized Lists.&lt;br/&gt;- Adds NIP-FE relay commands over HTTP, with a client and a server.&lt;br/&gt;- Adds NIP-67 EOSE completeness hints and a NIP-43 membership engine.&lt;br/&gt;- Follows the latest NIP-29, NIP-47, NIP-51, NIP-86 and NIP-A3.&lt;br/&gt;- Fixes NIP-44 padding above 16 MB and rejects non-canonical lengths.&lt;br/&gt;- Fixes NIP-49 to check the AEAD tag and zero derived keys.&lt;br/&gt;- Fixes NIP-88 rejecting every spec-conformant `polltype` tag.&lt;br/&gt;- Fixes NIP-62 vanish requests for relays without a trailing slash.&lt;br/&gt;- Stops page limits truncating NIP-77 negentropy reconciles.&lt;br/&gt;- Answers a superseded replaceable with `OK false replaced:`.&lt;br/&gt;- Indexes every natural-language tag on Decentralized Lists, so authors and&lt;br/&gt;  subjects become searchable, while skipping URLs and ids. Indexed text drops&lt;br/&gt;  from 105 MB to 75 MB on 1.5M events. Existing databases need&lt;br/&gt;  `reindexFullTextSearch()`.&lt;br/&gt;- Makes local search match a searchable kind only by what it indexes, so local&lt;br/&gt;  and store search agree.&lt;br/&gt;- Adds typed diffs between versions of replaceable events.&lt;br/&gt;- Fixes many tag readers and bounds checks on hostile tags.&lt;br/&gt;- Renames event classes to their NIP names, keeping deprecated aliases.&lt;br/&gt;- Breaking: removes `ForkTag`. Use `experimental.forks.parseForkedAddress`.&lt;br/&gt;- Fixes iOS ConcurrentModificationException crashes in LargeCache.&lt;br/&gt;&lt;br/&gt;## Geode&lt;br/&gt;&lt;br/&gt;- Serves NIP-FE relay commands over HTTP, with limits, CORS and NIP-98 sign-in.&lt;br/&gt;- Adds NIP-43 membership: members-only writes, invites and roles.&lt;br/&gt;&lt;br/&gt;## Build &amp;amp; Documentation&lt;br/&gt;&lt;br/&gt;- Enables R8 obfuscation, and publishes mapping files with each release.&lt;br/&gt;- Adds `scripts/retrace.sh` to deobfuscate a crash report in one command.&lt;br/&gt;- Checks at release time that every reflected class survived R8.&lt;br/&gt;- Builds Arti and zxing-cpp reproducibly for all four ABIs.&lt;br/&gt;- Moves 1,906 strings to shared Compose resources.&lt;br/&gt;- Moves the event cache, Account, AccountViewModel and most screens into&lt;br/&gt;  `commons`/`commonsUI`. 204 of 252 screens are now shared.&lt;br/&gt;- Makes `./gradlew test` run every KMP module&amp;#39;s JVM tests: 11,690 instead of&lt;br/&gt;  3,567.&lt;br/&gt;- Updates AGP to 9.4.1, Gradle to 9.8.0, Compose Multiplatform to 1.12.1, Ktor&lt;br/&gt;  to 3.6.0, Coil to 3.6.3 and zoomable to 2.16.0.&lt;br/&gt;- Runs Android Lint in its own CI job.&lt;br/&gt;- Bumps `appCode` to 462.&lt;br/&gt;&lt;br/&gt;## Contributors&lt;br/&gt;&lt;br/&gt;- &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsyvrp9u6p0mfur9dfdru3d853tx9mdjuhkphxuxgfwmryja7zsvhqpzamhxue69uhhv6t5daezumn0wd68yvfwvdhk6tcpzpmhxue69uhkummnw3ezumt0d5hszythwden5te0dehhxarj9emkjmn99uwfvhl6&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;VitorPamplona&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…vhl6&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;⚡ Dee Kay ⚡&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…m3sx&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqs8eseg5zxak2hal8umuaa7laxgxjyll9uhyxp86c522shn9gj8crspz9mhxue69uhkummnw3ezuamfdejj7qgjwaehxw309ahx7um5wgerztnrdakj7qgmwaehxw309a6xsetxdaex2um59ehx7um5wgcjucm0d5hs5g7nrg&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;cloud fodder&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…7nrg&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqs0w2xeumnsfq6cuuynpaw2vjcfwacdnzwvmp59flnp3mdfez3czpsprpmhxue69uhkummnw3ezumr0wpczuum0vd5kzmp0ksxxx2&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;Jameson Lopp&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…xxx2&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- atesfurkan&lt;br/&gt;&lt;br/&gt;## Translations&lt;br/&gt;&lt;br/&gt;- Czech, German, Swedish, and Brazilian Portuguese by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;⚡ Dee Kay ⚡&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…m3sx&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Polish by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsdyfz0ewdhmgp3a4r3pxvezx5r8yalrgvjn38v2ml5qrusnv7yywgpzemhxue69uhkummnw3ezucm6v9ejuurvw4ej7qg0waehxw309a3h5ctn9e6x7up0qyg8wumn8ghj7cm6v9ejuurvw4ej79s8c53&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;Polak&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…8c53&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Hungarian by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsxekg0s8kxpcrka8ccwztv2m73kz6jy0ur8f7jc04rwr5p44w5acspzamhxue69uhhyetvv9ujumn0wd68ytnzv9hxgtcppemhxue69uhkummn9ekx7mp0qyg8wumn8ghj7mn0wd68ytnddakj7c0ns2l&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;summoner&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…ns2l&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Hindi by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqs88dt78wgnzvaph6fcstfvsd98xc2qs8eg8tllwv2zlutu8ehec2cppemhxue69uhkummn9ekx7mp0qythwumn8ghj7un9d3shjtnswf5k6ctv9ehx2ap0qyt8wumn8ghj7un9d3shjtnyd968gmewwp6kytcmlz0lu&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;राज&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…z0lu&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Russian by Anton Zhao&lt;br/&gt;- Slovenian by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsqqqqqqp0fmkspg7w8d305ln96a0jw0ptwqtuwskkm5pddv2kkjfcppemhxue69uhkummn9ekx7mp0qyt8wumn8ghj7un9d3shjtnyd968gmewwp6kytcpzemhxue69uhhyetvv9ujumt0wd68ytnsw43z7s23gag&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;StellarStoic&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…3gag&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;
    </content>
    <updated>2026-10-05T19:35:46Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqspg75tphmd9ht82r3rxsf66udeqagez84q95ceshj3ck3mjnc2mmczyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zyk9txlhz</id>
    
      <title type="html">Oh, If the relay is empty but stays connected it still counts ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqspg75tphmd9ht82r3rxsf66udeqagez84q95ceshj3ck3mjnc2mmczyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zyk9txlhz" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsf65zmvvwt0j8928xsun2wvzcc7uq9mfrsvzxergk59ht90ptwnjspz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsgn2k7t&#39;&gt;nevent1q…2k7t&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Oh, If the relay is empty but stays connected it still counts correctly. The problem was that relays were killing the connection and our counter didn&amp;#39;t change.
    </content>
    <updated>2026-09-18T20:00:53Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsdm2wl36yxlfmnj8udkr2meujrqtrssk0jnqpn25djh69llv9zeaqzyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykqmvexj</id>
    
      <title type="html">I am confused. What is this about?</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsdm2wl36yxlfmnj8udkr2meujrqtrssk0jnqpn25djh69llv9zeaqzyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykqmvexj" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsttje6yv6mr6uuaaklt7elj7z2r6a9sp4n5qm3mslvfr5zj5nc5wgpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsfdfefl&#39;&gt;nevent1q…fefl&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;I am confused. What is this about?
    </content>
    <updated>2026-09-18T17:33:26Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqs00y2w0flzjwvgfp2rn6etag5up8pc342vg5ky5x0cncgxm0ced8szyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zyk53tvu7</id>
    
      <title type="html">#Amethyst v1.16.0: My Fitness, BOLT12 Payments, and a Leaner Core ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqs00y2w0flzjwvgfp2rn6etag5up8pc342vg5ky5x0cncgxm0ced8szyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zyk53tvu7" />
    <content type="html">
      #Amethyst v1.16.0: My Fitness, BOLT12 Payments, and a Leaner Core&lt;br/&gt;&lt;br/&gt;Highlights:&lt;br/&gt;&lt;br/&gt;- Adds **My Fitness**, a dashboard over everything you have trained.&lt;br/&gt;- Moves **BOLT12 offers** into the profile payment rail, and zaps over BOLT11&lt;br/&gt;  when a wallet refuses one.&lt;br/&gt;- Opens the **zapped note** from wallet history.&lt;br/&gt;- Fixes **Blossom uploads**, broken on most servers since 1.15.0.&lt;br/&gt;- Takes **~40 MB off every `amy` distribution**.&lt;br/&gt;- Stops counting a relay that hung up as connected.&lt;br/&gt;- Updates **Arti to 2.6.0** for two medium-severity fixes.&lt;br/&gt;&lt;br/&gt;## New Features&lt;br/&gt;&lt;br/&gt;### My Fitness&lt;br/&gt;&lt;br/&gt;- Adds a training dashboard, reached from the drawer or a pinned bottom-bar slot.&lt;br/&gt;- Builds it from both sources: Health Connect, and the kind 1301 workouts you&lt;br/&gt;  published. Neither is required.&lt;br/&gt;- Summarises four weeks: this week against last, weekly averages, a breakdown by&lt;br/&gt;  activity, best efforts, active days and a day streak.&lt;br/&gt;- Shows distance, calories, steps, climb and heart rate only when a workout&lt;br/&gt;  carries them.&lt;br/&gt;- Offers to share a workout only when it is not already published.&lt;br/&gt;- Prefers the Health Connect copy when the same effort appears in both sources —&lt;br/&gt;  it carries the heart rate, steps and climb the published event drops.&lt;br/&gt;- Filters the Workouts feed by **Mine** from the top nav.&lt;br/&gt;- Reads workouts in the POWR dialect, which carry `start`/`end` and no `duration`.&lt;br/&gt;&lt;br/&gt;### Payments&lt;br/&gt;&lt;br/&gt;- Renders each BOLT12 offer as a chip in the profile payment rail. Offers were&lt;br/&gt;  already payable, but only through a small button in the profile header.&lt;br/&gt;- Removes both header wallet buttons. The rail lists everything they reached.&lt;br/&gt;- Shows the zap bolt to recipients who publish an offer and no lightning address.&lt;br/&gt;  The send path already paid them; the picker just never offered it.&lt;br/&gt;- Falls back to a BOLT11 zap when a wallet refuses an offer and the recipient also&lt;br/&gt;  publishes a lightning address.&lt;br/&gt;- Retries only refusals that mean nothing was attempted. A `PAYMENT_FAILED` can&lt;br/&gt;  still settle later, so retrying it could pay twice.&lt;br/&gt;- Reports a timeout when a wallet never answers, instead of hanging the zap.&lt;br/&gt;- Opens the zapped note when you tap a zap in wallet history.&lt;br/&gt;&lt;br/&gt;## Performance&lt;br/&gt;&lt;br/&gt;- Stops emptying the media connection pool on every client rebuild. Both HTTP&lt;br/&gt;  clients share one pool, so the proxy check misread every rebuild as a route&lt;br/&gt;  change.&lt;br/&gt;- Drops pooled connections once per real Tor route change instead.&lt;br/&gt;- Stops `debugState()` walking the whole cache on every backgrounding. Its nine&lt;br/&gt;  scans were built eagerly and then discarded unread.&lt;br/&gt;- Signs one Blossom read-auth token per server, not one per racing caller.&lt;br/&gt;&lt;br/&gt;## Improvements and Bug fixes&lt;br/&gt;&lt;br/&gt;- Sends the Blossom authorization token as standard padded Base64 again. Deployed&lt;br/&gt;  servers reject 1.15.0&amp;#39;s unpadded base64url, so roughly two uploads in three&lt;br/&gt;  failed.&lt;br/&gt;- Points the Sovbit default Blossom server at `files.sovbit.host`.&lt;br/&gt;- Answers a relay&amp;#39;s WebSocket CLOSE frame, in both the shared and the Android&lt;br/&gt;  socket. Without it a closed socket looked connected for up to four minutes,&lt;br/&gt;  silently discarding everything sent.&lt;br/&gt;- Counts connected relays from the pool&amp;#39;s connected flow, which the pool now&lt;br/&gt;  clears itself whenever it drops a relay.&lt;br/&gt;- Renders a GIF with no `imeta` as a loading placeholder. It used to collapse the&lt;br/&gt;  whole note to a gap in the feed until the fetch finished.&lt;br/&gt;- Drains the event-sync outbox before closing the client. Events from the final&lt;br/&gt;  page were reported Done and never delivered.&lt;br/&gt;- Fixes 34 bugs found auditing `commons` and `commonsUI`. Among them: AES-GCM&lt;br/&gt;  initialised with a spec every JDK rejects; an `Onion-Location` header from any&lt;br/&gt;  host re-pointing Tor traffic for 24 hours; a bundled insert wedged after one&lt;br/&gt;  exception; a URL validator backtracking exponentially per keystroke.&lt;br/&gt;- Uses `https` in preview data and image-URL placeholders.&lt;br/&gt;&lt;br/&gt;## Desktop&lt;br/&gt;&lt;br/&gt;- Stops a silent account wipe on macOS. One Deny on the Keychain prompt rotated&lt;br/&gt;  the encryption key and orphaned every saved account.&lt;br/&gt;- Consolidates the keychain into a single `vault-v1` item, so a cold boot prompts&lt;br/&gt;  once.&lt;br/&gt;- Allows first-launch key bootstrap on Linux and Windows.&lt;br/&gt;&lt;br/&gt;## Cli&lt;br/&gt;&lt;br/&gt;- Ships ~40 MB lighter, now that `amy` no longer drags Compose UI and Skiko behind&lt;br/&gt;  `commons`.&lt;br/&gt;- Fails fast when a buzz-agent wrapper cannot be made executable.&lt;br/&gt;&lt;br/&gt;## Quartz&lt;br/&gt;&lt;br/&gt;- Answers a duplicate `EVENT` with `OK true`, per NIP-01, and a superseded&lt;br/&gt;  replaceable the same way. Clients used to get raw SQLite text they could not&lt;br/&gt;  classify, and retried forever.&lt;br/&gt;- Gives each socket adapter its own session, removing the pool&amp;#39;s locking and&lt;br/&gt;  identity checks.&lt;br/&gt;&lt;br/&gt;## Build &amp;amp; Documentation&lt;br/&gt;&lt;br/&gt;- Updates Arti 2.3.0 → 2.6.0, the JNI crate to 0.22, the NDK to r30 and Rust to&lt;br/&gt;  1.98.1. Picks up TROVE-2026-24 and TROVE-2026-27, both reachable in normal use.&lt;br/&gt;- Splits Compose UI out of `commons` into a new `commonsUI` module. 236 files&lt;br/&gt;  moved and no consumer import changed.&lt;br/&gt;- Bumps LightCompressor-enhanced to 2.2.3.&lt;br/&gt;- Drops the unused Guardian Project Maven repository.&lt;br/&gt;- Runs relay-backed tests against geode instead of external relays.&lt;br/&gt;- Clears the compiler, Android Lint and Gradle 10 deprecation warnings.&lt;br/&gt;- Bumps `appCode` to 461.&lt;br/&gt;&lt;br/&gt;## Contributors&lt;br/&gt;&lt;br/&gt;- &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsyvrp9u6p0mfur9dfdru3d853tx9mdjuhkphxuxgfwmryja7zsvhqpzamhxue69uhhv6t5daezumn0wd68yvfwvdhk6tcpzpmhxue69uhkummnw3ezumt0d5hszythwden5te0dehhxarj9emkjmn99uwfvhl6&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;VitorPamplona&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…vhl6&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;⚡ Dee Kay ⚡&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…m3sx&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- mstrofnone&lt;br/&gt;&lt;br/&gt;## Translations&lt;br/&gt;&lt;br/&gt;- Polish by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsdyfz0ewdhmgp3a4r3pxvezx5r8yalrgvjn38v2ml5qrusnv7yywgpzemhxue69uhkummnw3ezucm6v9ejuurvw4ej7qg0waehxw309a3h5ctn9e6x7up0qyg8wumn8ghj7cm6v9ejuurvw4ej79s8c53&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;Polak&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…8c53&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Hindi by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqs88dt78wgnzvaph6fcstfvsd98xc2qs8eg8tllwv2zlutu8ehec2cppemhxue69uhkummn9ekx7mp0qythwumn8ghj7un9d3shjtnswf5k6ctv9ehx2ap0qyt8wumn8ghj7un9d3shjtnyd968gmewwp6kytcmlz0lu&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;राज&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…z0lu&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Hungarian by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsxekg0s8kxpcrka8ccwztv2m73kz6jy0ur8f7jc04rwr5p44w5acspzamhxue69uhhyetvv9ujumn0wd68ytnzv9hxgtcppemhxue69uhkummn9ekx7mp0qyg8wumn8ghj7mn0wd68ytnddakj7c0ns2l&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;summoner&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…ns2l&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;
    </content>
    <updated>2026-09-17T17:37:56Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsglnj9tz02gn0ht6pg5px86u9mf747m4hlcx2x4yst9ux8exg0l8czyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykhxpxj3</id>
    
      <title type="html">#Amethst v1.15.0: Marmot Updates, a Advanced Search Box, and ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsglnj9tz02gn0ht6pg5px86u9mf747m4hlcx2x4yst9ux8exg0l8czyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykhxpxj3" />
    <content type="html">
      #Amethst v1.15.0: Marmot Updates, a Advanced Search Box, and Books, DVM Updates&lt;br/&gt;&lt;br/&gt;Highlights:&lt;br/&gt;&lt;br/&gt;- Rebuilds **Marmot** onto the adopted spec — Amethyst groups now interoperate&lt;br/&gt;  with White Noise, in both directions.&lt;br/&gt;- Makes the **search box&amp;#39;s tokens real filters**, locally and on relays, and puts&lt;br/&gt;  Android and Desktop on one pipeline.&lt;br/&gt;- Reads **publications, wikis, citations, library records and ratings**.&lt;br/&gt;- Adds **NIP-A3 payment targets** to the zap picker, and stops NWC failing in&lt;br/&gt;  silence.&lt;br/&gt;- Shows which **DVMs are alive** before you pick one.&lt;br/&gt;- Brings **NIP-53 live streaming** to Desktop — discover, watch and chat.&lt;br/&gt;- Stops fresh installs **stranding on a Tor bootstrap**.&lt;br/&gt;&lt;br/&gt;## New Features&lt;br/&gt;&lt;br/&gt;### Marmot Groups Catch Up With the Spec&lt;br/&gt;&lt;br/&gt;Marmot deprecated the MIP documents in July and MDK followed, which left our&lt;br/&gt;implementation — shipped in v1.09.0 — no longer a valid Marmot client under&lt;br/&gt;either profile the current spec defines. This release moves it onto the adopted&lt;br/&gt;&amp;#34;current profile&amp;#34; and proves it against the reference.&lt;br/&gt;&lt;br/&gt;- Implements the MLS extensions draft&amp;#39;s `app_data_dictionary`, the account&lt;br/&gt;  identity proof v2 that makes a group classifiable at all, and the six group&lt;br/&gt;  components that replace the single packed `marmot_group_data` blob.&lt;br/&gt;- Replaces the old same-epoch tie-break — lowest `created_at`, then event id,&lt;br/&gt;  both of which a sender picks — with the spec&amp;#39;s convergence: candidate branches&lt;br/&gt;  derived by replaying MLS bytes, a bounded pass, and a six-step comparison over&lt;br/&gt;  authenticated values only.&lt;br/&gt;- Enforces publish-before-apply. A local commit is prepared on a clone and&lt;br/&gt;  becomes canonical only once a relay in the group&amp;#39;s own scope acknowledges it,&lt;br/&gt;  so a failed publish can no longer fork this client away from the group.&lt;br/&gt;- Fixes the defects that made us unaddressable: no account could mint a&lt;br/&gt;  KeyPackage at all; KeyPackages were published as bare bytes instead of a framed&lt;br/&gt;  MLSMessage; a Commit rebuilt our own leaf from defaults, silently demoting the&lt;br/&gt;  group creator and making every invite we sent invisible; and a last-resort&lt;br/&gt;  KeyPackage was discarded after one Welcome, so only the first invite anyone&lt;br/&gt;  ever sent us worked.&lt;br/&gt;- Fixes two MLS defects that meant nobody but a group&amp;#39;s creator could invite into&lt;br/&gt;  a group of three or more: a joiner was never given its Welcome path secret, and&lt;br/&gt;  an UpdatePath was decrypted at our own leaf rather than at the node we hold a&lt;br/&gt;  key for.&lt;br/&gt;- Makes a departure actually take effect. A leaver&amp;#39;s `SelfRemove` was committed&lt;br/&gt;  and then dropped, so the group believed they were gone while they stayed in the&lt;br/&gt;  tree holding its keys.&lt;br/&gt;- Adds group disbanding, with the whole Commit shape the spec fixes, and an&lt;br/&gt;  admin-only action behind its own confirmation.&lt;br/&gt;- Sends attachments in the adopted encrypted-media v2 shape. Every image Amethyst&lt;br/&gt;  sent into a group was invisible to every other implementation; an admin can now&lt;br/&gt;  also switch a group over to encrypted attachments.&lt;br/&gt;- Honours disappearing messages, pinned to the epoch that delivered each message&lt;br/&gt;  rather than to the current setting, with a retention picker at group creation.&lt;br/&gt;- Renders message edits and group system rows, and draws a system row only when&lt;br/&gt;  this client derived it — a peer&amp;#39;s assertion of &amp;#34;X removed Y&amp;#34; is no longer drawn&lt;br/&gt;  as history.&lt;br/&gt;- Adds several members in one commit, the way MDK does, instead of one commit per&lt;br/&gt;  invitee.&lt;br/&gt;- Adds a group avatar behind a plain https link, with the canonical URL rules the&lt;br/&gt;  component requires and an SSRF guard at the renderer.&lt;br/&gt;- Adds push token gossip in the shape the spec adopted, with the kind-451 owner&lt;br/&gt;  proof, so relaying someone&amp;#39;s record cannot repoint, re-sign or restamp it.&lt;br/&gt;- Adds agent text stream previews over the repo&amp;#39;s own QUIC stack, in both&lt;br/&gt;  directions, with certificate pinning instead of blind trust.&lt;br/&gt;- Runs the reference implementation&amp;#39;s own fixtures, its portable scenario&lt;br/&gt;  vectors, and a headless interop harness against MDK 0.9.21 — 29 of 29, both&lt;br/&gt;  directions, including media in both.&lt;br/&gt;&lt;br/&gt;### Search&lt;br/&gt;&lt;br/&gt;- Ports the vespa-relay search field&amp;#39;s token language: `from:`/`to:`,&lt;br/&gt;  `since:`/`until:`, `#tag`, `label:`, `group:`, `kind:`, `lang:`, `domain:`,&lt;br/&gt;  NIP-73 scopes, `-exclusions` and quoted phrases, drawn as chips over ordinary&lt;br/&gt;  editable text.&lt;br/&gt;- Runs them. Android handed the raw box — chips and all — to both the relay&amp;#39;s&lt;br/&gt;  NIP-50 `search` and the local scan, so `from:npub1… bitcoin` asked relays for&lt;br/&gt;  the literal text of its own tokens and a `kind:` chip narrowed nothing.&lt;br/&gt;- Puts both front ends on one `SearchPipeline`, so a caller cannot skip&lt;br/&gt;  post-filters or ranking. Android had never applied `-term` exclusions or the&lt;br/&gt;  reply/media pseudo-kinds, and Relevance sorted by date.&lt;br/&gt;- Opens a picker under a half-written `kind:`, and gives the people picker the&lt;br/&gt;  composer&amp;#39;s own — NIP-05 resolution, relay lookups and follow ranking included.&lt;br/&gt;- Names what a chip stands for: a group&amp;#39;s name instead of its opaque id, a city&lt;br/&gt;  instead of a geohash.&lt;br/&gt;- Seeds the box with the filter of the screen it was opened from, across 17 more&lt;br/&gt;  feeds, and remembers what you searched for on Android.&lt;br/&gt;- Says what it is waiting on: the spinner now turns while a relay still owes an&lt;br/&gt;  EOSE, and tapping it lists the relays outstanding.&lt;br/&gt;- Answers with one kind window derived from Quartz instead of three hand-kept&lt;br/&gt;  lists — the audit found fifteen searchable, renderable kinds the search had&lt;br/&gt;  never asked for, pictures and every video kind among them.&lt;br/&gt;- Hides deletion (kind 5) and vanish (kind 62) events from results.&lt;br/&gt;&lt;br/&gt;### Reading: Publications, Library, Wiki and Ratings&lt;br/&gt;&lt;br/&gt;- Gives a kind-30040 publication a table of contents you can read from, listing&lt;br/&gt;  sections by `a` **and** `e` tag and naming each row from the index alone.&lt;br/&gt;- Renders kind-30041 sections: AsciiDoc converted to the same CommonMark renderer&lt;br/&gt;  long-form uses, with wikilinks resolved to nevents and naddrs.&lt;br/&gt;- Gives a chapter a crumb back to its book and a pager through the book.&lt;br/&gt;- Parses and renders the library kinds — 31/32/33 citations, 30045 directories,&lt;br/&gt;  30142 learning resources and 32176 Blossom piece indexes — and shows a learning&lt;br/&gt;  resource&amp;#39;s attached PDF inline instead of as a blue link.&lt;br/&gt;- Parses and renders the NIP-54 wiki kinds (818 merge requests, 819 acceptances,&lt;br/&gt;  30819 redirects) and kind-17 external reactions.&lt;br/&gt;- Parses kind-34259 entity ratings and kind-31987 relay reviews, and rebuilds the&lt;br/&gt;  rating card around cover art and stars that actually fill.&lt;br/&gt;- Renders kind 0 as a profile card, in the feed and in thread view, instead of&lt;br/&gt;  raw JSON.&lt;br/&gt;- Links each Birdex species to its Wikidata entry.&lt;br/&gt;&lt;br/&gt;### Payments and Zaps&lt;br/&gt;&lt;br/&gt;- Offers a NIP-A3 pay-to hand-off in the zap picker, gated on an installed app&lt;br/&gt;  actually resolving the URI and wearing that app&amp;#39;s own icon.&lt;br/&gt;- Hides on-chain zap amounts the wallet cannot fund, checked against the exact&lt;br/&gt;  coin selection the send path uses.&lt;br/&gt;- Names the payee on outgoing NWC transactions (NWC-06), and only claims a&lt;br/&gt;  binding for a zap request the provider accepted.&lt;br/&gt;- Never lets a NIP-47 refusal or timeout reach you as silence — a wallet&lt;br/&gt;  answering `QUOTA_EXCEEDED` or `RESTRICTED` showed nothing at all.&lt;br/&gt;- Stops sending optional NIP-47 params as `null`, which some wallets refuse, and&lt;br/&gt;  stops downgrading to NIP-04 encryption on a cold info cache.&lt;br/&gt;- Adds a Block Relay button to the relay NOTIFY payment prompt, so a paid relay&lt;br/&gt;  asking on every reconnect can be answered once.&lt;br/&gt;&lt;br/&gt;### DVM Liveness&lt;br/&gt;&lt;br/&gt;- Adds DVM heartbeats (kind 11998), hides DVMs whose last beat is older than 15&lt;br/&gt;  minutes from Discover, and marks the rest with an offline dot or banner.&lt;br/&gt;- Fetches beats from each DVM&amp;#39;s own outbox relays, not only the discovery&lt;br/&gt;  selection, so a live DVM your relays do not carry stops looking dead.&lt;br/&gt;&lt;br/&gt;### Relay Login&lt;br/&gt;&lt;br/&gt;- Makes the prompt&amp;#39;s &amp;#34;remember&amp;#34; switch mean the same thing for both answers. It&lt;br/&gt;  was read only by the Log in button, so refusing with it on wrote nothing and&lt;br/&gt;  the same dialog came back on the next reconnect.&lt;br/&gt;- Relabels the buttons to the answer they give, and adds &amp;#34;Never, all relays&amp;#34;&lt;br/&gt;  opposite &amp;#34;Always, all relays&amp;#34;, both behind one confirmation that names the&lt;br/&gt;  consequence.&lt;br/&gt;- Stops an account-wide answer being swallowed when the confirmation outlives the&lt;br/&gt;  prompt&amp;#39;s 60-second window, and answers the prompts queued behind it.&lt;br/&gt;&lt;br/&gt;### Everything Else&lt;br/&gt;&lt;br/&gt;- Shares your screen in a call, on Android.&lt;br/&gt;- Opens a real file picker for `&amp;lt;input type=&amp;#34;file&amp;#34;&amp;gt;` — it was a silent no-op in&lt;br/&gt;  the in-app browser, in nSites and in napplets — and offers the camera where a&lt;br/&gt;  mobile browser would.&lt;br/&gt;- Exposes NIP-44 encrypt and decrypt on the injected `window.nostr`, so a web app&lt;br/&gt;  logging in with Amethyst can seal a NIP-59 gift wrap.&lt;br/&gt;- Emits the uppercase `D` day-index tags on kind 31923, so calendar events are&lt;br/&gt;  discoverable by date.&lt;br/&gt;- Notifies on the rest of NIP-34: PR replies, merges, closes, reopens and drafts.&lt;br/&gt;  A merged PR used to arrive on the device and go nowhere.&lt;br/&gt;- Remembers which side-menu sections you collapsed (#4010).&lt;br/&gt;- Leaves the always-on notification card at the bare relay count, with the&lt;br/&gt;  per-relay breakdown behind a &amp;#34;Show details&amp;#34; action.&lt;br/&gt;- Lifts the 3-relay cap on Concord invite links, which blew up the invite button&lt;br/&gt;  for any community with more.&lt;br/&gt;- Saves videos to `Movies/` instead of `Pictures/` (#4009).&lt;br/&gt;&lt;br/&gt;## Performance&lt;br/&gt;&lt;br/&gt;- Draws Amethyst&amp;#39;s own icons from a generated font rather than rasterising an&lt;br/&gt;  ImageVector per card: frame duration P90 -10.7%, overrun P90 -17.4%.&lt;br/&gt;- Defers feed animation transitions until there is something to animate: overrun&lt;br/&gt;  P90 -19.4%.&lt;br/&gt;- Stops copying whole GIFs into RAM before decoding them. One 69.8 MB GIF cost&lt;br/&gt;  66 MB of heap plus 66 MB of native memory and ~700 ms of pure copying, on every&lt;br/&gt;  scroll back into view.&lt;br/&gt;- Restores the `ImageDecoder` path for still images, which the same identity&lt;br/&gt;  check had cost every network image in the app.&lt;br/&gt;- Makes the concurrent-fetch de-dupe actually work — it was rebuilt per request,&lt;br/&gt;  so it never saw a second caller — rate-limits the cache reconciler to once a&lt;br/&gt;  day, and reclaims cache files orphaned by a process death.&lt;br/&gt;- Stops blocking an OkHttp thread to sign Blossom read-auth, which could occupy&lt;br/&gt;  every per-host slot on a gated host, and collapses a cold burst onto one&lt;br/&gt;  signature.&lt;br/&gt;- Asks for many addresses in one relay filter instead of one filter each: opening&lt;br/&gt;  a 240-section publication went from a black screen for ~2 minutes at 120% CPU&lt;br/&gt;  to first paint at ~22s.&lt;br/&gt;- Rewrites Curve25519 field arithmetic on 10 limbs of radix 2^25.5 and runs the&lt;br/&gt;  ladder without allocating: x25519 541us → 121us, and against MDK&lt;br/&gt;  `create_group/1` goes from 4.7x slower to 1.5x while `send_app_message` is&lt;br/&gt;  6.5x faster.&lt;br/&gt;- Stops `FilterMatcher` allocating once per event — three separate ways, on a&lt;br/&gt;  path that runs tens of thousands of times per keystroke during a search.&lt;br/&gt;- Adds an allocation-free read path for NIP-50 indexable text to all 133&lt;br/&gt;  searchable kinds, pinned byte-for-byte against the write path.&lt;br/&gt;- Shares one IME-inset holder per window instead of one per call site.&lt;br/&gt;- Prices the NIP-19 bracket peel and makes it free.&lt;br/&gt;- Defers log message construction to the lambda overload, including the loops the&lt;br/&gt;  first sweep&amp;#39;s line-anchored greps missed.&lt;br/&gt;- Bounds the route-text scan by the budget rather than the input.&lt;br/&gt;- Bounds in-flight on-device AI work and stops blocking IO threads on it.&lt;br/&gt;- Single-flights the LNURL endpoint resolver: a zap-receipt burst was making ~20&lt;br/&gt;  requests to one provider per user action.&lt;br/&gt;&lt;br/&gt;## Improvements and Bug fixes&lt;br/&gt;&lt;br/&gt;- Stops a fresh install stranding on a Tor bootstrap. The watchdog fired once per&lt;br/&gt;  `Connecting` span and a timeout produces no status change, so after exactly two&lt;br/&gt;  attempts it went silent — permanently. Arti now bootstraps on demand instead of&lt;br/&gt;  blocking the whole directory download behind its lifecycle lock.&lt;br/&gt;- Classifies the app&amp;#39;s stand-in relays like the user&amp;#39;s own until their lists&lt;br/&gt;  arrive, so a new install stops routing everything over Tor by construction:&lt;br/&gt;  first relay socket moved from login&#43;5.9s to login&#43;1.2s, and events ingested by&lt;br/&gt;  the 20s census from 0–2,590 to 3,719–6,051.&lt;br/&gt;- Only substitutes default relays when there is no event, not when the list is&lt;br/&gt;  empty — publishing an empty search or inbox list is a choice, and the app was&lt;br/&gt;  overriding it.&lt;br/&gt;- Stops relay list updates wiping the public entries another client wrote&lt;br/&gt;  (#4075).&lt;br/&gt;- Recovers IME padding when Compose&amp;#39;s insets listener freezes. A back gesture&lt;br/&gt;  could leave a keyboard-sized gap app-wide, permanently, until the activity was&lt;br/&gt;  killed; the correction is now 120ms rather than 400ms.&lt;br/&gt;- Keeps `TextFieldState` writes on the UI thread, fixing a crash inside Compose&amp;#39;s&lt;br/&gt;  undo bookkeeping on the keyboard&amp;#39;s own callback.&lt;br/&gt;- Follows the phone&amp;#39;s light/dark setting on the launch splash, and carries a&lt;br/&gt;  pinned LIGHT/DARK choice into it through the per-application night mode.&lt;br/&gt;- Uses the HLS master playlist and its full quality ladder, sizes the ladder to&lt;br/&gt;  the player rather than to a fixed policy, caps it on metered connections, and&lt;br/&gt;  fixes a picture-in-picture race.&lt;br/&gt;- Caps MediaSession artwork so the platform never re-scales it — a crash on ROMs&lt;br/&gt;  that recycle the source bitmap.&lt;br/&gt;- Stops cancelling ML Kit GenAI inference futures, which killed the process from&lt;br/&gt;  a thread the app does not own. The composer cancelled one on every keystroke.&lt;br/&gt;- Makes the full-screen viewer follow the system bars instead of reserving the&lt;br/&gt;  strip they would occupy, and brings the PDF viewer&amp;#39;s chrome to parity.&lt;br/&gt;- Caps navigation route text arguments. Sending a crash report to the developer&lt;br/&gt;  crashed the app: ICU&amp;#39;s regex stack overflows at ~100,000 characters and reports&lt;br/&gt;  &amp;#34;no match&amp;#34; rather than an error.&lt;br/&gt;- Narrows the `FileProvider` external root to the app-specific directory.&lt;br/&gt;- Stops deleted lists showing their UUID in the feed filter picker (#3949).&lt;br/&gt;- Restores GIF insertion on the comment reply screens, where a keyboard GIF did&lt;br/&gt;  nothing and a shared one threw away the reply in progress, and wires it into&lt;br/&gt;  four more composers.&lt;br/&gt;- Keeps calls alive when the system destroys `MainActivity`, releases the&lt;br/&gt;  screen-capture Surface instead of leaking one per session, and stops reopening&lt;br/&gt;  the camera during teardown.&lt;br/&gt;- Stops reporting coroutine cancellation as a signer failure, which surfaced as a&lt;br/&gt;  &amp;#34;signer not found&amp;#34; toast on essentially every fast settings toggle.&lt;br/&gt;- Stops a picker&amp;#39;s scrolling from dragging the top and bottom bars with it.&lt;br/&gt;- Tints the un-boosted repost icon like the rest of the action row, and fixes the&lt;br/&gt;  liked and reposted colours.&lt;br/&gt;- Stops labelling the mixed media feed &amp;#34;Shorts&amp;#34; — two different destinations in&lt;br/&gt;  the bottom-bar picker carried the same label.&lt;br/&gt;- Converts Android string escaping to Compose escaping inside the Crowdin sync,&lt;br/&gt;  and gates it in CI, after three syncs in a row reintroduced ~2,900 escaped&lt;br/&gt;  apostrophes that render with a visible backslash.&lt;br/&gt;&lt;br/&gt;## Desktop&lt;br/&gt;&lt;br/&gt;- Adds NIP-53 live streaming: a &amp;#34;Live now&amp;#34; section in Discover with ranking and&lt;br/&gt;  search, a per-column live bar on the Following and Global feeds, and a watch&lt;br/&gt;  overlay with player, live chat and live-mode controls, openable from anywhere.&lt;br/&gt;- Routes kinds 30311 and 1311 into the desktop cache, which had no channel store&lt;br/&gt;  at all, with a 500-message chat cap.&lt;br/&gt;- Shares the unified search pipeline, and gives the spotlight the same people&lt;br/&gt;  picker — typing `from:` there opened nothing.&lt;br/&gt;- Surfaces macOS notification-permission errors and times the request out, rather&lt;br/&gt;  than parking forever on a banner the user missed.&lt;br/&gt;&lt;br/&gt;## Cli&lt;br/&gt;&lt;br/&gt;- Redesigns `amy status` around who is signed in and what they saved, adding&lt;br/&gt;  relay config, follows, Marmot messages, Concord communities and the operator&lt;br/&gt;  key — and fixing a store report that read 0 events on the default backend.&lt;br/&gt;- Drives the Marmot work end to end: current-profile group creation, retention,&lt;br/&gt;  media policy and transfer, disband, and `amy marmot stream`.&lt;br/&gt;&lt;br/&gt;## Quartz&lt;br/&gt;&lt;br/&gt;- Adds the adopted Marmot profile: the app-data dictionary carrier, account&lt;br/&gt;  identity proof v2, the six group components, the lifecycle state machine,&lt;br/&gt;  branch selection, the bounded convergence pass, the candidate-graph builder,&lt;br/&gt;  encrypted media v2, the kind-451 push owner proof and the agent-text-stream&lt;br/&gt;  codecs.&lt;br/&gt;- Replaces `org.json` with `kotlinx.serialization` across the remaining sources.&lt;br/&gt;- Backs linuxX64&amp;#39;s `LargeCache` with a striped-lock hash table instead of&lt;br/&gt;  copy-on-write, which was O(n) per put and not thread-safe. Filling 100k entries&lt;br/&gt;  goes from 70ms to 15ms with 1 GC instead of 24 — and the whole linuxX64 suite&lt;br/&gt;  now passes (3,495 tests, from 78 failures), so the CI leg runs all of it.&lt;br/&gt;- Matches `java.net.URLEncoder` on native and drops the `urlencoder` dependency.&lt;br/&gt;  The two implemented different specifications, so Android and iOS emitted&lt;br/&gt;  different bytes for the same magnet link or NWC deep link.&lt;br/&gt;- Routes the roles the NIP-50 search extractor was stranding in the body tier: 19&lt;br/&gt;  kinds gain a branch, including the marketplace and Podcasting 2.0 families&lt;br/&gt;  whose titles could never reach a title band.&lt;br/&gt;- Gives the Trusted List member score a 0–100 scale, reads the generic Trusted&lt;br/&gt;  List entry in a NIP-85 Treasure Map, carries Map entries in both halves of the&lt;br/&gt;  10040, and indexes Trusted List titles for NIP-50 search.&lt;br/&gt;- Holds a transport failure as provisional for one retry when a relay drops the&lt;br/&gt;  socket between our EVENT and its OK, and restores pool membership first so the&lt;br/&gt;  retry dials something.&lt;br/&gt;- Waits out the second instead of stamping `created_at` in the future when&lt;br/&gt;  superseding a replaceable event.&lt;br/&gt;- Adds `DvmHeartbeatEvent` (kind 11998) and the publication, library, wiki and&lt;br/&gt;  rating parsers.&lt;br/&gt;&lt;br/&gt;## Build &amp;amp; Documentation&lt;br/&gt;&lt;br/&gt;- Bumps Kotlin to 2.4.20, Compose Multiplatform to 1.12.0 and AGP to 9.4.0, plus&lt;br/&gt;  the rest of the version catalog.&lt;br/&gt;- Executes the commons migration sweep: 38 relayClient files, the OkHttp client&lt;br/&gt;  stack, 37 model and service singles, the top-nav feed datasource layer and the&lt;br/&gt;  search history move to `commons`; the 12 typealias shims are deleted and their&lt;br/&gt;  1,165 imports repointed; 25 files are promoted from `jvmAndroid` to&lt;br/&gt;  `commonMain` after a per-file concurrency review.&lt;br/&gt;- Migrates 2,565 string keys — about 105,800 locale entries — to the shared&lt;br/&gt;  Compose resource catalog, and gates the orphaned-translation and escaping traps&lt;br/&gt;  pre-push and in CI.&lt;br/&gt;- Publishes desktop test reports when the desktop job fails, which was the only&lt;br/&gt;  test-running job with none.&lt;br/&gt;- Renames the `geode` Homebrew formula to `geode-relay`, since `geode` is&lt;br/&gt;  permanently reserved for Apache Geode, and fixes a style violation in both&lt;br/&gt;  formulae.&lt;br/&gt;- Adds `marmotBench`, a head-to-head against MDK&amp;#39;s own benchmark, reporting bytes&lt;br/&gt;  allocated per operation alongside latency.&lt;br/&gt;&lt;br/&gt;## Contributors&lt;br/&gt;&lt;br/&gt;- &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsyvrp9u6p0mfur9dfdru3d853tx9mdjuhkphxuxgfwmryja7zsvhqpzamhxue69uhhv6t5daezumn0wd68yvfwvdhk6tcpzpmhxue69uhkummnw3ezumt0d5hszythwden5te0dehhxarj9emkjmn99uwfvhl6&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;VitorPamplona&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…vhl6&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;⚡ Dee Kay ⚡&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…m3sx&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqs9vyevafl4f7rqluqykt500e9nj5ase8eh5k423rgwtfw6qdjhd4spz4mhxue69uhhyetvv9ujuerpd46hxtnfduhszrnhwden5te0dehhxtnvdakz7qghwaehxw309aex2mrp0yh8qunfd4skctnwv46z7fr94k8&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;beefenergy&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…94k8&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsfnw64j8y3zesqlpz3qlf3lx6eutmu0cy6rluq96z0r4pa54tu5eqppemhxue69uhkummn9ekx7mp0qyv8wumn8ghj7umsv96xjcfdv9exxctwvyhxxmmd9urhuzlr&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;Don&#39;t Believe The Vibe 🌱🍋🍊&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…uzlr&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqs827g8dkd07zjvlhh60csytujgd3l9mz7x807xk3fewge7rwlukxgppemhxue69uhkummn9ekx7mp0qydhwumn8ghj7argv4nx7un9wd6zumn0wd68yvfwvdhk6tcpz9mhxue69uhkummnw3ezumrpdejz7d9xcpk&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;greenart7c3&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…xcpk&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqszz4sngyeuvfeky0tweswnhgzrww9p098rp4tkca4zscwugkmwvxspzemhxue69uhhyetvv9ujuerfw36x7tnsw43z7qgcwaehxw309aex2mrp0yhxgun9v9kkjarg9e6x7tcsf5c4q&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;narmic&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…5c4q&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsyxxz7mm9kwkyjsf935da90ulyqlaautk6wgq68q5m3n6t5lzmfuqpz9mhxue69uhkummnw3ezuamfdejj7qg4waehxw309aex2mrp0yhxgctdw4eju6t09uqsuamnwvaz7tmwdaejumr0dshsqfznmg&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;mstrofnone&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…znmg&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;## Translations&lt;br/&gt;&lt;br/&gt;- Dutch by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqs82l74z7g3x8j3avpn2wrjrwn855nyvmpxa4v5pftfvtv5lrvrc5cppemhxue69uhkummn9ekx7mp074ge6h&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;Bartus&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…ge6h&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Hindi by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqs88dt78wgnzvaph6fcstfvsd98xc2qs8eg8tllwv2zlutu8ehec2cppemhxue69uhkummn9ekx7mp0qythwumn8ghj7un9d3shjtnswf5k6ctv9ehx2ap0qyt8wumn8ghj7un9d3shjtnyd968gmewwp6kytcmlz0lu&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;राज&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…z0lu&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Hungarian by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsxekg0s8kxpcrka8ccwztv2m73kz6jy0ur8f7jc04rwr5p44w5acspzamhxue69uhhyetvv9ujumn0wd68ytnzv9hxgtcppemhxue69uhkummn9ekx7mp0qyg8wumn8ghj7mn0wd68ytnddakj7c0ns2l&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;summoner&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…ns2l&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Polish by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsdyfz0ewdhmgp3a4r3pxvezx5r8yalrgvjn38v2ml5qrusnv7yywgpzemhxue69uhkummnw3ezucm6v9ejuurvw4ej7qg0waehxw309a3h5ctn9e6x7up0qyg8wumn8ghj7cm6v9ejuurvw4ej79s8c53&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;Polak&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…8c53&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Slovenian by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsqqqqqqp0fmkspg7w8d305ln96a0jw0ptwqtuwskkm5pddv2kkjfcppemhxue69uhkummn9ekx7mp0qyt8wumn8ghj7un9d3shjtnyd968gmewwp6kytcpzemhxue69uhhyetvv9ujumt0wd68ytnsw43z7s23gag&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;StellarStoic&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…3gag&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;
    </content>
    <updated>2026-09-11T20:52:19Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsqp5cxuqte9eytjd3ckua40flt3wyky23n3vd5755kyg2s63kdwyqzyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykl7hzwj</id>
    
      <title type="html">#Amethyst v1.14.0: New Share Intents, Relay Login, and a Much ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsqp5cxuqte9eytjd3ckua40flt3wyky23n3vd5755kyg2s63kdwyqzyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykl7hzwj" />
    <content type="html">
      #Amethyst v1.14.0: New Share Intents, Relay Login, and a Much Faster Start&lt;br/&gt;&lt;br/&gt;Highlights:&lt;br/&gt;&lt;br/&gt;- Improves **NIP-84 Highlights** — composer, feed, and share intent.&lt;br/&gt;- Redesigns **relay login (NIP-42)** and ends the per-relay prompt storm.&lt;br/&gt;- Adds Share targets to **Pictures, Videos, Shorts and Torrents** feeds.&lt;br/&gt;- Adds a screen that explains **why every relay subscription exists**.&lt;br/&gt;- Fixes the cold-start **out-of-memory kill** and cuts time to first paint.&lt;br/&gt;- Brings **Desktop** to parity on profiles, DMs, settings and key backup.&lt;br/&gt;- Adds **Trusted Lists** (kinds 30392–30395) to Quartz.&lt;br/&gt;&lt;br/&gt;## New Features&lt;br/&gt;&lt;br/&gt;### Highlights (NIP-84)&lt;br/&gt;&lt;br/&gt;- Adds a Highlight composer, with an annotation field, a passage editor, and a&lt;br/&gt;  source reference that can be a Nostr event or a web URL.&lt;br/&gt;- Adds a Highlights feed, filterable by authors, follows, hashtags and geohashes.&lt;br/&gt;- Accepts shared text from any app as a new highlight.&lt;br/&gt;&lt;br/&gt;### Feeds and Composing&lt;br/&gt;&lt;br/&gt;- Adds four home feed content types: Pictures (NIP-68), Videos and Shorts&lt;br/&gt;  (NIP-71), and Torrents (NIP-35), each with its own toggle.&lt;br/&gt;- Adds &amp;#34;New Picture&amp;#34;, &amp;#34;New Short&amp;#34; and &amp;#34;New Video&amp;#34; share targets, so media shared&lt;br/&gt;  into Amethyst opens the matching composer instead of a text note with a link.&lt;br/&gt;- Adds a bulk audience picker to the short-note composer: search people lists and&lt;br/&gt;  follow packs, review the members, then add them all at once.&lt;br/&gt;- Adds a poll results page with per-option vote counts and a filterable voter&lt;br/&gt;  list, replacing the feed card&amp;#39;s four-avatar preview.&lt;br/&gt;- Shows rich previews for comments scoped to external content (NIP-73), both in&lt;br/&gt;  the &amp;#34;replying to&amp;#34; line and as the thread&amp;#39;s title.&lt;br/&gt;- Offers a &amp;#34;Copy Original / Copy Translated&amp;#34; chooser when copying a note that has&lt;br/&gt;  been translated.&lt;br/&gt;- Opens the edit screen when a draft reply is tapped in a thread.&lt;br/&gt;&lt;br/&gt;### Relay Login (NIP-42)&lt;br/&gt;&lt;br/&gt;- Redesigns the relay login permissions screen. Explicit exceptions, relays&lt;br/&gt;  blocked by your block list, and recent logins are now three separate sections.&lt;br/&gt;- Starts new accounts on &amp;#34;always log in&amp;#34; instead of deciding per relay.&lt;br/&gt;- Remembers a login for the rest of the session when you answer without ticking&lt;br/&gt;  &amp;#34;remember&amp;#34;, so a reconnect stops asking again.&lt;br/&gt;- Honors &amp;#34;always log in&amp;#34; for relays your own account does not publish to.&lt;br/&gt;- Makes the &amp;#34;reading someone I follow&amp;#34; toggle reachable — it sat behind a&lt;br/&gt;  first-party gate that could never be true.&lt;br/&gt;- Counts NIP-29 groups and Concord communities as rooms you joined, so their&lt;br/&gt;  host relays authenticate under &amp;#34;my relays and venues&amp;#34;.&lt;br/&gt;- Waits for an auth challenge to resolve rather than letting the fetch time out.&lt;br/&gt;&lt;br/&gt;### Relay Traffic, Explained&lt;br/&gt;&lt;br/&gt;- Records why every relay-bound filter exists — its purpose, the entities it&lt;br/&gt;  serves and the account that asked — and renders that back on a new screen.&lt;br/&gt;- Fixes the multi-account subscriptions that screen exposed as never running.&lt;br/&gt;- Breaks the resource ledger down by cause, so it reports *why* relay data was&lt;br/&gt;  spent, not just how much.&lt;br/&gt;- Stops the automatic &amp;#34;High resource usage detected&amp;#34; dialog on app open. The&lt;br/&gt;  ledger keeps recording and Settings still shows the report.&lt;br/&gt;&lt;br/&gt;### Chats, Groups and Communities&lt;br/&gt;&lt;br/&gt;- Mutes a public chat from a long press in Messages or from the channel menu.&lt;br/&gt;- Deletes (kind 9008) and archives NIP-29 channels, with the Buzz community UI to&lt;br/&gt;  match.&lt;br/&gt;- Keeps a channel invite&amp;#39;s replies, reactions and zaps inside the relay that sent&lt;br/&gt;  the invite, instead of broadcasting them to your outbox.&lt;br/&gt;- Derives Buzz channel invites from cached membership notices, so they stop&lt;br/&gt;  appearing and disappearing.&lt;br/&gt;- Redesigns channel invite cards as feed rows, with the person who added you as&lt;br/&gt;  the row&amp;#39;s author.&lt;br/&gt;- Shows the hosting relay&amp;#39;s name chip on relay group message headers.&lt;br/&gt;- Splits the Concord Control Plane&amp;#39;s stream key so a staff-held `control_root`&lt;br/&gt;  write-gates it (CORD-02 §2).&lt;br/&gt;- Closes the Concord CORD-05/06 invite lifecycle: an Invite List, a re-mint on&lt;br/&gt;  Refounding, and revocation.&lt;br/&gt;- Stops pinning Concord entities whose chain crosses a Refounding, which was&lt;br/&gt;  discarding their newer state on every refold.&lt;br/&gt;- Closes seven Concord soft-ban holes — a banned member kept `control_root`, half&lt;br/&gt;  the Control Plane never read the banlist, and the invite button still worked.&lt;br/&gt;&lt;br/&gt;### Everything Else&lt;br/&gt;&lt;br/&gt;- Makes the left drawer configurable, so entries you don&amp;#39;t use can be hidden.&lt;br/&gt;- Adds ngit-specific search to the Git Repositories screen.&lt;br/&gt;- Supports IPv6 overlay relays (Yggdrasil) with RFC 5952 canonical addresses,&lt;br/&gt;  fixing one relay counting as two and Tor-proxying an unreachable overlay.&lt;br/&gt;- Adds a Nostr badge watermark to the notification icons, reshapes the mention&lt;br/&gt;  icon, and adds dedicated reply and mark-as-read action icons.&lt;br/&gt;- Runs verified NIP-5D artifacts in an opaque `srcdoc` sandbox behind a first-head&lt;br/&gt;  CSP, and advertises only the NAP domains actually implemented.&lt;br/&gt;&lt;br/&gt;## Performance&lt;br/&gt;&lt;br/&gt;- Scans NIP-19 entities, hashtags and legacy `#[n]` references without ICU. On&lt;br/&gt;  Android, `Regex.matchAt` copied the whole note content into native memory per&lt;br/&gt;  candidate, which grew a cold start to ~1.9 GB and got the app killed.&lt;br/&gt;- Scans note content by literal instead of restarting the regex engine at every&lt;br/&gt;  position in every note.&lt;br/&gt;- AOT-compiles the relay ingest path with a baseline profile. Release cold-start&lt;br/&gt;  ingest was spending 36× more CPU interpreting bytecode than verifying&lt;br/&gt;  signatures.&lt;br/&gt;- Demotes the ~650 relay and ingest worker threads below the UI thread, so the&lt;br/&gt;  connect storm cannot starve the first frames (~40% faster first paint).&lt;br/&gt;- Reclaims memory under heap pressure and stops leaking sandboxed WebView&lt;br/&gt;  Activities.&lt;br/&gt;- Bounds the duplicate-frame decoder cache in both size and age.&lt;br/&gt;- Stops blocking coroutine workers on synchronous OkHttp calls, which released&lt;br/&gt;  their CPU permits and starved the dispatcher.&lt;br/&gt;- Stops the outbox getting slower with every publish — it rebuilt an immutable map&lt;br/&gt;  per send, copying every pending entry.&lt;br/&gt;- Stripes the subscription-state lock per relay, ending the ANR convoy that had&lt;br/&gt;  37 of 52 workers spinning on one lock.&lt;br/&gt;- Memoizes Concord guestbook envelope opens, so the fold stops re-decrypting the&lt;br/&gt;  whole buffer on every arrival.&lt;br/&gt;- Caches the painter on its first miss in `painterRes`.&lt;br/&gt;- Optimizes the proof-of-work mining hot loop for the Android runtime.&lt;br/&gt;- Skips the ~220 ms system call when the app locale has not actually changed.&lt;br/&gt;- Confines the Blossom cache probe and server resolver to the IO dispatcher, and&lt;br/&gt;  re-probes it when the toggle flips.&lt;br/&gt;- Releases dead subscription rows, so connect and disconnect stop scanning every&lt;br/&gt;  subscription ever created.&lt;br/&gt;- Prefetches NIP-73 external-content preview URLs so those cards stop popping in&lt;br/&gt;  mid-scroll.&lt;br/&gt;- Adds fixed-size hex codecs for 32- and 64-byte values.&lt;br/&gt;&lt;br/&gt;## Improvements and Bug fixes&lt;br/&gt;&lt;br/&gt;- Settles the keyboard inside navigation, so leaving a screen mid-animation stops&lt;br/&gt;  stranding `imePadding` across the whole app.&lt;br/&gt;- Routes the draft-saving editors through `KeyboardAwareBackHandler`, so a&lt;br/&gt;  predictive back gesture no longer races the IME close.&lt;br/&gt;- Raises the keyboard again when you tap a field in an embedded tab that was&lt;br/&gt;  already focused.&lt;br/&gt;- Pads for the soft keyboard in full-screen napplet hosts on Android 15&#43;.&lt;br/&gt;- Fixes the crash when switching between two pinned web-app tabs.&lt;br/&gt;- Stops drawing a blank parent card above a top-level community post.&lt;br/&gt;- Fixes Cashu wallet balances reading low: proofs are now backfilled past the&lt;br/&gt;  relay&amp;#39;s page cap and history is paged.&lt;br/&gt;- Keeps PDF previews stable — the page ratio is cached, so scrolling back no&lt;br/&gt;  longer collapses the card and replays the grow-in animation.&lt;br/&gt;- Stops rendering non-media NIP-94 files as video.&lt;br/&gt;- Repairs `imeta` MIME types written as a bare subtype, so those images can be&lt;br/&gt;  shared again.&lt;br/&gt;- Works around a fatal media3 crash on Low-Latency HLS streams.&lt;br/&gt;- Drives the &amp;#34;Can&amp;#39;t reach this relay over Tor&amp;#34; banner from live socket state&lt;br/&gt;  instead of a bare six-second timer.&lt;br/&gt;- Stops a lone repost from being bundled into the always-on service notification,&lt;br/&gt;  where it inherited the ongoing flag and refused to swipe away.&lt;br/&gt;- Fails push registration loudly on an HTTP error, instead of caching a token for&lt;br/&gt;  a device that will never receive anything.&lt;br/&gt;- Listens for location only while foregrounded, and fixes the meter that reported&lt;br/&gt;  7 hours of listening against 9 seconds of foreground.&lt;br/&gt;- Excludes quote characters from parsed URLs.&lt;br/&gt;- Fixes the OpenGraph meta parser losing every tag after an apostrophe inside a&lt;br/&gt;  comment or script, which broke link previews on some sites.&lt;br/&gt;- Requests the follower-count provider&amp;#39;s kind 30382 cards, so the count stops&lt;br/&gt;  rendering as `--`.&lt;br/&gt;- Gives the invite roster line&amp;#39;s member count its unit, so a bare number no longer&lt;br/&gt;  reads as counting the avatars beside it.&lt;br/&gt;- Removes the recent-poster facepile from Concord and Buzz channel rows.&lt;br/&gt;- Renders every NIP-71 video subtype through the shared interface.&lt;br/&gt;- Reworks the chat bubble reply swipe on lower-level pointer APIs, so it only&lt;br/&gt;  claims the gesture once the motion is clearly horizontal.&lt;br/&gt;- Turns the default log into a boot narrative instead of a firehose.&lt;br/&gt;- Converts the drawer&amp;#39;s hidden-count to a plural, fills the untranslated backlog&lt;br/&gt;  for Czech, German, Swedish and Brazilian Portuguese, restores placeholders&lt;br/&gt;  dropped from German and Polish plurals, and drops an unused plural.&lt;br/&gt;&lt;br/&gt;## Desktop&lt;br/&gt;&lt;br/&gt;- Enriches the DM composer and message list: emoji picker with custom emoji,&lt;br/&gt;  @mentions, reply-quoting with jump-to-original, Nostr-native GIF search, rich&lt;br/&gt;  message rendering, per-message image quality, and encrypted file uploads.&lt;br/&gt;- Redesigns Settings as a searchable accordion of labeled cards, with&lt;br/&gt;  expand/collapse-all and a filter over titles and keywords.&lt;br/&gt;- Brings the profile screen to parity: banner, rich-text bio, a CLINK offer field,&lt;br/&gt;  six new tabs (Followers, Following, Relays, Bookmarks, Yours, Zaps received) and&lt;br/&gt;  header actions.&lt;br/&gt;- Adds a guided &amp;#34;save your keys&amp;#34; step on first run and a key backup in Settings.&lt;br/&gt;  Android gets a soft nudge after signup.&lt;br/&gt;- Loads metadata and reactions only for what is on screen, through the shared&lt;br/&gt;  finders in `commons`, and unsubscribes when it leaves.&lt;br/&gt;- Enables the master notification switch when the OS permission is already&lt;br/&gt;  granted.&lt;br/&gt;- Publishes Windows arm64 and Linux arm64 desktop builds.&lt;br/&gt;&lt;br/&gt;## Cli&lt;br/&gt;&lt;br/&gt;- Gives `amy` the Concord key lifecycle it was missing: accept a promotion, follow&lt;br/&gt;  a Refounding, perform one, and recover when left out of it.&lt;br/&gt;- Publishes Windows and Linux arm64 assets for `amy` and `geode`.&lt;br/&gt;- Reports &amp;#34;no relays&amp;#34; only when there really were none, and pins the buzz wrapper&lt;br/&gt;  copies against the argument surface they call.&lt;br/&gt;&lt;br/&gt;## Quartz&lt;br/&gt;&lt;br/&gt;- Adds Trusted Lists (kinds 30392–30395), the aggregate counterpart to NIP-85&lt;br/&gt;  Trusted Assertions, and indexes their labels for NIP-50 search.&lt;br/&gt;- Fixes a `SharedKeyCache` collision that could return one peer&amp;#39;s shared secret&lt;br/&gt;  for another peer&amp;#39;s message, and compares MACs in constant time.&lt;br/&gt;- Measures NIP-66 relay health from traffic the client already makes, streams&lt;br/&gt;  probe verdicts as relays answer, checks read and write separately, lets a&lt;br/&gt;  monitor publish what it learned without dialling, and merges verdicts into the&lt;br/&gt;  record they replace instead of overwriting it.&lt;br/&gt;- Measures `rtt-open` as the transport handshake, not the time the call spent&lt;br/&gt;  queued in the dispatcher.&lt;br/&gt;- Records sync coverage per kind rather than one interval per filter, keys its&lt;br/&gt;  persistence with a typed band, closes a drained leg, and terminates a paged walk&lt;br/&gt;  against a relay that ignores `until`.&lt;br/&gt;- Strikes a host out and tracks its unreachability with publish-safe semantics,&lt;br/&gt;  so a dead host stops being retried at the same rate as a live one.&lt;br/&gt;- Sizes negentropy reconcile windows from the caller&amp;#39;s own index, states the&lt;br/&gt;  relay&amp;#39;s cap, and lets a caller decline an id before its body crosses the wire.&lt;br/&gt;- Normalizes every accessory timeout to an idle window, drops the `maxTotalMs`&lt;br/&gt;  ceiling that cut healthy fetches, and stops `fetchAllPages` cropping a streaming&lt;br/&gt;  page.&lt;br/&gt;- Stops COUNT inheriting the REQ page size, which capped a count at 500.&lt;br/&gt;- Suspends the incoming-message chain down to `SubscriptionListener.onEvent`, so a&lt;br/&gt;  consumer that cannot keep up no longer blocks every shared worker.&lt;br/&gt;- Compares every filter in `FiltersChanged`, not just the first.&lt;br/&gt;- Fixes an `InProcessWebSocket` race that delivered a connect-time AUTH challenge&lt;br/&gt;  before `onOpen`.&lt;br/&gt;- Adds `StoreQueryContext`, carrying the NIP-42-authenticated caller identity into&lt;br/&gt;  observer-relative stores.&lt;br/&gt;- Adds a NIP-50 search grammar (quoted phrases, negation) with weighted field&lt;br/&gt;  extraction, and shares the store-semantics rules across implementations.&lt;br/&gt;- Parses metadata leniently everywhere, and recovers blank, single-element and&lt;br/&gt;  malformed kind-0 content instead of dropping the profile.&lt;br/&gt;- Parses `ServiceType` without splitting on a separator that may not be there.&lt;br/&gt;- Declares pointer hints on Report, ChatMessage, Classifieds and ChannelCreate.&lt;br/&gt;- Refreshes `created_at` while mining, so a post that takes minutes to mine does&lt;br/&gt;  not publish stale.&lt;br/&gt;- Decouples the `LocalCache` and `Account` god classes into single-purpose&lt;br/&gt;  collaborators, 3,800 lines lighter, with no behavior change.&lt;br/&gt;&lt;br/&gt;## Build &amp;amp; Documentation&lt;br/&gt;&lt;br/&gt;- Adds a `:baselineprofile` module that records a real startup journey, replacing&lt;br/&gt;  the hand-authored profile&amp;#39;s wildcards.&lt;br/&gt;- Notarizes the macOS DMG and verifies it, adds `libegl1` to the arm64 `.deb`&lt;br/&gt;  dependencies, and moves the Homebrew and Winget bumps onto a maintainer machine.&lt;br/&gt;- Shrinks the mirror-sync throughput corpus on CI, which had been timing out the&lt;br/&gt;  `test-geode` job for weeks.&lt;br/&gt;- Confines the QUIC stream drainer to the producer&amp;#39;s event loop, deflaking it&lt;br/&gt;  under parallel test load.&lt;br/&gt;- Hardens `workflow-ship.sh` and pins it with a regression harness.&lt;br/&gt;- Adds three store-implementer skills: event store semantics, NIP-85 trusted&lt;br/&gt;  assertions and searchable events.&lt;br/&gt;- Bumps 30&#43; dependencies plus Gradle, Compose, Firebase, Media3, Ktor and OkHttp.&lt;br/&gt;&lt;br/&gt;## Contributors&lt;br/&gt;&lt;br/&gt;- &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsyvrp9u6p0mfur9dfdru3d853tx9mdjuhkphxuxgfwmryja7zsvhqpzamhxue69uhhv6t5daezumn0wd68yvfwvdhk6tcpzpmhxue69uhkummnw3ezumt0d5hszythwden5te0dehhxarj9emkjmn99uwfvhl6&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;VitorPamplona&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…vhl6&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;⚡ Dee Kay ⚡&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…m3sx&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqs9vyevafl4f7rqluqykt500e9nj5ase8eh5k423rgwtfw6qdjhd4spz4mhxue69uhhyetvv9ujuerpd46hxtnfduhszrnhwden5te0dehhxtnvdakz7qghwaehxw309aex2mrp0yh8qunfd4skctnwv46z7fr94k8&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;beefenergy&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…94k8&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqswum4p82uluhz2dr40nvdrflspffntgqghc58w9fs57nx6jkdkuaqpzamhxue69uhhyetvv9ujuct60fsk6mewdejhgtcpr9mhxue69uhhyetvv9ujuur0wd6x2u3wwpkxzcm99uq3vamnwvaz7tmgd9ehgtnwdaehgu3wd3skuep09tugna&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;daniel&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…ugna&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqswwud0pvzu362lehm0av6sq4zd97cue5uy0z8f7jgtk0hz368dvmcpzamhxue69uhhyetvv9ujuurjd9kkzmpwdejhgtcpr4mhxue69uhkcatwvd5xymmc9eekzmnywa5kx6pwveshymf0qy88wumn8ghj7mn0wvhxcmmv9u62vnak&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;sandwich&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…vnak&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsqgc0uhmxycvm5gwvn944c7yfxnnxm0nyh8tt62zhrvtd3xkj8fhgpzemhxue69uhhyetvv9ujuerfw36x7tnsw43z7qgcwaehxw309aex2mrp0yhxgun9v9kkjarg9e6x7tcpzamhxue69uhhyetvv9ujuurjd9kkzmpwdejhgtcadg58a&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;Alex Gleason&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…g58a&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsyxxz7mm9kwkyjsf935da90ulyqlaautk6wgq68q5m3n6t5lzmfuqpz9mhxue69uhkummnw3ezuamfdejj7qg4waehxw309aex2mrp0yhxgctdw4eju6t09uqsuamnwvaz7tmwdaejumr0dshsqfznmg&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;mstrofnone&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…znmg&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;## Translations&lt;br/&gt;&lt;br/&gt;- Czech by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;⚡ Dee Kay ⚡&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…m3sx&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; &lt;br/&gt;- Dutch by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqs82l74z7g3x8j3avpn2wrjrwn855nyvmpxa4v5pftfvtv5lrvrc5cppemhxue69uhkummn9ekx7mp074ge6h&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;Bartus&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…ge6h&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- German by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;⚡ Dee Kay ⚡&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…m3sx&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; &lt;br/&gt;- Hindi by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqs88dt78wgnzvaph6fcstfvsd98xc2qs8eg8tllwv2zlutu8ehec2cppemhxue69uhkummn9ekx7mp0qythwumn8ghj7un9d3shjtnswf5k6ctv9ehx2ap0qyt8wumn8ghj7un9d3shjtnyd968gmewwp6kytcmlz0lu&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;राज&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…z0lu&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; &lt;br/&gt;- Hungarian by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsxekg0s8kxpcrka8ccwztv2m73kz6jy0ur8f7jc04rwr5p44w5acspzamhxue69uhhyetvv9ujumn0wd68ytnzv9hxgtcppemhxue69uhkummn9ekx7mp0qyg8wumn8ghj7mn0wd68ytnddakj7c0ns2l&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;summoner&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…ns2l&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; &lt;br/&gt;- Latvian by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqs0a8c9nt88dm9c0dtx84xxeqsmwj7zdzgs739ut0q7770yd2larlgpzpmhxue69uhkummnw3ezumt0d5hszrnhwden5te0dehhxtnvdakz7qgawaehxw309ahx7um5wghxy6t5vdhkjmn9wgh8xmmrd9skctcmf88sy&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;Coool&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…88sy&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Polish by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsdyfz0ewdhmgp3a4r3pxvezx5r8yalrgvjn38v2ml5qrusnv7yywgpzemhxue69uhkummnw3ezucm6v9ejuurvw4ej7qg0waehxw309a3h5ctn9e6x7up0qyg8wumn8ghj7cm6v9ejuurvw4ej79s8c53&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;Polak&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…8c53&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; &lt;br/&gt;- Brazilian Portuguese by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;⚡ Dee Kay ⚡&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…m3sx&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; &lt;br/&gt;- Swedish by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;⚡ Dee Kay ⚡&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…m3sx&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;
    </content>
    <updated>2026-08-22T16:57:47Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqspr395m0smyrayy9shs4z5jd4upj42mur55f240ekkwxe7mtp0yqszyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykf0pxak</id>
    
      <title type="html">Test reply</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqspr395m0smyrayy9shs4z5jd4upj42mur55f240ekkwxe7mtp0yqszyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykf0pxak" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs0ntuyxuhz5slf55zfjz94qxx85vfx9qaa928xgtrgrfzfs355rkgpz9mhxue69uhkummnw3ezuamfdejj7d945k2&#39;&gt;nevent1q…45k2&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Test reply
    </content>
    <updated>2026-07-29T20:07:15Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsgnq7982c53xu7ash3vh7lxt6ajmflvaptds2dnetpr6nj54gzlyczyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zyke5pvg8</id>
    
      <title type="html">#Amethyst v1.13.1: Follow-up Fixes for Buzz, Concord and the ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsgnq7982c53xu7ash3vh7lxt6ajmflvaptds2dnetpr6nj54gzlyczyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zyke5pvg8" />
    <content type="html">
      #Amethyst v1.13.1: Follow-up Fixes for Buzz, Concord and the Keyboard&lt;br/&gt;&lt;br/&gt;Highlights:&lt;br/&gt;&lt;br/&gt;- Fixes the soft keyboard getting stuck open in chats.&lt;br/&gt;- Fixes duplicate items crashing the Discover and feed lists.&lt;br/&gt;- Adds per-event-kind toggles to the Home feed.&lt;br/&gt;- Signs Blossom read requests so media on auth-gated hosts loads.&lt;br/&gt;&lt;br/&gt;## New Features&lt;br/&gt;&lt;br/&gt;- Adds per-event-kind toggles for the Home feed.&lt;br/&gt;- Signs Blossom read-auth so media hosted on auth-gated servers displays.&lt;br/&gt;- Lets admins delete a Buzz channel or relay group.&lt;br/&gt;- Honors CORD-02 §9: seals dissolved Concord communities read-only.&lt;br/&gt;- Allows single-character (continent) geohash precision in location channels.&lt;br/&gt;&lt;br/&gt;## Performance&lt;br/&gt;&lt;br/&gt;- Preemptively signs Blossom reads for known auth-gated hosts, so the first&lt;br/&gt;  request succeeds instead of round-tripping through a 401.&lt;br/&gt;- Makes the `observeNotes` dedup lock-free and race-safe under concurrent&lt;br/&gt;  consumption.&lt;br/&gt;&lt;br/&gt;## Improvements and Bug fixes&lt;br/&gt;&lt;br/&gt;- Stops the soft keyboard state from getting stuck open.&lt;br/&gt;- Stops nav-bar padding from stacking on top of the IME inset in chats.&lt;br/&gt;- Unions nav-bar and IME insets on the two remaining bare-Scaffold forms.&lt;br/&gt;- Prevents a duplicate LazyColumn key from `observeNotes` on addressable&lt;br/&gt;  updates, and keeps the list sorted while deduping by id.&lt;br/&gt;- Dedupes Discover apps by coordinate to avoid duplicate LazyGrid keys.&lt;br/&gt;- Dedups `EventListMatchingFilter` (`observeEvents`) and hardens its emission&lt;br/&gt;  contract.&lt;br/&gt;- Authenticates to the NIP-29 host relays of joined groups so private group&lt;br/&gt;  content loads.&lt;br/&gt;- Keeps the back arrow visible until the exiting screen finishes leaving.&lt;br/&gt;- Bounds the context shown around a highlight to a window, trims edge blank&lt;br/&gt;  lines, and collapses scraped whitespace.&lt;br/&gt;- Attributes a highlight to the author-marked `p` tag and drops alt captions.&lt;br/&gt;- Renders custom emoji in highlight comments.&lt;br/&gt;- Only tags explicit http(s) URLs as `r` references.&lt;br/&gt;- Opens a Concord community by tapping its name, not just its avatar.&lt;br/&gt;- Leaves room for the FAB in the Concord community channel list.&lt;br/&gt;- Makes the Buzz Messages toggle read the list it claims to change.&lt;br/&gt;- Renders the Buzz channel recent-poster facepile with the standard avatar.&lt;br/&gt;- Separates Buzz community rows with a hairline and drops the grey slab behind&lt;br/&gt;  the Channels section.&lt;br/&gt;- Aligns leave vs remove-from-messages actions across chat types.&lt;br/&gt;- Normalizes top nav bar title font sizes and weights.&lt;br/&gt;- Raises the background mobile-data trigger to 500 MB and doubles the&lt;br/&gt;  report-prompt thresholds.&lt;br/&gt;- Removes orphaned `buzz_dm_hide` translations.&lt;br/&gt;&lt;br/&gt;## Desktop&lt;br/&gt;&lt;br/&gt;- Caches the OS Keyring handle so startup only prompts once.&lt;br/&gt;- Makes the &amp;#34;Enable OS notifications&amp;#34; button actually enable them.&lt;br/&gt;- Reloads the visible page when switching accounts.&lt;br/&gt;&lt;br/&gt;## Quartz&lt;br/&gt;&lt;br/&gt;- Stops Namecoin lookup exceptions from leaking through `resolve()`.&lt;br/&gt;- Uses `Hex.isHex64` instead of a regex for the blob-id check.&lt;br/&gt;&lt;br/&gt;## Build &amp;amp; Documentation&lt;br/&gt;&lt;br/&gt;- Resolves the `LocalCache` override, dropdown deprecation, and shadowed&lt;br/&gt;  extension warnings.&lt;br/&gt;- Extracts duplicated string literals.&lt;br/&gt;&lt;br/&gt;## Contributors&lt;br/&gt;&lt;br/&gt;- &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsyvrp9u6p0mfur9dfdru3d853tx9mdjuhkphxuxgfwmryja7zsvhqpzamhxue69uhhv6t5daezumn0wd68yvfwvdhk6tcpzpmhxue69uhkummnw3ezumt0d5hszythwden5te0dehhxarj9emkjmn99uwfvhl6&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;VitorPamplona&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…vhl6&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;⚡ Dee Kay ⚡&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…m3sx&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- mstrofnone&lt;br/&gt;&lt;br/&gt;## Translations&lt;br/&gt;&lt;br/&gt;- Czech, German, Brazilian Portuguese, and Swedish by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;⚡ Dee Kay ⚡&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…m3sx&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;
    </content>
    <updated>2026-07-29T03:59:30Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqs02jzr4a3e0auw88a8tklrklmau98trrz0n3twvrncyk3vvu2hrxczyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zyk7j6r95</id>
    
      <title type="html">#Amethyst v1.13.0: Web Apps, Concord, Buzz, Log in with Amethyst, ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqs02jzr4a3e0auw88a8tklrklmau98trrz0n3twvrncyk3vvu2hrxczyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zyk7j6r95" />
    <content type="html">
      #Amethyst v1.13.0: Web Apps, Concord, Buzz, Log in with Amethyst, Git, Bolt12 and lots more.&lt;br/&gt;&lt;br/&gt;Highlights:&lt;br/&gt;&lt;br/&gt;- Adds an **in-app Browser** for Nostr WebApps&lt;br/&gt;- Adds support for **napplets (NIP-5D)** and **nsites (NIP-5A)**&lt;br/&gt;- Adds **Concord Support (Armada)**.&lt;br/&gt;- Adds **NIP-29 Groups (Flotilla)**.&lt;br/&gt;- Adds **Buzz workspaces, with agents**.&lt;br/&gt;- Adds a **Remote Signer (NIP-46)**.&lt;br/&gt;- Adds **Git Clone Support (NIP-34)**.&lt;br/&gt;- Adds **Relay Auth permissions (NIP-42)**.&lt;br/&gt;- Adds **BitChat Geo-channels**.&lt;br/&gt;- Adds **Blossom file display and sync**.&lt;br/&gt;- Adds **Podcasting 2.0**.&lt;br/&gt;- Adds **BOLT12 payments and zaps (NIP-B1)**.&lt;br/&gt;- Adds **proof-of-work (NIP-13)** publishing.&lt;br/&gt;- Redesigns **chat messages**.&lt;br/&gt;- Redesigns **accent colors**.&lt;br/&gt;- Redesigns **push notifications**&lt;br/&gt;&lt;br/&gt;## New Features&lt;br/&gt;&lt;br/&gt;### Web Apps, Sites &amp;amp; the Browser&lt;br/&gt;&lt;br/&gt;- Opens Nostr web apps (NIP-5D napplets) and static websites (NIP-5A nSites)&lt;br/&gt;  directly inside Amethyst, rendered in an isolated, keyless sandbox process that&lt;br/&gt;  cannot reach your private key, storage, or data.&lt;br/&gt;- Adds an in-app Browser — a drawer entry and pinnable bottom-bar tab — with an&lt;br/&gt;  omnibox address bar, autocomplete, history, favorites, recents, and captured&lt;br/&gt;  favicons. The address bar is drawn by Amethyst, never by the page, so its URL&lt;br/&gt;  cannot be spoofed.&lt;br/&gt;- Adds &amp;#34;Log in with Amethyst&amp;#34;: nSites open with a NIP-07 `window.nostr`&lt;br/&gt;  provider, so standard Nostr web apps can sign in and request signatures as your&lt;br/&gt;  active account — consent-gated, sign-only, and scoped per site.&lt;br/&gt;- Lets web apps, with your permission, pay through your wallet (NWC), run live&lt;br/&gt;  relay subscriptions and queries, and read your identity (profile, lists, zaps,&lt;br/&gt;  badges) — every capability brokered and permission-gated (once / this session /&lt;br/&gt;  always). Payments always prompt with the amount shown.&lt;br/&gt;- Pins favorite web apps to the bottom bar as embedded, swap-in-place tabs that&lt;br/&gt;  stay warm between visits.&lt;br/&gt;- Discovers web apps: the empty browser suggests a curated list plus nSites and&lt;br/&gt;  napplets published by people you follow, and profiles gain an &amp;#34;Apps &amp;amp; Sites&amp;#34;&lt;br/&gt;  tab.&lt;br/&gt;- Adds a Connected Apps / permissions screen to review and revoke what each app&lt;br/&gt;  can do.&lt;br/&gt;- Routes nSite web traffic through Tor by default when Tor is active, with a&lt;br/&gt;  per-site onion/globe toggle.&lt;br/&gt;- Gives each account its own web storage — cookies, logins, and site data no&lt;br/&gt;  longer leak between the accounts on your device. Sites you were already signed&lt;br/&gt;  into are signed out once; signing back in stores the session under the account&lt;br/&gt;  you are using, and switching away and back keeps it.&lt;br/&gt;- Scopes granted permissions per account too, so each app asks once more under&lt;br/&gt;  each account you use it with. A grant by one account no longer applies to the&lt;br/&gt;  others.&lt;br/&gt;&lt;br/&gt;### Communities (Concord)&lt;br/&gt;&lt;br/&gt;- Adds Concord: an end-to-end-encrypted communities protocol with channels,&lt;br/&gt;  membership, invites, roles, moderation, and history — reachable from a hub in&lt;br/&gt;  the drawer and pinnable to the bottom nav.&lt;br/&gt;- Creates and edits communities with encrypted icon/banner, relay editing, and&lt;br/&gt;  channel management.&lt;br/&gt;- Invites and joins via minted invites with QR codes, tappable invite links,&lt;br/&gt;  paste-to-redeem from Search, deep links, and direct member invites.&lt;br/&gt;- Chats in channels with a rich composer (@mentions, custom-emoji autocomplete,&lt;br/&gt;  reply preview), encrypted image messages, reactions, replies, and typing&lt;br/&gt;  indicators.&lt;br/&gt;- Adds threaded replies (inline or minichat modes) and delivery ticks for your&lt;br/&gt;  own messages.&lt;br/&gt;- Groups channels by community in Messages with last-message previews, unread&lt;br/&gt;  dots, facepiles, live typing, and per-type load toggles.&lt;br/&gt;- Adds moderation: ban/unban with read-time enforcement, role grants, a &amp;#34;Make&lt;br/&gt;  admin&amp;#34; toggle, and a full member roster. A ban hides a member&amp;#39;s posts for&lt;br/&gt;  everyone else; removing their access to the community&amp;#39;s keys takes a&lt;br/&gt;  Refounding.&lt;br/&gt;- Backfills channel history across epochs, paging back to the true start of a&lt;br/&gt;  channel.&lt;br/&gt;- Surfaces Concord replies and reactions on the Notifications tab with a&lt;br/&gt;  community pill.&lt;br/&gt;- Lets authors edit their own channel messages (kind 3302). Latest edit wins,&lt;br/&gt;  and it is non-destructive, so reactions and replies stay attached. Only the&lt;br/&gt;  original author&amp;#39;s edits take effect.&lt;br/&gt;&lt;br/&gt;### Git Collaboration (NIP-34)&lt;br/&gt;&lt;br/&gt;- Browses Nostr git repositories in-app: a Git Repositories feed and a per-repo&lt;br/&gt;  screen with README and Code tabs.&lt;br/&gt;- Reads code with branch/tag switching, file search, image preview, commit&lt;br/&gt;  history, syntax highlighting, and word-level diff highlighting.&lt;br/&gt;- Reviews patches and pull requests with computed diffs and status actions; PR&lt;br/&gt;  updates surface on the repo screen. The code browser needs a repository with an&lt;br/&gt;  http(s) clone URL.&lt;br/&gt;- Manages issues: Issues and Patches &amp;amp; PRs tabs split by open/closed, issue&lt;br/&gt;  labels with filtering, and a full-screen New Issue composer.&lt;br/&gt;- Edits a repository announcement from the repo screen, bookmarks repositories,&lt;br/&gt;  and filters the feed to your own repos.&lt;br/&gt;- Adds a project-home dashboard with stats, languages, recent activity, and&lt;br/&gt;  last-commit rows.&lt;br/&gt;&lt;br/&gt;### Location Channels&lt;br/&gt;&lt;br/&gt;- Adds Location Channels: geohash-based public rooms that interoperate with&lt;br/&gt;  BitChat, browsable from a dedicated drawer list and pinnable to the bottom nav.&lt;br/&gt;- Posts under an unlinkable per-area anonymous identity, or opt in to post as&lt;br/&gt;  your real account. An optional nickname survives restarts, but it is a single&lt;br/&gt;  handle reused in every area — setting one links your posts across areas.&lt;br/&gt;- Teleports to any place from a map picker or the feed-filter dialog to read and&lt;br/&gt;  post to distant rooms, and follows a teleported place to keep its feed.&lt;br/&gt;- Reacts, zaps, and replies on location messages, with a &amp;#34;live near you&amp;#34; bubble&lt;br/&gt;  on Home surfacing nearby rooms.&lt;br/&gt;- Adds a &amp;#34;pick on map&amp;#34; location picker to the short-note and all other composers.&lt;br/&gt;&lt;br/&gt;### Groups (NIP-29)&lt;br/&gt;&lt;br/&gt;- Adds relay groups: group chat, a discovery feed with a top-bar filter and&lt;br/&gt;  favorites, and join / leave / create / invite actions.&lt;br/&gt;- Adds subgroups (parent/child hierarchy), custom roles (kind 39003), threads,&lt;br/&gt;  and message pinning.&lt;br/&gt;- Shares groups via `naddr` and invite links with one-tap join; inline group&lt;br/&gt;  links render as self-loading cards.&lt;br/&gt;- Adds a map-based location picker when creating a group, and lets pinned group&lt;br/&gt;  tabs act as bottom-nav roots.&lt;br/&gt;&lt;br/&gt;### Buzz (Agent Workspaces)&lt;br/&gt;&lt;br/&gt;- Adds Buzz: a self-hosted workspace where humans and AI agents build together on&lt;br/&gt;  a relay you own, built on the NIP-29 relay-group family with plaintext content&lt;br/&gt;  so the relay can run search, audit, and workflows. Reachable from a &amp;#34;Buzz&lt;br/&gt;  Workspaces&amp;#34; bottom-nav tab and the drawer Feeds list.&lt;br/&gt;- Renders workspace channels natively and composes messages; sections a community&lt;br/&gt;  into Channels, Forums, inline DMs, and an Agent Console; and renders forum posts&lt;br/&gt;  as Concord-style threads with the full chat composer.&lt;br/&gt;- Adds an agent-owner console with cost and personas tabs, an agent-fleet cost&lt;br/&gt;  aggregator, live observer telemetry, persona create/edit, and NIP-OA attestation&lt;br/&gt;  issuance.&lt;br/&gt;- Adds live typing indicators, presence dots, collapsible sections with unread and&lt;br/&gt;  stars, a workspace canvas viewer and edit composer, and a bot &amp;#34;Working…&amp;#34;&lt;br/&gt;  indicator.&lt;br/&gt;- Invites people to a channel or community and mints invite links; redeems invite&lt;br/&gt;  links (intercepted into the in-app browser) and auto-invites mentioned&lt;br/&gt;  non-members.&lt;br/&gt;- Wires Buzz direct messages end to end, titles a DM by its participant, and&lt;br/&gt;  surfaces Buzz DMs in the Notification feed rendered as messages.&lt;br/&gt;- Discovers workspaces and DMs via the relay&amp;#39;s own kinds, imports workspace&lt;br/&gt;  channels from a relay in &amp;#34;Find groups&amp;#34;, and routes Tor workspaces to clearnet&lt;br/&gt;  when needed.&lt;br/&gt;- Adds a shared **Agent Work board**. Any channel member files a task, upvotes&lt;br/&gt;  to reprioritize it, and watches the workspace&amp;#39;s agent carry it to a pull&lt;br/&gt;  request. Jobs that ship directly and gated workflow runs fold into one board,&lt;br/&gt;  grouped by Needs approval / Working / Up next / Shipped.&lt;br/&gt;- Approves or denies a gated run in place. The &amp;#34;Approve &amp;amp; open PR&amp;#34; step&lt;br/&gt;  authorizes a push and PR, but never merges or deploys. Adds a confirm step, an&lt;br/&gt;  approver and workflow-definition picker, and Buzz Agent Persona editors for&lt;br/&gt;  model, provider, and runtime.&lt;br/&gt;- Asks before adding you to a channel someone else put you in (Accept / Ignore /&lt;br/&gt;  Leave). Narrates channel changes as plain-language system lines: &amp;#34;Bob added&lt;br/&gt;  Alice&amp;#34;, topic, visibility, and TTL changes, and more.&lt;br/&gt;- Notifies the requester when their agent job finishes or fails. Lets a&lt;br/&gt;  self-hosted geode relay be the private Buzz workspace via a member-and-agent&lt;br/&gt;  membership policy.&lt;br/&gt;&lt;br/&gt;### Chat &amp;amp; Messages&lt;br/&gt;&lt;br/&gt;- Redesigns message rendering across every chat — DMs, public chats, groups, and&lt;br/&gt;  communities — with modern bubbles, swipe-to-reply, send motion and press&lt;br/&gt;  feedback, per-author name colors, jumbo emoji, day headers drawn above the&lt;br/&gt;  messages they introduce, and a timestamp on the last message of each author&lt;br/&gt;  run.&lt;br/&gt;- Replaces the message 3-dot menu with a compact two-stage long-press sheet that&lt;br/&gt;  unpacks wrapping reactions and zap-amount presets in place.&lt;br/&gt;- Renders channel admin events as centered system messages, and hides a reply&lt;br/&gt;  quote when it targets the message directly above.&lt;br/&gt;- Replaces the Messages FAB speed-dial with a full-screen, color-coded&lt;br/&gt;  new-conversation chooser, and adds a Messages settings screen with a&lt;br/&gt;  grouped-by-relay view and per-type load toggles.&lt;br/&gt;- Warns about DMs from senders reported by people you follow: flags a reported&lt;br/&gt;  counterpart on the chat-list row and inside the room, with a per-user&lt;br/&gt;  report-warning flow.&lt;br/&gt;&lt;br/&gt;### Notifications&lt;br/&gt;&lt;br/&gt;- Redesigns push notifications into per-kind, observable, richly-rendered&lt;br/&gt;  notifications that resolve inline @npub mentions to display names, render an&lt;br/&gt;  inline image link as the big picture, and attribute a reply&amp;#39;s parent to its real&lt;br/&gt;  author.&lt;br/&gt;- Adds push notifications for Buzz DMs and for bare reactions and reposts to your&lt;br/&gt;  notes, with repost-mute parity. Auto-dismisses a tray notification once its&lt;br/&gt;  event is read in-app.&lt;br/&gt;- Rebuilds the in-app Notifications tab with infinite-scroll paging via a&lt;br/&gt;  look-ahead buffer, time-based history paging with in-feed load markers, and&lt;br/&gt;  auto-retry of stalled or faulty relays with an actionable relay detail.&lt;br/&gt;&lt;br/&gt;### Remote Signer &amp;amp; Security&lt;br/&gt;&lt;br/&gt;- Lets other apps and websites sign through Amethyst for the first time&lt;br/&gt;  (NIP-46): connect by scanning or pasting a `nostrconnect://` code, and keep&lt;br/&gt;  signing in the background — whether your key is stored directly in Amethyst or&lt;br/&gt;  delegated to an external signer like Amber (NIP-55).&lt;br/&gt;- Asks for informed consent before authorizing an app — showing its name and&lt;br/&gt;  icon, which account will sign, the exact permissions, and an event preview —&lt;br/&gt;  with per-account sheets and one-tap batched approval.&lt;br/&gt;- Manages connected apps from a dedicated screen with per-app relay list, live&lt;br/&gt;  health, time-bound grants, and instant &amp;#34;forget this app&amp;#34;.&lt;br/&gt;- Adds interactive relay login prompts (NIP-42): choose Once / Always / Never&lt;br/&gt;  per relay, with venue-aware prompts for public chats, communities, and live&lt;br/&gt;  streams, and one-tap rules to trust relays used by people you follow. Apps&lt;br/&gt;  connected through the remote signer now ask before signing a relay login,&lt;br/&gt;  instead of approving it automatically under &amp;#34;Let&amp;#39;s be reasonable&amp;#34;.&lt;br/&gt;&lt;br/&gt;### Web of Trust (GrapeRank)&lt;br/&gt;&lt;br/&gt;- Discovers Web-of-Trust score providers via NIP-85 and shows hop distance and&lt;br/&gt;  follower count on trust cards. Computing the scores — crawling the social graph,&lt;br/&gt;  reverse-follower crawling, and publishing NIP-85 cards — is done by the `amy`&lt;br/&gt;  command-line tool, not the app; see the Cli section.&lt;br/&gt;&lt;br/&gt;### Publishing &amp;amp; Sync&lt;br/&gt;&lt;br/&gt;- Adds proof-of-work (NIP-13) publishing: a fire-and-forget mining queue with&lt;br/&gt;  per-account difficulty and per-category settings, scheduled-post mining, and&lt;br/&gt;  per-post overrides, shielded by a foreground service and mined across half the&lt;br/&gt;  device&amp;#39;s cores.&lt;br/&gt;- Adds NIP-77 negentropy sync as a first-class capability, with deletion&lt;br/&gt;  (NIP-09/62) propagation so scoped syncs no longer strand deletions.&lt;br/&gt;- Shows PoW mining progress, and surfaces PoW, OpenTimestamps, and location&lt;br/&gt;  markers as tap-to-explain pills in the note header.&lt;br/&gt;&lt;br/&gt;### Podcasts&lt;br/&gt;&lt;br/&gt;- Adds Podcasting 2.0: renders shows in detail and thread views, surfaces&lt;br/&gt;  episodes in the merged podcast feed, and plays trailers.&lt;br/&gt;- Shows person credits as real Nostr profiles, soundbites, in-app chapters, a&lt;br/&gt;  transcript viewer, and a Top Supporters leaderboard.&lt;br/&gt;- Adds per-episode reactions and NIP-22 comments, a Podcast Bookmarks screen, and&lt;br/&gt;  value-for-value Lightning splits paid per-minute during real playback.&lt;br/&gt;- Adds in-app podcast authoring: create and edit shows, episodes, and trailers&lt;br/&gt;  from an authoring hub, with a value-for-value split editor that adds Nostr&lt;br/&gt;  recipients by search. Verifies NIP-F4 podcast authors against their kind-10064&lt;br/&gt;  counter-claims.&lt;br/&gt;&lt;br/&gt;### BOLT12 Payments &amp;amp; Zaps (NIP-B1)&lt;br/&gt;&lt;br/&gt;- Adds BOLT12 zaps: self-verifying kind-9736 events that prove a real BOLT12&lt;br/&gt;  Lightning payment. They carry a settlement proof instead of relying on an&lt;br/&gt;  LNURL receipt. They fold into the same zap total and reactions row as Lightning&lt;br/&gt;  zaps, with anonymous and receiptless (pay-only) variants. Only cryptographically&lt;br/&gt;  verified proofs count toward the total.&lt;br/&gt;- Publishes and edits your own BOLT12 offer list (kind 10058) from an in-app&lt;br/&gt;  editor. The list is cached, kept live, and restored across restarts.&lt;br/&gt;- Pays a recipient&amp;#39;s published offer. Hand it to an external wallet as a&lt;br/&gt;  `bitcoin:?lno=` (BIP21) intent, or pay in-app over a NWC wallet that supports&lt;br/&gt;  it.&lt;br/&gt;- Sends zaps over NWC, using the new `pay`/`receive` methods&lt;br/&gt;  (nostr-wallet-connect/nwc#2). Prefers BOLT12 over Lightning when the recipient&lt;br/&gt;  offers it and the wallet supports it, and falls back to a Lightning zap&lt;br/&gt;  otherwise.&lt;br/&gt;- Verifies payer proofs cryptographically: payment-hash preimage, invoice and&lt;br/&gt;  proof signatures, and BOLT12 merkle reconstruction of selectively disclosed&lt;br/&gt;  fields. Dims and does not count a proof that can&amp;#39;t be bound to the offer.&lt;br/&gt;&lt;br/&gt;### Wallet &amp;amp; Payments&lt;br/&gt;&lt;br/&gt;- Adds a Cashu wallet setup wizard: find-or-create with cross-relay discovery,&lt;br/&gt;  mint suggestions, and a CashuMints screen; the wallet auto-publishes on mint&lt;br/&gt;  add/remove.&lt;br/&gt;- Claims P2PK-locked Cashu tokens (NUT-11). Matches the lock against your wallet&lt;br/&gt;  or identity key, and redeems all-or-nothing. Gives a clear error when a token&lt;br/&gt;  is locked to a key this wallet can&amp;#39;t sign for.&lt;br/&gt;- Adds a setting to hide the on-chain (Bitcoin) wallet, including from zap&lt;br/&gt;  buttons.&lt;br/&gt;- Prefers NIP-44 encryption for NWC when the wallet advertises it. Adds a NWC-07&lt;br/&gt;  deep-link pairing helper. Posts a tray notification for incoming non-zap&lt;br/&gt;  Lightning payments.&lt;br/&gt;&lt;br/&gt;### Battery, Data &amp;amp; Background Service&lt;br/&gt;&lt;br/&gt;- Adds a resource-usage ledger: on-device battery and data accounting across&lt;br/&gt;  relay connections, media, HTTP, proof-of-work, Tor, calls, decrypts, and&lt;br/&gt;  remote signs, with per-screen foreground time and reconnect-churn tracking.&lt;br/&gt;  Optional NIP-17 reports mail the summary to yourself.&lt;br/&gt;- Presents it on a usage screen with stat tiles, a trend chart, proportion bars,&lt;br/&gt;  cellular-first bars, a Tor card, actionable insights, and a live memory card.&lt;br/&gt;- Adds a master switch for the always-on background notification service with&lt;br/&gt;  per-account participation, a cost card that links to notification settings,&lt;br/&gt;  and a distinct status-bar icon.&lt;br/&gt;- Scales `LocalCache` pruning to the OS memory-pressure level, and trims feed&lt;br/&gt;  lists, rich-text/robohash/relay-info caches, the image cache, and the player&lt;br/&gt;  warm pool under pressure.&lt;br/&gt;&lt;br/&gt;### Look, Media &amp;amp; Navigation&lt;br/&gt;&lt;br/&gt;- Adds theme customization: pick an accent color (with a swatch picker), font,&lt;br/&gt;  and font size. The accent now drives Material 3 containers, buttons, FABs,&lt;br/&gt;  switches, unread dots, selected-reaction highlights, verified NIP-05 / image&lt;br/&gt;  marks, and the Following badge.&lt;br/&gt;- Redesigns UI Preferences into grouped in-screen options with live font&lt;br/&gt;  previews, and adds a settings search filter in the app bar.&lt;br/&gt;- Adds a Blossom media file manager: browse and manage stored blobs with per-file&lt;br/&gt;  controls, mirror and `/media` toggles, an app-level &amp;#34;Sync all&amp;#34; with progress,&lt;br/&gt;  and BUD-07 confirm-then-pay mirroring for paid servers.&lt;br/&gt;- Extends the Blossom manager with a gallery grid (video thumbnails and a&lt;br/&gt;  full-screen zoomable viewer) and a per-file detail sheet. Adds an importer that&lt;br/&gt;  copies blobs from other Blossom servers into yours. Falls back to a verified&lt;br/&gt;  download-and-reupload when a target has no `/mirror`.&lt;br/&gt;- Redesigns the Media Servers screen as a single auto-saving canvas with a&lt;br/&gt;  reorderable priority list and cached health probes.&lt;br/&gt;- Redesigns the bottom-bar setup with a live preview, drag-to-reorder, and real&lt;br/&gt;  favicons; the default bar becomes Home, Messages, Wallet, Browser,&lt;br/&gt;  Notifications.&lt;br/&gt;- Adapts the app shell to large screens: tier-scaled navigation transitions, a&lt;br/&gt;  reading-column width cap on wide panes, and a two-pane Messages layout.&lt;br/&gt;- Nicknames people with NIP-85 contact cards (kind 30382) signed by your account&lt;br/&gt;  key. The nickname shows above their real display name on the profile and&lt;br/&gt;  supports custom emoji.&lt;br/&gt;- Adds fitness support: renders POWR strength workouts (kind 1301) and exercise&lt;br/&gt;  templates (kind 33401) as cards, and merges close-by Health Connect sessions of&lt;br/&gt;  the same type.&lt;br/&gt;- Renders Birdstar bird detections (kind 2473) with common-name titles and&lt;br/&gt;  Wikidata links, surfaces Birdex life lists on home and profile, and renders PS1&lt;br/&gt;  memory-card saves (kind 38192) with an animated BIOS icon.&lt;br/&gt;- Adds a compose signature pre-filled in text-based post screens, and an optional&lt;br/&gt;  subject/title field in the short-note composer.&lt;br/&gt;- Renders NIP-30 custom-emoji reactions as an avatar badge, a lone zap/nutzap as&lt;br/&gt;  a large activity card, and NIP-84 highlights from web highlighter clients.&lt;br/&gt;- Supports NIP-51 mute-list hashtag entries and public-chat reply notifications.&lt;br/&gt;- Modernizes the Privacy, Profile UI, Home Tabs, and Calendar Reminder settings&lt;br/&gt;  screens into grouped in-screen options.&lt;br/&gt;- Adds &amp;#34;Share as QR&amp;#34; for a note, with a choice of `note` or `naddr` payload and an&lt;br/&gt;  image thumbnail for image-only notes.&lt;br/&gt;- Resolves NIP-05 identifiers (including Namecoin `.bit`) in the @-mention&lt;br/&gt;  popover, wiring them to `nostr:` mentions.&lt;br/&gt;&lt;br/&gt;## Performance&lt;br/&gt;&lt;br/&gt;- Speeds up napplet/nSite opens by overlapping WebView init, prefetching blobs in&lt;br/&gt;  parallel, and fast-serving content-addressed blobs from cache.&lt;br/&gt;- Substantially faster GrapeRank crawls (background IO, mass pre-connect with&lt;br/&gt;  cached DNS, batched contact reads, parallel outbox fetches, early dead-relay&lt;br/&gt;  pruning) and faster scoring via Gauss-Seidel sweeps over a compact integer&lt;br/&gt;  graph.&lt;br/&gt;- Speeds up NIP-77 reconcile with direct-built wire frames (~2.5x), O(1) range&lt;br/&gt;  fingerprints, a live negentropy index, and an allocation-free idle watchdog.&lt;br/&gt;- Prefetches media and pre-parses note text ahead of the viewport, adds a k-way&lt;br/&gt;  merge for the home feed, and pins indexes for multi-author queries.&lt;br/&gt;- Adopts a caching event decoder across Android/Desktop/CLI, batches Schnorr&lt;br/&gt;  verification off the receive path, and keeps light/dark resolution O(1) after&lt;br/&gt;  an accent change.&lt;br/&gt;- Parallelizes Blossom &amp;#34;Sync all&amp;#34;, prefetches a joined group&amp;#39;s history, and mines&lt;br/&gt;  proof-of-work on half the device&amp;#39;s cores.&lt;br/&gt;- Orders NIP-50 relay search by bm25 relevance and scales search and tag-watcher&lt;br/&gt;  queries with corpus size, picking the SQLite filesystem driver by cost and&lt;br/&gt;  materializing indexes at runtime.&lt;br/&gt;- Removes live-path allocations in `LiveEventStore` and `FilterIndex` (and on the&lt;br/&gt;  frame/search paths), and snapshots `FilterIndex` with a persistent map.&lt;br/&gt;&lt;br/&gt;## Improvements and Bug fixes&lt;br/&gt;&lt;br/&gt;- Normalizes accent theming: contrast-picks onPrimary so filled buttons/FABs stop&lt;br/&gt;  washing out, bases light/dark on background luminance, and fixes accent&lt;br/&gt;  regressions.&lt;br/&gt;- Keeps live HLS streams playing and caches only proven on-demand HLS; shows a&lt;br/&gt;  browser-fallback overlay when a decoder stalls and pauses looping videos after&lt;br/&gt;  5 plays.&lt;br/&gt;- Adds an HTTP/2 keepalive ping to stop stale-connection image stalls.&lt;br/&gt;- Hardens the relay client: enforces blocked relays on every REQ/COUNT/publish,&lt;br/&gt;  backs off from REQs relays repeatedly refuse, drops relays that fail hard&lt;br/&gt;  during crawls, caches each relay&amp;#39;s advertised LIMITS, and fixes reconnect&lt;br/&gt;  backoff on network/transport changes.&lt;br/&gt;- Shows and edits Marmot (MLS) group icons in the feed and in group metadata,&lt;br/&gt;  interoperable with other Marmot clients.&lt;br/&gt;- Opens zaps and reactions in their own thread view, turns Notify chips into bell&lt;br/&gt;  mute-toggles that list every thread member, and replies with kind 1111 to&lt;br/&gt;  Amethyst&amp;#39;s own kind-1 thread roots.&lt;br/&gt;- Adds search, a local filter, and a top-nav feed filter to the App&lt;br/&gt;  Recommendations screen, and shows a website&amp;#39;s favicon and domain across every&lt;br/&gt;  browser-connected app view.&lt;br/&gt;- Fixes nutzap relay routing to receive/advertise on inbox/DM (kind 10019)&lt;br/&gt;  relays instead of outbox.&lt;br/&gt;- Fixes Concord invite handling (revocation, keyless CORD-05, clearer failure&lt;br/&gt;  copy, no hang on bad links, skip re-join) and channel rows stuck on &amp;#34;No&lt;br/&gt;  messages yet&amp;#34;.&lt;br/&gt;- Persists the Concord community list and loads pinned communities from their own&lt;br/&gt;  relays so cold boot no longer refetches, shows channels on Messages as soon as&lt;br/&gt;  the control plane folds, warms channel previews so the list fills without opening&lt;br/&gt;  each channel, and rank-gates the Ban/Remove affordances (CORD-04).&lt;br/&gt;- Sizes the video player box so live streams stop rendering black bars, and&lt;br/&gt;  enforces the decoder budget when acquiring players.&lt;br/&gt;- Stops stamping our client tag on someone else&amp;#39;s event template so external&lt;br/&gt;  signers sign it unchanged.&lt;br/&gt;- Keeps calendar RSVP buttons on a single line, drops dead top padding on Home&lt;br/&gt;  when there are no live bubbles, and modernizes the Zap the Devs donation card.&lt;br/&gt;- Rejects NIP-29 group state not signed by the relay, opens group posts in the&lt;br/&gt;  group chat, and fixes subgroup edit safety and pinned-message jump.&lt;br/&gt;- Makes tapping a message timestamp open delivery info instead of toggling the&lt;br/&gt;  time format, and right-aligns your own messages.&lt;br/&gt;- Recovers a media file&amp;#39;s type from its extension when the imeta MIME is&lt;br/&gt;  malformed, and moves several disk reads (boot receiver, signer policy) off the&lt;br/&gt;  main thread.&lt;br/&gt;- Serializes account construction so concurrent loaders can&amp;#39;t build duplicate&lt;br/&gt;  accounts.&lt;br/&gt;- Routes Onion-Location through the Android app&amp;#39;s HTTP clients and maps Tor/Arti&lt;br/&gt;  errors to accurate SOCKS reply codes.&lt;br/&gt;- Extracts the rich-text renderer and many event cards (calendar/RSVP, podcast&lt;br/&gt;  atoms/splits, relay discovery, code snippet, ecash mint, activity, Git&lt;br/&gt;  diff/status, and more) into shared commons so Desktop and Android render&lt;br/&gt;  identically.&lt;br/&gt;- Sends pictures in minichat thread replies (encrypted in Concord, plaintext in&lt;br/&gt;  public chats). Resolves @-mentions in the minichat composer and tray&lt;br/&gt;  quick-replies. Adds `p` tags for people cited in kind 9/11/1111 and Buzz stream&lt;br/&gt;  messages, so mentions notify and resolve.&lt;br/&gt;- Stops the inline audio player from painting over the note below it. Marks&lt;br/&gt;  every room type read from the Messages &amp;#34;mark as read&amp;#34; action.&lt;br/&gt;- Fixes numeric HTML entities in link-preview meta tags. Routes kind-39005 by tag&lt;br/&gt;  shape, so Buzz thread summaries no longer parse as NIP-29 pin lists.&lt;br/&gt;- Shortens over-long translated strings across 23 locales and fixes duplicate&lt;br/&gt;  and CDATA translation issues.&lt;br/&gt;&lt;br/&gt;## Desktop&lt;br/&gt;&lt;br/&gt;- Redesigns notifications with a reworked inbox and native OS toast&lt;br/&gt;  notifications.&lt;br/&gt;- Adds NIP-42 relay AUTH with an inline Once / Always / Never approval banner and&lt;br/&gt;  persisted grants.&lt;br/&gt;- Makes NIP-17 private DMs reliable: resolves recipient inbox relays, fetches DM&lt;br/&gt;  relay lists and account/Blossom config from outbox relays, and stops falling&lt;br/&gt;  back to connected relays.&lt;br/&gt;- Adds Web-of-Trust score badges, Follow Packs (NIP-51) discovery with one-tap&lt;br/&gt;  follow, note scheduling, opt-in NIP-37 draft sync, and a hashtag-spam filter.&lt;br/&gt;- Adds a Privacy Lock: gate the Messages and Wallet columns behind a password,&lt;br/&gt;  with an auto-lock timeout. It is a screen gate, not encryption at rest —&lt;br/&gt;  messages continue to sync while it is locked.&lt;br/&gt;- Renders rich text through the shared core (removes the desktop-only fork) and&lt;br/&gt;  ships as a Flatpak bundle.&lt;br/&gt;- Adds moderation &amp;amp; safety: mute/block and NIP-56 report actions in the note menu&lt;br/&gt;  with feed, thread, and profile enforcement (previously a silent no-op), NIP-36&lt;br/&gt;  content-warning blur with tap-to-reveal, a sensitive-content toggle, and&lt;br/&gt;  management screens — with snackbar feedback and zero-relay send warnings.&lt;br/&gt;- Adds NIP-88 polls (render, vote, create) with a &amp;#34;Polls&amp;#34; search facet, and&lt;br/&gt;  unifies the note ⋮ overflow and right-click menus.&lt;br/&gt;- Fixes a desktop-cache race that could wipe the follow list, and makes sidebar&lt;br/&gt;  navigation replace the detail overlay instead of hiding behind it.&lt;br/&gt;&lt;br/&gt;## Cli&lt;br/&gt;&lt;br/&gt;- Adds nak-style primitives: `amy decode`/`encode` (NIP-19/21), `verify`, `key`&lt;br/&gt;  (generate/public/encrypt/decrypt/validate, NIP-49), and `filter`.&lt;br/&gt;- Adds query verbs: `amy fetch` (one-shot with code-mode outbox resolution),&lt;br/&gt;  `subscribe` (live NDJSON), `count` (NIP-45), and `outbox USER` (NIP-65).&lt;br/&gt;- Adds `amy sync` — NIP-77 negentropy reconcile with deletion propagation — and&lt;br/&gt;  `amy event` / `amy publish` for raw and pre-signed events.&lt;br/&gt;- Adds `amy encrypt`/`decrypt` (NIP-44/04) and `amy gift wrap`/`unwrap` (NIP-59).&lt;br/&gt;- Adds `amy blossom` (upload/download/list/delete/check/mirror, NIP-B7) with a&lt;br/&gt;  live interop smoke test.&lt;br/&gt;- Adds `amy git` (NIP-34), `amy podcast` and `amy podcast20` (Podcasting 2.0 with&lt;br/&gt;  V4V splits).&lt;br/&gt;- Rounds out `amy git` to full NIP-34 parity: `browse`/`cat`/`log` over&lt;br/&gt;  smart-HTTP, `init` from a local checkout, `label` (NIP-32), `apply` a patch to&lt;br/&gt;  the working tree, and `grasp list`/`set` (GRASP server list, kind 10317).&lt;br/&gt;- Adds `amy buzz` for block/buzz workspaces (channels, DMs, invite-link&lt;br/&gt;  redemption), verified against a live Buzz relay.&lt;br/&gt;- Turns `amy` into the Buzz workflow/agent runner. `buzz agent serve`/`up`/&lt;br/&gt;  `doctor` run gated or parallel-backlog agents in isolated git worktrees that&lt;br/&gt;  open PRs. `buzz workflow trigger`/`run`/`approve`/`deny` drive the human&lt;br/&gt;  approval gate.&lt;br/&gt;- Adds `amy bolt12` (NIP-B1): decode offers and payer proofs, verify a zap,&lt;br/&gt;  get/set a kind-10058 offer list, and a two-step intent → zap send.&lt;br/&gt;- Adds the `amy cashu` wallet (NIP-60/61): wallet lifecycle, balance, mint,&lt;br/&gt;  receive/send (LN / token / nutzap), and maintenance.&lt;br/&gt;- Adds `amy admin` (NIP-86 relay moderation) and `amy serve` (run a relay by&lt;br/&gt;  embedding geode).&lt;br/&gt;- Adds NIP-46 remote signing: `amy bunker` server, `amy login bunker://…`, and&lt;br/&gt;  `amy login --nostrconnect`, gated with `--perms` and interactive approval.&lt;br/&gt;- Adds the `amy graperank` suite (crawl/score/publish/followers/rank/…),&lt;br/&gt;  account-less crawl/score, and NIP-85 card publishing.&lt;br/&gt;- Adds `amy fof` (follows-of-follows, renamed from `amy wot`), `amy concord`&lt;br/&gt;  (encrypted communities), `amy relaygroup` (NIP-29), and `amy geochat`&lt;br/&gt;  (BitChat-interoperable geohash channels).&lt;br/&gt;- Adds NIP-13 proof of work (`amy pow`, `--pow` on posts), `amy kind`, `amy nip`,&lt;br/&gt;  `amy namecoin`, `amy status`, and `amy logoff`.&lt;br/&gt;- Expands `amy nsite`/`napplet` with `publish`, `serve`, and `list`.&lt;br/&gt;- Switches the default event store to SQLite and hardens the output contract:&lt;br/&gt;  single-line `--json`, exit codes 0/1/2/124, publish results carry each relay&amp;#39;s&lt;br/&gt;  rejection reason, and read-only verbs run without an account.&lt;br/&gt;&lt;br/&gt;## Quartz&lt;br/&gt;&lt;br/&gt;- Adds NIP-77 negentropy sync (pipelined worker pool, multi-connection fan-out,&lt;br/&gt;  bounded-memory streaming, `LiveNegentropyIndex`) and NIP-09/62 deletion&lt;br/&gt;  propagation.&lt;br/&gt;- Adds NIP-13 proof-of-work publishing: a cooperative-cancellation miner and a&lt;br/&gt;  `PoWNostrSigner` decorator that composes with any signer, plus NIP-59&lt;br/&gt;  gift-wrap mining on the outer wrap only.&lt;br/&gt;- Adds NIP-66 `RelayReachabilityStore` — a durable, shareable dead-relay cache&lt;br/&gt;  backed by kind:30166 events.&lt;br/&gt;- Adds the Concord/CORD protocol foundation (key derivation, envelope layer,&lt;br/&gt;  authority resolver, roles/moderation, CORD-05/06/07) and the NIP-5D/5A&lt;br/&gt;  trust-boundary core (capability model, permission ledger, broker, wire&lt;br/&gt;  protocol).&lt;br/&gt;- Implements Marmot (MLS-over-Nostr) group icons byte-for-byte with the&lt;br/&gt;  mdk/whitenoise scheme, and fixes SecretTree ratchet preservation across&lt;br/&gt;  restore.&lt;br/&gt;- Adds an OutboxDispatcher to fetch profile/contact events via each author&amp;#39;s&lt;br/&gt;  outbox relays, and richer NIP-89 app-handler parsing.&lt;br/&gt;- Adds the Buzz protocol surface (~78 event kinds spanning NIP-OA owner&lt;br/&gt;  attestation, NIP-AM agent turn metrics, personas/teams/managed agents, streams,&lt;br/&gt;  DMs, forums, presence, and moderation), verified against vectors generated by&lt;br/&gt;  Buzz&amp;#39;s own Rust reference.&lt;br/&gt;- Adds the BOLT12 zaps protocol layer (NIP-B1): kind-9736 zaps, kind-9737 zap&lt;br/&gt;  intents, kind-10058 offer lists, full spec validation, and a payer-proof&lt;br/&gt;  verifier with BOLT12 merkle reconstruction. NWC gains `pay`/`receive` methods.&lt;br/&gt;- Widens NIP-50 search indexing to more event kinds and tag-borne text. Indexes&lt;br/&gt;  only the public petname and summary on contact cards (kind 30382), never the&lt;br/&gt;  encrypted fields.&lt;br/&gt;&lt;br/&gt;## Geode (standalone relay)&lt;br/&gt;&lt;br/&gt;- Adds relay-to-relay mirroring with strfry-router parity: a two-phase model&lt;br/&gt;  (NIP-77 negentropy sync catch-up plus a live REQ tail), `down` / `up` / `both`&lt;br/&gt;  directions, per-upstream mirror filters, and relay-to-relay trust.&lt;br/&gt;- Keeps mirrors alive across upstream restarts with a retry pump and ping&lt;br/&gt;  keepalive, and advances the since-watermark correctly on reconnect.&lt;br/&gt;- Adds `import` / `export` NDJSON verbs and an optional no-full-text-search mode&lt;br/&gt;  (`--no-search`) for lighter deployments.&lt;br/&gt;- Adds `[database]` tuning knobs with periodic `PRAGMA optimize`, and validates&lt;br/&gt;  config knobs and mirror filters at boot.&lt;br/&gt;- Runs embedded in the CLI via `amy serve`.&lt;br/&gt;- Serves full-set negentropy NEG-OPENs from a live index and streams mirror&lt;br/&gt;  catch-up IDs instead of materializing them.&lt;br/&gt;- Adds relayBench, a head-to-head benchmark harness (geode vs strfry vs any&lt;br/&gt;  relay) measuring ingest, query, and NIP-77 sync over a shared corpus.&lt;br/&gt;- Enables a combined tag&#43;kind&#43;pubkey index, a cost-based filesystem-driver pick,&lt;br/&gt;  and runtime index materialization, with new tag∩author and driver-selection&lt;br/&gt;  relayBench shapes.&lt;br/&gt;- Ships a release pipeline: a GHCR Docker image, `.deb`/`.rpm` packages with a&lt;br/&gt;  bundled JRE and systemd unit, a portable jlink&amp;#39;d tarball, and a Homebrew&lt;br/&gt;  formula. Adds `--version`/`--help` and a boot smoke test in CI.&lt;br/&gt;- Lets operators pick any Quartz `IEventStore` backend via `[database].backend`:&lt;br/&gt;  SQLite (default), filesystem, or a custom store loaded by class name.&lt;br/&gt;&lt;br/&gt;## Build &amp;amp; Documentation&lt;br/&gt;&lt;br/&gt;- Rebuilds the Tor/Arti native library for the SOCKS reply-code fix, ships a&lt;br/&gt;  Homebrew formula for `amy`, and seeds the Gradle distribution from a verified&lt;br/&gt;  mirror in the web sandbox.&lt;br/&gt;- Adds NIP-29 group-chat test coverage across every assembler, filter shape, and&lt;br/&gt;  relay integration.&lt;br/&gt;- Targets JVM 17 for Quartz, upgrades AGP, and replaces the abandoned&lt;br/&gt;  android-test-report action with `mikepenz/action-junit-report`.&lt;br/&gt;- Adds a coding standard banning raw invisible/bidirectional Unicode in source&lt;br/&gt;  (Trojan-Source, CVE-2021-42574) and replaces existing occurrences with `\u`&lt;br/&gt;  escapes.&lt;br/&gt;&lt;br/&gt;## Contributors&lt;br/&gt;&lt;br/&gt;- &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsyvrp9u6p0mfur9dfdru3d853tx9mdjuhkphxuxgfwmryja7zsvhqpzamhxue69uhhv6t5daezumn0wd68yvfwvdhk6tcpzpmhxue69uhkummnw3ezumt0d5hszythwden5te0dehhxarj9emkjmn99uwfvhl6&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;VitorPamplona&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…vhl6&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;⚡ Dee Kay ⚡&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…m3sx&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqs9vyevafl4f7rqluqykt500e9nj5ase8eh5k423rgwtfw6qdjhd4spz4mhxue69uhhyetvv9ujuerpd46hxtnfduhszrnhwden5te0dehhxtnvdakz7qghwaehxw309aex2mrp0yh8qunfd4skctnwv46z7fr94k8&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;beefenergy&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…94k8&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsxeh4ue276rhaqtz4c2df209gfkkft9006qdcryh3gaswtfuvxvlgpzamhxue69uhhyetvv9ujuurjd9kkzmpwdejhgtcpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsz9mhwden5te0wfjkccte9en82mnywd68ytndv5hsc2mjk6&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;v&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…mjk6&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqs827g8dkd07zjvlhh60csytujgd3l9mz7x807xk3fewge7rwlukxgppemhxue69uhkummn9ekx7mp0qydhwumn8ghj7argv4nx7un9wd6zumn0wd68yvfwvdhk6tcpz9mhxue69uhkummnw3ezumrpdejz7d9xcpk&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;greenart7c3&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…xcpk&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsxu35yyt0mwjjh8pcz4zprhxegz69t4wr9t74vk6zne58wzh0waycpz9mhxue69uhkummnw3ezuamfdejj7qgewaehxw309ac8yetdd96k6tnswf5k6ctv9ehx2ap0qy2hwumn8ghj7mn0wd68ytn00p68ytnyv4mz7xx9ccm&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;Gigi&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…9ccm&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- roguehashrate&lt;br/&gt;- LubuSeb&lt;br/&gt;&lt;br/&gt;## Translations&lt;br/&gt;&lt;br/&gt;- Czech, German, Brazilian Portuguese, and Swedish by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;⚡ Dee Kay ⚡&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…m3sx&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Spanish (Spain, Mexico, and US) by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqs07tjpyvvlq9ugdpax8h3jfrpwn7kr72k3tc7ky83tggn4et9eangpg3mhxw309ajxyartwdukjery09cxwctsd3ek6cnjdfnxs6t00pnhq7ttdvmkw7nsd3shxdrr0gery6nyva3h2ct0096kyerjw9jzummwd9hkutcprpmhxue69uhkv6tvw3jhytnwdaehgu3wwa5kuef0qyghwumn8ghj7mn0wd68ytnhd9hx2tcxdyhdq&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;⚡₿it₿y₿it⚡&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…yhdq&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- French by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqs8av5uzf4nv2q80chrmp3mj9a9dd6zjw4fmz56hsn2gzar72rxhtcppemhxue69uhkummn9ekx7mp0qyg8wumn8ghj7mn0wd68ytnddakj7qgawaehxw309ahx7um5wghxy6t5vdhkjmn9wgh8xmmrd9skctcuvd26f&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;DuPainEtDesJeux&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…d26f&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Hungarian by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsxekg0s8kxpcrka8ccwztv2m73kz6jy0ur8f7jc04rwr5p44w5acspzamhxue69uhhyetvv9ujumn0wd68ytnzv9hxgtcppemhxue69uhkummn9ekx7mp0qyg8wumn8ghj7mn0wd68ytnddakj7c0ns2l&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;summoner&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…ns2l&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Dutch by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqs82l74z7g3x8j3avpn2wrjrwn855nyvmpxa4v5pftfvtv5lrvrc5cppemhxue69uhkummn9ekx7mp074ge6h&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;Bartus&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…ge6h&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Hindi by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqs88dt78wgnzvaph6fcstfvsd98xc2qs8eg8tllwv2zlutu8ehec2cppemhxue69uhkummn9ekx7mp0qythwumn8ghj7un9d3shjtnswf5k6ctv9ehx2ap0qyt8wumn8ghj7un9d3shjtnyd968gmewwp6kytcmlz0lu&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;राज&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…z0lu&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Polish by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsdyfz0ewdhmgp3a4r3pxvezx5r8yalrgvjn38v2ml5qrusnv7yywgpzemhxue69uhkummnw3ezucm6v9ejuurvw4ej7qg0waehxw309a3h5ctn9e6x7up0qyg8wumn8ghj7cm6v9ejuurvw4ej79s8c53&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;Polak&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…8c53&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Slovenian by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsqqqqqqp0fmkspg7w8d305ln96a0jw0ptwqtuwskkm5pddv2kkjfcppemhxue69uhkummn9ekx7mp0qy2hwumn8ghj7un9d3shjtnyv9kh2uewd9hj7qgkwaehxw309aex2mrp0yhxg6t5w3hjuur4vghsdu406e&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;StellarStoic&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…406e&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Chinese Simplified by hypnotichemionus4&lt;br/&gt;- German by crowdin.pretended462
    </content>
    <updated>2026-07-28T14:45:27Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsrugf7v6d5sznt68dm08qs40t3lrd9jtsepczqsqthnzmxf5canmgzyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykldq0uh</id>
    
      <title type="html">#Amethyst v1.12.6: Napplets, Static Sites Protocol &amp;amp; BugFixes ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsrugf7v6d5sznt68dm08qs40t3lrd9jtsepczqsqthnzmxf5canmgzyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykldq0uh" />
    <content type="html">
      #Amethyst v1.12.6: Napplets, Static Sites Protocol &amp;amp; BugFixes&lt;br/&gt;&lt;br/&gt;Highlights:&lt;br/&gt;&lt;br/&gt;- New protocol support for **Nostr Web Applets (NIP-5D)** and **static websites&lt;br/&gt;  (NIP-5A)**, resolved straight from signed manifests over Blossom.&lt;br/&gt;- Cashu tokens that span **multiple mints** now redeem in full, and both Base64&lt;br/&gt;  alphabets are accepted.&lt;br/&gt;- A batch of stability fixes across notifications, playback, feeds, and the&lt;br/&gt;  emoji pack screens.&lt;br/&gt;&lt;br/&gt;## New Features&lt;br/&gt;&lt;br/&gt;- Add support for **Nostr Web Applets (NIP-5D)** and **static websites&lt;br/&gt;  (NIP-5A)**. Napplet manifests (snapshot/root/named kinds) and the NIP-5A&lt;br/&gt;  aggregate-hash layer land in Quartz, with a resolver that downloads each&lt;br/&gt;  listed Blossom server in order and accepts only the blob whose recomputed&lt;br/&gt;  SHA-256 matches the signed manifest — a substituted or corrupted blob fails&lt;br/&gt;  verification and is skipped.&lt;br/&gt;&lt;br/&gt;## Performance&lt;br/&gt;&lt;br/&gt;- Cashu token-prefix dispatch now compares against precomputed `DualCase`&lt;br/&gt;  prefixes instead of case-folding the cashuA/cashuB markers on every call.&lt;br/&gt;&lt;br/&gt;## Improvements and Bug fixes&lt;br/&gt;&lt;br/&gt;- Cashu: redeeming a pasted token now redeems **every mint/keyset group** in it&lt;br/&gt;  (previously only the first), validating all mints are in the wallet up front&lt;br/&gt;  and summing the redeemed amounts. The parser also tolerates both standard and&lt;br/&gt;  url-safe Base64 and mixed-case `cashuA`/`cashuB` prefixes.&lt;br/&gt;- Stop the `DisappearingScaffold` top/bottom bars from overshooting their&lt;br/&gt;  resting edge during the show/hide animation.&lt;br/&gt;- Dedupe emoji shortcodes in the Emoji Pack screen to prevent a `LazyGrid`&lt;br/&gt;  crash, and dedupe emoji pack addresses in the My Emoji List grid.&lt;br/&gt;- Cap media-session artwork to the platform bitmap limit so large covers no&lt;br/&gt;  longer crash playback.&lt;br/&gt;- Handle a missing camera app gracefully when taking photos or videos.&lt;br/&gt;- Snapshot live-stream status order before sorting, and snapshot feed filters&lt;br/&gt;  too, to avoid `TimSort` &amp;#34;contract violation&amp;#34; crashes.&lt;br/&gt;- Notifications: call `startForeground` on every start command and always&lt;br/&gt;  `stopSelf` when foreground promotion fails.&lt;br/&gt;- Guard the Health Connect permission check against service-bind failures.&lt;br/&gt;- Add a descriptive message to the media-download HTTP check.&lt;br/&gt;&lt;br/&gt;## Cli&lt;br/&gt;&lt;br/&gt;- `amy napplet fetch` resolves and fetches a NIP-5D napplet.&lt;br/&gt;- `amy nsite fetch` resolves and verifies a NIP-5A static site / napplet.&lt;br/&gt;&lt;br/&gt;## Quartz&lt;br/&gt;&lt;br/&gt;- Implement NIP-5D napplets and the NIP-5A static-site resolver (manifest model,&lt;br/&gt;  path lookup, hash verification, Blossom candidate assembly) in `commonMain`,&lt;br/&gt;  with HTTP injected so Quartz keeps no networking dependency.&lt;br/&gt;- Move the out-of-band Cashu token parser, the `cashuB` (v4) encoder, and the&lt;br/&gt;  token container model into Quartz, so Desktop&amp;#39;s rich-text viewer can now parse&lt;br/&gt;  received Cashu tokens. Adds `kotlinx-serialization-cbor` (Apache-2.0).&lt;br/&gt;- Centralize Blossom protocol strings in Quartz.&lt;br/&gt;- Never let signer timeouts crash from auto-signing launches.&lt;br/&gt;&lt;br/&gt;## Build &amp;amp; Documentation&lt;br/&gt;&lt;br/&gt;- Generate the changelog translator credits offline from a committed&lt;br/&gt;  `translators.json`, track a rolling &amp;#34;since last tag&amp;#34; contributor list, and&lt;br/&gt;  seed it from Crowdin on every sync without rewriting the timestamp each run.&lt;br/&gt;&lt;br/&gt;## Contributors&lt;br/&gt;&lt;br/&gt;- &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsyvrp9u6p0mfur9dfdru3d853tx9mdjuhkphxuxgfwmryja7zsvhqpzamhxue69uhhv6t5daezumn0wd68yvfwvdhk6tcpzpmhxue69uhkummnw3ezumt0d5hszythwden5te0dehhxarj9emkjmn99uwfvhl6&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;VitorPamplona&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…vhl6&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;## Translations&lt;br/&gt;&lt;br/&gt;- _None this release._&lt;br/&gt;
    </content>
    <updated>2026-06-19T23:06:06Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsd22ldzpjfk7kpzrnkj58d02fnr3jl346fsa4z9k348gxy3xs2u7szyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zyktqehnw</id>
    
      <title type="html"># v1.12.3-5: Relay Latency Health &amp;amp; a macOS Notarization Fix ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsd22ldzpjfk7kpzrnkj58d02fnr3jl346fsa4z9k348gxy3xs2u7szyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zyktqehnw" />
    <content type="html">
      # v1.12.3-5: Relay Latency Health &amp;amp; a macOS Notarization Fix&lt;br/&gt;&lt;br/&gt;Highlights:&lt;br/&gt;&lt;br/&gt;- Tracks per-relay latency on Desktop and surfaces slow relays in the dashboard, a details popup, and a banner.&lt;br/&gt;- Fixes macOS notarization for the desktop DMG and the `amy` CLI tarball.&lt;br/&gt;&lt;br/&gt;## New Features&lt;br/&gt;&lt;br/&gt;### Relay Latency Health (Desktop)&lt;br/&gt;&lt;br/&gt;- Adds a per-relay latency tracker and a slow-relay classifier.&lt;br/&gt;- Wires the latency tracker into `RelayHealthStore` with persistence across launches.&lt;br/&gt;- Surfaces relay latency in the desktop dashboard, a relay-details popup, and an unhealthy-relay banner.&lt;br/&gt;&lt;br/&gt;## Build &amp;amp; Documentation&lt;br/&gt;&lt;br/&gt;- Fixes macOS notarization for the desktop DMG and the `amy` CLI tarball by signing the Mach-O native libraries bundled inside jars (secp256k1, SQLite, JNA, Skiko, jkeychain, and ComposeMediaPlayer) — Apple&amp;#39;s notary service recurses into jars and had rejected them as unsigned.&lt;br/&gt;- Fixes the macOS desktop DMG release build: Compose&amp;#39;s signer maps the signing&lt;br/&gt;  identity to a certificate via `security find-certificate`, which did not&lt;br/&gt;  resolve the CI-imported certificate through the keychain search list (bare&lt;br/&gt;  `codesign` did). The release workflow now exports the throwaway keychain path&lt;br/&gt;  and points Compose&amp;#39;s `signing.keychain` straight at it.&lt;br/&gt;- Resolves the Developer ID **common name** from the signing keychain and feeds&lt;br/&gt;  it to Compose&amp;#39;s `signing.identity`. Compose maps its identity to a certificate&lt;br/&gt;  via `security find-certificate -c`, which only matches the exact&lt;br/&gt;  &amp;#34;Developer ID Application: …&amp;#34; name — a fingerprint or partial/team-ID value&lt;br/&gt;  (which bare `codesign` accepts) was rejected with &amp;#34;Could not find certificate&lt;br/&gt;  ... in keychain []&amp;#34;. The release workflow now points Compose at the imported&lt;br/&gt;  keychain explicitly and supplies the canonical identity name.&lt;br/&gt;&lt;br/&gt;## Contributors&lt;br/&gt;&lt;br/&gt;- &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsyvrp9u6p0mfur9dfdru3d853tx9mdjuhkphxuxgfwmryja7zsvhqpzamhxue69uhhv6t5daezumn0wd68yvfwvdhk6tcpzpmhxue69uhkummnw3ezumt0d5hszythwden5te0dehhxarj9emkjmn99uwfvhl6&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;VitorPamplona&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…vhl6&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqs9vyevafl4f7rqluqykt500e9nj5ase8eh5k423rgwtfw6qdjhd4spz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsz9mhwden5te0wfjkccte9ehx7um5wghxyctwvshszrnhwden5te0dehhxtnvdakz7axwpzp&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;beefenergy&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…wpzp&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;## Translations&lt;br/&gt;&lt;br/&gt;- _None this release._
    </content>
    <updated>2026-06-19T23:04:15Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsvlhg39xv3ytgcgjqdfq3u0a34zln3krkp2tsfcymdtddwjgam65gzyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykyhlff4</id>
    
      <title type="html">You cannot change your default onchain wallet, but you can add ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsvlhg39xv3ytgcgjqdfq3u0a34zln3krkp2tsfcymdtddwjgam65gzyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykyhlff4" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsfg7q4lqam2syg2u7xmfp38la8fe7x32tctpqedjr3svewddr7htcpzamhxue69uhhyetvv9ujuurjd9kkzmpwdejhgtckgkp9p&#39;&gt;nevent1q…kp9p&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;You cannot change your default onchain wallet, but you can add other wallets. We don&amp;#39;t recommend it, since onchain funds are fully traceable. Using your onchain wallet and keeping traceable funds around in Nostr protects your private wallets from having your transactions mapped out to your name.
    </content>
    <updated>2026-06-19T13:32:32Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsd9y4xvkatr4xzjr9dn0es9ffkyn7sg02p97zws4xynd5mm47p4lszyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykk27nu6</id>
    
      <title type="html">Publish on a NIP-F4 client</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsd9y4xvkatr4xzjr9dn0es9ffkyn7sg02p97zws4xynd5mm47p4lszyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykk27nu6" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsf4rfmcfythlyj2h2qq0hy8rdwzre428q5dmhq8x062q0ytgv0ewgpzamhxue69uhhyetvv9ujuurjd9kkzmpwdejhgtc80qq5h&#39;&gt;nevent1q…qq5h&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Publish on a NIP-F4 client
    </content>
    <updated>2026-06-19T13:30:45Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqszdwqwuf3eajukdvcgvyqyj2647nf0f5f7hktkjzg9nmskvsr643szyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykxq8ejr</id>
    
      <title type="html">#Amethyst v1.12.2: Road Events, Collapsable replies and some ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqszdwqwuf3eajukdvcgvyqyj2647nf0f5f7hktkjzg9nmskvsr643szyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykxq8ejr" />
    <content type="html">
      #Amethyst v1.12.2: Road Events, Collapsable replies and some fixes&lt;br/&gt;&lt;br/&gt;Highlights:&lt;br/&gt;&lt;br/&gt;- Adds Roadstr road events (kind 1315/1316) with OpenStreetMap map&lt;br/&gt;- Expands the Cashu wallet to surface and manage balances held across every mint, with seed recovery and richer nutzap controls.&lt;br/&gt;- Collapses thread replies on click in thread view and shows the hidden reply count on collapsed cards.&lt;br/&gt;- Adds full-text search across far more event kinds, including direct messages, zap comments, polls, code snippets, and audio.&lt;br/&gt;&lt;br/&gt;## New Features&lt;br/&gt;&lt;br/&gt;### Road Events (Roadstr)&lt;br/&gt;&lt;br/&gt;- Adds kind 1315/1316 road event support, rendered with roadstr-accurate cards.&lt;br/&gt;- Renders the road event location on an OpenStreetMap map that follows the app&amp;#39;s dark theme.&lt;br/&gt;- Modernizes road event cards with a map hero and a floating pill.&lt;br/&gt;- Includes road events in geohash feeds.&lt;br/&gt;&lt;br/&gt;### Quartz Search&lt;br/&gt;&lt;br/&gt;- Adds a pausable, resumable full-text-search reindex to the SQLite and filesystem event stores, and clamps non-positive reindex batch sizes.&lt;br/&gt;- Indexes direct message content (NIP-17 ChatMessageEvent).&lt;br/&gt;- Indexes zap comments (LnZap request/receipt, on-chain zap, and nutzap).&lt;br/&gt;- Makes polls, code snippets, audio, and git/torrent replies and interest sets searchable.&lt;br/&gt;- Indexes parsed JSON fields of profile, channel, and app-handler events.&lt;br/&gt;- Indexes natural-language fields of more event kinds, and makes the remaining text-bearing events searchable.&lt;br/&gt;- Adds full-text-search reindexing to both the SQLite and filesystem event stores, pausable and resumable for large stores.&lt;br/&gt;- Runs the post-migration search reindex in the background so upgrades don&amp;#39;t block on it.&lt;br/&gt;&lt;br/&gt;### Cashu Wallet&lt;br/&gt;&lt;br/&gt;- Surfaces all token-holding mints and syncs them when the wallet opens.&lt;br/&gt;- Highlights balances held at unconfigured mints and lets users move those coins off.&lt;br/&gt;- Recovers from seed across every held mint, not just the configured ones.&lt;br/&gt;- Reframes edit-wallet as a mint editor; adds mints directly from the browser and verifies them in the list.&lt;br/&gt;- Moves mint recommendations to their own screen and nutzap-key rotation into the Danger Zone.&lt;br/&gt;- Adds stop-receiving-nutzaps and delete-wallet actions.&lt;br/&gt;- Keeps the Cashu receive invoice on screen during mint polling.&lt;br/&gt;&lt;br/&gt;### Music &amp;amp; Playlists&lt;br/&gt;&lt;br/&gt;- Adds a full-screen music playlist composer with cover image and metadata.&lt;br/&gt;- Lets users reorder and remove tracks inside the playlist editor.&lt;br/&gt;- Adds a &amp;#34;Mine&amp;#34; option to the music and playlist feed filters.&lt;br/&gt;&lt;br/&gt;### Reading &amp;amp; Sharing&lt;br/&gt;&lt;br/&gt;- Collapses thread replies on click in thread view and shows the hidden reply count on collapsed cards.&lt;br/&gt;- Modernizes the quote/repost choice popup and shows both fork states in the boost preview.&lt;br/&gt;- Reduces the scroll sensitivity for bringing back the nav and status bars.&lt;br/&gt;&lt;br/&gt;## Share as Image&lt;br/&gt;&lt;br/&gt;- Adds Share as Image to a local file, renaming the upload flow to Share as Image Url.&lt;br/&gt;- Shows the image thumbnail in the share sheet for Share as Image.&lt;br/&gt;&lt;br/&gt;## Public Chats&lt;br/&gt;&lt;br/&gt;- Requires at least one relay to create or edit a public chat&lt;br/&gt;- Broadcasts to observed relays when a channel declares none.&lt;br/&gt;&lt;br/&gt;# Pull Notifications&lt;br/&gt;&lt;br/&gt;- Better detects background state via a LifecycleEventObserver&lt;br/&gt;- Prunes the connected set when a relay leaves the pool.&lt;br/&gt;- Throttles notification relay-count updates to dodge Android&amp;#39;s rate limit&lt;br/&gt;- Distinguishes foreground from background counts in the notification tray&lt;br/&gt;&lt;br/&gt;## Tor Management&lt;br/&gt;&lt;br/&gt;- Warm-resets Tor on a dead-circuit self-heal instead of wiping all state.&lt;br/&gt;- Fixes a Tor bug by seeding `hasEverBootstrapped` from the on-disk guard sample.&lt;br/&gt;&lt;br/&gt;## DM Loading Improvements&lt;br/&gt;&lt;br/&gt;- Tracks chatroom senders so DMs from followed contacts land in Known.&lt;br/&gt;&lt;br/&gt;## Signer Fixes&lt;br/&gt;&lt;br/&gt;- Stops splitting emoji surrogate pairs when truncating alt/summary tags.&lt;br/&gt;&lt;br/&gt;## Desktop&lt;br/&gt;&lt;br/&gt;- Wires macOS Developer ID signing and notarization.&lt;br/&gt;- Adds an in-process relay seam, a launch benchmark, and a Compose UI test pyramid.&lt;br/&gt;- Collapses icon decoding to a single memoized lazy for faster launch.&lt;br/&gt;&lt;br/&gt;## Cli&lt;br/&gt;&lt;br/&gt;- Codesigns and notarizes the macOS `amy` tarball.&lt;br/&gt;- Publishes a no-JRE jar bundle and a Homebrew-core formula for `amy`.&lt;br/&gt;- Drops the Compose UI render stack from the `amy` runtime image.&lt;br/&gt;&lt;br/&gt;## Build &amp;amp; Documentation&lt;br/&gt;&lt;br/&gt;- Bumps stable dependency versions.&lt;br/&gt;- Adds icon, supported NIPs, and publishing-relay documentation to Zapstore config&lt;br/&gt;- Adds a desktop release guard that fails the build if `osxkeychain.so` is stripped.&lt;br/&gt;&lt;br/&gt;## Contributors&lt;br/&gt;&lt;br/&gt;- &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsyvrp9u6p0mfur9dfdru3d853tx9mdjuhkphxuxgfwmryja7zsvhqpzamhxue69uhhv6t5daezumn0wd68yvfwvdhk6tcpzpmhxue69uhkummnw3ezumt0d5hszythwden5te0dehhxarj9emkjmn99uwfvhl6&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;VitorPamplona&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…vhl6&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;⚡ Dee Kay ⚡&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…m3sx&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqs9vyevafl4f7rqluqykt500e9nj5ase8eh5k423rgwtfw6qdjhd4spz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsz9mhwden5te0wfjkccte9ehx7um5wghxyctwvshszrnhwden5te0dehhxtnvdakz7axwpzp&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;beefenergy&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…wpzp&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqs827g8dkd07zjvlhh60csytujgd3l9mz7x807xk3fewge7rwlukxgppemhxue69uhkummn9ekx7mp0qydhwumn8ghj7argv4nx7un9wd6zumn0wd68yvfwvdhk6tcpz9mhxue69uhkummnw3ezumrpdejz7d9xcpk&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;greenart7c3&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…xcpk&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqswc4nrhvp4lrjct0ayy0ps8f2hvj8e2guucp63dwcx6m6e8pka9fqpr4mhxue69uhkummnw3ezucnfw33k76twv4ezuum0vd5kzmp0qy08wumn8ghj7un9d3shjtnwdaehgu3wwa5hyetydejhgtn2wqhsz9nhwden5te0v4jx2m3wdehhxarj9ekxzmny9ue5n65v&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;KotlinGeek&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…n65v&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsxeh4ue276rhaqtz4c2df209gfkkft9006qdcryh3gaswtfuvxvlgpzamhxue69uhhyetvv9ujuurjd9kkzmpwdejhgtcpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsz9mhwden5te0wfjkccte9en82mnywd68ytndv5hsc2mjk6&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;v&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…mjk6&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;## Translations&lt;br/&gt;&lt;br/&gt;- Czech, German, Swedish, and Portuguese by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;⚡ Dee Kay ⚡&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…m3sx&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Hungarian by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsxekg0s8kxpcrka8ccwztv2m73kz6jy0ur8f7jc04rwr5p44w5acspzamhxue69uhhyetvv9ujumn0wd68ytnzv9hxgtcppemhxue69uhkummn9ekx7mp0qyg8wumn8ghj7mn0wd68ytnddakj7c0ns2l&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;summoner&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…ns2l&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Dutch by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqs82l74z7g3x8j3avpn2wrjrwn855nyvmpxa4v5pftfvtv5lrvrc5cppemhxue69uhkummn9ekx7mp074ge6h&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;Bartus&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…ge6h&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Polish by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsdyfz0ewdhmgp3a4r3pxvezx5r8yalrgvjn38v2ml5qrusnv7yywgpzemhxue69uhkummnw3ezucm6v9ejuurvw4ej7qg0waehxw309a3h5ctn9e6x7up0qyg8wumn8ghj7cm6v9ejuurvw4ej79s8c53&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;Polak&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…8c53&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Hindi by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqs88dt78wgnzvaph6fcstfvsd98xc2qs8eg8tllwv2zlutu8ehec2cpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhszrnhwden5te0dehhxtnvdakz7qghwaehxw309aex2mrp0yh8qunfd4skctnwv46z7x03hlx&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;राज&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…3hlx&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Slovenian by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsqqqqqqp0fmkspg7w8d305ln96a0jw0ptwqtuwskkm5pddv2kkjfcppemhxue69uhkummn9ekx7mp0qy2hwumn8ghj7un9d3shjtnyv9kh2uewd9hj7qgkwaehxw309aex2mrp0yhxg6t5w3hjuur4vghsdu406e&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;StellarStoic&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…406e&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Spanish by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqs07tjpyvvlq9ugdpax8h3jfrpwn7kr72k3tc7ky83tggn4et9eangpg3mhxw309ajxyartwdukjery09cxwctsd3ek6cnjdfnxs6t00pnhq7ttdvmkw7nsd3shxdrr0gery6nyva3h2ct0096kyerjw9jzummwd9hkutcprpmhxue69uhkv6tvw3jhytnwdaehgu3wwa5kuef0qyghwumn8ghj7mn0wd68ytnhd9hx2tcxdyhdq&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;⚡₿it₿y₿it⚡&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…yhdq&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Chinese by hypnotichemionus4 and &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsyxnuhnymz0u0xru2watmqe25vlh8vzzje9jhlsfgvsff9942gc9gprfmhxue69uhhq7tjv9kkjepwve5kzar2v9nzucm0d5hsz9mhwden5te0wfjkccte9e3hsurvv9ujummjvuhsz9nhwden5te0wfjkccte9ehx7um5wghx6mm99urkr68m&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;CXPLAY&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…r68m&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;
    </content>
    <updated>2026-06-19T13:29:51Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsvjct22vzxntvzsjezrglgav24r89j9gg3pkkc8mujchkndccupaczyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykh383mu</id>
    
      <title type="html">Soon TM</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsvjct22vzxntvzsjezrglgav24r89j9gg3pkkc8mujchkndccupaczyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykh383mu" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsgmsfl4amq7evs8gr2840amvq4g53pmgj6wdk8fswmcyqxr29942spz4mhxue69uhkummnw3ezummcw3ezuer9wchs6dw3ar&#39;&gt;nevent1q…w3ar&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Soon TM
    </content>
    <updated>2026-06-17T19:28:22Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqstdsvma5ehua7skaj6afhaed0thuzv6m26upyghg9f6hpapxuvw4czyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykju5plk</id>
    
      <title type="html">Not without your help. :)</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqstdsvma5ehua7skaj6afhaed0thuzv6m26upyghg9f6hpapxuvw4czyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykju5plk" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsvzhtrn68m8p9sdpac6ac29gyhgce5jgha04lywq550envaap0jpqpz9mhxue69uhkummnw3ezuamfdejj7lh4uu9&#39;&gt;nevent1q…4uu9&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Not without your help. :) 
    </content>
    <updated>2026-06-17T16:50:37Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsf7w4l477q9rucmk7ren4g2qtzgk5q205q7dewvyy0xjrd6v4d3ugzyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykhvwqkq</id>
    
      <title type="html">#Amethyst v1.12.1: Health Connect, Samsung/Google Watch Workouts, ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsf7w4l477q9rucmk7ren4g2qtzgk5q205q7dewvyy0xjrd6v4d3ugzyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykhvwqkq" />
    <content type="html">
      #Amethyst v1.12.1: Health Connect, Samsung/Google Watch Workouts, Share as Image&lt;br/&gt;&lt;br/&gt;Highlights:&lt;br/&gt;&lt;br/&gt;- Adds Health Connect: detect recorded workouts and suggest a NIP-101e post.&lt;br/&gt;- Adds Share as Image: turn any note into an uploaded image and share it.&lt;br/&gt;- Adds Immersive scrolling: hide the OS system bars while reading and in full-screen media.&lt;br/&gt;- Fixes Desktop deployment&lt;br/&gt;&lt;br/&gt;## New Features&lt;br/&gt;&lt;br/&gt;### Workouts&lt;br/&gt;&lt;br/&gt;- Detects workouts from Health Connect and suggests a kind 1301 post.&lt;br/&gt;- Re-scans Health Connect when the app resumes.&lt;br/&gt;- Adds a recent-workouts carousel to the New Workout composer.&lt;br/&gt;- Moves Health Connect entirely into the New Workout composer.&lt;br/&gt;- Defaults the workout distance unit to the phone&amp;#39;s measurement system.&lt;br/&gt;- Renders workout notes through the kind-1 text pipeline.&lt;br/&gt;- Shows workout metrics in the viewer&amp;#39;s own units.&lt;br/&gt;- Records the source app or device name from Health Connect.&lt;br/&gt;- Aligns Health Connect import with RUNSTR (active calories and title).&lt;br/&gt;- Adds a Compose setting to disable workout suggestions.&lt;br/&gt;- Limits the feed workout banner to today&amp;#39;s workouts.&lt;br/&gt;&lt;br/&gt;### Sharing&lt;br/&gt;&lt;br/&gt;- Shares any note as an uploaded image.&lt;br/&gt;- Adds a share-as-image screen with an image preview.&lt;br/&gt;&lt;br/&gt;### Reading&lt;br/&gt;&lt;br/&gt;- Hides the OS status bar during scroll immersive mode.&lt;br/&gt;- Hides the OS system bars during full-screen media.&lt;br/&gt;&lt;br/&gt;## Improvements and Bug fixes&lt;br/&gt;&lt;br/&gt;- Modernizes the New Workout composer.&lt;br/&gt;- Tightens the New Workout composer vertical spacing.&lt;br/&gt;- Centers the activity type chips in the New Workout composer.&lt;br/&gt;- Uses the Add icon on the New Workout FAB for consistency.&lt;br/&gt;- Stops the connect card from flashing on every screen open.&lt;br/&gt;- Keeps Health Connect prefs off the main thread (StrictMode).&lt;br/&gt;- Adds the Android 14&#43; Health Connect permission rationale activity-alias.&lt;br/&gt;- Polishes the share-as-image screen.&lt;br/&gt;- Fixes a Tor race: sets Active deterministically so the bootstrap callback can&amp;#39;t race it.&lt;br/&gt;&lt;br/&gt;## Desktop&lt;br/&gt;&lt;br/&gt;- Ships a consistent macOS .icns and multi-size Windows .ico.&lt;br/&gt;- Excludes leaked kotlinx-coroutines-test from the release dmg.&lt;br/&gt;&lt;br/&gt;## Translations&lt;br/&gt;&lt;br/&gt;- Promotes Kenyan Swahili to the base resource qualifier.&lt;br/&gt;&lt;br/&gt;## Contributors&lt;br/&gt;&lt;br/&gt;- &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsyvrp9u6p0mfur9dfdru3d853tx9mdjuhkphxuxgfwmryja7zsvhqpzamhxue69uhhv6t5daezumn0wd68yvfwvdhk6tcpzpmhxue69uhkummnw3ezumt0d5hszythwden5te0dehhxarj9emkjmn99uwfvhl6&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;VitorPamplona&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…vhl6&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;⚡ Dee Kay ⚡&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…m3sx&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqs9vyevafl4f7rqluqykt500e9nj5ase8eh5k423rgwtfw6qdjhd4spz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsz9mhwden5te0wfjkccte9ehx7um5wghxyctwvshszrnhwden5te0dehhxtnvdakz7axwpzp&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;beefenergy&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…wpzp&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqs827g8dkd07zjvlhh60csytujgd3l9mz7x807xk3fewge7rwlukxgppemhxue69uhkummn9ekx7mp0qydhwumn8ghj7argv4nx7un9wd6zumn0wd68yvfwvdhk6tcpz9mhxue69uhkummnw3ezumrpdejz7d9xcpk&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;greenart7c3&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…xcpk&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqswc4nrhvp4lrjct0ayy0ps8f2hvj8e2guucp63dwcx6m6e8pka9fqpr4mhxue69uhkummnw3ezucnfw33k76twv4ezuum0vd5kzmp0qy08wumn8ghj7un9d3shjtnwdaehgu3wwa5hyetydejhgtn2wqhsz9nhwden5te0v4jx2m3wdehhxarj9ekxzmny9ue5n65v&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;KotlinGeek&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…n65v&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsxeh4ue276rhaqtz4c2df209gfkkft9006qdcryh3gaswtfuvxvlgpzamhxue69uhhyetvv9ujuurjd9kkzmpwdejhgtcpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsz9mhwden5te0wfjkccte9en82mnywd68ytndv5hsc2mjk6&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;v&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…mjk6&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;## Translations&lt;br/&gt;&lt;br/&gt;- Czech, German, Swedish, and Portuguese by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;⚡ Dee Kay ⚡&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…m3sx&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Hungarian by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsxekg0s8kxpcrka8ccwztv2m73kz6jy0ur8f7jc04rwr5p44w5acspzamhxue69uhhyetvv9ujumn0wd68ytnzv9hxgtcppemhxue69uhkummn9ekx7mp0qyg8wumn8ghj7mn0wd68ytnddakj7c0ns2l&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;summoner&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…ns2l&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Dutch by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqs82l74z7g3x8j3avpn2wrjrwn855nyvmpxa4v5pftfvtv5lrvrc5cppemhxue69uhkummn9ekx7mp074ge6h&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;Bartus&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…ge6h&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Polish by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsdyfz0ewdhmgp3a4r3pxvezx5r8yalrgvjn38v2ml5qrusnv7yywgpzemhxue69uhkummnw3ezucm6v9ejuurvw4ej7qg0waehxw309a3h5ctn9e6x7up0qyg8wumn8ghj7cm6v9ejuurvw4ej79s8c53&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;Polak&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…8c53&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Hindi by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqs88dt78wgnzvaph6fcstfvsd98xc2qs8eg8tllwv2zlutu8ehec2cpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhszrnhwden5te0dehhxtnvdakz7qghwaehxw309aex2mrp0yh8qunfd4skctnwv46z7x03hlx&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;राज&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…3hlx&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Slovenian by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsqqqqqqp0fmkspg7w8d305ln96a0jw0ptwqtuwskkm5pddv2kkjfcppemhxue69uhkummn9ekx7mp0qy2hwumn8ghj7un9d3shjtnyv9kh2uewd9hj7qgkwaehxw309aex2mrp0yhxg6t5w3hjuur4vghsdu406e&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;StellarStoic&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…406e&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Spanish by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqs07tjpyvvlq9ugdpax8h3jfrpwn7kr72k3tc7ky83tggn4et9eangpg3mhxw309ajxyartwdukjery09cxwctsd3ek6cnjdfnxs6t00pnhq7ttdvmkw7nsd3shxdrr0gery6nyva3h2ct0096kyerjw9jzummwd9hkutcprpmhxue69uhkv6tvw3jhytnwdaehgu3wwa5kuef0qyghwumn8ghj7mn0wd68ytnhd9hx2tcxdyhdq&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;⚡₿it₿y₿it⚡&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…yhdq&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Chinese by hypnotichemionus4 and &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsyxnuhnymz0u0xru2watmqe25vlh8vzzje9jhlsfgvsff9942gc9gprfmhxue69uhhq7tjv9kkjepwve5kzar2v9nzucm0d5hsz9mhwden5te0wfjkccte9e3hsurvv9ujummjvuhsz9nhwden5te0wfjkccte9ehx7um5wghx6mm99urkr68m&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;CXPLAY&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…r68m&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;
    </content>
    <updated>2026-06-17T16:49:57Z</updated>
  </entry>

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

  <entry>
    <id>https://nostr.now/nevent1qqsrlek8jp5re4gpktqlldxjugcr3gfuptxy5uequ82rafftuzt606qzyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zyk9f8dye</id>
    
      <title type="html">Telling my Claude to download their code and investigate... We ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsrlek8jp5re4gpktqlldxjugcr3gfuptxy5uequ82rafftuzt606qzyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zyk9f8dye" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsxeqvhllg80uaj0ukase2yjgg7hg8yvkj9ldfe6c0h0g9a7qfy89cppemhxue69uhkummn9ekx7mp0hgng2e&#39;&gt;nevent1q…ng2e&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Telling my Claude to download their code and investigate... We will see. 
    </content>
    <updated>2026-05-21T19:16:31Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsz9ndfyhxx2vay3pv7hpqnp7n7z8qjgelem0n6vzckzkf75fa40xczyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykpnmllq</id>
    
      <title type="html">Very strange.. I tried to remove and re add a few times to see if ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsz9ndfyhxx2vay3pv7hpqnp7n7z8qjgelem0n6vzckzkf75fa40xczyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykpnmllq" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqstawz8w7jv42hya0cv3e5myeyhcj8en8p94cn5m3p74f6h0xvvyzgppemhxue69uhkummn9ekx7mp0dvz0xa&#39;&gt;nevent1q…z0xa&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Very strange.. I tried to remove and re add a few times to see if I could recreated it but nothing... &lt;br/&gt;&lt;br/&gt;Basically the NWC server in your account is not replying to Amethyst&amp;#39;s queries.. It doesn&amp;#39;t send any error. It just doesn&amp;#39;t  reply. &lt;br/&gt;&lt;br/&gt;Can you use the same link in other apps?
    </content>
    <updated>2026-05-21T19:06:17Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqstu76xsf9za9yadhahc2zt88nekce02h26kxwn8k24saxhq2z3xlczyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykr0t8f3</id>
    
      <title type="html">Sir how do we get these screens and tell Claude to build them? :) ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqstu76xsf9za9yadhahc2zt88nekce02h26kxwn8k24saxhq2z3xlczyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykr0t8f3" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsymwv8t6z9wgpgv2tefefwpm55437tg67js9tmj5p4yy0dz2mfekspr4mhxue69uhkummnw3ezucnfw33k76twv4ezuum0vd5kzmp09r2uvr&#39;&gt;nevent1q…2uvr&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Sir how do we get these screens and tell Claude to build them? :) &lt;br/&gt;&lt;br/&gt;So, the mobile version has a user score for the entire network. I don&amp;#39;t know if the score is a good idea to show, but it is a valid between 0 to 100 for almost 300,000 keys that are connected to the user, in up to 8 hops (follows of follows of follows..)
    </content>
    <updated>2026-05-21T18:52:13Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsqdskky2hhwuyhf8xjs58v39y39mz7n5c9tgespnetrt6hspdsh8czyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zyk8uj70e</id>
    
      <title type="html">Hum... This is strange. I got a few bugs but not this one. What ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsqdskky2hhwuyhf8xjs58v39y39mz7n5c9tgespnetrt6hspdsh8czyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zyk8uj70e" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsw28ymytmeqqfdqaze7ad4s0mdfxqdtqa4vj74402nz8rywylff4cppemhxue69uhkummn9ekx7mp0gedsvv&#39;&gt;nevent1q…dsvv&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Hum... This is strange. I got a few bugs but not this one. What happened If you remove the wallet and reconnect?
    </content>
    <updated>2026-05-21T18:49:06Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqstzsmfwamx9dt8t68hwf6xr84xdfyyvp7j8afqgqzk5dr29tk2zaszyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykkq93wz</id>
    
      <title type="html">Testing right now</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqstzsmfwamx9dt8t68hwf6xr84xdfyyvp7j8afqgqzk5dr29tk2zaszyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykkq93wz" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsxckeh6erc8sahszqn7lm383pkc43lppazz6gwq4dpqdsmyznvvqgppemhxue69uhkummn9ekx7mp0mrzwh9&#39;&gt;nevent1q…zwh9&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Testing right now
    </content>
    <updated>2026-05-21T15:27:54Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsf3me9hpgcdweh4yjg04vqy5rgmjkhspef4pt2vl2n8res55qjr7gzyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykdrhtv6</id>
    
      <title type="html">Interesting.. it looks like it connects to the wallet but cannot ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsf3me9hpgcdweh4yjg04vqy5rgmjkhspef4pt2vl2n8res55qjr7gzyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykdrhtv6" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs9h90sxhmsh7s0txskxey8uvyd30dnrhuudvtyzpwqhmwyralq6jgppemhxue69uhkummn9ekx7mp0ndyt3j&#39;&gt;nevent1q…yt3j&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Interesting.. it looks like it connects to the wallet but cannot see anything else. Are you behind any VPN or Tor? Which wallet provider are you using? I can test their API as well.
    </content>
    <updated>2026-05-21T15:20:40Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqstg5s20pj75um8ygt49z0fatjrvnswkjda3cmp25qrmfhtt023p6czyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykyjwyhl</id>
    
      <title type="html">Does it give you any errors? Or just doesn&amp;#39;t complete. If you ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqstg5s20pj75um8ygt49z0fatjrvnswkjda3cmp25qrmfhtt023p6czyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykyjwyhl" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsyrqnvzrzcsw692qh22q5fqss368jzxm3s7enygjmks400xng4l8cppemhxue69uhkummn9ekx7mp0p6cnr6&#39;&gt;nevent1q…cnr6&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Does it give you any errors? Or just doesn&amp;#39;t complete. If you open your Wallet screen from the left drawer, do you see any balance?
    </content>
    <updated>2026-05-21T15:14:26Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqs96wcy9j47ute7dw3v7l5u4ammm9e8xj2qh2fkz9yvdtx9adkrvxczyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykc0gyg9</id>
    
      <title type="html">Lots to improve yet. Let me know if you want anything better.</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqs96wcy9j47ute7dw3v7l5u4ammm9e8xj2qh2fkz9yvdtx9adkrvxczyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykc0gyg9" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsphgzwrmtg6gtm4fwvy2q4pv3q246pc8ukcjdfgzukv8guuwnxengpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhs6qaqqg&#39;&gt;nevent1q…aqqg&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Lots to improve yet. Let me know if you want anything better. 
    </content>
    <updated>2026-05-21T00:30:11Z</updated>
  </entry>

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

  <entry>
    <id>https://nostr.now/nevent1qqsxsg8d80jac203fh2tezrxgvw0nap44l5pk8yv4m5pfhpke66nlaszyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykqsthdn</id>
    
      <title type="html">My bad ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsxsg8d80jac203fh2tezrxgvw0nap44l5pk8yv4m5pfhpke66nlaszyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykqsthdn" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsgcjkv6pyntfu3h427pdtxmxrcs9vuyqhwmshcz0cv0n6zaec8qkgppemhxue69uhkummn9ekx7mp08536l4&#39;&gt;nevent1q…36l4&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;My bad (@npub1gcxzte5zlkncx26j68ez60fzkvtkm9e0vrwdcvsjakxf9mu9qewqlfnj5z)  it was shipped.. but I didn&amp;#39;t add you to the list :( 
    </content>
    <updated>2026-05-20T14:18:43Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsq6u3m6q97qcrday752qmzxcxecj9tvam0quc6y53a0c3438jg7hqzyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zyk305apr</id>
    
      <title type="html">Can you reset your Index relay list and Search relay list? I ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsq6u3m6q97qcrday752qmzxcxecj9tvam0quc6y53a0c3438jg7hqzyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zyk305apr" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqswfhdpdzq2djm6jrwuqgqm6vmuv52c9vrevf96trjjmk3fsfvsdycpzpmhxue69uhkummnw3ezumt0d5hsw70xsm&#39;&gt;nevent1q…0xsm&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;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 :( 
    </content>
    <updated>2026-05-20T14:06:21Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqszfqntetj06f9ppshwgglumxp5kllwke8zg2clz9z4feg2t4vndyqzyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykd57vmv</id>
    
      <title type="html">Hum... Are none of them loading or just specific people?</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqszfqntetj06f9ppshwgglumxp5kllwke8zg2clz9z4feg2t4vndyqzyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykd57vmv" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs026axgxwvp5d629fu8v8wpf3yc4xs3lrlvu5a56lmj8j4889mjwspz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsrwex8e&#39;&gt;nevent1q…ex8e&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Hum... Are none of them loading or just specific people? 
    </content>
    <updated>2026-05-20T13:41:12Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsd5nnaszn6vw6lsqclnjtrtntyajcw9mvdhg8zqw0n6n9ulfp509szyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykurs85m</id>
    
      <title type="html">#Amethyst 1.10.0: OnChain wallets - ci: remove macos-13 x64 build ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsd5nnaszn6vw6lsqclnjtrtntyajcw9mvdhg8zqw0n6n9ulfp509szyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykurs85m" />
    <content type="html">
      #Amethyst 1.10.0: OnChain wallets&lt;br/&gt;&lt;br/&gt;- ci: remove macos-13 x64 build legs by @vitorpamplona in #2939&lt;br/&gt;- Replace linuxdeploy with appimagetool for AppImage packaging by @vitorpamplona in #2940&lt;br/&gt;- Sync inner note highlight fade with parent background color by @vitorpamplona in #2941&lt;br/&gt;- Handle denied call permissions with settings dialog by @vitorpamplona in #2942&lt;br/&gt;- Fix gradient rendering with transparent background colors by @vitorpamplona in #2943&lt;br/&gt;- Add NIP-BC onchain Bitcoin zaps support (send, receive, display) by @vitorpamplona in #2944
    </content>
    <updated>2026-05-16T21:19:43Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsqsc28ewmuutr0fu8nr2rp76pd3ryklayv0afw539qjtajy4cvl9czyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykn43z75</id>
    
      <title type="html">No, we are there</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsqsc28ewmuutr0fu8nr2rp76pd3ryklayv0afw539qjtajy4cvl9czyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykn43z75" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsqsrs8ay6jpv0p4jggdtqg7x0esxekt0egrhl8mklkxhpyy6kxjhcpzamhxue69uhhyetvv9ujuurjd9kkzmpwdejhgtc3a6r6k&#39;&gt;nevent1q…6r6k&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;No, we are there 
    </content>
    <updated>2026-05-16T21:14:26Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsdnk2yy4m6eafe80vyf55ahpcuae3p8q2vzvak6duufca0jv5kadqzyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zyk6uj96c</id>
    
      <title type="html">I don&amp;#39;t even know what is this...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsdnk2yy4m6eafe80vyf55ahpcuae3p8q2vzvak6duufca0jv5kadqzyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zyk6uj96c" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsgzcgkc5hu3nyr53rc6jkg58dwv76vt8elzcx99kh8sfcp7z7ghzcpz4mhxue69uhkummnw3ezummcw3ezuer9wchsyxq9qz&#39;&gt;nevent1q…q9qz&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;I don&amp;#39;t even know what is this... 
    </content>
    <updated>2026-05-16T19:57:15Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqswtsuesvjgeajk5vw8nw5gmyd9qkxakmrumuqqkx732t3xncklnrszyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykfchpca</id>
    
      <title type="html">v1.09.2 fixes this</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqswtsuesvjgeajk5vw8nw5gmyd9qkxakmrumuqqkx732t3xncklnrszyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykfchpca" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqst3y5pywk24c5wl5wenyyw2dqg75qjl83ssehgu9xhv59hc684m6qpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhswu9y88&#39;&gt;nevent1q…9y88&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;v1.09.2 fixes this
    </content>
    <updated>2026-05-16T17:01:05Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsrpmsxxsyjhys9tc6n7cauarp45glvfrsakux7jgdmpceeuj2kj0szyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykn9gtqh</id>
    
      <title type="html">#Amethyst v1.09.2: Fixes - Fix Blossom blob detection to reject ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsrpmsxxsyjhys9tc6n7cauarp45glvfrsakux7jgdmpceeuj2kj0szyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykn9gtqh" />
    <content type="html">
      #Amethyst v1.09.2: Fixes&lt;br/&gt;&lt;br/&gt;- Fix Blossom blob detection to reject non-compliant filenames&lt;br/&gt;- fix(desktop): add ProGuard keep rules so desktop builds actually launch&lt;br/&gt;- fix(desktop): mirror Android ProGuard strategy for release builds&lt;br/&gt;- Fix: pause video playback when app goes to background&lt;br/&gt;- feat(desktop): wire NamecoinSettingsSection into Settings screen&lt;br/&gt;- feat(desktop): wire Import Follow List dialog into UI&lt;br/&gt;- Fix crash when toggling home tabs with persisted pager state&lt;br/&gt;- Dedupe public channels in known chat list by channel id&lt;br/&gt;- Route NIP-43 relay join/leave through launchSigner&lt;br/&gt;- Migrate DNS cache from SharedPreferences to cacheDir&lt;br/&gt;- Filter DNS poison (loopback / any-local) from non-loopback hosts&lt;br/&gt;- perf(dns-cache): hand-rolled binary persistence format for SurgeDnsStore&lt;br/&gt;- Ignore duplicated hashtags when processing hashtag spam&lt;br/&gt;- New Crowdin translations
    </content>
    <updated>2026-05-16T16:59:28Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsgu5m3ch3kgx7z3k928krl385fwnr7v63kz278jgexex4uskda7xqzyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykk8ey9z</id>
    
      <title type="html">Hum... Its because the hashtags you added were in uppercase, so ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsgu5m3ch3kgx7z3k928krl385fwnr7v63kz278jgexex4uskda7xqzyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykk8ey9z" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsr7rt05z6p9h8e94curfcrkwfele3x95hfpn6ty72hn5syeswg2xspzamhxue69uhhyetvv9ujuurjd9kkzmpwdejhgtcjc3tq3&#39;&gt;nevent1q…3tq3&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;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. &lt;br/&gt;&lt;br/&gt;I will change amethyst to stop considering the original spelling of each hashtag to match in the count 
    </content>
    <updated>2026-05-16T15:08:52Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsrhym5tqffk7fe3jp96j4jnh0uq8r8xuv4nlztlawxhy6rxledumgzyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykcg9v4n</id>
    
      <title type="html">Check if it is not the amount of hashtags. The new version has a ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsrhym5tqffk7fe3jp96j4jnh0uq8r8xuv4nlztlawxhy6rxledumgzyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykcg9v4n" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsrvjer600vymxewujjxshfh6qd84d75zthut2ecvtjq9j0wmg7rlqpzemhxue69uhhyetvv9ujuerfw36x7tnsw43z7f59ttt&#39;&gt;nevent1q…9ttt&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;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.&lt;br/&gt;&lt;br/&gt;Spammers love putting all the irrelevant hashtags in a single post so this filter removes all of them. &lt;br/&gt;&lt;br/&gt;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. 
    </content>
    <updated>2026-05-16T15:06:06Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsgx6pxu493vms02m3drxze7s6d9yvzh2qwtupvdefklqwgc9932zqzyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykt8cjts</id>
    
      <title type="html">Ohhhh It&amp;#39;s the number of hashtags. The new Security filter by ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsgx6pxu493vms02m3drxze7s6d9yvzh2qwtupvdefklqwgc9932zqzyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykt8cjts" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsfxwqp8h32kmg54kac0sl8jd8gca8kcpkehdlp3ggs3fflrphapjqpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsrp9w2a&#39;&gt;nevent1q…9w2a&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Ohhhh It&amp;#39;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. 
    </content>
    <updated>2026-05-16T15:04:15Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsdac4ahzc855lcptgwpyu7yjgn3f3nhwf8rr9kyepvugh29an3rrszyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zyk0gjv9e</id>
    
      <title type="html">Nice, I was able to replicate... let me see what&amp;#39;s off with ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsdac4ahzc855lcptgwpyu7yjgn3f3nhwf8rr9kyepvugh29an3rrszyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zyk0gjv9e" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsr2n0nyf7hqdtht5dzc6pqy6nz2jwgpjtkhp66lhrqck7dhtv0pxspz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsarvlt0&#39;&gt;nevent1q…vlt0&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Nice, I was able to replicate... let me see what&amp;#39;s off with that post in particular..
    </content>
    <updated>2026-05-16T15:02:33Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsg7c99v79l0dg3aqgp56d9c6vcypt3sdm648xgdcv83tch52u7p8szyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykc8vm8t</id>
    
      <title type="html">I just logged in with your npub and I can see them just fine. How ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsg7c99v79l0dg3aqgp56d9c6vcypt3sdm648xgdcv83tch52u7p8szyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykc8vm8t" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsfxwqp8h32kmg54kac0sl8jd8gca8kcpkehdlp3ggs3fflrphapjqpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsrp9w2a&#39;&gt;nevent1q…9w2a&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;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. 
    </content>
    <updated>2026-05-16T14:59:12Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsqhqqaghtv2zmt3v93szw2wn7452qv3wzyfl89q8u3n3u4a6nqwzszyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykxl5fz7</id>
    
      <title type="html">Can you see them in your profile? Or not even there?</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsqhqqaghtv2zmt3v93szw2wn7452qv3wzyfl89q8u3n3u4a6nqwzszyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykxl5fz7" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsrgqj5cpkayhvekxes84dr2xxulq7p5n5w4clwf45n8lcl30ty2rcpzemhxue69uhhyetvv9ujuerfw36x7tnsw43z7lpw6rl&#39;&gt;nevent1q…w6rl&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Can you see them in your profile? Or not even there?
    </content>
    <updated>2026-05-16T14:55:56Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsde547etcgn5ksys5tru7p96r3y4tsgmerlk0qqxgpja3cecl9p7szyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zyktk4ny5</id>
    
      <title type="html">On the relay screen, can you check if you are connected to your ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsde547etcgn5ksys5tru7p96r3y4tsgmerlk0qqxgpja3cecl9p7szyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zyktk4ny5" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs22wv373mgealsy30yagcw5f6kkrwner3p6p69zw9vwnmlkjt54cqpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsudcxr9&#39;&gt;nevent1q…cxr9&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;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. &lt;br/&gt;&lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;⚡ Dee Kay ⚡&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…m3sx&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;  may need to check the signing time / createdAt for the Scheduled Post
    </content>
    <updated>2026-05-16T14:50:04Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqs8egjz3akglefx6raz6nyltdqx39d33neacxyezfqmrkvvktd43vszyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zyklfd3mj</id>
    
      <title type="html">Is this just a specific account? Do you mind sharing a screenshot ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqs8egjz3akglefx6raz6nyltdqx39d33neacxyezfqmrkvvktd43vszyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zyklfd3mj" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsdruzkzlnrpcw3a62d2l7ug87jmetxh85gwc7vngvx3dzdlty0xzspzemhxue69uhhyetvv9ujuerfw36x7tnsw43z7k5h2uv&#39;&gt;nevent1q…h2uv&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Is this just a specific account? Do you mind sharing a screenshot or the post ID? 
    </content>
    <updated>2026-05-16T14:02:14Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqswetal5vduq0ucpdd3e6jqjhskkhtwgllnyz34gl3k6j6q072a09czyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykecznsy</id>
    
      <title type="html">Investigating... Does it connect to any relay? Are you using ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqswetal5vduq0ucpdd3e6jqjhskkhtwgllnyz34gl3k6j6q072a09czyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykecznsy" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsw7em6jt3qgp2g6actmdyh5cmhfvvhu9lccr482nzcvmd3g86ul0gpzemhxue69uhhyetvv9ujuerfw36x7tnsw43z7sqqta9&#39;&gt;nevent1q…qta9&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Investigating... Does it connect to any relay? Are you using VPNs?
    </content>
    <updated>2026-05-16T12:57:24Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqs0vgu3ux9ty9ccv3yutvazwe4snz3yjtc9amfl4w05649zklmu7zqzyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykqmct3u</id>
    
      <title type="html">Forgot to push &amp;#34;publish&amp;#34; :( I just sent it</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqs0vgu3ux9ty9ccv3yutvazwe4snz3yjtc9amfl4w05649zklmu7zqzyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykqmct3u" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsgy2qut9t0z0x2696guvv8c7jmu80zu7safh37ae24uz8m4j642lcpzamhxue69uhhyetvv9ujuurjd9kkzmpwdejhgtcmdcg96&#39;&gt;nevent1q…cg96&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Forgot to push &amp;#34;publish&amp;#34; :( &lt;br/&gt;&lt;br/&gt;I just sent it
    </content>
    <updated>2026-05-16T11:59:07Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsr0w96dtj2tmxj6m7y9jskdhy9c0u50xxnkdlaxpmye2dvpkmettczyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykhdly5z</id>
    
      <title type="html">#Amethyst v1.09.1: Fixes - Fixes pull to refresh behavior - Fixes ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsr0w96dtj2tmxj6m7y9jskdhy9c0u50xxnkdlaxpmye2dvpkmettczyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykhdly5z" />
    <content type="html">
      #Amethyst v1.09.1: Fixes&lt;br/&gt;&lt;br/&gt;- Fixes pull to refresh behavior&lt;br/&gt;- Fixes Desktop release CI&lt;br/&gt;- Adds Git Repo screens. 
    </content>
    <updated>2026-05-15T23:06:24Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqstev6hexk4xq24pckl0d9hh2u7gnvjsscw0p5hj2aksd6vhzk3fvczyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zyknn4zvd</id>
    
      <title type="html">Actually not yet.. I forgot to enable the feature.. new release ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqstev6hexk4xq24pckl0d9hh2u7gnvjsscw0p5hj2aksd6vhzk3fvczyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zyknn4zvd" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsx6t36rf73ufsxxpqfps57zqxuplnq24qr3k4e5vvhsrs4z50z5zsprfmhxue69uhhq7tjv9kkjepwve5kzar2v9nzucm0d5hsvzs7qc&#39;&gt;nevent1q…s7qc&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Actually not yet.. I forgot to enable the feature.. new release incoming.
    </content>
    <updated>2026-05-15T22:35:23Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqs2aqldpapyqjgf3cjxype9eudnswnmrsy4jfks0cm5u8ukd0sxdwqzyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykwx6r60</id>
    
      <title type="html">What do you see? Does the zap icon go but doesn&amp;#39;t finish? Do ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqs2aqldpapyqjgf3cjxype9eudnswnmrsy4jfks0cm5u8ukd0sxdwqzyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykwx6r60" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsps2jql06686tw4rnwkzqdj23xm8dyhedzvx64au8nq2jk8lvuyccpzpmhxue69uhkummnw3ezumt0d5hsw653qe&#39;&gt;nevent1q…53qe&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;What do you see? Does the zap icon go but doesn&amp;#39;t finish? Do you see the transaction in your Alby hub at all? Do you see the wallet ballance on the WAllet screen in the left drawer? 
    </content>
    <updated>2026-05-15T22:18:59Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqs9ah8lp6l7t8q037ryhncy7xhgetsq770f2f7qx9mckluv7v4k9gczyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zyk8xjpt4</id>
    
      <title type="html">Did it work?</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqs9ah8lp6l7t8q037ryhncy7xhgetsq770f2f7qx9mckluv7v4k9gczyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zyk8xjpt4" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsyr4jwjtejsn3tysdlpw2ncl08arny4d4ank0ds2jhk8k3m7zmk7spr4mhxue69uhkummnw3ezucnfw33k76twv4ezuum0vd5kzmp07kr9c7&#39;&gt;nevent1q…r9c7&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Did it work?
    </content>
    <updated>2026-05-15T22:16:55Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqs93n2k6lvu2jr0rkp8s7tuakq890kfk0ux68dqwmv0mua6q2qk26szyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykszrnye</id>
    
      <title type="html">You don&amp;#39;t need to choose. Just use both</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqs93n2k6lvu2jr0rkp8s7tuakq890kfk0ux68dqwmv0mua6q2qk26szyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykszrnye" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqstsypnguwmfs93l4j4ue8382vefe7vfdq7swsd2kl25z7a0rdlv3spzamhxue69uhhyetvv9ujuurjd9kkzmpwdejhgtcv0xxnh&#39;&gt;nevent1q…xxnh&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;You don&amp;#39;t need to choose. Just use both
    </content>
    <updated>2026-05-15T21:09:42Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsgwe38wkldp9ap8zqq8ca6wemfyaynak96h70nuws4pjenmrvu95czyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zyks2rkxy</id>
    
      <title type="html">TLDR... Just download and have fun</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsgwe38wkldp9ap8zqq8ca6wemfyaynak96h70nuws4pjenmrvu95czyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zyks2rkxy" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs8u86geqe5ennu3drftd0lpw4ul3m5u4w5h4kjc6k4n53f7m0fy3qpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsm7fssl&#39;&gt;nevent1q…fssl&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;TLDR... Just download and have fun
    </content>
    <updated>2026-05-15T21:06:10Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsgxesgs2yspn2qwa70ad7ema5adlxungfxt9k9w9afce7ddr9475qzyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykdrez8a</id>
    
      <title type="html">We are worried, but we cannot do anything about it so why ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsgxesgs2yspn2qwa70ad7ema5adlxungfxt9k9w9afce7ddr9475qzyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykdrez8a" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsrwkf3e354m93lg6hpqwqqcnntjdmunnkem9ddfld7hhdj5gzxfjqppemhxue69uhkummn9ekx7mp0kzy2xl&#39;&gt;nevent1q…y2xl&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;We are worried, but we cannot do anything about it so why bother... We will do what&amp;#39;s needed to ship.
    </content>
    <updated>2026-05-15T20:22:51Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqs8vtyffrugdkvxg90she5yuwwg7vved0mxszrjn468m64knqw5hjczyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykrgwx9c</id>
    
      <title type="html">Something is off on the desktop CIs :(</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqs8vtyffrugdkvxg90she5yuwwg7vved0mxszrjn468m64knqw5hjczyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykrgwx9c" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsvcnypwl3rtagxssyyq8cgzjpztl3xlllj8r27l9qnf8jv2wtg8mqpzamhxue69uhhyetvv9ujuurjd9kkzmpwdejhgtcsm5dce&#39;&gt;nevent1q…5dce&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Something is off on the desktop CIs :( 
    </content>
    <updated>2026-05-15T20:20:34Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqs0rmq72x2rn69gwhdtldkspr9l2l3gz09mc4rq0cxxrfdkqyknh9qzyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zyk75gyy5</id>
    
      <title type="html">CI still running... It takes a lot longer now with Desktop, Cli, ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqs0rmq72x2rn69gwhdtldkspr9l2l3gz09mc4rq0cxxrfdkqyknh9qzyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zyk75gyy5" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsgahrv5ey43ve5dwvxs0xlrkh6t4jvrh8c4yusnlg3jel530w9nzqpz9mhxue69uhkummnw3ezumrpdejz79zapvc&#39;&gt;nevent1q…apvc&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;CI still running... It takes a lot longer now with Desktop, Cli, our MLS, QUIC and MoQ implementations... 😅
    </content>
    <updated>2026-05-15T20:11:11Z</updated>
  </entry>

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

  <entry>
    <id>https://nostr.now/nevent1qqsr5g6gedpql0xswq5r9wd6exjttjmltdhte2rnjj4h3ewv7hsmjrczyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykvqrv68</id>
    
      <title type="html">Just setup NWC.. its way better than manually paying for ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsr5g6gedpql0xswq5r9wd6exjttjmltdhte2rnjj4h3ewv7hsmjrczyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykvqrv68" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsz3aetp2hxa2m6ycegwn4phlt9zmz0yn73mstk76emkr9vr0fqkmgpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsjygf8h&#39;&gt;nevent1q…gf8h&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Just setup NWC.. its way better than manually paying for everything
    </content>
    <updated>2026-04-01T20:23:40Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqstax0ger2d7r65k38tdjtfwmxt8zawagqeysm2r3hu30z7jvx6dvqzyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykdpenm3</id>
    
      <title type="html">#Amethyst v1.08.0: Arti Tor - Migrates C Tor lib to Rust Tor lib ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqstax0ger2d7r65k38tdjtfwmxt8zawagqeysm2r3hu30z7jvx6dvqzyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykdpenm3" />
    <content type="html">
      #Amethyst v1.08.0: Arti Tor&lt;br/&gt;&lt;br/&gt;- Migrates C Tor lib to Rust Tor lib (hopefully no more random crashes)&lt;br/&gt;- Fixes highlight of users when composing and tagging&lt;br/&gt;&lt;br/&gt;Team: &lt;br/&gt;- &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsyvrp9u6p0mfur9dfdru3d853tx9mdjuhkphxuxgfwmryja7zsvhqpz9mhxue69uhkummnw3ezuamfdejj7qghwaehxw309amxjar0wghxummnw3erztnrdakj7qgswaehxw309ahx7um5wghx6mmd9ud62lxp&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;VitorPamplona&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…2lxp&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;⚡ Dee Kay ⚡&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…m3sx&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; &lt;br/&gt;- &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqs9vyevafl4f7rqluqykt500e9nj5ase8eh5k423rgwtfw6qdjhd4sppemhxue69uhkummn9ekx7mp0qy2hwumn8ghj7un9d3shjtnyv9kh2uewd9hj7ma4uad&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;beefenergy&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…4uad&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; &lt;br/&gt;- &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqs827g8dkd07zjvlhh60csytujgd3l9mz7x807xk3fewge7rwlukxgppemhxue69uhkummn9ekx7mp0qydhwumn8ghj7argv4nx7un9wd6zumn0wd68yvfwvdhk6tcpz9mhxue69uhkummnw3ezumrpdejz7d9xcpk&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;greenart7c3&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…xcpk&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; &lt;br/&gt;- &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqswc4nrhvp4lrjct0ayy0ps8f2hvj8e2guucp63dwcx6m6e8pka9fqpr4mhxue69uhkummnw3ezucnfw33k76twv4ezuum0vd5kzmp0qy08wumn8ghj7un9d3shjtnwdaehgu3wwa5hyetydejhgtn2wqhsz9nhwden5te0v4jx2m3wdehhxarj9ekxzmny9ue5n65v&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;KotlinGeek&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…n65v&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsxekg0s8kxpcrka8ccwztv2m73kz6jy0ur8f7jc04rwr5p44w5acspzamhxue69uhhyetvv9ujumn0wd68ytnzv9hxgtcppemhxue69uhkummn9ekx7mp0qyg8wumn8ghj7mn0wd68ytnddakj7c0ns2l&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;summoner&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…ns2l&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqs8av5uzf4nv2q80chrmp3mj9a9dd6zjw4fmz56hsn2gzar72rxhtcppemhxue69uhkummn9ekx7mp0qyg8wumn8ghj7mn0wd68ytnddakj7qgawaehxw309ahx7um5wghxy6t5vdhkjmn9wgh8xmmrd9skctcuvd26f&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;DuPainEtDesJeux&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…d26f&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsdyfz0ewdhmgp3a4r3pxvezx5r8yalrgvjn38v2ml5qrusnv7yywgpr9mhxue69uhkummnw3ezumnpv3sk5mnfdvhx7un89uq3zamnwvaz7tmwdaehgu3wvfhkuep0qy8hwumn8ghj7cm6v9ejuar0wqhsscy248&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;Polak&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…y248&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqs88dt78wgnzvaph6fcstfvsd98xc2qs8eg8tllwv2zlutu8ehec2cpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhszrnhwden5te0dehhxtnvdakz7qghwaehxw309aex2mrp0yh8qunfd4skctnwv46z7x03hlx&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;राज&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…3hlx&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsqqqqqqp0fmkspg7w8d305ln96a0jw0ptwqtuwskkm5pddv2kkjfcppemhxue69uhkummn9ekx7mp0qy2hwumn8ghj7un9d3shjtnyv9kh2uewd9hj7qgkwaehxw309aex2mrp0yhxg6t5w3hjuur4vghsdu406e&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;StellarStoic&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…406e&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsgs9hgjw87vz36jf2r83m5zree2q87zvs8s7kty9jljdz7wprytyspremhxue69uhkummnw3ezu6m0de5kueedv3jkwunpv9nzumnv9uq3kamnwvaz7tm5d4cz6un9d3shjtnrv4ekxtn5wfskgef0qy28wumn8ghj7mn0wd68yt3k8quzummjvuhsg63aw2&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;Cats&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…3aw2&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqs07tjpyvvlq9ugdpax8h3jfrpwn7kr72k3tc7ky83tggn4et9eangpg3mhxw309ajxyartwdukjery09cxwctsd3ek6cnjdfnxs6t00pnhq7ttdvmkw7nsd3shxdrr0gery6nyva3h2ct0096kyerjw9jzummwd9hkutcprpmhxue69uhkv6tvw3jhytnwdaehgu3wwa5kuef0qyghwumn8ghj7mn0wd68ytnhd9hx2tcxdyhdq&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;⚡₿it₿y₿it⚡&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…yhdq&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsyxnuhnymz0u0xru2watmqe25vlh8vzzje9jhlsfgvsff9942gc9gpz3mhxue69uhh2uewdehhxarj9emkjmn99uq3wamnwvaz7tmjv4kxz7fwvdu8qmrp0yhx7un89uq35amnwvaz7tms09exzmtfvshxv6tpw34xze3wvdhk6tcmjdwqe&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;CXPLAY&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…dwqe&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;
    </content>
    <updated>2026-04-01T19:45:10Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsy5r9eg5lkps7ytuuutkeymwc773mcfnnhp0vlklk2lep6pa42uegzyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zyk747wt3</id>
    
      <title type="html">#Amethyst 1.07.3: New Shorts UI - Migrates Shorts UI out of a ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsy5r9eg5lkps7ytuuutkeymwc773mcfnnhp0vlklk2lep6pa42uegzyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zyk747wt3" />
    <content type="html">
      #Amethyst 1.07.3: New Shorts UI&lt;br/&gt;&lt;br/&gt;- Migrates Shorts UI out of a paged design&lt;br/&gt;- New edge-to-edge feed for Pictures only&lt;br/&gt;- New edge-to-edge feed for Shorts only&lt;br/&gt;- New edge-to-edge feed for long Videos only&lt;br/&gt;- Migrates Badges to kind 10008&lt;br/&gt;- Migrates Bookmarks to kind 10003&lt;br/&gt;- Fixes AOSP keyboard auto-correction bug&lt;br/&gt;- Fixes Poll&amp;#39;s top nav filter&lt;br/&gt;- Fixes loading of Bookmark sets&lt;br/&gt;- Fixes sorting stability by including event ids&lt;br/&gt;- Fixes cursor position in quote post field&lt;br/&gt;- Fixes rendering of nostr: uris when composing &lt;br/&gt;- Adds Basic support for reaction notifications&lt;br/&gt;- Refactors NIP-58 Badges on Quartz&lt;br/&gt;- Refactors LocalCache methods&lt;br/&gt;- Improves the Chess UI (debug only)&lt;br/&gt;- Add error handling to Tor services
    </content>
    <updated>2026-03-31T21:30:47Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqs00x6ak6udpsxmp777y0axl5zxv3c9874kwup4pcglpgv9t3zennszyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zyknyfsr5</id>
    
      <title type="html">I will do a check soon. NTFY is blocks Push Notifications after a ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqs00x6ak6udpsxmp777y0axl5zxv3c9874kwup4pcglpgv9t3zennszyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zyknyfsr5" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs8a4n6j3jxfg74kzsrjyr4cg2r46cs7tgzslaeyeperfajnrm3vrgpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhscc07na&#39;&gt;nevent1q…07na&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;I will do a check soon. NTFY is blocks Push Notifications after a while if you are just a free user. 
    </content>
    <updated>2026-03-31T17:33:58Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqszssqd9t0smv5rfh7ufpcemekm9xecxgtwrxwf60empqdrrunlj2szyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykk3jv3q</id>
    
      <title type="html">Did you donate to Pokey? :)</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqszssqd9t0smv5rfh7ufpcemekm9xecxgtwrxwf60empqdrrunlj2szyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykk3jv3q" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs2jrc8m9yr9updfw99ejaxx02c52ekt75yh40y23gpurr3rjvaj6gpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsv6d4gz&#39;&gt;nevent1q…d4gz&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Did you donate to Pokey? :) 
    </content>
    <updated>2026-03-31T17:33:26Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsrnxk8dcqcmkv32pv7d6w34yezmk5xs63fq99k2dpjeqr5mwt5ktszyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykl44lrf</id>
    
      <title type="html">NTFY doesn&amp;#39;t work?</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsrnxk8dcqcmkv32pv7d6w34yezmk5xs63fq99k2dpjeqr5mwt5ktszyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykl44lrf" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsfj27mkuwe7hj2rsxpfzpaa94tfv6vuu3au76mkknn4kyy2klexngpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsnmcc73&#39;&gt;nevent1q…cc73&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;NTFY doesn&amp;#39;t work? 
    </content>
    <updated>2026-03-31T16:18:40Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsge6fnz4xef6ygpnkdc6tasmjmrrudm5ckx2qm00he5hte0d2s7lgzyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykc803yr</id>
    
      <title type="html">The app has been &amp;#34;in review&amp;#34; for 24 hrs now..</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsge6fnz4xef6ygpnkdc6tasmjmrrudm5ckx2qm00he5hte0d2s7lgzyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykc803yr" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs2zdm36tzwa2gskr9ap3gzlnramvkm42yaw4tvpznfnsczxz8p2zcpzamhxue69uhhyetvv9ujuurjd9kkzmpwdejhgtc8ma22v&#39;&gt;nevent1q…a22v&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;The app has been &amp;#34;in review&amp;#34; for 24 hrs now.. 
    </content>
    <updated>2026-03-31T14:52:23Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqstfsjzr06nufujc0ee9wtte3v6hsqtlpj3n5uy2nw8hv6tn2lvvngzyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zyks0uzc4</id>
    
      <title type="html">Yeah, don&amp;#39;t use Google Play. Use ZapStore or Obtainium</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqstfsjzr06nufujc0ee9wtte3v6hsqtlpj3n5uy2nw8hv6tn2lvvngzyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zyks0uzc4" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqspp0d7l4dpzxuy8v6959amh5chvrf5uw7e3t0s0a73ds2e3eqa9jgpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhs4ndhpz&#39;&gt;nevent1q…dhpz&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Yeah, don&amp;#39;t use Google Play. Use ZapStore or Obtainium
    </content>
    <updated>2026-03-31T14:31:56Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqspumwrxs5whgr9rnekn9efvq9daxysmnety28se5270yk5ukfucagzyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykyvppvt</id>
    
      <title type="html">We had it for 2 years :)</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqspumwrxs5whgr9rnekn9efvq9daxysmnety28se5270yk5ukfucagzyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykyvppvt" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqszp9nycvt40zs9l2ajpmmmdkaef6sj85nck7zmmessdyfp5j7mh0cpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhse5dwdw&#39;&gt;nevent1q…dwdw&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;We had it for 2 years :) 
    </content>
    <updated>2026-03-31T14:31:26Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsvr7j3w8agj3739mhh5lqyzy6947efnn6tdc46anps7dq0wfz4ecgzyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykn86c0e</id>
    
      <title type="html">#Amethyst v1.07.2: GIF Keyboard Support - Adds GIF uploads ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsvr7j3w8agj3739mhh5lqyzy6947efnn6tdc46anps7dq0wfz4ecgzyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykn86c0e" />
    <content type="html">
      #Amethyst v1.07.2: GIF Keyboard Support &lt;br/&gt;&lt;br/&gt;- Adds GIF uploads support from Keyboard&lt;br/&gt;- Migrates text fields and @ modifiers to the new Jetpack Compose states&lt;br/&gt;- Fixes Bug that wasn&amp;#39;t openning Amber to sign&lt;br/&gt;- Fixes Bug on rejections using old Ambers&lt;br/&gt;- Replaces hex input with user search dialog in relay management (allow/ban user)
    </content>
    <updated>2026-03-30T21:18:40Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsr43huc3yx9lsltqmyame74v86a7xyh5j3rqwemw3gf7d94rmfceszyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykyvyruc</id>
    
      <title type="html">Its payment for copying our ideas.</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsr43huc3yx9lsltqmyame74v86a7xyh5j3rqwemw3gf7d94rmfceszyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykyvyruc" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsqqq94rqrzlu7vksmgfly8skeazctuy57ye52z6uxws4uwctypspqpzamhxue69uhhyetvv9ujuurjd9kkzmpwdejhgtcef2ep4&#39;&gt;nevent1q…2ep4&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Its payment for copying our ideas.
    </content>
    <updated>2026-03-30T17:21:57Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsfcjh33x5grws9kpujwspf2xpydun8jwuw6crjfcl0azeta4cq98szyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zyk7yn77d</id>
    
      <title type="html">Our nostr library for clients and relays</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsfcjh33x5grws9kpujwspf2xpydun8jwuw6crjfcl0azeta4cq98szyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zyk7yn77d" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsqqqzwmgzqy0pw09ylg8nmnc70axga0yyfnqvsnst9ckax3zwe6ksppemhxue69uhkummn9ekx7mp0qf0am0&#39;&gt;nevent1q…0am0&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Our nostr library for clients and relays
    </content>
    <updated>2026-03-30T17:06:42Z</updated>
  </entry>

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

  <entry>
    <id>https://nostr.now/nevent1qqsg69xkqp36lr884zlkkxrrsv5pyvnev2u3r0rvkuschy5tllq9ldqzyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykl9zdmy</id>
    
      <title type="html">#Amethyst 1.06.3 - Add support for multiple choice polls - Add ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsg69xkqp36lr884zlkkxrrsv5pyvnev2u3r0rvkuschy5tllq9ldqzyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykl9zdmy" />
    <content type="html">
      #Amethyst 1.06.3&lt;br/&gt; &lt;br/&gt;- Add support for multiple choice polls&lt;br/&gt;- Add drag-to-seek to the video progress bar&lt;br/&gt;- Hide video controls on playback start&lt;br/&gt;- Bigger recording STOP button for &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsr7acdvhf6we9fch94qwhpy0nza36e3tgrtkpku25ppuu80f69kfqppemhxue69uhkummn9ekx7mp0qyghwumn8ghj7mn0wd68ytnhd9hx2tcpzemhxue69uhkummnw3ex2mrfw3jhxtn0wfnj76p2szn&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;Derek Ross&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…2szn&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Fixes non http uris in the references tag&lt;br/&gt;- Makes sure quote tags happen once&lt;br/&gt;- Removes clickable NIP-05 when @ tagging &lt;br/&gt;- Removes naddr to index articles in bookmarks&lt;br/&gt;- Checks if p tags are pubkeys on drafts load&lt;br/&gt;- Scroll to the replied message when clicking reply preview in chat&lt;br/&gt;- Add an anonymous reply (tap picture)&lt;br/&gt;- Fixes pool rendering when labels are too different&lt;br/&gt;- Use uri-reference-kmp, deprecates java impl&lt;br/&gt;- Fixes crashing in URLs with japanese chars&lt;br/&gt;- Set followers to fix LazyColumn key conflicts&lt;br/&gt;- Clickable relay rows on the profile page&lt;br/&gt;- Move cache lookups from NavHost route&lt;br/&gt;- Improvements to the status of attestations. Validity first, then Processing status.&lt;br/&gt;- Fixes Tor Manager flow value&lt;br/&gt;- Improves Tor binding lifecycle.&lt;br/&gt;- Simplifies the report feed in the user profile&lt;br/&gt;- Clears inconsistencies in translated strings&lt;br/&gt;- Fixes client tags on Quartz&lt;br/&gt;- Fixes routes for AppDefinition events.
    </content>
    <updated>2026-03-25T01:30:22Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqszn03rm9gtmt8apleac2us9n9g3cutqkugrywr79sdq8qm9y3g84czyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykhsm32e</id>
    
      <title type="html">Sure, 1 out of 200 clients. So, the DM fails everywhere but in ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqszn03rm9gtmt8apleac2us9n9g3cutqkugrywr79sdq8qm9y3g84czyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykhsm32e" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsq4zl736h5rwff4ptn8fda9d4q3aeuund2dwy8jkxxs0l3lrjmdwcpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhszpmhxr&#39;&gt;nevent1q…mhxr&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Sure, 1 out of 200 clients. So, the DM fails everywhere but in that special client. Its not a good experience. Ditto has deprecated nip-04 as well. They will remove it shortly. There is no way back.
    </content>
    <updated>2026-03-24T18:07:51Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqspn2fxc293myfcj8rn8tsavdqvrveuvm86nkgr2kxk0mv3x3vthcczyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykepjs0a</id>
    
      <title type="html">We don&amp;#39;t have a screen just for nips yet, but they will show ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqspn2fxc293myfcj8rn8tsavdqvrveuvm86nkgr2kxk0mv3x3vthcczyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykepjs0a" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs83wv0q2hu35az668ssxmek5eaathnu62mpmlx74w3w69sfh6maecpzamhxue69uhhyetvv9ujuurjd9kkzmpwdejhgtc9hcys6&#39;&gt;nevent1q…cys6&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;We don&amp;#39;t have a screen just for nips yet, but they will show up in the feed and notifications if anyone replies to your nip
    </content>
    <updated>2026-03-24T18:07:13Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsvus7h60wcavet9q7fermu7zvjqhhry4qdrhhwucn8nx7pqwqpj9szyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zyk4c64fk</id>
    
      <title type="html">Nobody supports NIP-04 anymore.. It&amp;#39;s just better to move one ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsvus7h60wcavet9q7fermu7zvjqhhry4qdrhhwucn8nx7pqwqpj9szyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zyk4c64fk" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsdrafsde0luw0f4tahmjznkv3ug8206t3dag4jgmk3xp7c8zvt35spz4mhxue69uhkg6t5w3hjuur4vghhyetvv9us5xu3q3&#39;&gt;nevent1q…u3q3&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Nobody supports NIP-04 anymore.. It&amp;#39;s just better to move one than trying to make a super old starndard work these days.
    </content>
    <updated>2026-03-24T17:41:34Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqspkxkhvqw58sasjulru6wx25tuadltlnjylm6xhvsn28xvvyhphnczyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zyk2mtw77</id>
    
      <title type="html">#Amethyst v1.06.1 Fixes - Improvements to the rendering of Polls. ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqspkxkhvqw58sasjulru6wx25tuadltlnjylm6xhvsn28xvvyhphnczyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zyk2mtw77" />
    <content type="html">
      #Amethyst v1.06.1 Fixes&lt;br/&gt;&lt;br/&gt;- Improvements to the rendering of Polls.&lt;br/&gt;- Solves some of the crashes of the concurrent modification exception&lt;br/&gt;- Fixes URL parsers with Japanese chars&lt;br/&gt;- Fixes Wallet import from Primal on Poco phones&lt;br/&gt;- Improves the wording of the Last Seen&lt;br/&gt;- Fixes for &amp;#34;Cannot disable reuse from root if it was caused by other groups&amp;#34;&lt;br/&gt;- Fixes comparator to avoid Comparison method violates its general contract!&lt;br/&gt;- Improves zap-store settings
    </content>
    <updated>2026-03-23T23:32:51Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsw5ly57jdn288nm43fhjhcxj4vuddgejppkjwfwe9adzr3xjqpexqzyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykgjftld</id>
    
      <title type="html">yep</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsw5ly57jdn288nm43fhjhcxj4vuddgejppkjwfwe9adzr3xjqpexqzyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykgjftld" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsqqqy0rf2va0wqej9twthnzw70uhlncjkrmmpz574q6sxwvyl9fycppemhxue69uhkummn9ekx7mp098xa2e&#39;&gt;nevent1q…xa2e&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;yep
    </content>
    <updated>2026-03-23T22:16:36Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsgy35r9x9x9kn6qgm8j9l9qqr4glzmcfg2a3a2t22tx6x72gdee2gzyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zyk2fjcfg</id>
    
      <title type="html">Hum.. I was able to mute an account by a unique NIP-05.. do you ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsgy35r9x9x9kn6qgm8j9l9qqr4glzmcfg2a3a2t22tx6x72gdee2gzyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zyk2fjcfg" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqspvq3d47ezpnexhrhdtk5ggfwe8fulnhcrkuac6q6wgr8dyd6q7rcpzemhxue69uhhyetvv9ujumt0wd68ytnsw43z7zck5th&#39;&gt;nevent1q…k5th&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Hum.. I was able to mute an account by a unique NIP-05.. do you mind sharing what words are you using to mute them that should be working? 
    </content>
    <updated>2026-03-23T18:06:10Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsysw4qwejrz8gh02yny2wytpdjzpvp9jjxuf9s9lvj9d4v35a4n5czyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zyksz0p5k</id>
    
      <title type="html">Checking</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsysw4qwejrz8gh02yny2wytpdjzpvp9jjxuf9s9lvj9d4v35a4n5czyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zyksz0p5k" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqspvq3d47ezpnexhrhdtk5ggfwe8fulnhcrkuac6q6wgr8dyd6q7rcpzemhxue69uhhyetvv9ujumt0wd68ytnsw43z7zck5th&#39;&gt;nevent1q…k5th&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Checking
    </content>
    <updated>2026-03-23T18:00:39Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsde8g3v968c4kscnfenwq0qvln2qc8teklvvtselexazjtf0ecmfszyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zyksp8h9r</id>
    
      <title type="html">Something @nprofile…4uad has been cooking for a while.. a new ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsde8g3v968c4kscnfenwq0qvln2qc8teklvvtselexazjtf0ecmfszyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zyksp8h9r" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsx6v2yvw04kcu3h7dj0zp0q0egjcyahp8dyn89x896w85twzsusjgpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhstxwntn&#39;&gt;nevent1q…wntn&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Something &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqs9vyevafl4f7rqluqykt500e9nj5ase8eh5k423rgwtfw6qdjhd4sppemhxue69uhkummn9ekx7mp0qy2hwumn8ghj7un9d3shjtnyv9kh2uewd9hj7ma4uad&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;beefenergy&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…4uad&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; has been cooking for a while.. a new version of Amethyst, focused on Desktop needs. 
    </content>
    <updated>2026-03-23T17:54:52Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsvdl44a3stg7h7vm32npckrhmladjmd50sls8p7kurw8pjh25jcjczyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykn775th</id>
    
      <title type="html">I might need to buy it to see how to fix it... That MediaTek ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsvdl44a3stg7h7vm32npckrhmladjmd50sls8p7kurw8pjh25jcjczyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykn775th" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsgs0njz54qwujnq49t5yyhm4pgvw6mn9kejjw4xzf0cuc46tqsklspzamhxue69uhhyetvv9ujuurjd9kkzmpwdejhgtcn53uv3&#39;&gt;nevent1q…3uv3&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;I might need to buy it to see how to fix it... That MediaTek Dimensity 6100&#43; chip is horrendusly slow. 
    </content>
    <updated>2026-03-23T17:20:39Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsp7udlf8n8xfyml5ghvcg9gt5sk8g0hu0ednw427wah87mdx44qvszyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykamd24k</id>
    
      <title type="html">Which phone, again?</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsp7udlf8n8xfyml5ghvcg9gt5sk8g0hu0ednw427wah87mdx44qvszyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykamd24k" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsdp6krpk2d04znnv6shfurxpmumtttp9a862v8xf9eaccmgr8ef6qpzamhxue69uhhyetvv9ujuurjd9kkzmpwdejhgtcxgwgqp&#39;&gt;nevent1q…wgqp&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Which phone, again? 
    </content>
    <updated>2026-03-23T16:59:29Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqs0ja4ekxeaffgq3kqkgfz5q52ed82wahc7xxgmsx8y4ed8kfqtjrczyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykt09rmq</id>
    
      <title type="html">And the other PR was addressed by the new URL parser :)</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqs0ja4ekxeaffgq3kqkgfz5q52ed82wahc7xxgmsx8y4ed8kfqtjrczyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykt09rmq" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqstpjt3qwhskmw7kp53rzjgan8mych7c9lftnylnvmx2j5vt6glufgpz4mhxue69uhhwmm59enkjunfdehjummjvuhsgayjmj&#39;&gt;nevent1q…yjmj&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;And the other PR was addressed by the new URL parser :) 
    </content>
    <updated>2026-03-23T16:56:05Z</updated>
  </entry>

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

  <entry>
    <id>https://nostr.now/nevent1qqs28f48dc2sz9jzl6lw0dcrlxg8d48vjwwgx27kvpm2suupgglfalczyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykyt33ad</id>
    
      <title type="html">#Amethyst v1.05.1: BugFixes - Fixed mixed DMs between logged-in ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqs28f48dc2sz9jzl6lw0dcrlxg8d48vjwwgx27kvpm2suupgglfalczyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykyt33ad" />
    <content type="html">
      #Amethyst v1.05.1: BugFixes&lt;br/&gt;&lt;br/&gt;- Fixed mixed DMs between logged-in users.&lt;br/&gt;- Fixed draft screen click to edit post.&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://amethyst.social&#34;&gt;https://amethyst.social&lt;/a&gt;
    </content>
    <updated>2026-01-09T00:35:37Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqs2qd5hkne876h2szghgpl6nkp8s5nywl47sx7jku3klmzwcuvp8mqzyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zyk6jcqj9</id>
    
      <title type="html">That&amp;#39;s all @nprofile…m3sx</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqs2qd5hkne876h2szghgpl6nkp8s5nywl47sx7jku3klmzwcuvp8mqzyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zyk6jcqj9" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsrq9t82gyd36z6j5pf3y6c3zclf46xjcm9zmv20e039z68zq3aqvqprdmhxue69uhhyetvv9ujumn0wd68yurvv438xtnrdakj7jt6nds&#39;&gt;nevent1q…6nds&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;That&amp;#39;s all &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;⚡ Dee Kay ⚡&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…m3sx&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;
    </content>
    <updated>2026-01-08T21:49:59Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqstg4azqx2lln6szwyledcg7rhh8a8wyclrhwnr7xuf82ykz20yc7gzyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykjgq22y</id>
    
      <title type="html">#Amethyst v1.05.0: Bookmark Lists, Voice Notes, and WoT Scores ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqstg4azqx2lln6szwyledcg7rhh8a8wyclrhwnr7xuf82ykz20yc7gzyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykjgq22y" />
    <content type="html">
      #Amethyst v1.05.0: Bookmark Lists, Voice Notes, and WoT Scores&lt;br/&gt;&lt;br/&gt;This release introduces Bookmark List management, a complete overhaul of Voice Notes/YakBaks, and the debut of Web of Trust (WoT) scores for a safer social experience.&lt;br/&gt;&lt;br/&gt;This version adds support for creating, managing, deleting, and viewing multiple bookmark lists, which include both public and private members. You will find an improved &amp;#34;Bookmarks&amp;#34; menu option in the sidebar and extra bookmark options in the context menu of each post, allowing you to add posts directly to one or more individual lists.&lt;br/&gt;&lt;br/&gt;The Voice Notes UI has been redesigned to allow recording directly within the new Post Screen and a dedicated Voice Reply screen. Users can record a new voice message, preview it with waveform visualization, re-record if needed, select a media server, and post the reply. You now have full control.&lt;br/&gt;&lt;br/&gt;Amethyst now supports Trusted Assertions. By connecting to a WoT provider, you can see trust scores and verified follower counts directly on user pictures. This helps filter signal from noise, identifying reputable accounts to follow, which DMs to open, and which notifications to prioritize. To activate this, you will need to find a provider capable of computing these scores. While providers are currently limited and resource-constrained, we hope more will bring their own algorithms to Nostr over time.&lt;br/&gt;&lt;br/&gt;Quartz received a significantly improved database engine capable of sub-microsecond queries using Android&amp;#39;s default SQLite database. The engine is optimized for mobile environments, using as little memory as&lt;br/&gt;possible to avoid impacting other apps.&lt;br/&gt;&lt;br/&gt;In the background, we have begun building Amethyst Desktop. While much work remains, the goal is a standalone, mouse-first application that moves away from mobile-centric UI layouts.&lt;br/&gt;&lt;br/&gt;New Features&lt;br/&gt;- Trusted Assertions: Added support for trust scores displayed on user profile pictures&lt;br/&gt;- WoT Followers: Displays verified follower counts in user profiles&lt;br/&gt;- Bookmark Lists: Full support for custom lists by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqswc4nrhvp4lrjct0ayy0ps8f2hvj8e2guucp63dwcx6m6e8pka9fqpr4mhxue69uhkummnw3ezucnfw33k76twv4ezuum0vd5kzmp0qy08wumn8ghj7un9d3shjtnwdaehgu3wwa5hyetydejhgtn2wqhsz9nhwden5te0v4jx2m3wdehhxarj9ekxzmny9ue5n65v&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;KotlinGeek&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…n65v&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Relay Information: New UI with expanded NIP-11 feature support&lt;br/&gt;- Voice Notes &amp;amp; Replies: Redesigned experience by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;⚡ Dee Kay ⚡&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…m3sx&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Profile Banner: New default banner by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqs9n2vvq3u5faj75s8nwe24tmjcn06sxcl57lw02k2vxkzthvfl7espz9mhxue69uhkummnw3ezumrpdejz7qg6waehxw309ashyapwdehhxarjveex2cttwvhxxmmd9uq3vamnwvaz7tm9v3jkutnwdaehgu3wd3skuep0m4ums7&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;PurplePainter&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…ums7&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Native Links: Intercept njump, yakihonne, primal, iris.to, zap.stream, and shosho.live to open directly on Amethyst by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqs072l6htl2n4wrkq87dg59zwfrjqfxsreuhap6c4fj4pek490cquqpy9mhxue69uhkk6tjwpujumn0wd68ymnpw46zumr0wejj7mm4w33x77qpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsuw7adk&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;Kirpy&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…7adk&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;Improvements:&lt;br/&gt;- New in-memory graph-based cache scheme; moved reports and WoT scores to this new system&lt;br/&gt;- Disabled top bar reappearance to prevent feed shifting when navigating between pages&lt;br/&gt;- Lenient Kotlin Serialization to prevent crashes from malformed JSON;&lt;br/&gt;- Removed expired addressable events from cache&lt;br/&gt;- Moves reports from the old caching system to the new Graph-based one.&lt;br/&gt;- Reverted to a 500-post load limit for Profile screens to handle high-reply accounts&lt;br/&gt;- Moved the QR Code screen from a Dialog to a full Route.&lt;br/&gt;- Re-adds name as a tagging name to the profile edit page.&lt;br/&gt;&lt;br/&gt;Performance:&lt;br/&gt;- Faster event id checker by serializing, sha256 hashing, and ID comparison without creating any intermediary buffers.&lt;br/&gt;- Faster event JSON parsers by avoiding new variables and thus garbage collection calls&lt;br/&gt;- Faster tag array Deserializer&lt;br/&gt;- Manages the pool state without having to loop through relays, saving some milliseconds of processing.&lt;br/&gt;- Adds a cache system for WoT scores&lt;br/&gt;- Improved Compose stability for video UI&lt;br/&gt;&lt;br/&gt;BugFixes:&lt;br/&gt;- Fixes JSON serialization of UTF-8 Emoji surrogates for compatibility with standard Nostr implementations&lt;br/&gt;- Improves error message on zap configuration errors with detailed NWC URI by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;⚡ Dee Kay ⚡&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…m3sx&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Centers QR dialog content and reduce excessive top spacing by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsqqqqqqp0fmkspg7w8d305ln96a0jw0ptwqtuwskkm5pddv2kkjfcpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsz9mhwden5te0wfjkccte9ehx7um5wghxyctwvshsz9mhwden5te0wfjkccte9ec8y6tdv9kzumn9wshs90fk9r&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;StellarStoic&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…fk9r&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Closes subscriptions when ending them on NostrClient instead of waiting for them to finish&lt;br/&gt;- Requires a relay to be an outbox/inbox relay to be able to NOTIFY a user of a payment&lt;br/&gt;- Improves the speed of parsing of invalid kinds inside an address string&lt;br/&gt;- Fixes count not working for LIMIT queries in the DB&lt;br/&gt;- Fixes icon bug with incorrect resource id by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;⚡ Dee Kay ⚡&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…m3sx&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Fixes missing updates to the feed when the top list is not yet available locally&lt;br/&gt;- Fixes List of supported NIPs as Integers on NIP-11 by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;⚡ Dee Kay ⚡&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…m3sx&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Fixes ConcurrentExceptions on event outboxes&lt;br/&gt;&lt;br/&gt;Desktop:&lt;br/&gt;- Base Compose Multiplatform Desktop App with posts and global/following feeds by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqs9vyevafl4f7rqluqykt500e9nj5ase8eh5k423rgwtfw6qdjhd4spz4mhxue69uhhyetvv9ujuerpd46hxtnfduhszrnhwden5te0dehhxtnvdakz7g7rx3k&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;beefenergy&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…rx3k&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;Web:&lt;br/&gt;- New website by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsr7acdvhf6we9fch94qwhpy0nza36e3tgrtkpku25ppuu80f69kfqppemhxue69uhkummn9ekx7mp0qyghwumn8ghj7mn0wd68ytnhd9hx2tcpzemhxue69uhkummnw3ex2mrfw3jhxtn0wfnj76p2szn&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;Derek Ross&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…2szn&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;Quartz:&lt;br/&gt;- Adds support for Trust Provider lists and Contact Cards for NIP-85&lt;br/&gt;- Early support for Payment targets as per [NIP-A3](&lt;a href=&#34;https://github.com/nostr-protocol/nips/pull/2119&#34;&gt;https://github.com/nostr-protocol/nips/pull/2119&lt;/a&gt;) by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqs827g8dkd07zjvlhh60csytujgd3l9mz7x807xk3fewge7rwlukxgppemhxue69uhkummn9ekx7mp0qydhwumn8ghj7argv4nx7un9wd6zumn0wd68yvfwvdhk6tcpz9mhxue69uhkummnw3ezumrpdejz7d9xcpk&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;greenart7c3&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…xcpk&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Initial support for NIP 46 by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqs827g8dkd07zjvlhh60csytujgd3l9mz7x807xk3fewge7rwlukxgppemhxue69uhkummn9ekx7mp0qydhwumn8ghj7argv4nx7un9wd6zumn0wd68yvfwvdhk6tcpz9mhxue69uhkummnw3ezumrpdejz7d9xcpk&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;greenart7c3&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…xcpk&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Adds support for fast MurMur hash 3 64 bits&lt;br/&gt;- Adds a nextLong secure random method&lt;br/&gt;- Removing the generalist approach of ptag-mentions&lt;br/&gt;- Removes deprecated fields in UserMetadata&lt;br/&gt;- Removes compose bom from Quartz to avoid unnecessary dependencies.&lt;br/&gt;- Removes datetime dependencies from Quartz&lt;br/&gt;- Adds dependency on coroutines directly (instead of through compose runtime)&lt;br/&gt;- Removes old secp256 target dependencies&lt;br/&gt;- Adds Default scope for NostrClient and Relay Authenticator&lt;br/&gt;&lt;br/&gt;Quartz-Event Store:&lt;br/&gt;- Moves from text tags to probabilistic 64-bit MurMur Hash3 integers for performance&lt;br/&gt;- Moves from range index queries to kind,pubkey queries by default.&lt;br/&gt;- Adds simpler SQL queries for specific simple Nostr filters&lt;br/&gt;- Expose SQL query plans, vacuum, and analyse to lib users&lt;br/&gt;- Implements AND Tag queries from [NIP-91](&lt;a href=&#34;https://github.com/nostr-protocol/nips/pull/1365&#34;&gt;https://github.com/nostr-protocol/nips/pull/1365&lt;/a&gt;)&lt;br/&gt;- Implements GiftWrap deletions by p-Tag with deletions and vanish requests&lt;br/&gt;- Offers several indexing strategy options to users.&lt;br/&gt;- Adds several test cases that verify not only the SQL but also the indexes used&lt;br/&gt;- Exposes raw queries that return columns for relays that might not need the tag array&lt;br/&gt;- Forces the use of the index on Addressables and Replaceables on triggers&lt;br/&gt;- Fixes duplicated events being returned from the DB&lt;br/&gt;- Fixes unused Or condition in the SQL builder&lt;br/&gt;- Refine the structure of the module classes for the DB&lt;br/&gt;- Removes the Statement cache since statements are not thread safe&lt;br/&gt;- Creating interfaces for multiple EventStores&lt;br/&gt;&lt;br/&gt;Code Quality:&lt;br/&gt;- Updates kotlin, compose, multiplatform, activity, serialization, media3, mockk, secp256, tor, androidxCamera, stdlib&lt;br/&gt;- Adds a compose stability plugin to allow traces in debug&lt;br/&gt;- Updates to the latest Zapstore config&lt;br/&gt;- Updates quarts instructions in the ReadMe.&lt;br/&gt;&lt;br/&gt;Updated translations:&lt;br/&gt;- Czech, German, Swedish, and Portuguese by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;⚡ Dee Kay ⚡&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…m3sx&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Polish by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsdyfz0ewdhmgp3a4r3pxvezx5r8yalrgvjn38v2ml5qrusnv7yywgppemhxue69uhkummn9ekx7mp0qyghwumn8ghj7mn0wd68ytnzdahxgtcppamhxue69uhkx7npwvh8gmms9uml7yyv&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;Polak&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…7yyv&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Hungarian by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsxekg0s8kxpcrka8ccwztv2m73kz6jy0ur8f7jc04rwr5p44w5acspzamhxue69uhhyetvv9ujumn0wd68ytnzv9hxgtcppemhxue69uhkummn9ekx7mp0qyg8wumn8ghj7mn0wd68ytnddakj7c0ns2l&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;summoner&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…ns2l&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Hindi by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqs88dt78wgnzvaph6fcstfvsd98xc2qs8eg8tllwv2zlutu8ehec2cpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsz9mhwden5te0wfjkccte9ec8y6tdv9kzumn9wshszrnhwden5te0dehhxtnvdakz7ngjkr6&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;राज&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…jkr6&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Slovenian by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsqqqqqqp0fmkspg7w8d305ln96a0jw0ptwqtuwskkm5pddv2kkjfcpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsz9mhwden5te0wfjkccte9ehx7um5wghxyctwvshsz9mhwden5te0wfjkccte9ec8y6tdv9kzumn9wshs90fk9r&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;StellarStoic&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…fk9r&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Spanish by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqs07tjpyvvlq9ugdpax8h3jfrpwn7kr72k3tc7ky83tggn4et9eangpg3mhxw309ajxyartwdukjery09cxwctsd3ek6cnjdfnxs6t00pnhq7ttdvmkw7nsd3shxdrr0gery6nyva3h2ct0096kyerjw9jzummwd9hkutcprpmhxue69uhkv6tvw3jhytnwdaehgu3wwa5kuef0qyghwumn8ghj7mn0wd68ytnhd9hx2tcxdyhdq&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;⚡₿it₿y₿it⚡&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…yhdq&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Latvian by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqs0a8c9nt88dm9c0dtx84xxeqsmwj7zdzgs739ut0q7770yd2larlgpzpmhxue69uhkummnw3ezumt0d5hszrnhwden5te0dehhxtnvdakz7qgawaehxw309ahx7um5wghxy6t5vdhkjmn9wgh8xmmrd9skctcmf88sy&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;Coool&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…88sy&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Dutch by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqs82l74z7g3x8j3avpn2wrjrwn855nyvmpxa4v5pftfvtv5lrvrc5cpz4mhxue69uhkummnw3ezummcw3ezuer9wchs0fef3l&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;Bartus&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…ef3l&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- French by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqs8av5uzf4nv2q80chrmp3mj9a9dd6zjw4fmz56hsn2gzar72rxhtcppemhxue69uhkummn9ekx7mp0qyg8wumn8ghj7mn0wd68ytnddakj7qgawaehxw309ahx7um5wghxy6t5vdhkjmn9wgh8xmmrd9skctcuvd26f&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;DuPainEtDesJeux&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…d26f&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; and Alexis Magzalci&lt;br/&gt;- Chinese by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsyxnuhnymz0u0xru2watmqe25vlh8vzzje9jhlsfgvsff9942gc9gpz3mhxue69uhh2uewdehhxarj9emkjmn99uq3wamnwvaz7tmjv4kxz7fwvdu8qmrp0yhx7un89uq3kamnwvaz7tmjv4kxz7fwwajhxar9wfhxyarr9e3k7mf0jl5yts&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;CXPLAY&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…5yts&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;
    </content>
    <updated>2026-01-08T21:18:42Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqs8snasccjtg8dew3au7rcy6pvj2fv3ht2hh45h0feghdf2yvspleqzyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zyk3tnyl2</id>
    
      <title type="html">#Amethyst v1.04.1: Bug fixes - Fixes crashing when starting - ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqs8snasccjtg8dew3au7rcy6pvj2fv3ht2hh45h0feghdf2yvspleqzyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zyk3tnyl2" />
    <content type="html">
      #Amethyst v1.04.1: Bug fixes&lt;br/&gt;&lt;br/&gt;- Fixes crashing when starting&lt;br/&gt;- Fixes hashtag unfollowing for mixed case tags&lt;br/&gt;- Fixes release Id for the zap the devs button&lt;br/&gt;- Fixes quartz version for a release to Maven&lt;br/&gt;- Fixes disappearing of the Zap the Devs Manual Payment screen&lt;br/&gt;- Fixes back button of the Zap the Devs Manual Payment screen staying behind the status bar&lt;br/&gt;&lt;br/&gt;Translations:&lt;br/&gt;- Polish by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsdyfz0ewdhmgp3a4r3pxvezx5r8yalrgvjn38v2ml5qrusnv7yywgppamhxue69uhkx7npwvh8gmms9uq3vamnwvaz7tmwdaehgu3wvdaxzuewwpk82ue0qyghwumn8ghj7mn0wd68ytnzdahxgtch7lh5p&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;Polak&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…lh5p&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Hungarian by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsxekg0s8kxpcrka8ccwztv2m73kz6jy0ur8f7jc04rwr5p44w5acspzamhxue69uhhyetvv9ujumn0wd68ytnzv9hxgtcppemhxue69uhkummn9ekx7mp0qyg8wumn8ghj7mn0wd68ytnddakj7c0ns2l&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;summoner&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…ns2l&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;Download: &lt;a href=&#34;http://amethyst.social&#34;&gt;http://amethyst.social&lt;/a&gt;
    </content>
    <updated>2025-11-15T22:16:49Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsq5rcw8fve4cd9nm5cqmdy5tqrxjrvyh0l64nrs8zrq3n8524kawgzyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykevlcyk</id>
    
      <title type="html">Wait, it is still compiling. I fucked up the zap the devs post :)</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsq5rcw8fve4cd9nm5cqmdy5tqrxjrvyh0l64nrs8zrq3n8524kawgzyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykevlcyk" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsrakww0gvgaqreaestj5g6u6t9ek9gwv6hee8qeznf98zzvmuwphgpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsra2pjh&#39;&gt;nevent1q…2pjh&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Wait, it is still compiling. I fucked up the zap the devs post :) 
    </content>
    <updated>2025-11-15T17:01:51Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsr5q78tkz64a43s8fmyvksvnzdflh2t3elp04zhkg76cdcmf7ddfszyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zyka39s2s</id>
    
      <title type="html">#Amethyst v1.04.0: Lists for all This version adds support for ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsr5q78tkz64a43s8fmyvksvnzdflh2t3elp04zhkg76cdcmf7ddfszyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zyka39s2s" />
    <content type="html">
      #Amethyst v1.04.0: Lists for all&lt;br/&gt;&lt;br/&gt;This version adds support for creating, managing, deleting, and viewing follow lists, which include both public and private members. We&amp;#39;ve also added similar UI to support for creating, managing, deleting, and viewing follow packs from following.space, allowing you to assemble following lists not only for yourself, but also as a starter packs for other users. You will find a new &amp;#34;My Lists&amp;#34; menu option in the side bar and Follow buttons when extended behavior to add users directly into lists or packs.&lt;br/&gt;&lt;br/&gt;This version also introduces significant improvements to the quality of video compression and hash checks during media upload/download, along with new codecs and a new image gallery for displaying sequences of images in posts. The startup loading of outbox relay lists and user metadata for large follow lists (&amp;gt; 1000 people) has been significantly improved with new mechanisms to search for missing outbox relay lists.&lt;br/&gt;&lt;br/&gt;The Top Bar filter &amp;#34;All Follows&amp;#34; now merges all follow lists, follow packs, following hashtags, following geotags, and following communities into a single feed. Two new options were also added: &amp;#34;All User Follows,&amp;#34; which includes only the main and other follow lists, and &amp;#34;Default Follow List,&amp;#34; which is the standard follow list used by every client.&lt;br/&gt;&lt;br/&gt;Finally, we completed our Quartz migration to Kotlin Multiplatform, added significant performance improvements when processing events and running cryptographic procedures, as well as new ease-of-use extensions.&lt;br/&gt;&lt;br/&gt;New Features:&lt;br/&gt;- People List creation and management by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqswc4nrhvp4lrjct0ayy0ps8f2hvj8e2guucp63dwcx6m6e8pka9fqpr4mhxue69uhkummnw3ezucnfw33k76twv4ezuum0vd5kzmp0qy08wumn8ghj7un9d3shjtnwdaehgu3wwa5hyetydejhgtn2wqhsz9nhwden5te0v4jx2m3wdehhxarj9ekxzmny9ue5n65v&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;KotlinGeek&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…n65v&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Follow Pack creation, management and feed view&lt;br/&gt;- Image gallery in posts by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;⚡ Dee Kay ⚡&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…m3sx&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Finishes migration of Quartz to Kotlin Multiplatform&lt;br/&gt;- New Filters in the top nav bar&lt;br/&gt;- Performance improvements across all features&lt;br/&gt;&lt;br/&gt;Improvements:&lt;br/&gt;- Adds support to rejection replies from NIP-55 signers by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqs827g8dkd07zjvlhh60csytujgd3l9mz7x807xk3fewge7rwlukxgppemhxue69uhkummn9ekx7mp0qydhwumn8ghj7argv4nx7un9wd6zumn0wd68yvfwvdhk6tcpz9mhxue69uhkummnw3ezumrpdejz7d9xcpk&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;greenart7c3&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…xcpk&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Adds live/offline indicator to live bubbles by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;⚡ Dee Kay ⚡&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…m3sx&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Refines the video compression procedure by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;⚡ Dee Kay ⚡&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…m3sx&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Replaces MP4 parser libraries with native MediaMuxer / MediaCodec by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;⚡ Dee Kay ⚡&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…m3sx&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Adds a H.265/HEVC codec to reduce file size by up to 50% while maintaining the same quality by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;⚡ Dee Kay ⚡&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…m3sx&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Optimizes video file structure by moving metadata to the beginning, so videos start playing more quickly by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;⚡ Dee Kay ⚡&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…m3sx&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Adds &amp;#34;All User Follows&amp;#34; feed filter in the top nav bar that removes hashtags, communities and geotag follows&lt;br/&gt;- Adds &amp;#34;Default Follow List&amp;#34; feed filter in the top nav bar that contains only Kind 3 follows&lt;br/&gt;- Shows a dialog to select a signer when using multiple signers are present by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqs827g8dkd07zjvlhh60csytujgd3l9mz7x807xk3fewge7rwlukxgppemhxue69uhkummn9ekx7mp0qydhwumn8ghj7argv4nx7un9wd6zumn0wd68yvfwvdhk6tcpz9mhxue69uhkummnw3ezumrpdejz7d9xcpk&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;greenart7c3&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…xcpk&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Saves bandwidth by avoiding constant REQ updates before EOSEs come back in a subscription&lt;br/&gt;- Changes the following icon on top of user&amp;#39;s pictures to include follows in all lists and follow sets&lt;br/&gt;- Removes non-outbox relays from the outbox lists&lt;br/&gt;- Adds support bigger, up to 4GB, payloads in NIP-44&lt;br/&gt;- Restructures the default REQ limits from each relay in all feeds&lt;br/&gt;- Adds a guarantee incoming message order to OkHttp websocket implementations to avoid EOSE mismatch&lt;br/&gt;- Only downloads DMs and Drafts if the account is writeable / nsec is present&lt;br/&gt;- Adds support for copying/cloning follow lists in the UI.&lt;br/&gt;- Adds a default relay list for indexers in new accounts with local backup&lt;br/&gt;- Smoothes the disappearing effect for the Top and Bottom navigation.&lt;br/&gt;- Adds support for NWC deep links and removes hardcoded Alby integration&lt;br/&gt;- Adds a missing outbox relay list popup on posting new notes&lt;br/&gt;- Adds a missing inbox relay list check on notification screens&lt;br/&gt;- Migrates to njump.to to disperse shareable links&lt;br/&gt;&lt;br/&gt;Quartz:&lt;br/&gt;- Migrates Quartz from Android to CommonMain (Kotlin Multiplatform)&lt;br/&gt;- Adds a maven publishing to ship quartz&lt;br/&gt;- Fully converts OpenTimestamp Java codebase to Kotlin, migrating the sync and async HTTP call interfaces to OkHttp and coroutines&lt;br/&gt;- Redesigns parsing of relay commands, messages and filters for performance in Jackson.&lt;br/&gt;- Uses KotlinX Serialization when speed is not a requirement&lt;br/&gt;- Migrates all Jackson field annotations to Kotlin Serialization&lt;br/&gt;- Migrates Regex use in Quarts to Kotlin&amp;#39;s Regex class&lt;br/&gt;- Migrates Base64 library from Android to Kotlin&lt;br/&gt;- Migrates UUID library from Android/Java to Kotlin&lt;br/&gt;- Migrates LRUCache usage from Android/Java to Kotlin collections&lt;br/&gt;- Migrates all String to bytearray conversions to Kotlin methods&lt;br/&gt;- Migrates all System.arraycopy calls to kotlin native ones.&lt;br/&gt;- Separates parsing code from the data classes in Companion objects&lt;br/&gt;- Exposes Rfc3986 normalizations to each platform.&lt;br/&gt;- Exposes URI parsing classes to each platform.&lt;br/&gt;- Exposes URL Encoders to each platform.&lt;br/&gt;- Exposes BigDecimal to each platform.&lt;br/&gt;- Exposes the Url Detector to each platform.&lt;br/&gt;- Exposes Mac instances to each platform&lt;br/&gt;- Exposes Diggest instances to each platform.&lt;br/&gt;- Exposes BitSet to each platform.&lt;br/&gt;- Exposes GZip to each platform.&lt;br/&gt;- Exposes Secp256k1 to each platform.&lt;br/&gt;- Exposes SecureRandom to each platform.&lt;br/&gt;- Exposes Time in seconds to each platform.&lt;br/&gt;- Exposes the LargeCache to each platform.&lt;br/&gt;- Exposes AES CBC and AES GCM encryption/decryption to each platform&lt;br/&gt;- Migrate test assertions to Kotlin Tests&lt;br/&gt;- Exposes Address class to each platform because of the Parceleable requirement in Android&lt;br/&gt;- Creates our own ByteArrayOutputStream.&lt;br/&gt;- Removes threadsafe features inside our Bloomfilters because we don&amp;#39;t need that consistency&lt;br/&gt;- Migrates UserMetadata parser from Jackson to Kotlin serialization&lt;br/&gt;- Removes @Static methods in each tag.&lt;br/&gt;- Adds an EventTemplate serializer&lt;br/&gt;- Removes the need for KotlinX Datetime&lt;br/&gt;- Adds support for LibSodium in the JVM desktop platform&lt;br/&gt;- Creates a shared test build for iOS targets&lt;br/&gt;- Increases the Bloom filter space to better use hints in the app.&lt;br/&gt;- Removes support for iOS in x86&lt;br/&gt;- Creates a performant JacksonMapper just for NIP-55, which stays in the Android build only.&lt;br/&gt;- Keeps the event store in the android build due to the SQL Lite dependency&lt;br/&gt;- Removes @syncronized tags in favor of Mutexes.&lt;br/&gt;- Improved sendAndWaitForResponse NostrClient method to properly account for returns from each relay.&lt;br/&gt;- Removes the need for GlobalScope and async calls&lt;br/&gt;- Removes the dependency on Jackson&amp;#39;s error classes across the codebase.&lt;br/&gt;- Moves the hint to quote tag extension methods to their own packages.&lt;br/&gt;- Migrates NIP-06 and Blossom uploads to use Kotlin Serialization&lt;br/&gt;- Adds ease of use functions for the downloadFirst nostr client extension method&lt;br/&gt;- Refactors error logging in BasicRelayClient&lt;br/&gt;- Starts NostrClient in active instead of waiting for a connect() call&lt;br/&gt;- Adds initial test cases for NostrClient and extensions&lt;br/&gt;- Adds an option to ignore failed reconnection delays that should be used when the network settings change.&lt;br/&gt;- Adds a build template option for NIP-42 AUTHs&lt;br/&gt;- Moves quartz to Java 21 due to binary inconsistencies between the multiple builds of KMP (tests conflicting with main)&lt;br/&gt;- Adds support for COUNT relay messages&lt;br/&gt;- Treat COUNT as query only, not subscriptions in the NostrClient&lt;br/&gt;- Moves statistics collection out of the inner classes to be an external option for app developers instead.&lt;br/&gt;- Restructuring relay classes to maintain order of incoming messages for relay listeners&lt;br/&gt;- Defers all processing of incoming messages to coroutines via channels, freeing OkHttp&amp;#39;s thread as soon as possible.&lt;br/&gt;- Simplifies the main relay class by using attached listener modules for each function of the relay client.&lt;br/&gt;- Migrate defaultOnConnect calls to become listener based and moved to NostrClients&lt;br/&gt;- Coordinates REQs so that if an update is required to be sent but the server has not finished processing events, waits for it to finish and sends it later as soon as EOSE or Close arrives&lt;br/&gt;- Correctly maintain the local and server state of each Req.&lt;br/&gt;- Avoid subsequent REQ updates before EOSE or CLOSE calls.&lt;br/&gt;- Refactors NostrClient authenticators to do complete operation as an optional module&lt;br/&gt;- Breaks down Relay Client modules (Auth, Reqs, Counts, Event submissions) in the Relay Pool class.&lt;br/&gt;- Creates listeners just for REQ subscriptions&lt;br/&gt;- Move statistics to outside the base relay class as a listener&lt;br/&gt;- Move logs to outside the base relay class as a listener&lt;br/&gt;- Better structures a Standalone Relay client&lt;br/&gt;- More appropriately communicate errors to the listeners&lt;br/&gt;- Remove relay states on listeners, move each to its own method&lt;br/&gt;- Removes the hardcoded Dispatchers on Quartz&lt;br/&gt;- Adds streaming hash utility function, follow the existing pool/worker design&lt;br/&gt;- Adds fast search for events and addresses in the Deletion Event&lt;br/&gt;- Adds an update method for to create a new event template from an event.&lt;br/&gt;&lt;br/&gt;Fixes and UI Improvements:&lt;br/&gt;- Changes the DVM feed to sort by follows that liked or zapped the DVM&lt;br/&gt;- Changes the icon of account preferences to translation for now&lt;br/&gt;- Improves click and long press interactions with the relay list item and status bar items&lt;br/&gt;- Fixes the visual references to communities and hashtags in the top right of the post&lt;br/&gt;- Removes disappearing top and bottom bars from settings screens&lt;br/&gt;- Fixes tall top bars on Ephemeral and Public Chat rooms&lt;br/&gt;- Fixes lack of live stream name on the top bar&lt;br/&gt;- Fixes animations to navigate from and to list screens&lt;br/&gt;- Fixes cursor behind the keyboard when typing long texts.&lt;br/&gt;- Fixes line wrap in the relay info top nav bar title&lt;br/&gt;- Moves message button to Profile Actions&lt;br/&gt;- Fixes User profile banner being off place in short images&lt;br/&gt;- Also fixes spacing of the Follow button&lt;br/&gt;- Adds an option to render a user gallery from hex keys instead of full User objects&lt;br/&gt;- Adds context to the highlights&lt;br/&gt;- Increases the contrast of placeholder text&lt;br/&gt;- Refines performance of the QuickAction menu bar&lt;br/&gt;- Fixes hidden words not being applied to NIP-04 DMs on notifications&lt;br/&gt;- Fixes not loading some event kinds in notifications&lt;br/&gt;- Fixes crash when updating a metadata with null name&lt;br/&gt;- Fixes crash when attempting to share an image that is still loading by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;⚡ Dee Kay ⚡&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…m3sx&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Fixes disappearing stats on relay screen by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;⚡ Dee Kay ⚡&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…m3sx&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Fixes proper switch between single and two-pane layouts on rotation by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;⚡ Dee Kay ⚡&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…m3sx&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Fixes sendAndWaitForResponse never receiving a response by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqs827g8dkd07zjvlhh60csytujgd3l9mz7x807xk3fewge7rwlukxgppemhxue69uhkummn9ekx7mp0qydhwumn8ghj7argv4nx7un9wd6zumn0wd68yvfwvdhk6tcpz9mhxue69uhkummnw3ezumrpdejz7d9xcpk&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;greenart7c3&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…xcpk&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Fixes NWC URI parsing bug by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;⚡ Dee Kay ⚡&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…m3sx&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Fixes bookmark removal from Private/Public removing from both by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;⚡ Dee Kay ⚡&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…m3sx&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Fixes OutOfMemoryError for large file uploads by  &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;⚡ Dee Kay ⚡&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…m3sx&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Fixes DecryptZapRequest CommandType by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqs827g8dkd07zjvlhh60csytujgd3l9mz7x807xk3fewge7rwlukxgppemhxue69uhkummn9ekx7mp0qydhwumn8ghj7argv4nx7un9wd6zumn0wd68yvfwvdhk6tcpz9mhxue69uhkummnw3ezumrpdejz7d9xcpk&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;greenart7c3&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…xcpk&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Fixes location being added to note even after deselecting it by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqs827g8dkd07zjvlhh60csytujgd3l9mz7x807xk3fewge7rwlukxgppemhxue69uhkummn9ekx7mp0qydhwumn8ghj7argv4nx7un9wd6zumn0wd68yvfwvdhk6tcpz9mhxue69uhkummnw3ezumrpdejz7d9xcpk&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;greenart7c3&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…xcpk&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Fixes crash when trying to parse unparseable NIP-11s&lt;br/&gt;- Prevents resource leaks with file streams by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;⚡ Dee Kay ⚡&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…m3sx&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Removes any relay url that has a percent-encoded null byte, regardless of size&lt;br/&gt;- Forces streaming url online check when the stream is offline but the user enters the chat&lt;br/&gt;- Fixes duplicated loading of NIP-11 relay info by different parts of the screen&lt;br/&gt;- Fixes the new Video events as non replaceable, while keeping the old ones in the replaceable&lt;br/&gt;- Fixes crash on starting when the contentResolver is not ready yet.&lt;br/&gt;- Fixes addressable deletions deleting not only the past when updating feeds&lt;br/&gt;- Fixes long form previews when missing the author&amp;#39;s picture&lt;br/&gt;- Fixes feed filter update when changing the top nav filter&lt;br/&gt;- Fixes crash when sorting with the same createdAt in the discovery feeds&lt;br/&gt;- Fixes reply routes when clicking in the Conversations tab when the event is a PublicChat, LiveStream or Ephemeral Chat&lt;br/&gt;- Fixes livestream chats appearing on home bubbles after the live stream is finished&lt;br/&gt;- Fixes not sending the live stream events anywhere when the stream doesn&amp;#39;t have a relay set declared&lt;br/&gt;- Fixes animations when selecting Tor options in the privacy screen&lt;br/&gt;- Fixes animations jumping when loading privacy screen&lt;br/&gt;- Fixes the use of index relays and search relays to load users and events as well as become the default for global feeds.&lt;br/&gt;- Fixes mark as read when drafts are the latest message in the chat&lt;br/&gt;- Fixes showing blog posts in the future in the Discovery reads&lt;br/&gt;- Fixes crashing when comparing int and long in Live Events comparator&lt;br/&gt;- Fixes recompositions of subject add-on to text on rendering&lt;br/&gt;- Fixes crash on trying to change dont translate from options&lt;br/&gt;- Fixes NPE on the ln invoice callback with errors parser&lt;br/&gt;- Fixes parsing encrypted NIP-28 chats&lt;br/&gt;- Fixes disappearing relay stats (larger LRU cache)&lt;br/&gt;- Fixes sendAndWait nostr client coroutine that was waiting forever&lt;br/&gt;- Fixes lack of req by forcing an updateFilter at the start of new subs with the client.&lt;br/&gt;- Fixes bug that skipped loading follow&amp;#39;s metadata on startup&lt;br/&gt;- Fixes issues when unfollowing a hashtag from old contact lists&lt;br/&gt;- Fixes relay list flickering bug&lt;br/&gt;- Fixes crash when checking and creating new users from `p` tags.&lt;br/&gt;- Fixes the author of the highlight&lt;br/&gt;- Fixes scope lifecycle of media uploads to avoid cancellation while uploading&lt;br/&gt;- Fixes parser for null and default values from NIP-55 using Jackson&lt;br/&gt;- Fixes relay icons not showing up when sending DMs&lt;br/&gt;- Fixes imeta parsing with multiple urls&lt;br/&gt;- Fixes relay-specific global feed matching incoming note checks&lt;br/&gt;- Fixes video progressive download by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;⚡ Dee Kay ⚡&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…m3sx&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Fixes several usages of Reflection when serializing classes&lt;br/&gt;- Fixes a bug on loading event test database for the HintBloom filter test&lt;br/&gt;- Forces relay status updates when connecting and disconnecting&lt;br/&gt;- Only shows live stream bubbles that are not playing 24/7 with active follows in the past 15 minutes.&lt;br/&gt;- Opens Follow Packs on following.space&lt;br/&gt;&lt;br/&gt;Performance:&lt;br/&gt;- Restructures the parser and serialization of the relay messages and commands for performance&lt;br/&gt;- Speeds up the generation of Bech32 addresses&lt;br/&gt;- Migrates memory counters from Long to Int&lt;br/&gt;- Avoids using JSON parsers with DataStore to speed up loading time (loading the parser itself takes ~300ms)&lt;br/&gt;- Adds new benchmarks for NIP-44 operations&lt;br/&gt;- Reduces memory consumption for NIP-44 operations, avoiding GC&lt;br/&gt;- Faster Hkdf functions with less array copying and allocations (which can be impactful if the ciphertext is large)&lt;br/&gt;- Faster Mac calculations by avoiding array assemblies before calling the function&lt;br/&gt;- Faster Hash check calculations avoiding the creation of a separate bytearray to compare ids&lt;br/&gt;- About 30-40% event hashing performance boost by building the json by hand and skipping string encoders when not needed.&lt;br/&gt;- 30% Faster isHex for strings with precisely 32 bytes.&lt;br/&gt;- Loads the main account in parallel faster before the screen needs it&lt;br/&gt;- Merge expanding and checking HMac functions to avoid re-creating the Mac instance.&lt;br/&gt;- Separates EOSE cache for drafts alone.&lt;br/&gt;- Speeds up the loading of users in follow lists on start up&lt;br/&gt;- Speeds up OkHttp startup&lt;br/&gt;- Adds submap index queries to the addressable large cache&lt;br/&gt;- Performance improvement for the address serializer.&lt;br/&gt;- Adds a default cut off for notifications from random relays to 1 week ago.&lt;br/&gt;- Increases local video disk cache to 1GB&lt;br/&gt;- Defers the initialization of disk caches for videos and images to a few seconds after loading&lt;br/&gt;- Only listens to notification feed changes when the UI is visible&lt;br/&gt;- Separates a relay failure tracker to a module&lt;br/&gt;- Caches the User object for each Account to avoid being deleted by the soft reference on Local Cache&lt;br/&gt;- Moves all Dispatchers.Default to the IO threadpool because of the amount of Synchronized code in dependencies blocking heavy threads&lt;br/&gt;- Only download reports from the author&amp;#39;s outbox relay if we have it (don&amp;#39;t use our default bootstrapping relays for reports)&lt;br/&gt;- Keep a local cache of following geoshahes and hashtags in lowercase.&lt;br/&gt;- Don&amp;#39;t intern signatures, content and stringified tags since they are not usually duplicated&lt;br/&gt;- Unifies the parser for the tag array across the app&lt;br/&gt;- Adds simplified extensions to create Requests from NostrClient&lt;br/&gt;- Adds a Start request callback to the request listener&lt;br/&gt;- Adds a req that returns the list of events in order of arrival&lt;br/&gt;- Adds a flatten straight into a set utility&lt;br/&gt;- Adds a decrypted people and follow list cache on the account class and updates TopNav to use the new caching&lt;br/&gt;- Creates slim ListItem composables&lt;br/&gt;- Marks address, user states, edits and channel metadata view models as Compose Stable&lt;br/&gt;- Removes unnecessary list of icons drawer rows, which affected Compose stability&lt;br/&gt;- Improves the composition of NIP-05 lines&lt;br/&gt;- Adds a pre-parser to find image galleries and video links before rendering.&lt;br/&gt;- Adds the user outbox relays when loading addressables by that user.&lt;br/&gt;- Avoids sending CLOSE to subs that are already closed.&lt;br/&gt;- Rejects additional urls with %20 and fixes &amp;#34;Wss&amp;#34; ones.&lt;br/&gt;&lt;br/&gt;Code Quality&lt;br/&gt;- Reduce http max requests when in emulator to avoid crashing by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;⚡ Dee Kay ⚡&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…m3sx&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Resolve intermittent CI build failures  by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;⚡ Dee Kay ⚡&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…m3sx&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Fix benchmark apk location by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;⚡ Dee Kay ⚡&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…m3sx&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Change from runBlocking to runTest where appropriate by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;⚡ Dee Kay ⚡&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…m3sx&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Reduce errors in log: concurrent modification exception by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;⚡ Dee Kay ⚡&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…m3sx&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Moves the precision of mills to seconds on the isOnline Check&lt;br/&gt;- Migrates to use suspending routines for OTS, statuses and edit flows&lt;br/&gt;- Unify outbox calculation in the RelayOutbox loader&lt;br/&gt;- Refactors zap the devs card view&lt;br/&gt;- Creates an interface for NostrClient strategies&lt;br/&gt;- Adds an isMobileOrFalse flow in connectivity to speed UI updates&lt;br/&gt;- Removes one of the Application dependencies in viewmodel&lt;br/&gt;- Changes the Theme class to only take the preferred theme directly.&lt;br/&gt;- Adds dependency on NWC to Account to avoid linking directly with the Application class&lt;br/&gt;- Migrates Account management to an Application lifecycle to prepare for multi-account screens&lt;br/&gt;- Establishes a scope for each account loaded so that flows can be killed on sign off&lt;br/&gt;- Moves the event processor to the Account class&lt;br/&gt;- Creates an interface for the DualHttpClientManager to allow IDE previews&lt;br/&gt;- Removing the dependency on an application class from AccountViewModel&lt;br/&gt;- Removes dependency on the viewModel on AccountFeedStates&lt;br/&gt;- Moves account saving from StateViewModel to Account&lt;br/&gt;- Removes dependency on the application class from DecryptAndIndexProcessor&lt;br/&gt;- Changes the name and singleton of the nav to avoid confusing the auto import&lt;br/&gt;- Switches account cache to a flow to allow observers&lt;br/&gt;- Removes dependency in the Amethyst class from Playback calculator&lt;br/&gt;- Removes the dependency on windowSizeClass and displayFeatures to be passed in the global preferences of the app (which is activity independent)&lt;br/&gt;- Moves the OTS processor from Account&amp;#39;s decrypt process to Application since it doesn&amp;#39;t need the account information.&lt;br/&gt;- Separates Application dependencies into an AppModules class to create only after the OnCreate event.&lt;br/&gt;- Switches TorSettings to be per Application and not per Account anymore&lt;br/&gt;- Since TorSettings is now global, moves the okHttpClient determinations out of the Account-based classes into the Application.&lt;br/&gt;- Since TorSettings is now global, set&amp;#39;s up Coil&amp;#39;s image loader only once when creating the Application&lt;br/&gt;- Moves UISettings state to App Modules instead of viewmodel&lt;br/&gt;- Migrates TorSettings and UISettings to DataStore&lt;br/&gt;- New tor evaluator service for relay connections now uses all account&amp;#39;s trusted relays and dm relays at the same time.&lt;br/&gt;- Migrates composable-state-based UISettings to Flow-based UI settings, while observing connectivity status&lt;br/&gt;- Removes the displayFeatures and windowSizeClass from the shared model&lt;br/&gt;- Fixes not requesting Notification Permissions for APIs older than Tiramisu in the FDroid flavor&lt;br/&gt;- Moves the NIP-11 document cache from singleton to the App Modules&lt;br/&gt;- Avoids using AccountViewModel to check NIP-11 Relay documents&lt;br/&gt;- Moves the UI Settings usage in composables to functions that do not observe the state since they don&amp;#39;t need to refresh the screen when changed.&lt;br/&gt;- Refactors UI Settings screen to separate components and remove the sharedViewModel&lt;br/&gt;- Only starts Internal Tor if that option is selected in the TorSettings.&lt;br/&gt;- Turn TorSettings into a data class to observe changes to it&lt;br/&gt;- Drops the SharedPreferences ViewModel to use UISettingsFlow directly from App Modules&lt;br/&gt;- Reorganizes OTS Events after simplification of the OkHttp based on TorSettings.&lt;br/&gt;- Applies memory trimming service to all logged-in accounts at the same time&lt;br/&gt;- Adds a test for native vs libsodium chacha20&lt;br/&gt;- Added test for emulator to set maxRequests to 128 to prevent crashing emulator by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;⚡ Dee Kay ⚡&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…m3sx&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Dumps the number of relay hints urls in the DB&lt;br/&gt;- Creates our own Coil Logger to minimize trash stacks in the logs&lt;br/&gt;- Adds a declared outbox lists for follows state&lt;br/&gt;- Removes the deprecated hacks to store communities, hashtags and geohashes on Contact Lists&lt;br/&gt;- Updates deprecated Clipboard manager&lt;br/&gt;- Updates emoji and user autocomplete state to use Account and avoid linking AccountViewModel&lt;br/&gt;- Refactors many viewModels to avoid using callback lambdas&lt;br/&gt;- Correctly marks EOSE for filters that are aligned with the Req State from NostrClient&lt;br/&gt;- Changes User loading features in a tentative to make them faster since they are used by all functions in the app.&lt;br/&gt;- Creates an Account follow list per Relay state that only includes shared relays as a better source of functioning relays&lt;br/&gt;&lt;br/&gt;Deprecations:&lt;br/&gt;- Removes fmt.wiz.biz from bootstrap relays&lt;br/&gt;- Removes void.cat from default servers by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;⚡ Dee Kay ⚡&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…m3sx&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Removes filestr share links&lt;br/&gt;- removes zapstr.live share links&lt;br/&gt;&lt;br/&gt;Updated translations:&lt;br/&gt;- Czech, German, Swedish and Portuguese by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;⚡ Dee Kay ⚡&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…m3sx&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Hindi by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqs88dt78wgnzvaph6fcstfvsd98xc2qs8eg8tllwv2zlutu8ehec2cpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsz9mhwden5te0wfjkccte9ec8y6tdv9kzumn9wshszrnhwden5te0dehhxtnvdakz7ngjkr6&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;राज&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…jkr6&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Slovenian by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsqqqqqqp0fmkspg7w8d305ln96a0jw0ptwqtuwskkm5pddv2kkjfcppemhxue69uhkummn9ekx7mp0qywhwumn8ghj7mn0wd68ytnzd96xxmmfdejhytnnda3kjctv9uq3wamnwvaz7tmjv4kxz7fwwpexjmtpdshxuet59ukk67fz&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;StellarStoic&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…67fz&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Polish by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsdyfz0ewdhmgp3a4r3pxvezx5r8yalrgvjn38v2ml5qrusnv7yywgppamhxue69uhkx7npwvh8gmms9uq3vamnwvaz7tmwdaehgu3wvdaxzuewwpk82ue0qyghwumn8ghj7mn0wd68ytnzdahxgtch7lh5p&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;Polak&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…lh5p&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Hungarian by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqs88rmfrp9wmfn4qq4kslly0j8futmmrgn86mu3gkc3jvcjl97p3mcpzamhxue69uhhyetvv9ujumn0wd68ytnzv9hxgtcpz4mhxue69uhkummnw3ezummcw3ezuer9wchsz9thwden5te0wfjkccte9ejxzmt4wvhxjme0m7mtdy&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;Zoltan&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…mtdy&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsxekg0s8kxpcrka8ccwztv2m73kz6jy0ur8f7jc04rwr5p44w5acspzamhxue69uhhyetvv9ujumn0wd68ytnzv9hxgtcppemhxue69uhkummn9ekx7mp0qyg8wumn8ghj7mn0wd68ytnddakj7c0ns2l&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;summoner&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…ns2l&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Spanish by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqs07tjpyvvlq9ugdpax8h3jfrpwn7kr72k3tc7ky83tggn4et9eangpg3mhxw309ajxyartwdukjery09cxwctsd3ek6cnjdfnxs6t00pnhq7ttdvmkw7nsd3shxdrr0gery6nyva3h2ct0096kyerjw9jzummwd9hkutcprpmhxue69uhkv6tvw3jhytnwdaehgu3wwa5kuef0qyghwumn8ghj7mn0wd68ytnhd9hx2tcxdyhdq&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;⚡₿it₿y₿it⚡&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…yhdq&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Latvian by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqs0a8c9nt88dm9c0dtx84xxeqsmwj7zdzgs739ut0q7770yd2larlgpzpmhxue69uhkummnw3ezumt0d5hszrnhwden5te0dehhxtnvdakz7qgawaehxw309ahx7um5wghxy6t5vdhkjmn9wgh8xmmrd9skctcmf88sy&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;Coool&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…88sy&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Dutch by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqs82l74z7g3x8j3avpn2wrjrwn855nyvmpxa4v5pftfvtv5lrvrc5cpz9mhxue69uhkummnw3ezuamfdejj7tk0drp&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;Bartus&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…0drp&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- French by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqs8av5uzf4nv2q80chrmp3mj9a9dd6zjw4fmz56hsn2gzar72rxhtcppemhxue69uhkummn9ekx7mp0qyg8wumn8ghj7mn0wd68ytnddakj7qgawaehxw309ahx7um5wghxy6t5vdhkjmn9wgh8xmmrd9skctcuvd26f&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;DuPainEtDesJeux&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…d26f&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Chinese by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsyxnuhnymz0u0xru2watmqe25vlh8vzzje9jhlsfgvsff9942gc9gpr9mhxue69uhhyetvv9ujumt0d4hhxarj9ecxjmnt9uq3wamnwvaz7tmjv4kxz7fwvdu8qmrp0yhx7un89uq3gamnwvaz7tm4wvhxummnw3ezuamfdejj726jp9r&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;CXPLAY&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…jp9r&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Thai by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsxdhmq2cke8xk6scfyxeyfj3dyancavg6xk0v50r023gec7vsrceqppemhxue69uhkummn9ekx7mp0qyghwumn8ghj7mn0wd68ytnhd9hx2tcpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhskamkgc&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;123🦈ปลาฉลามขึ้นบก&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…mkgc&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Persian by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsvq73w5j9kw573rtff6c3fyh953w45328n3625apdwc3548gr49gspzpmhxue69uhkummnw3ezumt0d5hszrnhwden5te0dehhxtnvdakz7qg3waehxw309ahx7um5wgh8w6twv5hsw0e34v&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;L&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…e34v&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;Download: &lt;a href=&#34;http://amethyst.social&#34;&gt;http://amethyst.social&lt;/a&gt;
    </content>
    <updated>2025-11-15T16:58:37Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsgrf75jvr9sv8kew9e0lvyg9pcuzrje6hmqc6xyfh0de7qnpan43czyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zyk5ra9fc</id>
    
      <title type="html">#Amethyst v1.04.0: Lists for all This version adds support for ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsgrf75jvr9sv8kew9e0lvyg9pcuzrje6hmqc6xyfh0de7qnpan43czyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zyk5ra9fc" />
    <content type="html">
      #Amethyst v1.04.0: Lists for all&lt;br/&gt;&lt;br/&gt;This version adds support for creating, managing, deleting, and viewing follow lists, which include both public and private members. We&amp;#39;ve also added similar UI to support for creating, managing, deleting, and viewing follow packs from following.space, allowing you to assemble following lists not only for yourself, but also as a starter packs for other users. You will find a new &amp;#34;My Lists&amp;#34; menu option in the side bar and Follow buttons when extended behavior to add users directly into lists or packs.&lt;br/&gt;&lt;br/&gt;This version also introduces significant improvements to the quality of video compression and hash checks during media upload/download, along with new codecs and a new image gallery for displaying sequences of images in posts. The startup loading of outbox relay lists and user metadata for large follow lists (&amp;gt; 1000 people) has been significantly improved with new mechanisms to search for missing outbox relay lists.&lt;br/&gt;&lt;br/&gt;The Top Bar filter &amp;#34;All Follows&amp;#34; now merges all follow lists, follow packs, following hashtags, following geotags, and following communities into a single feed. Two new options were also added: &amp;#34;All User Follows,&amp;#34; which includes only the main and other follow lists, and &amp;#34;Default Follow List,&amp;#34; which is the standard follow list used by every client.&lt;br/&gt;&lt;br/&gt;Finally, we completed our Quartz migration to Kotlin Multiplatform, added significant performance improvements when processing events and running cryptographic procedures, as well as new ease-of-use extensions.&lt;br/&gt;&lt;br/&gt;New Features:&lt;br/&gt;- People List creation and management by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqswc4nrhvp4lrjct0ayy0ps8f2hvj8e2guucp63dwcx6m6e8pka9fqpr4mhxue69uhkummnw3ezucnfw33k76twv4ezuum0vd5kzmp0qy08wumn8ghj7un9d3shjtnwdaehgu3wwa5hyetydejhgtn2wqhsz9nhwden5te0v4jx2m3wdehhxarj9ekxzmny9ue5n65v&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;KotlinGeek&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…n65v&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Follow Pack creation, management and feed view&lt;br/&gt;- Image gallery in posts by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;⚡ Dee Kay ⚡&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…m3sx&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Finishes migration of Quartz to Kotlin Multiplatform&lt;br/&gt;- New Filters in the top nav bar&lt;br/&gt;- Performance improvements across all features&lt;br/&gt;&lt;br/&gt;Improvements:&lt;br/&gt;- Adds support to rejection replies from NIP-55 signers by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqs827g8dkd07zjvlhh60csytujgd3l9mz7x807xk3fewge7rwlukxgppemhxue69uhkummn9ekx7mp0qydhwumn8ghj7argv4nx7un9wd6zumn0wd68yvfwvdhk6tcpz9mhxue69uhkummnw3ezumrpdejz7d9xcpk&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;greenart7c3&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…xcpk&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Adds live/offline indicator to live bubbles by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;⚡ Dee Kay ⚡&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…m3sx&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Refines the video compression procedure by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;⚡ Dee Kay ⚡&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…m3sx&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Replaces MP4 parser libraries with native MediaMuxer / MediaCodec by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;⚡ Dee Kay ⚡&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…m3sx&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Adds a H.265/HEVC codec to reduce file size by up to 50% while maintaining the same quality by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;⚡ Dee Kay ⚡&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…m3sx&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Optimizes video file structure by moving metadata to the beginning, so videos start playing more quickly by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;⚡ Dee Kay ⚡&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…m3sx&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Adds &amp;#34;All User Follows&amp;#34; feed filter in the top nav bar that removes hashtags, communities and geotag follows&lt;br/&gt;- Adds &amp;#34;Default Follow List&amp;#34; feed filter in the top nav bar that contains only Kind 3 follows&lt;br/&gt;- Shows a dialog to select a signer when using multiple signers are present by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqs827g8dkd07zjvlhh60csytujgd3l9mz7x807xk3fewge7rwlukxgppemhxue69uhkummn9ekx7mp0qydhwumn8ghj7argv4nx7un9wd6zumn0wd68yvfwvdhk6tcpz9mhxue69uhkummnw3ezumrpdejz7d9xcpk&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;greenart7c3&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…xcpk&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Saves bandwidth by avoiding constant REQ updates before EOSEs come back in a subscription&lt;br/&gt;- Changes the following icon on top of user&amp;#39;s pictures to include follows in all lists and follow sets&lt;br/&gt;- Removes non-outbox relays from the outbox lists&lt;br/&gt;- Adds support bigger, up to 4GB, payloads in NIP-44&lt;br/&gt;- Restructures the default REQ limits from each relay in all feeds&lt;br/&gt;- Adds a guarantee incoming message order to OkHttp websocket implementations to avoid EOSE mismatch&lt;br/&gt;- Only downloads DMs and Drafts if the account is writeable / nsec is present&lt;br/&gt;- Adds support for copying/cloning follow lists in the UI.&lt;br/&gt;- Adds a default relay list for indexers in new accounts with local backup&lt;br/&gt;- Smoothes the disappearing effect for the Top and Bottom navigation.&lt;br/&gt;- Adds support for NWC deep links and removes hardcoded Alby integration&lt;br/&gt;- Adds a missing outbox relay list popup on posting new notes&lt;br/&gt;- Adds a missing inbox relay list check on notification screens&lt;br/&gt;- Migrates to njump.to to disperse shareable links&lt;br/&gt;&lt;br/&gt;Quartz:&lt;br/&gt;- Migrates Quartz from Android to CommonMain (Kotlin Multiplatform)&lt;br/&gt;- Adds a maven publishing to ship quartz&lt;br/&gt;- Fully converts OpenTimestamp Java codebase to Kotlin, migrating the sync and async HTTP call interfaces to OkHttp and coroutines&lt;br/&gt;- Redesigns parsing of relay commands, messages and filters for performance in Jackson.&lt;br/&gt;- Uses KotlinX Serialization when speed is not a requirement&lt;br/&gt;- Migrates all Jackson field annotations to Kotlin Serialization&lt;br/&gt;- Migrates Regex use in Quarts to Kotlin&amp;#39;s Regex class&lt;br/&gt;- Migrates Base64 library from Android to Kotlin&lt;br/&gt;- Migrates UUID library from Android/Java to Kotlin&lt;br/&gt;- Migrates LRUCache usage from Android/Java to Kotlin collections&lt;br/&gt;- Migrates all String to bytearray conversions to Kotlin methods&lt;br/&gt;- Migrates all System.arraycopy calls to kotlin native ones.&lt;br/&gt;- Separates parsing code from the data classes in Companion objects&lt;br/&gt;- Exposes Rfc3986 normalizations to each platform.&lt;br/&gt;- Exposes URI parsing classes to each platform.&lt;br/&gt;- Exposes URL Encoders to each platform.&lt;br/&gt;- Exposes BigDecimal to each platform.&lt;br/&gt;- Exposes the Url Detector to each platform.&lt;br/&gt;- Exposes Mac instances to each platform&lt;br/&gt;- Exposes Diggest instances to each platform.&lt;br/&gt;- Exposes BitSet to each platform.&lt;br/&gt;- Exposes GZip to each platform.&lt;br/&gt;- Exposes Secp256k1 to each platform.&lt;br/&gt;- Exposes SecureRandom to each platform.&lt;br/&gt;- Exposes Time in seconds to each platform.&lt;br/&gt;- Exposes the LargeCache to each platform.&lt;br/&gt;- Exposes AES CBC and AES GCM encryption/decryption to each platform&lt;br/&gt;- Migrate test assertions to Kotlin Tests&lt;br/&gt;- Exposes Address class to each platform because of the Parceleable requirement in Android&lt;br/&gt;- Creates our own ByteArrayOutputStream.&lt;br/&gt;- Removes threadsafe features inside our Bloomfilters because we don&amp;#39;t need that consistency&lt;br/&gt;- Migrates UserMetadata parser from Jackson to Kotlin serialization&lt;br/&gt;- Removes @Static methods in each tag.&lt;br/&gt;- Adds an EventTemplate serializer&lt;br/&gt;- Removes the need for KotlinX Datetime&lt;br/&gt;- Adds support for LibSodium in the JVM desktop platform&lt;br/&gt;- Creates a shared test build for iOS targets&lt;br/&gt;- Increases the Bloom filter space to better use hints in the app.&lt;br/&gt;- Removes support for iOS in x86&lt;br/&gt;- Creates a performant JacksonMapper just for NIP-55, which stays in the Android build only.&lt;br/&gt;- Keeps the event store in the android build due to the SQL Lite dependency&lt;br/&gt;- Removes @syncronized tags in favor of Mutexes.&lt;br/&gt;- Improved sendAndWaitForResponse NostrClient method to properly account for returns from each relay.&lt;br/&gt;- Removes the need for GlobalScope and async calls&lt;br/&gt;- Removes the dependency on Jackson&amp;#39;s error classes across the codebase.&lt;br/&gt;- Moves the hint to quote tag extension methods to their own packages.&lt;br/&gt;- Migrates NIP-06 and Blossom uploads to use Kotlin Serialization&lt;br/&gt;- Adds ease of use functions for the downloadFirst nostr client extension method&lt;br/&gt;- Refactors error logging in BasicRelayClient&lt;br/&gt;- Starts NostrClient in active instead of waiting for a connect() call&lt;br/&gt;- Adds initial test cases for NostrClient and extensions&lt;br/&gt;- Adds an option to ignore failed reconnection delays that should be used when the network settings change.&lt;br/&gt;- Adds a build template option for NIP-42 AUTHs&lt;br/&gt;- Moves quartz to Java 21 due to binary inconsistencies between the multiple builds of KMP (tests conflicting with main)&lt;br/&gt;- Adds support for COUNT relay messages&lt;br/&gt;- Treat COUNT as query only, not subscriptions in the NostrClient&lt;br/&gt;- Moves statistics collection out of the inner classes to be an external option for app developers instead.&lt;br/&gt;- Restructuring relay classes to maintain order of incoming messages for relay listeners&lt;br/&gt;- Defers all processing of incoming messages to coroutines via channels, freeing OkHttp&amp;#39;s thread as soon as possible.&lt;br/&gt;- Simplifies the main relay class by using attached listener modules for each function of the relay client.&lt;br/&gt;- Migrate defaultOnConnect calls to become listener based and moved to NostrClients&lt;br/&gt;- Coordinates REQs so that if an update is required to be sent but the server has not finished processing events, waits for it to finish and sends it later as soon as EOSE or Close arrives&lt;br/&gt;- Correctly maintain the local and server state of each Req.&lt;br/&gt;- Avoid subsequent REQ updates before EOSE or CLOSE calls.&lt;br/&gt;- Refactors NostrClient authenticators to do complete operation as an optional module&lt;br/&gt;- Breaks down Relay Client modules (Auth, Reqs, Counts, Event submissions) in the Relay Pool class.&lt;br/&gt;- Creates listeners just for REQ subscriptions&lt;br/&gt;- Move statistics to outside the base relay class as a listener&lt;br/&gt;- Move logs to outside the base relay class as a listener&lt;br/&gt;- Better structures a Standalone Relay client&lt;br/&gt;- More appropriately communicate errors to the listeners&lt;br/&gt;- Remove relay states on listeners, move each to its own method&lt;br/&gt;- Removes the hardcoded Dispatchers on Quartz&lt;br/&gt;- Adds streaming hash utility function, follow the existing pool/worker design&lt;br/&gt;- Adds fast search for events and addresses in the Deletion Event&lt;br/&gt;- Adds an update method for to create a new event template from an event.&lt;br/&gt;&lt;br/&gt;Fixes and UI Improvements:&lt;br/&gt;- Changes the DVM feed to sort by follows that liked or zapped the DVM&lt;br/&gt;- Changes the icon of account preferences to translation for now&lt;br/&gt;- Improves click and long press interactions with the relay list item and status bar items&lt;br/&gt;- Fixes the visual references to communities and hashtags in the top right of the post&lt;br/&gt;- Removes disappearing top and bottom bars from settings screens&lt;br/&gt;- Fixes tall top bars on Ephemeral and Public Chat rooms&lt;br/&gt;- Fixes lack of live stream name on the top bar&lt;br/&gt;- Fixes animations to navigate from and to list screens&lt;br/&gt;- Fixes cursor behind the keyboard when typing long texts.&lt;br/&gt;- Fixes line wrap in the relay info top nav bar title&lt;br/&gt;- Moves message button to Profile Actions&lt;br/&gt;- Fixes User profile banner being off place in short images&lt;br/&gt;- Also fixes spacing of the Follow button&lt;br/&gt;- Adds an option to render a user gallery from hex keys instead of full User objects&lt;br/&gt;- Adds context to the highlights&lt;br/&gt;- Increases the contrast of placeholder text&lt;br/&gt;- Refines performance of the QuickAction menu bar&lt;br/&gt;- Fixes hidden words not being applied to NIP-04 DMs on notifications&lt;br/&gt;- Fixes not loading some event kinds in notifications&lt;br/&gt;- Fixes crash when updating a metadata with null name&lt;br/&gt;- Fixes crash when attempting to share an image that is still loading by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;⚡ Dee Kay ⚡&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…m3sx&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Fixes disappearing stats on relay screen by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;⚡ Dee Kay ⚡&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…m3sx&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Fixes proper switch between single and two-pane layouts on rotation by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;⚡ Dee Kay ⚡&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…m3sx&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Fixes sendAndWaitForResponse never receiving a response by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqs827g8dkd07zjvlhh60csytujgd3l9mz7x807xk3fewge7rwlukxgppemhxue69uhkummn9ekx7mp0qydhwumn8ghj7argv4nx7un9wd6zumn0wd68yvfwvdhk6tcpz9mhxue69uhkummnw3ezumrpdejz7d9xcpk&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;greenart7c3&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…xcpk&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Fixes NWC URI parsing bug by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;⚡ Dee Kay ⚡&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…m3sx&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Fixes bookmark removal from Private/Public removing from both by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;⚡ Dee Kay ⚡&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…m3sx&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Fixes OutOfMemoryError for large file uploads by  &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;⚡ Dee Kay ⚡&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…m3sx&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Fixes DecryptZapRequest CommandType by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqs827g8dkd07zjvlhh60csytujgd3l9mz7x807xk3fewge7rwlukxgppemhxue69uhkummn9ekx7mp0qydhwumn8ghj7argv4nx7un9wd6zumn0wd68yvfwvdhk6tcpz9mhxue69uhkummnw3ezumrpdejz7d9xcpk&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;greenart7c3&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…xcpk&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Fixes location being added to note even after deselecting it by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqs827g8dkd07zjvlhh60csytujgd3l9mz7x807xk3fewge7rwlukxgppemhxue69uhkummn9ekx7mp0qydhwumn8ghj7argv4nx7un9wd6zumn0wd68yvfwvdhk6tcpz9mhxue69uhkummnw3ezumrpdejz7d9xcpk&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;greenart7c3&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…xcpk&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Fixes crash when trying to parse unparseable NIP-11s&lt;br/&gt;- Prevents resource leaks with file streams by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;⚡ Dee Kay ⚡&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…m3sx&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Removes any relay url that has a percent-encoded null byte, regardless of size&lt;br/&gt;- Forces streaming url online check when the stream is offline but the user enters the chat&lt;br/&gt;- Fixes duplicated loading of NIP-11 relay info by different parts of the screen&lt;br/&gt;- Fixes the new Video events as non replaceable, while keeping the old ones in the replaceable&lt;br/&gt;- Fixes crash on starting when the contentResolver is not ready yet.&lt;br/&gt;- Fixes addressable deletions deleting not only the past when updating feeds&lt;br/&gt;- Fixes long form previews when missing the author&amp;#39;s picture&lt;br/&gt;- Fixes feed filter update when changing the top nav filter&lt;br/&gt;- Fixes crash when sorting with the same createdAt in the discovery feeds&lt;br/&gt;- Fixes reply routes when clicking in the Conversations tab when the event is a PublicChat, LiveStream or Ephemeral Chat&lt;br/&gt;- Fixes livestream chats appearing on home bubbles after the live stream is finished&lt;br/&gt;- Fixes not sending the live stream events anywhere when the stream doesn&amp;#39;t have a relay set declared&lt;br/&gt;- Fixes animations when selecting Tor options in the privacy screen&lt;br/&gt;- Fixes animations jumping when loading privacy screen&lt;br/&gt;- Fixes the use of index relays and search relays to load users and events as well as become the default for global feeds.&lt;br/&gt;- Fixes mark as read when drafts are the latest message in the chat&lt;br/&gt;- Fixes showing blog posts in the future in the Discovery reads&lt;br/&gt;- Fixes crashing when comparing int and long in Live Events comparator&lt;br/&gt;- Fixes recompositions of subject add-on to text on rendering&lt;br/&gt;- Fixes crash on trying to change dont translate from options&lt;br/&gt;- Fixes NPE on the ln invoice callback with errors parser&lt;br/&gt;- Fixes parsing encrypted NIP-28 chats&lt;br/&gt;- Fixes disappearing relay stats (larger LRU cache)&lt;br/&gt;- Fixes sendAndWait nostr client coroutine that was waiting forever&lt;br/&gt;- Fixes lack of req by forcing an updateFilter at the start of new subs with the client.&lt;br/&gt;- Fixes bug that skipped loading follow&amp;#39;s metadata on startup&lt;br/&gt;- Fixes issues when unfollowing a hashtag from old contact lists&lt;br/&gt;- Fixes relay list flickering bug&lt;br/&gt;- Fixes crash when checking and creating new users from `p` tags.&lt;br/&gt;- Fixes the author of the highlight&lt;br/&gt;- Fixes scope lifecycle of media uploads to avoid cancellation while uploading&lt;br/&gt;- Fixes parser for null and default values from NIP-55 using Jackson&lt;br/&gt;- Fixes relay icons not showing up when sending DMs&lt;br/&gt;- Fixes imeta parsing with multiple urls&lt;br/&gt;- Fixes relay-specific global feed matching incoming note checks&lt;br/&gt;- Fixes video progressive download by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;⚡ Dee Kay ⚡&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…m3sx&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Fixes several usages of Reflection when serializing classes&lt;br/&gt;- Fixes a bug on loading event test database for the HintBloom filter test&lt;br/&gt;- Forces relay status updates when connecting and disconnecting&lt;br/&gt;- Only shows live stream bubbles that are not playing 24/7 with active follows in the past 15 minutes.&lt;br/&gt;- Opens Follow Packs on following.space&lt;br/&gt;&lt;br/&gt;Performance:&lt;br/&gt;- Restructures the parser and serialization of the relay messages and commands for performance&lt;br/&gt;- Speeds up the generation of Bech32 addresses&lt;br/&gt;- Migrates memory counters from Long to Int&lt;br/&gt;- Avoids using JSON parsers with DataStore to speed up loading time (loading the parser itself takes ~300ms)&lt;br/&gt;- Adds new benchmarks for NIP-44 operations&lt;br/&gt;- Reduces memory consumption for NIP-44 operations, avoiding GC&lt;br/&gt;- Faster Hkdf functions with less array copying and allocations (which can be impactful if the ciphertext is large)&lt;br/&gt;- Faster Mac calculations by avoiding array assemblies before calling the function&lt;br/&gt;- Faster Hash check calculations avoiding the creation of a separate bytearray to compare ids&lt;br/&gt;- About 30-40% event hashing performance boost by building the json by hand and skipping string encoders when not needed.&lt;br/&gt;- 30% Faster isHex for strings with precisely 32 bytes.&lt;br/&gt;- Loads the main account in parallel faster before the screen needs it&lt;br/&gt;- Merge expanding and checking HMac functions to avoid re-creating the Mac instance.&lt;br/&gt;- Separates EOSE cache for drafts alone.&lt;br/&gt;- Speeds up the loading of users in follow lists on start up&lt;br/&gt;- Speeds up OkHttp startup&lt;br/&gt;- Adds submap index queries to the addressable large cache&lt;br/&gt;- Performance improvement for the address serializer.&lt;br/&gt;- Adds a default cut off for notifications from random relays to 1 week ago.&lt;br/&gt;- Increases local video disk cache to 1GB&lt;br/&gt;- Defers the initialization of disk caches for videos and images to a few seconds after loading&lt;br/&gt;- Only listens to notification feed changes when the UI is visible&lt;br/&gt;- Separates a relay failure tracker to a module&lt;br/&gt;- Caches the User object for each Account to avoid being deleted by the soft reference on Local Cache&lt;br/&gt;- Moves all Dispatchers.Default to the IO threadpool because of the amount of Synchronized code in dependencies blocking heavy threads&lt;br/&gt;- Only download reports from the author&amp;#39;s outbox relay if we have it (don&amp;#39;t use our default bootstrapping relays for reports)&lt;br/&gt;- Keep a local cache of following geoshahes and hashtags in lowercase.&lt;br/&gt;- Don&amp;#39;t intern signatures, content and stringified tags since they are not usually duplicated&lt;br/&gt;- Unifies the parser for the tag array across the app&lt;br/&gt;- Adds simplified extensions to create Requests from NostrClient&lt;br/&gt;- Adds a Start request callback to the request listener&lt;br/&gt;- Adds a req that returns the list of events in order of arrival&lt;br/&gt;- Adds a flatten straight into a set utility&lt;br/&gt;- Adds a decrypted people and follow list cache on the account class and updates TopNav to use the new caching&lt;br/&gt;- Creates slim ListItem composables&lt;br/&gt;- Marks address, user states, edits and channel metadata view models as Compose Stable&lt;br/&gt;- Removes unnecessary list of icons drawer rows, which affected Compose stability&lt;br/&gt;- Improves the composition of NIP-05 lines&lt;br/&gt;- Adds a pre-parser to find image galleries and video links before rendering.&lt;br/&gt;- Adds the user outbox relays when loading addressables by that user.&lt;br/&gt;- Avoids sending CLOSE to subs that are already closed.&lt;br/&gt;- Rejects additional urls with %20 and fixes &amp;#34;Wss&amp;#34; ones.&lt;br/&gt;&lt;br/&gt;Code Quality&lt;br/&gt;- Reduce http max requests when in emulator to avoid crashing by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;⚡ Dee Kay ⚡&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…m3sx&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Resolve intermittent CI build failures  by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;⚡ Dee Kay ⚡&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…m3sx&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Fix benchmark apk location by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;⚡ Dee Kay ⚡&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…m3sx&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Change from runBlocking to runTest where appropriate by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;⚡ Dee Kay ⚡&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…m3sx&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Reduce errors in log: concurrent modification exception by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;⚡ Dee Kay ⚡&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…m3sx&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Moves the precision of mills to seconds on the isOnline Check&lt;br/&gt;- Migrates to use suspending routines for OTS, statuses and edit flows&lt;br/&gt;- Unify outbox calculation in the RelayOutbox loader&lt;br/&gt;- Refactors zap the devs card view&lt;br/&gt;- Creates an interface for NostrClient strategies&lt;br/&gt;- Adds an isMobileOrFalse flow in connectivity to speed UI updates&lt;br/&gt;- Removes one of the Application dependencies in viewmodel&lt;br/&gt;- Changes the Theme class to only take the preferred theme directly.&lt;br/&gt;- Adds dependency on NWC to Account to avoid linking directly with the Application class&lt;br/&gt;- Migrates Account management to an Application lifecycle to prepare for multi-account screens&lt;br/&gt;- Establishes a scope for each account loaded so that flows can be killed on sign off&lt;br/&gt;- Moves the event processor to the Account class&lt;br/&gt;- Creates an interface for the DualHttpClientManager to allow IDE previews&lt;br/&gt;- Removing the dependency on an application class from AccountViewModel&lt;br/&gt;- Removes dependency on the viewModel on AccountFeedStates&lt;br/&gt;- Moves account saving from StateViewModel to Account&lt;br/&gt;- Removes dependency on the application class from DecryptAndIndexProcessor&lt;br/&gt;- Changes the name and singleton of the nav to avoid confusing the auto import&lt;br/&gt;- Switches account cache to a flow to allow observers&lt;br/&gt;- Removes dependency in the Amethyst class from Playback calculator&lt;br/&gt;- Removes the dependency on windowSizeClass and displayFeatures to be passed in the global preferences of the app (which is activity independent)&lt;br/&gt;- Moves the OTS processor from Account&amp;#39;s decrypt process to Application since it doesn&amp;#39;t need the account information.&lt;br/&gt;- Separates Application dependencies into an AppModules class to create only after the OnCreate event.&lt;br/&gt;- Switches TorSettings to be per Application and not per Account anymore&lt;br/&gt;- Since TorSettings is now global, moves the okHttpClient determinations out of the Account-based classes into the Application.&lt;br/&gt;- Since TorSettings is now global, set&amp;#39;s up Coil&amp;#39;s image loader only once when creating the Application&lt;br/&gt;- Moves UISettings state to App Modules instead of viewmodel&lt;br/&gt;- Migrates TorSettings and UISettings to DataStore&lt;br/&gt;- New tor evaluator service for relay connections now uses all account&amp;#39;s trusted relays and dm relays at the same time.&lt;br/&gt;- Migrates composable-state-based UISettings to Flow-based UI settings, while observing connectivity status&lt;br/&gt;- Removes the displayFeatures and windowSizeClass from the shared model&lt;br/&gt;- Fixes not requesting Notification Permissions for APIs older than Tiramisu in the FDroid flavor&lt;br/&gt;- Moves the NIP-11 document cache from singleton to the App Modules&lt;br/&gt;- Avoids using AccountViewModel to check NIP-11 Relay documents&lt;br/&gt;- Moves the UI Settings usage in composables to functions that do not observe the state since they don&amp;#39;t need to refresh the screen when changed.&lt;br/&gt;- Refactors UI Settings screen to separate components and remove the sharedViewModel&lt;br/&gt;- Only starts Internal Tor if that option is selected in the TorSettings.&lt;br/&gt;- Turn TorSettings into a data class to observe changes to it&lt;br/&gt;- Drops the SharedPreferences ViewModel to use UISettingsFlow directly from App Modules&lt;br/&gt;- Reorganizes OTS Events after simplification of the OkHttp based on TorSettings.&lt;br/&gt;- Applies memory trimming service to all logged-in accounts at the same time&lt;br/&gt;- Adds a test for native vs libsodium chacha20&lt;br/&gt;- Added test for emulator to set maxRequests to 128 to prevent crashing emulator by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;⚡ Dee Kay ⚡&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…m3sx&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Dumps the number of relay hints urls in the DB&lt;br/&gt;- Creates our own Coil Logger to minimize trash stacks in the logs&lt;br/&gt;- Adds a declared outbox lists for follows state&lt;br/&gt;- Removes the deprecated hacks to store communities, hashtags and geohashes on Contact Lists&lt;br/&gt;- Updates deprecated Clipboard manager&lt;br/&gt;- Updates emoji and user autocomplete state to use Account and avoid linking AccountViewModel&lt;br/&gt;- Refactors many viewModels to avoid using callback lambdas&lt;br/&gt;- Correctly marks EOSE for filters that are aligned with the Req State from NostrClient&lt;br/&gt;- Changes User loading features in a tentative to make them faster since they are used by all functions in the app.&lt;br/&gt;- Creates an Account follow list per Relay state that only includes shared relays as a better source of functioning relays&lt;br/&gt;&lt;br/&gt;Deprecations:&lt;br/&gt;- Removes fmt.wiz.biz from bootstrap relays&lt;br/&gt;- Removes void.cat from default servers by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;⚡ Dee Kay ⚡&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…m3sx&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Removes filestr share links&lt;br/&gt;- removes zapstr.live share links&lt;br/&gt;&lt;br/&gt;Updated translations:&lt;br/&gt;- Czech, German, Swedish and Portuguese by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;⚡ Dee Kay ⚡&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…m3sx&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Hindi by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqs88dt78wgnzvaph6fcstfvsd98xc2qs8eg8tllwv2zlutu8ehec2cpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsz9mhwden5te0wfjkccte9ec8y6tdv9kzumn9wshszrnhwden5te0dehhxtnvdakz7ngjkr6&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;राज&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…jkr6&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Slovenian by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsqqqqqqp0fmkspg7w8d305ln96a0jw0ptwqtuwskkm5pddv2kkjfcppemhxue69uhkummn9ekx7mp0qywhwumn8ghj7mn0wd68ytnzd96xxmmfdejhytnnda3kjctv9uq3wamnwvaz7tmjv4kxz7fwwpexjmtpdshxuet59ukk67fz&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;StellarStoic&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…67fz&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Polish by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsdyfz0ewdhmgp3a4r3pxvezx5r8yalrgvjn38v2ml5qrusnv7yywgppamhxue69uhkx7npwvh8gmms9uq3vamnwvaz7tmwdaehgu3wvdaxzuewwpk82ue0qyghwumn8ghj7mn0wd68ytnzdahxgtch7lh5p&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;Polak&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…lh5p&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Hungarian by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqs88rmfrp9wmfn4qq4kslly0j8futmmrgn86mu3gkc3jvcjl97p3mcpzamhxue69uhhyetvv9ujumn0wd68ytnzv9hxgtcpz4mhxue69uhkummnw3ezummcw3ezuer9wchsz9thwden5te0wfjkccte9ejxzmt4wvhxjme0m7mtdy&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;Zoltan&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…mtdy&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsxekg0s8kxpcrka8ccwztv2m73kz6jy0ur8f7jc04rwr5p44w5acspzamhxue69uhhyetvv9ujumn0wd68ytnzv9hxgtcppemhxue69uhkummn9ekx7mp0qyg8wumn8ghj7mn0wd68ytnddakj7c0ns2l&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;summoner&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…ns2l&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Spanish by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqs07tjpyvvlq9ugdpax8h3jfrpwn7kr72k3tc7ky83tggn4et9eangpg3mhxw309ajxyartwdukjery09cxwctsd3ek6cnjdfnxs6t00pnhq7ttdvmkw7nsd3shxdrr0gery6nyva3h2ct0096kyerjw9jzummwd9hkutcprpmhxue69uhkv6tvw3jhytnwdaehgu3wwa5kuef0qyghwumn8ghj7mn0wd68ytnhd9hx2tcxdyhdq&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;⚡₿it₿y₿it⚡&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…yhdq&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Latvian by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqs0a8c9nt88dm9c0dtx84xxeqsmwj7zdzgs739ut0q7770yd2larlgpzpmhxue69uhkummnw3ezumt0d5hszrnhwden5te0dehhxtnvdakz7qgawaehxw309ahx7um5wghxy6t5vdhkjmn9wgh8xmmrd9skctcmf88sy&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;Coool&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…88sy&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Dutch by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqs82l74z7g3x8j3avpn2wrjrwn855nyvmpxa4v5pftfvtv5lrvrc5cpz9mhxue69uhkummnw3ezuamfdejj7tk0drp&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;Bartus&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…0drp&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- French by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqs8av5uzf4nv2q80chrmp3mj9a9dd6zjw4fmz56hsn2gzar72rxhtcppemhxue69uhkummn9ekx7mp0qyg8wumn8ghj7mn0wd68ytnddakj7qgawaehxw309ahx7um5wghxy6t5vdhkjmn9wgh8xmmrd9skctcuvd26f&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;DuPainEtDesJeux&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…d26f&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Chinese by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsyxnuhnymz0u0xru2watmqe25vlh8vzzje9jhlsfgvsff9942gc9gpr9mhxue69uhhyetvv9ujumt0d4hhxarj9ecxjmnt9uq3wamnwvaz7tmjv4kxz7fwvdu8qmrp0yhx7un89uq3gamnwvaz7tm4wvhxummnw3ezuamfdejj726jp9r&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;CXPLAY&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…jp9r&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Thai by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsxdhmq2cke8xk6scfyxeyfj3dyancavg6xk0v50r023gec7vsrceqppemhxue69uhkummn9ekx7mp0qyghwumn8ghj7mn0wd68ytnhd9hx2tcpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhskamkgc&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;123🦈ปลาฉลามขึ้นบก&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…mkgc&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Persian by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsvq73w5j9kw573rtff6c3fyh953w45328n3625apdwc3548gr49gspzpmhxue69uhkummnw3ezumt0d5hszrnhwden5te0dehhxtnvdakz7qg3waehxw309ahx7um5wgh8w6twv5hsw0e34v&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;L&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…e34v&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;Download: &lt;a href=&#34;http://amethyst.social&#34;&gt;http://amethyst.social&lt;/a&gt;
    </content>
    <updated>2025-11-15T16:40:57Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqs2ah53388aenp7kd0wpmwe8kyl5gs7arhfyrtdekhr47dgrqaspqqzyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zyks353d4</id>
    
      <title type="html">Pq nao? O que acontece?</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqs2ah53388aenp7kd0wpmwe8kyl5gs7arhfyrtdekhr47dgrqaspqqzyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zyks353d4" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsrzllq7s6wypyuugrg833s7szkl68uv8klyq5k4nsaujh5zrlkfxcpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsl73c2e&#39;&gt;nevent1q…3c2e&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Pq nao? O que acontece?
    </content>
    <updated>2025-11-15T15:23:48Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsz3nwqulgsknf8gca7302nexqykvp24lvucjyrzce5vf3g7qvknnszyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykkkulxs</id>
    
      <title type="html">#Amethyst v1.03.0: Built-in video recording New Features: - Adds ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsz3nwqulgsknf8gca7302nexqykvp24lvucjyrzce5vf3g7qvknnszyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykkkulxs" />
    <content type="html">
      #Amethyst v1.03.0: Built-in video recording&lt;br/&gt;&lt;br/&gt;New Features: &lt;br/&gt;- Adds &amp;#34;record and post video&amp;#34; button to new Post Screens by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzamhxue69uhhyetvv9ujumn0wd68ytnzv9hxgtcpzpmhxue69uhkummnw3ezumt0d5hscc6wyt&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;⚡ Dee Kay ⚡&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…6wyt&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Updates the User Profile&amp;#39;s Relay List to an outbox version&lt;br/&gt;- Activates live streams to the top feed bubble&lt;br/&gt;- Enables the use of custom TextToSpeech Engines&lt;br/&gt;&lt;br/&gt;Improvements: &lt;br/&gt;- Improves the list of visible authors on live stream bubbles&lt;br/&gt;- Adds the error status to the URL normalizer to avoid checking it again&lt;br/&gt;- Adds a follow list state from kind 3 to keep following users in memory.&lt;br/&gt;- Moves from RelationshipStatus to ContactCard as per NIP update&lt;br/&gt;&lt;br/&gt;Fixes: &lt;br/&gt;- Removes crashing relay URIs with null-encoded bytes (%00)&lt;br/&gt;- Reverts to using androidLibrary plugin for Quartz until KMP publishing guidance is updated. by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqswc4nrhvp4lrjct0ayy0ps8f2hvj8e2guucp63dwcx6m6e8pka9fqppemhxue69uhkummn9ekx7mp0qy2hwumn8ghj7un9d3shjtnyv9kh2uewd9hj7qgawaehxw309ahx7um5wghxy6t5vdhkjmn9wgh8xmmrd9skctcjuq3jp&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;KotlinGeek&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…q3jp&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Fixes product title when in a quoted post&lt;br/&gt;- Fixes live flag for streaming when the URL is not available anymore.&lt;br/&gt;- Fixes bug on opening the Relay Settings page with duplicated Trusted and Blocked relays.&lt;br/&gt;- Avoids NPEs in the maxOfOrNull iterator with concurrent lists&lt;br/&gt;- Assemble NIP-17 Crash Report properties as a table and crash as a code block&lt;br/&gt;- Improves the design of the Crash Report permission screen with a cancel button.&lt;br/&gt;- Adds basic support for expirations in DMs&lt;br/&gt;&lt;br/&gt;Updated Translations&lt;br/&gt;&lt;br/&gt;- Polish by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsdyfz0ewdhmgp3a4r3pxvezx5r8yalrgvjn38v2ml5qrusnv7yywgpzamhxue69uhhyetvv9ujumn0wd68ytnzv9hxgtcppemhxue69uhkummn9ekx7mp0qyt8wumn8ghj7mn0wd68ytnr0fshxtnsd36hxtcgcpyfj&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;Polak&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…pyfj&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;- Hungarian by &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsxekg0s8kxpcrka8ccwztv2m73kz6jy0ur8f7jc04rwr5p44w5acsk5trt8&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;summoner&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…trt8&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;Download: &lt;a href=&#34;http://amethyst.social&#34;&gt;http://amethyst.social&lt;/a&gt;
    </content>
    <updated>2025-09-02T19:06:58Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqs9dm6aagf7xzt3wkfkz5fsgawrge48dvmc37am4zqspkzyy4quhpszyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zyk8rulpl</id>
    
      <title type="html">Garbage collection</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqs9dm6aagf7xzt3wkfkz5fsgawrge48dvmc37am4zqspkzyy4quhpszyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zyk8rulpl" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs0e76p0mtaln7hgpgq7zyd336qc5wtd838kes77untt0xj83rh6dgppemhxue69uhkummn9ekx7mp0pxnqqw&#39;&gt;nevent1q…nqqw&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Garbage collection 
    </content>
    <updated>2025-08-29T13:37:53Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsvsg9fx2avec6fxmdr93m82tdjss5usqn8vxw4p28ej77ly3dlgdgzyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zyknnqhk5</id>
    
      <title type="html">#Amethyst v1.02.1: Bugfixes - Upgrade AGP to 8.12.2 - Sets Quartz ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsvsg9fx2avec6fxmdr93m82tdjss5usqn8vxw4p28ej77ly3dlgdgzyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zyknnqhk5" />
    <content type="html">
      #Amethyst v1.02.1: Bugfixes&lt;br/&gt;&lt;br/&gt;- Upgrade AGP to 8.12.2&lt;br/&gt;- Sets Quartz to Java 1_8&lt;br/&gt;- Creates a bootstrap relay list specifically for inbox relays&lt;br/&gt;- Register lists as Account fields to avoid GC of user settings.&lt;br/&gt;- Fixes inability to delete relays from certain relay lists.&lt;br/&gt;&lt;br/&gt;Download: &lt;a href=&#34;http://amethyst.social&#34;&gt;http://amethyst.social&lt;/a&gt;&lt;br/&gt;
    </content>
    <updated>2025-08-29T11:57:41Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqs0qqcy6fvenczkxxyyyjml8q875csq7nxth25mce0fmtp68tc7y3czyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zyk5w9yh2</id>
    
      <title type="html">#Amethyst v1.02.0: NIP-17 Crash report DMs - Adds a crash ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqs0qqcy6fvenczkxxyyyjml8q875csq7nxth25mce0fmtp68tc7y3czyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zyk5w9yh2" />
    <content type="html">
      #Amethyst v1.02.0: NIP-17 Crash report DMs&lt;br/&gt;&lt;br/&gt;- Adds a crash interceptor and offers to send crash reports via NIP-17&lt;br/&gt;- Fixes startup crash on Android 12 or earlier&lt;br/&gt;- Removes old DB migration &lt;br/&gt;- Fixes crash when pasting an invalid NIP-47 URI into the zap settings&lt;br/&gt;- Fixes crash when NWC doesn&amp;#39;t return an invoice preimage&lt;br/&gt;- Fixes crash when loading a user with a null name&lt;br/&gt;- Fixes readonly crash on DVM requests&lt;br/&gt;- Speeds up first-time logins by not waiting for Tor&lt;br/&gt;- Fixes a parser benchmark&lt;br/&gt;- Moves test assets to resources to make it work with kmp&lt;br/&gt;- Migrates Quartz to a KMP project&lt;br/&gt;- Converts OpenTimestamps code from Java to Kotlin&lt;br/&gt;- Moves OTS OkHttp setup to Quartz&lt;br/&gt;- Migrates NIP-49 from Java to Kotlin&lt;br/&gt;- Removes nostr.bg from bootstrap relays&lt;br/&gt;- Updates translations&lt;br/&gt;&lt;br/&gt;Download: &lt;a href=&#34;http://amethyst.social&#34;&gt;http://amethyst.social&lt;/a&gt;
    </content>
    <updated>2025-08-28T21:25:59Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsgm3k037ptlzv88myvlhruqmsjmnlt9j4kvwffwwpunlq65chr62czyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykegz4v3</id>
    
      <title type="html">#Amethyst v1.01: New Community Moderation support Features: - ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsgm3k037ptlzv88myvlhruqmsjmnlt9j4kvwffwwpunlq65chr62czyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykegz4v3" />
    <content type="html">
      #Amethyst v1.01: New Community Moderation support&lt;br/&gt;&lt;br/&gt;Features:&lt;br/&gt;&lt;br/&gt;- Upgrades NIP-72 communities to use NIP-22 comments as root posts&lt;br/&gt;- Adds moderation queue feed&lt;br/&gt;- Adds in-app approval procedures&lt;br/&gt;- Adds drafts for community posts&lt;br/&gt;- Redesigns the &amp;#34;about us&amp;#34; section of communities.&lt;br/&gt;&lt;br/&gt;Fixes:&lt;br/&gt;&lt;br/&gt;- Fixes accessibility TalkBack issues&lt;br/&gt;- Fixes the edit draft button in the long-press menu&lt;br/&gt;- Fixes the inability to delete relays from some lists.&lt;br/&gt;- Fixes unwanted NOTIFY requests from other people&amp;#39;s relay lists&lt;br/&gt;- Fixes some DM push notification issues&lt;br/&gt;- Fixes notification registration for first-time logins&lt;br/&gt;- Avoids sending expired events to the relays&lt;br/&gt;- Fixes draft deletes staying in some feeds&lt;br/&gt;- Intercepts backhandler to save drafts&lt;br/&gt;- Moves draft deletion calculations out of the UI thread&lt;br/&gt;&lt;br/&gt;Download: &lt;a href=&#34;http://amethyst.social&#34;&gt;http://amethyst.social&lt;/a&gt;
    </content>
    <updated>2025-08-27T13:43:08Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqs9hyamnhqycrzzuc534e09tl8cad8lcdtwryslcswshdl3lf2n0hgzyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykeqqmum</id>
    
      <title type="html">#Amethyst v1.00.5: Bugfix - Fixes a crash when a follow has ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqs9hyamnhqycrzzuc534e09tl8cad8lcdtwryslcswshdl3lf2n0hgzyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zykeqqmum" />
    <content type="html">
      #Amethyst v1.00.5: Bugfix&lt;br/&gt;&lt;br/&gt;- Fixes a crash when a follow has multiple relays in the same tag in their relay list. &lt;br/&gt;- Updates translations&lt;br/&gt;&lt;br/&gt;Download: &lt;a href=&#34;http://amethyst.social&#34;&gt;http://amethyst.social&lt;/a&gt;
    </content>
    <updated>2025-08-23T15:31:10Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsznsccuesyzga96k270dqmcjx8a3grkgqjjkkr6t9fhtq78249nnszyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zyk4uujtl</id>
    
      <title type="html">#Amethyst v1.00.4: Draft bug fixes and Performance Improvements - ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsznsccuesyzga96k270dqmcjx8a3grkgqjjkkr6t9fhtq78249nnszyz4fq3ej2cpa4n20s9pqjdt8ju6kdh3mrcs2392hku5v80jvd2zyk4uujtl" />
    <content type="html">
      #Amethyst v1.00.4: Draft bug fixes and Performance Improvements&lt;br/&gt;&lt;br/&gt;- Fixes the new post screen not closing after posting and rejecting drafts.&lt;br/&gt;- Fixes the disappearance of drafts.&lt;br/&gt;- Improving loading speeds by using a separate OkHttp threadpool for DM relays and another for media.&lt;br/&gt;- In case a user does not have an outbox list, it defaults to all hints seen for that user.&lt;br/&gt;&lt;br/&gt;Download: &lt;a href=&#34;http://amethyst.social&#34;&gt;http://amethyst.social&lt;/a&gt;
    </content>
    <updated>2025-08-22T20:54:14Z</updated>
  </entry>

</feed>