Untitled

#Amethyst v1.14.0: New Share Intents, Relay Login, and a Much Faster Start

Highlights:

  • Improves NIP-84 Highlights — composer, feed, and share intent.
  • Redesigns relay login (NIP-42) and ends the per-relay prompt storm.
  • Adds Share targets to Pictures, Videos, Shorts and Torrents feeds.
  • Adds a screen that explains why every relay subscription exists.
  • Fixes the cold-start out-of-memory kill and cuts time to first paint.
  • Brings Desktop to parity on profiles, DMs, settings and key backup.
  • Adds Trusted Lists (kinds 30392–30395) to Quartz.

New Features

Highlights (NIP-84)

  • Adds a Highlight composer, with an annotation field, a passage editor, and a
    source reference that can be a Nostr event or a web URL.
  • Adds a Highlights feed, filterable by authors, follows, hashtags and geohashes.
  • Accepts shared text from any app as a new highlight.

Feeds and Composing

  • Adds four home feed content types: Pictures (NIP-68), Videos and Shorts
    (NIP-71), and Torrents (NIP-35), each with its own toggle.
  • Adds “New Picture”, “New Short” and “New Video” share targets, so media shared
    into Amethyst opens the matching composer instead of a text note with a link.
  • Adds a bulk audience picker to the short-note composer: search people lists and
    follow packs, review the members, then add them all at once.
  • Adds a poll results page with per-option vote counts and a filterable voter
    list, replacing the feed card’s four-avatar preview.
  • Shows rich previews for comments scoped to external content (NIP-73), both in
    the “replying to” line and as the thread’s title.
  • Offers a “Copy Original / Copy Translated” chooser when copying a note that has
    been translated.
  • Opens the edit screen when a draft reply is tapped in a thread.

Relay Login (NIP-42)

  • Redesigns the relay login permissions screen. Explicit exceptions, relays
    blocked by your block list, and recent logins are now three separate sections.
  • Starts new accounts on “always log in” instead of deciding per relay.
  • Remembers a login for the rest of the session when you answer without ticking
    “remember”, so a reconnect stops asking again.
  • Honors “always log in” for relays your own account does not publish to.
  • Makes the “reading someone I follow” toggle reachable — it sat behind a
    first-party gate that could never be true.
  • Counts NIP-29 groups and Concord communities as rooms you joined, so their
    host relays authenticate under “my relays and venues”.
  • Waits for an auth challenge to resolve rather than letting the fetch time out.

Relay Traffic, Explained

  • Records why every relay-bound filter exists — its purpose, the entities it
    serves and the account that asked — and renders that back on a new screen.
  • Fixes the multi-account subscriptions that screen exposed as never running.
  • Breaks the resource ledger down by cause, so it reports why relay data was
    spent, not just how much.
  • Stops the automatic “High resource usage detected” dialog on app open. The
    ledger keeps recording and Settings still shows the report.

Chats, Groups and Communities

  • Mutes a public chat from a long press in Messages or from the channel menu.
  • Deletes (kind 9008) and archives NIP-29 channels, with the Buzz community UI to
    match.
  • Keeps a channel invite’s replies, reactions and zaps inside the relay that sent
    the invite, instead of broadcasting them to your outbox.
  • Derives Buzz channel invites from cached membership notices, so they stop
    appearing and disappearing.
  • Redesigns channel invite cards as feed rows, with the person who added you as
    the row’s author.
  • Shows the hosting relay’s name chip on relay group message headers.
  • Splits the Concord Control Plane’s stream key so a staff-held control_root
    write-gates it (CORD-02 §2).
  • Closes the Concord CORD-05/06 invite lifecycle: an Invite List, a re-mint on
    Refounding, and revocation.
  • Stops pinning Concord entities whose chain crosses a Refounding, which was
    discarding their newer state on every refold.
  • Closes seven Concord soft-ban holes — a banned member kept control_root, half
    the Control Plane never read the banlist, and the invite button still worked.

Everything Else

  • Makes the left drawer configurable, so entries you don’t use can be hidden.
  • Adds ngit-specific search to the Git Repositories screen.
  • Supports IPv6 overlay relays (Yggdrasil) with RFC 5952 canonical addresses,
    fixing one relay counting as two and Tor-proxying an unreachable overlay.
  • Adds a Nostr badge watermark to the notification icons, reshapes the mention
    icon, and adds dedicated reply and mark-as-read action icons.
  • Runs verified NIP-5D artifacts in an opaque srcdoc sandbox behind a first-head
    CSP, and advertises only the NAP domains actually implemented.

