- Fix ListChangeFeedViewModel stuck on Loading for empty chatrooms by
adding invalidateData() call in init block
- Add DmBroadcastStatus sealed class and DmBroadcastBanner composable
in commons for relay send progress display
- Add DmSendTracker using sendAndWaitForResponse for confirmed delivery
- Wire send tracking through DesktopIAccount into ChatPane banner
- Fix audit risks: unsubscribe DMs on account change, wait for relay
connect before subscribing
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The sendWrappedReaction function was creating NIP-17 gift wraps via
NIP17Factory but never broadcasting them. Added sendGiftWraps() to
IAccount interface with implementations in both Desktop and Android.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace TODO stub with sendWrappedReaction using NIP17Factory.
createReactionWithinGroup creates gift-wrapped reactions for group privacy.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- DesktopIAccount: sign + broadcast NIP-04/NIP-17 messages via relay layer
- Main.kt: activate DM subscriptions on login, consume events into cache
- NewDmDialog: user search dialog with SearchBarState + UserSearchCard
- DesktopMessagesScreen: wire Cmd+Shift+N and "+" button to NewDmDialog
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This file provides instructions for AI agents to fork, customize,
and build branded versions of Amethyst.
Includes:
- Prerequisites and environment setup
- Step-by-step build workflow
- Common customizations (app name, package ID, icons, client tags)
- Troubleshooting guide
- Distribution options
* 'main' of https://github.com/vitorpamplona/amethyst: (48 commits)
Use accountViewModel.viewModelScope instead of rememberCoroutineScope() to allow download/share to finish even when controls auto-close.
Add content parameter to allow sharing of video from video player
New Crowdin translations by GitHub Action
- use a valid hex key - check the value of the tags
Fixed NullPointerException when filter contain tags
Fix assertEquals order
fix Jackson deserialization for empty Filters and add regression test
New Crowdin translations by GitHub Action
Consume File.delete() return values Extract duplicated "https://" literal into a private const val HTTPS_PREFIX
New Crowdin translations by GitHub Action
New Crowdin translations by GitHub Action
New Crowdin translations by GitHub Action
Load and save payment targets
refactor(commons): migrate from Moko to Compose Multiplatform Resources
feat(broadcast): Enhance retry, multi-broadcast UI, and post tracking (#1682)
wip: Add BroadcastTracker to AccountViewModel (#1682)
feat(broadcast): Add transparent event broadcasting feedback (#1682)
Enabled the reactions expand control for zapraisers even when there are no zaps
New Crowdin translations by GitHub Action
refactor to reduce complexity encodePcmToAac
...
# Conflicts:
# amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/notifications/CardFeedState.kt