* 'main' of https://github.com/vitorpamplona/amethyst:
code review fixes: 1. options.isNotEmpty().also → if guard 2. Hardcoded English strings in FeedGroup enum 3. Hardcoded accessibility label 4. Raw 14.sp literals (×6) → replaced with Font14SP theme constant 5. Raw 12.sp literal → replaced with Font12SP theme constant 6. Modifier.size(20.dp) → replaced with existing Size20Modifier theme constant
update gitignore
add grouped feed filter dialog with Material 3 styling add icons, reduce text size, center group headers in filter dialog
modernize SpinnerSelectionDialog with Material 3 styling
feature switch chess icon on android: visible in debug/benchmark client only
New Crowdin translations by GitHub Action
Intentionality: check the return value and log a warning via Log.w() when deletion fails
Update CS, DE, SV, PT
NIP-04 encryption for sending DMs is now deprecated. All new messages
are sent using NIP-17 (gift-wrapped sealed messages). Reading NIP-04
messages remains supported for backward compatibility.
When a recipient lacks both a DM relay list (kind 10050) and NIP-65
inbox relays, the send button is disabled and a warning is shown
explaining that messages cannot be delivered.
Changes:
- ChatNewMessageState: Remove nip17/requiresNip17 toggles, add
recipientsMissingDmRelays state, always send via NIP-17
- ChatNewMessageViewModel: Always use NIP-17, remove NIP-04 send
paths, add recipient relay status checking
- ToggleNip17Button -> Nip17Indicator: Replace toggle with static
NIP-17 indicator (always on)
- PrivateMessageEditFieldRow: Show warning when recipients lack
DM relay lists, hide message input
- ChatFileSender: sendAll() always uses NIP-17
- Desktop ChatPane: Remove NIP-17 toggle, show relay warning
- ChatroomView: Reactively check recipient DM relay availability
https://claude.ai/code/session_01T7QhUW9cZogk4DxDXbbbJJ
Show a small lock icon next to the timestamp on each DM message:
- NIP-17 (ChatMessageEvent, ChatMessageEncryptedFileHeaderEvent): filled
lock in primary color — relay can't see sender/recipient
- NIP-04 (PrivateDmEvent): open lock in muted gray — legacy encryption,
metadata visible to relays
Matches Android's IncognitoBadge pattern. Both NIP-04 and NIP-17 messages
in the same 1-on-1 conversation produce identical ChatroomKeys, so they
merge into one conversation — the badge is the only way to tell them apart.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>