Performance

  • Scans NIP-19 entities, hashtags and legacy #[n] references without ICU. On
    Android, Regex.matchAt copied the whole note content into native memory per
    candidate, which grew a cold start to ~1.9 GB and got the app killed.
  • Scans note content by literal instead of restarting the regex engine at every
    position in every note.
  • AOT-compiles the relay ingest path with a baseline profile. Release cold-start
    ingest was spending 36× more CPU interpreting bytecode than verifying
    signatures.
  • Demotes the ~650 relay and ingest worker threads below the UI thread, so the
    connect storm cannot starve the first frames (~40% faster first paint).
  • Reclaims memory under heap pressure and stops leaking sandboxed WebView
    Activities.
  • Bounds the duplicate-frame decoder cache in both size and age.
  • Stops blocking coroutine workers on synchronous OkHttp calls, which released
    their CPU permits and starved the dispatcher.
  • Stops the outbox getting slower with every publish — it rebuilt an immutable map
    per send, copying every pending entry.
  • Stripes the subscription-state lock per relay, ending the ANR convoy that had
    37 of 52 workers spinning on one lock.
  • Memoizes Concord guestbook envelope opens, so the fold stops re-decrypting the
    whole buffer on every arrival.
  • Caches the painter on its first miss in painterRes.
  • Optimizes the proof-of-work mining hot loop for the Android runtime.
  • Skips the ~220 ms system call when the app locale has not actually changed.
  • Confines the Blossom cache probe and server resolver to the IO dispatcher, and
    re-probes it when the toggle flips.
  • Releases dead subscription rows, so connect and disconnect stop scanning every
    subscription ever created.
  • Prefetches NIP-73 external-content preview URLs so those cards stop popping in
    mid-scroll.
  • Adds fixed-size hex codecs for 32- and 64-byte values.

Improvements and Bug fixes

  • Settles the keyboard inside navigation, so leaving a screen mid-animation stops
    stranding imePadding across the whole app.
  • Routes the draft-saving editors through KeyboardAwareBackHandler, so a
    predictive back gesture no longer races the IME close.
  • Raises the keyboard again when you tap a field in an embedded tab that was
    already focused.
  • Pads for the soft keyboard in full-screen napplet hosts on Android 15+.
  • Fixes the crash when switching between two pinned web-app tabs.
  • Stops drawing a blank parent card above a top-level community post.
  • Fixes Cashu wallet balances reading low: proofs are now backfilled past the
    relay’s page cap and history is paged.
  • Keeps PDF previews stable — the page ratio is cached, so scrolling back no
    longer collapses the card and replays the grow-in animation.
  • Stops rendering non-media NIP-94 files as video.
  • Repairs imeta MIME types written as a bare subtype, so those images can be
    shared again.
  • Works around a fatal media3 crash on Low-Latency HLS streams.
  • Drives the “Can’t reach this relay over Tor” banner from live socket state
    instead of a bare six-second timer.
  • Stops a lone repost from being bundled into the always-on service notification,
    where it inherited the ongoing flag and refused to swipe away.
  • Fails push registration loudly on an HTTP error, instead of caching a token for
    a device that will never receive anything.
  • Listens for location only while foregrounded, and fixes the meter that reported
    7 hours of listening against 9 seconds of foreground.
  • Excludes quote characters from parsed URLs.
  • Fixes the OpenGraph meta parser losing every tag after an apostrophe inside a
    comment or script, which broke link previews on some sites.
  • Requests the follower-count provider’s kind 30382 cards, so the count stops
    rendering as --.
  • Gives the invite roster line’s member count its unit, so a bare number no longer
    reads as counting the avatars beside it.
  • Removes the recent-poster facepile from Concord and Buzz channel rows.
  • Renders every NIP-71 video subtype through the shared interface.
  • Reworks the chat bubble reply swipe on lower-level pointer APIs, so it only
    claims the gesture once the motion is clearly horizontal.
  • Turns the default log into a boot narrative instead of a firehose.
  • Converts the drawer’s hidden-count to a plural, fills the untranslated backlog
    for Czech, German, Swedish and Brazilian Portuguese, restores placeholders
    dropped from German and Polish plurals, and drops an unused plural.

Desktop

  • Enriches the DM composer and message list: emoji picker with custom emoji,
    @mentions, reply-quoting with jump-to-original, Nostr-native GIF search, rich
    message rendering, per-message image quality, and encrypted file uploads.
  • Redesigns Settings as a searchable accordion of labeled cards, with
    expand/collapse-all and a filter over titles and keywords.
  • Brings the profile screen to parity: banner, rich-text bio, a CLINK offer field,
    six new tabs (Followers, Following, Relays, Bookmarks, Yours, Zaps received) and
    header actions.
  • Adds a guided “save your keys” step on first run and a key backup in Settings.
    Android gets a soft nudge after signup.
  • Loads metadata and reactions only for what is on screen, through the shared
    finders in commons, and unsubscribes when it leaves.
  • Enables the master notification switch when the OS permission is already
    granted.
  • Publishes Windows arm64 and Linux arm64 desktop builds.

Cli

  • Gives amy the Concord key lifecycle it was missing: accept a promotion, follow
    a Refounding, perform one, and recover when left out of it.
  • Publishes Windows and Linux arm64 assets for amy and geode.
  • Reports “no relays” only when there really were none, and pins the buzz wrapper
    copies against the argument surface they call.

Quartz

  • Adds Trusted Lists (kinds 30392–30395), the aggregate counterpart to NIP-85
    Trusted Assertions, and indexes their labels for NIP-50 search.
  • Fixes a SharedKeyCache collision that could return one peer’s shared secret
    for another peer’s message, and compares MACs in constant time.
  • Measures NIP-66 relay health from traffic the client already makes, streams
    probe verdicts as relays answer, checks read and write separately, lets a
    monitor publish what it learned without dialling, and merges verdicts into the
    record they replace instead of overwriting it.
  • Measures rtt-open as the transport handshake, not the time the call spent
    queued in the dispatcher.
  • Records sync coverage per kind rather than one interval per filter, keys its
    persistence with a typed band, closes a drained leg, and terminates a paged walk
    against a relay that ignores until.
  • Strikes a host out and tracks its unreachability with publish-safe semantics,
    so a dead host stops being retried at the same rate as a live one.
  • Sizes negentropy reconcile windows from the caller’s own index, states the
    relay’s cap, and lets a caller decline an id before its body crosses the wire.
  • Normalizes every accessory timeout to an idle window, drops the maxTotalMs
    ceiling that cut healthy fetches, and stops fetchAllPages cropping a streaming
    page.
  • Stops COUNT inheriting the REQ page size, which capped a count at 500.
  • Suspends the incoming-message chain down to SubscriptionListener.onEvent, so a
    consumer that cannot keep up no longer blocks every shared worker.
  • Compares every filter in FiltersChanged, not just the first.
  • Fixes an InProcessWebSocket race that delivered a connect-time AUTH challenge
    before onOpen.
  • Adds StoreQueryContext, carrying the NIP-42-authenticated caller identity into
    observer-relative stores.
  • Adds a NIP-50 search grammar (quoted phrases, negation) with weighted field
    extraction, and shares the store-semantics rules across implementations.
  • Parses metadata leniently everywhere, and recovers blank, single-element and
    malformed kind-0 content instead of dropping the profile.
  • Parses ServiceType without splitting on a separator that may not be there.
  • Declares pointer hints on Report, ChatMessage, Classifieds and ChannelCreate.
  • Refreshes created_at while mining, so a post that takes minutes to mine does
    not publish stale.
  • Decouples the LocalCache and Account god classes into single-purpose
    collaborators, 3,800 lines lighter, with no behavior change.

Build & Documentation

  • Adds a :baselineprofile module that records a real startup journey, replacing
    the hand-authored profile’s wildcards.
  • Notarizes the macOS DMG and verifies it, adds libegl1 to the arm64 .deb
    dependencies, and moves the Homebrew and Winget bumps onto a maintainer machine.
  • Shrinks the mirror-sync throughput corpus on CI, which had been timing out the
    test-geode job for weeks.
  • Confines the QUIC stream drainer to the producer’s event loop, deflaking it
    under parallel test load.
  • Hardens workflow-ship.sh and pins it with a regression harness.
  • Adds three store-implementer skills: event store semantics, NIP-85 trusted
    assertions and searchable events.
  • Bumps 30+ dependencies plus Gradle, Compose, Firebase, Media3, Ktor and OkHttp.

Contributors

Translations

Client:
Amethyst
Write a comment

Use the Nostrich app note translator! It’s an amazing translator!

Reply to disa…
612 sat
561 sat
11 sat
2 sat
1 sat
1 sat
1 sat
3 sat
11 sat
1 sat
1 sat
Replying to Vitor Pamplona
Vitor Pamplona: I think you can just activate them on the Phone settings, no? Apps / Amethyst / Open by default

I think the simplest option is to modify the code for “Share to DM” and replace njump with the note id.

Reply to linux_privacy…
Replying to Vitor Pamplona
Vitor Pamplona: I think you can just activate them on the Phone settings, no? Apps / Amethyst / Open by default

No, Amethyst isn’t included in the list of browsers in the phone’s settings. Also, it would be better to send the note ID to DM. It’s extremely convenient, and everyone likes this feature in 0xchat and Yakihonne.

Reply to linux_privacy…
Replying to linux_privacy
linux_privacy: nostr:nprofile1qqsyvrp9u6p0mfur9dfdru3d853tx9mdjuhkphxuxgfwmryja7zsvhqpzamhxue69uhhv6t5daezumn0wd68yvfwvdhk6tcpzpmhxue6…

I think you can just activate them on the Phone settings, no? Apps / Amethyst / Open by default

Reply to Vitor Pamplona…
Replying to Vitor Pamplona
linux_privacy: nostr:nprofile1qqsyvrp9u6p0mfur9dfdru3d853tx9mdjuhkphxuxgfwmryja7zsvhqpzamhxue69uhhv6t5daezumn0wd68yvfwvdhk6tcpzpmhxue6…

@npub1...fnj5z Maybe add a new option to the bottom share menu: “Share note ID in DM”? It would be very convenient

Reply to linux_privacy…

@npub1...fnj5z add reposted notes to DMs as note IDs so that the note opens directly in Amethyst. Otherwise, when someone sends me notes in a DM, I have to open each one in a browser. Some notes don’t appear in the browser at all.

This is implemented very conveniently in 0xchat and Yakihonne. Please add this in a future release. Alternatively, make these njump links open directly in Amethyst instead of the browser: when you tap njump, it should open the note directly, just like when opening a note by its ID.

Reply to linux_privacy…
Replying to ⚡ Dee Kay ⚡
⚡ Dee Kay ⚡: Does yakihonne and wisp translate locally on the device... or on a remote service?
Reply to disa…
Replying to ⚡ Dee Kay ⚡
⚡ Dee Kay ⚡: Does yakihonne and wisp translate locally on the device... or on a remote service?

I don’t know. Maybe. But I’m sure you can add to the amethyst a better offline translator than it is now. Google is terrible)

Reply to linux_privacy…
Replying to linux_privacy
linux_privacy: Yes, translator is bad. Yakihonne has a good translator. And it seems Wisp too. Google is terrible, like all Google ser…

Does yakihonne and wisp translate locally on the device… or on a remote service?

Reply to ⚡ Dee Kay ⚡…
Replying to ⚡ Dee Kay ⚡
⚡ Dee Kay ⚡: Great to hear about the UI, it's a community effort at Crowdin. The notes are translated automatically by Google (loca…

Yes, translator is bad. Yakihonne has a good translator. And it seems Wisp too. Google is terrible, like all Google services)

Reply to linux_privacy…
Replying to ⚡ Dee Kay ⚡
⚡ Dee Kay ⚡: Great to hear about the UI, it's a community effort at Crowdin. The notes are translated automatically by Google (loca…

Google translates text terribly😞 It’s just a meaningless collection of words. Maybe you could add another offline translator or an offline AI? A good translator would make the Ametist more popular worldwide.

Reply to disa…
Replying to disa
disa: Translation of notes. Amethyst interface is translated well

Great to hear about the UI, it’s a community effort at Crowdin.

The notes are translated automatically by Google (locally on phone). I would expect get better over time rather than worse! 😂

Reply to ⚡ Dee Kay ⚡…
Replying to ⚡ Dee Kay ⚡
⚡ Dee Kay ⚡: The automatic translation of notes.. Or the amethyst interface?

Translation of notes. Amethyst interface is translated well

Reply to disa…
Replying to disa
disa: Maybe add another translator to the Amethyst? Translation is very bad now 😞

The automatic translation of notes.. Or the amethyst interface?

Reply to ⚡ Dee Kay ⚡…

Maybe add another translator to the Amethyst? Translation is very bad now 😞

Reply to disa…
Replying to Vitor Pamplona, Yahoo!ニュース 速報 配信 (非公式)
Vitor Pamplona: Sorry, what do you mean by opening this account? Going to the profile page or switching users in the account bottom dra…

I mean open this profile @npub1...ndwys

Reply to Pepsi…
Replying to Vitor Pamplona
Vitor Pamplona: Sorry, what do you mean by opening this account? Going to the profile page or switching users in the account bottom dra…

Going to profile. And notes will appear under the profile and in my feed (but not new notes)

Reply to Pepsi…
Replying to Pepsi
Pepsi: After open this account. Or open private list with all private accounts (but it doesn't always work)

Sorry, what do you mean by opening this account? Going to the profile page or switching users in the account bottom drawer?

Reply to Vitor Pamplona…
Replying to Vitor Pamplona
Vitor Pamplona: Cool, I will investigate. It only shows up after you open My Lists and the list itself? I think that is what you said b…

After open this account. Or open private list with all private accounts (but it doesn’t always work)

Reply to Pepsi…
Replying to Pepsi
Pepsi: My final test showed that all posts from this account work with a public subscription. However, no posts are available …

Cool, I will investigate. It only shows up after you open My Lists and the list itself? I think that is what you said before

Reply to Vitor Pamplona…
Replying to Vitor Pamplona
Vitor Pamplona: That accounts relay list is all fucked up. It never works well. Maybe that is the problem as well.

My final test showed that all posts from this account work with a public subscription. However, no posts are available in feed when the account is added only to a private list.

Reply to Pepsi…
Replying to Vitor Pamplona
Vitor Pamplona: That accounts relay list is all fucked up. It never works well. Maybe that is the problem as well.

I didn’t see this bug in public subscriptions. It’s a bug affecting private lists in the feed. But I like the private-list feature. It’s more convenient than creating a new account for private subscriptions.

Reply to Pepsi…
Replying to Vitor Pamplona
Vitor Pamplona: That accounts relay list is all fucked up. It never works well. Maybe that is the problem as well.

But it works correctly in Wisp. Wisp always shows all posts from a private list in the feed. Try to fix the issue. I really like Amethyst. I haven’t noticed any other bugs. I think Amethyst the best client now.

Reply to Pepsi…
Replying to Vitor Pamplona
Vitor Pamplona: Are you using amethyst with the nsec inside of it or via Amber? I am wondering if there is a decryption problem in the …

Nsec

Reply to Pepsi…
Replying to Pepsi
Pepsi: I tested it with a new account, and it worked better. However, I still couldn’t see some posts. For example, I didn’t s…

Are you using amethyst with the nsec inside of it or via Amber? I am wondering if there is a decryption problem in the start up

Reply to Vitor Pamplona…
Replying to Pepsi
Pepsi: I tested it with a new account, and it worked better. However, I still couldn’t see some posts. For example, I didn’t s…

That accounts relay list is all fucked up. It never works well. Maybe that is the problem as well.

Reply to Vitor Pamplona…
Replying to Vitor Pamplona, Yahoo!ニュース 速報 配信 (非公式)
Vitor Pamplona: Did you add them on Amethyst itself on another client?

I tested it with a new account, and it worked better. However, I still couldn’t see some posts. For example, I didn’t see this account’s new posts after every new Amethyst launch:
@npub1...ndwys

Ps, I also experienced a crash while editing a dm draft - the report was sent via Amethyst dm.

Reply to Pepsi…
Replying to Vitor Pamplona
Vitor Pamplona: Did you add them on Amethyst itself on another client?

I just opened Amethyst again, and the feed for the test private list was already open. I didn’t see any new posts. Then I went to the Lists section and tapped the test list. At that point, those accounts seemed to refresh (maybe the cache was updated), and when I returned to the feed, I saw new posts from the last half hour.

Reply to Pepsi…
Replying to Vitor Pamplona
Vitor Pamplona: Did you add them on Amethyst itself on another client?

Old private list from 0xchat, but now in test I added them on Amethyst

Reply to Pepsi…
Replying to Pepsi
Pepsi: I ran a test just now: I added several new accounts to my private list but didn’t publicly follow them. Then I closed A…

Did you add them on Amethyst itself on another client?

Reply to Vitor Pamplona…

I ran a test just now: I added several new accounts to my private list but didn’t publicly follow them. Then I closed Amethyst. After new start, I didn’t see any new posts from those accounts in my feed. However, I would have seen those posts if I had followed the accounts publicly. Private list feed broken. Fix please.

Reply to Pepsi…

The feed doesn’t show posts from private lists - only posts from public subscriptions. Please fix it. Every time I launch the app, I can only see my public subscriptions. The private feed is broken.

Reply to Pepsi…
112 sat
31 sat
31 sat
122 sat
37 sat
541 sat
31 sat
34 sat
31 sat
1 sat
31 sat
112 sat
122 sat
541 sat
1218 sat
69 sat
69 sat
276 sat
69 sat
77 sat
Zap

Onward 🫡

2 sat
1 sat
1 sat
1 sat
3 sat
12 sat
1 sat
56 sat
270 sat
15 sat
61 sat
15 sat
15 sat
17 sat
19 sat
Replying to ⚡ Dee Kay ⚡, BBC Russian (RSS Feed), xumn…3zsv
⚡ Dee Kay ⚡: Any relevant note ids I could start with?

You can use any account found through searches on momostr.pink and data.haus - for example, this one:
@npub1...4075n
@npub1...g3zsv
These accounts often publish posts.

Reply to linux_privacy…
Replying to linux_privacy
linux_privacy: nostr:nprofile1qqsyvrp9u6p0mfur9dfdru3d853tx9mdjuhkphxuxgfwmryja7zsvhqpzamhxue69uhhv6t5daezumn0wd68yvfwvdhk6tcpzpmhxue6…

Any relevant note ids I could start with?

Reply to ⚡ Dee Kay ⚡…
Replying to ⚡ Dee Kay ⚡, Vitor Pamplona
⚡ Dee Kay ⚡: Do you have 1 or 2 note ids from the bridge that I can test with?

@npub1...fnj5z So, how to reproduce these issues:
Create a new private list and privately add several bridge accounts from relay.momostr.pink and nostr.data.haus to your private contacts. Then restart the app.
Result: if these accounts are only included in the private contact list, their posts won’t appear in the feed. However, if this is a public default subscription, posts from these accounts will appear in the feed.

Reply to linux_privacy…
Replying to ⚡ Dee Kay ⚡, Vitor Pamplona
⚡ Dee Kay ⚡: Do you have 1 or 2 note ids from the bridge that I can test with?

@npub1...fnj5z Or perhaps these issues only occur with private subscriptions. I used 0xchat regularly before - an app with only private lists of subscribed contacts - and I like that. Amethyst also has private contact lists, but in a private contact list relay.momostr.pink is completely ignored in the feed - 0 new posts from this relay in feed. I created two private lists for testing, and neither of them shows posts from this relay in the feed.

Reply to linux_privacy…
Replying to linux_privacy
linux_privacy: nostr:nprofile1qqsyvrp9u6p0mfur9dfdru3d853tx9mdjuhkphxuxgfwmryja7zsvhqpzamhxue69uhhv6t5daezumn0wd68yvfwvdhk6tcpzpmhxue6…

Do you have 1 or 2 note ids from the bridge that I can test with?

Reply to ⚡ Dee Kay ⚡…

@npub1...fnj5z I noticed that in the latest version, relay nostr.data.haus works well in the feed. However, relay.momostr.pink (mastodon bridge relay) is completely ignored - there are no posts from it in the feed at all. Older posts may be visible in the feed immediately after subscribing, but after that, no new posts appear. I wasn’t able to fix this myself using any of the settings. I also noticed that there seems to be some kind of hidden NSFW filter that removes all posts on this topic from the feed, even when they aren’t related to pornography or nudity. This happens even when all filters are disabled. This behavior didn’t exist in older versions of the app, where the feed displayed all posts from all relays.

Reply to linux_privacy…
114 sat
26 sat
24 sat
6 sat
8 sat
6 sat
6 sat
6 sat
7 sat
24 sat
6 sat
114 sat
8 sat
6 sat
7 sat
6 sat
26 sat
6 sat
2 sat
1 sat
1 sat
11 sat
1 sat
1 sat
1 sat
3 sat
Zap

⚡️

7 sat
7 sat
24 sat
7 sat
Replying to linux_privacy
linux_privacy: nostr:nprofile1qqsyvrp9u6p0mfur9dfdru3d853tx9mdjuhkphxuxgfwmryja7zsvhqpzamhxue69uhhv6t5daezumn0wd68yvfwvdhk6tcpzpmhxue6…

Not sure about the cookies since the app uses the default browser to render. But I will test. I have a branch with the auth work but have not yet integrated since it needs a security audit. :(

Reply to Vitor Pamplona…

@npub1...fnj5z Great update. Does the browser still not delete cookies? I couldn’t delete the cookies by tapping “Forget This App” and clearing the history. Nostr apps may not store cookies, but other websites do, and that poses a privacy risk.
By the way, is it possible to enable a pin code or system authentication for logging into Amethyst?

Reply to linux_privacy…
224 sat
245 sat
61 sat
75 sat
1082 sat
68 sat
61 sat
61 sat

ارجو أيضا إتاحة اختيار قائمة متابعة كاملة (من “My Lists”) كمستلمين للمنشورات الخاصة (خيار “Visible to”)، بدلاً من إضافة الأفراد يدوياً في كل مرة.

الشرط الأساسي (الربط الديناميكي):
يجب أن يرتبط المنشور الخاص بـ معرف القائمة نفسها، وليس بالأفراد وقت النشر. بمعنى:

· إذا أضفت مستخدمًا جديدًا للقائمة لاحقاً، فسيشاهد تلقائياً جميع المنشورات السابقة التي نُشرت لتلك القائمة.
· إذا أزلت مستخدمًا من القائمة، فسيفقد صلاحيته لرؤيتها.

هذا سيجعل القوائم ديناميكية ومرنة، مستفيدة بالكامل من أحداث Nostr القابلة للاستبدال (Kind 30000). وهي طريقة أكثر منطقية وقوة لاستخدام ميزة القوائم.

شكراً لتفكيركم في اقتراحي، وأنتظر ردكم.

Reply to إدريس مجدي…
1 sat
1 sat
1136 sat
236 sat
79 sat
64 sat
71 sat
64 sat
257 sat
64 sat
54 sat
4 sat
3 sat
3 sat
4 sat
10 sat
3 sat
31 sat
8 sat
29 sat
138 sat
9 sat
8 sat
8 sat
12 sat
14 sat
60 sat
112 sat
31 sat
37 sat
31 sat
122 sat
34 sat
541 sat
31 sat
3 sat
3 sat
10 sat
9 sat
3 sat
3 sat
3 sat
34 sat
31 sat
12 sat
1 sat
1 sat
2 sat
3 sat
31 sat
34 sat
541 sat
112 sat
31 sat
37 sat
31 sat
122 sat
541 sat
112 sat
122 sat
31 sat
37 sat
31 sat
Replying to Vitor Pamplona
Vitor Pamplona: As long as we can get the data from crowdin.. last time I tried, I couldn't get it.
Reply to ⚡ Dee Kay ⚡…
1147 sat
238 sat
65 sat
79 sat
260 sat
72 sat
65 sat
65 sat
65 sat
112 sat
541 sat
31 sat
31 sat
34 sat
31 sat
37 sat
122 sat
31 sat
Replying to ⚡ Dee Kay ⚡
⚡ Dee Kay ⚡: The sync for contributors creates a lot of churn. Maybe it would be more efficient to just do a scan before each releas…

As long as we can get the data from crowdin.. last time I tried, I couldn’t get it.

Reply to Vitor Pamplona…
Replying to Vitor Pamplona
Vitor Pamplona: Not sure.. it added my name to all translations as well. It might be considering more than what it should.

The sync for contributors creates a lot of churn. Maybe it would be more efficient to just do a scan before each release instead?

Reply to ⚡ Dee Kay ⚡…
26 sat
6 sat
114 sat

أيضا نريد أن نستطيع التعديل على منشورات المجتمعات communities/community بحيث استطيع تعديل نص المنشور، وايضا اريد إضافة اماكنية نشر poll داخل المجتمعات لأن تلك الخاصية غير متوفرة مع الاسف، وشكرا جدا 💖🙏

Reply to إدريس مجدي…
Replying to إدريس مجدي
إدريس مجدي: شكراً لك على جهودك الرائعة في تطوير تطبيق Amethyst هذا هو تطبيقي المفضل. أود أن أشارك معك مشكلة تواجهنا في إدارة المجتم…

I will debug what’s happening

Reply to Vitor Pamplona…

شكراً لك على جهودك الرائعة في تطوير تطبيق Amethyst هذا هو تطبيقي المفضل. أود أن أشارك معك مشكلة تواجهنا في إدارة المجتمعات، بالإضافة إلى بعض المقترحات المهمة لتحسين التجربة:

​مشكلة إدارة المنشورات في المجتمعات:
عندما يقوم شخص ما بالنشر داخل المجتمع، ورغم أنني كـ Admin لا أوافق على المنشور (لا اضغط على زر Approve)، إلا أن المنشور يظهر للأسف في التايم لاين الخاص بكل متابعي المجتمع. نحن بحاجة إلى تحكم حقيقي يمنع المنشورات المرفوضة أو غير المُعتمدة من الظهور في تايم لاين الأعضاء نهائياً، وعدم الاكتفاء بفصلها في قائمة الموديريشن فقط.
وارجو إضافة ميزة أخرى لجعل المجتمعات community تكون خاصة على الاعضاء ولا احد يستطيع رؤية المحتوى غير اللي تم الموافقة عليهم بالدخول.

أيضا اريد تطوير نوع من ال​حسابات الخاصة (Protected Accounts):
إضافة خيار لجعل الحساب “خاصاً” تماماً مثل تويتر X (إكس)، بحيث لا يرى الآخرون المنشورات أو قوائم المتابعة إلا بعد قبول طلب المتابعة.

وايضا ميزة ​تحديد خصوصية المنشورات (عام / خاص):
إضافة إمكانية اختيار مستوى ظهور المنشور عند إنشائه، ليصبح عاماً (مثل فيسبوك) أو مخصصاً للمتابعين فقط أو لقوائم معينة.

​إرسال رسائل صوتية في الشات:
إضافة ميزة تسجيل وإرسال رسائل صوتية في المحادثات الخاصة (Direct Messages) بين الأصدقاء.
​شكراً لك على عملك المستمر وتطوير التطبيق!

Reply to إدريس مجدي…
Replying to ⚡ Dee Kay ⚡
⚡ Dee Kay ⚡: I sneak translations in via direct commits... Maybe the sync only picks up Crowdin?

Not sure.. it added my name to all translations as well. It might be considering more than what it should.

Reply to Vitor Pamplona…
34 sat
Replying to Vitor Pamplona
Vitor Pamplona: Lots. But I think we have a bug in our change log builder for the crowdin work

I sneak translations in via direct commits… Maybe the sync only picks up Crowdin?

Reply to ⚡ Dee Kay ⚡…
31 sat
318 sat
353 sat
318 sat
31 sat
37 sat
31 sat
Replying to Oren ☂️ #BIP-128
Oren ☂️ #BIP-128: How many languages does nostr:nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0…

Just 5… But hey, I understand 10 👍

Reply to ⚡ Dee Kay ⚡…
112 sat
541 sat
122 sat
Replying to Oren ☂️ #BIP-128
Oren ☂️ #BIP-128: How many languages does nostr:nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0…

Lots. But I think we have a bug in our change log builder for the crowdin work

Reply to Vitor Pamplona…

How many languages does @npub1...n3eef speak? 😅

Reply to Oren ☂️ #BIP-128…

🍳🍳🍳🍳

Reply to 21_21_21…

I think it does almost all of prism’s features now 👍

Reply to 𝚁𝚢𝚊𝚗 🏴‍☠️🎶…

Will the internal browser support NIP-44?

Reply to Oren ☂️ #BIP-128…