Commit Graph

9403 Commits

Author SHA1 Message Date
nrobi144 7180edf162 Merge upstream/main into feat/desktop-advanced-search
Resolve conflicts:
- RelayStatus.kt: keep both relay URLs
- SearchScreen.kt: keep advanced search implementation
- SinglePaneLayout.kt: add missing Spacer import

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 13:22:15 +02:00
Vitor Pamplona 548ce0a69d spotless apply 2026-03-11 15:24:02 -04:00
Vitor Pamplona 3712448c3f Merge pull request #1812 from vitorpamplona/claude/kotlin-blossom-uri-parser-lrQXn
Add BUD-10 Blossom URI parser and serializer
2026-03-11 15:19:22 -04:00
David Kaspar 853cdddc99 Merge pull request #1811 from vitorpamplona/l10n_crowdin_translations
New Crowdin Translations
2026-03-11 19:19:15 +00:00
Claude ac69a0fa74 feat(nipB7Blossom): add BUD-10 Blossom URI parser
Implements a pure-Kotlin (commonMain) parser for the BUD-10 blossom: URI
scheme, which allows sharing blob references with discovery hints.

Format: blossom:<sha256>.<ext>[?xs=<server>&as=<pubkey>&sz=<bytes>]

- BlossomUri data class holds sha256, extension, servers (xs), authors (as), size (sz)
- BlossomUri.parse() returns null for non-blossom URIs or invalid SHA-256
- Supports repeated xs/as params (multiple servers and authors)
- Percent-encodes server URLs on serialisation; decodes on parse
- BlossomUri.toUriString() round-trips back to a canonical URI
- Includes commonTest coverage for all parsing cases

https://claude.ai/code/session_01T4jyLbkNWd3f7i6MwsBcD4
2026-03-11 19:16:45 +00:00
Crowdin Bot 6aef5df6c8 New Crowdin translations by GitHub Action 2026-03-11 19:11:37 +00:00
David Kaspar 3bfd3f4314 Merge pull request #1810 from davotoula/update-translations
update cz, pt, de, sv
2026-03-11 19:09:52 +00:00
David Kaspar 61421f1393 Merge pull request #1809 from vitorpamplona/l10n_crowdin_translations
New Crowdin Translations
2026-03-11 19:05:03 +00:00
davotoula d7f9d584d6 update cz, pt, de, sv 2026-03-11 20:04:05 +01:00
Crowdin Bot a81b98a63a New Crowdin translations by GitHub Action 2026-03-11 19:03:42 +00:00
Vitor Pamplona 0c040d8816 addresses long domain names for blossom and nostr profiles 2026-03-11 14:59:52 -04:00
Vitor Pamplona 6a2cbb3a3a Using a real hex key in preview 2026-03-11 14:59:22 -04:00
Vitor Pamplona 1385feb066 fixes non-lowercase schemas on posts 2026-03-11 14:38:19 -04:00
Vitor Pamplona d521e29824 Shows all users cited in subscriptions for each relay. 2026-03-11 14:27:51 -04:00
Vitor Pamplona 1c044c9072 If warning is blank, revert to defaults 2026-03-11 14:12:02 -04:00
Vitor Pamplona ffe5e14b2b Display content warning reason 2026-03-11 14:10:55 -04:00
Vitor Pamplona a4010189cd Adds content warning reason to all new post screens 2026-03-11 13:52:18 -04:00
Vitor Pamplona 7ce13b5ba5 Adds content sensitivity descriptors to all screens 2026-03-11 13:47:10 -04:00
Vitor Pamplona 9bb87b38f5 Merge pull request #1808 from vitorpamplona/claude/add-content-warning-description-5BF4B
Add optional description field for sensitive content warnings
2026-03-11 13:43:47 -04:00
Vitor Pamplona eedfc61fad Fixes lingering relays on loading follows outbox relays. 2026-03-11 13:17:06 -04:00
Claude 2b0518a675 feat: allow users to add a description to the sensitive content warning
- Add contentWarningReason() helper to TagArrayExt and EventExt for reading the reason from existing events
- Add contentWarningDescription state to ShortNotePostViewModel, wired into event building and draft load/save/reset
- Update ContentSensitivityExplainer to accept description state and render an OutlinedTextField for user input
- Pass description state from ShortNotePostScreen to ContentSensitivityExplainer
- Add "Reason (optional)" placeholder string resource

https://claude.ai/code/session_01P2nkYdNiWXiAcfMPTRTVEW
2026-03-11 16:51:37 +00:00
Vitor Pamplona 84da81b62f Adds calendar events and snippets to the search query 2026-03-11 12:44:29 -04:00
Vitor Pamplona 1bd96707e5 Improving the looks of namecoin settings 2026-03-11 12:33:52 -04:00
Vitor Pamplona 3bd2f4251b Increasing sha256 pool size 2026-03-11 12:33:11 -04:00
Vitor Pamplona 2312bea10d Merge pull request #1807 from vitorpamplona/l10n_crowdin_translations
New Crowdin Translations
2026-03-11 12:30:59 -04:00
Vitor Pamplona 5437ee98b4 updates readme 2026-03-11 12:29:00 -04:00
Crowdin Bot b6829523a7 New Crowdin translations by GitHub Action 2026-03-11 16:28:06 +00:00
Vitor Pamplona bba11b1813 Merge pull request #1805 from vitorpamplona/l10n_crowdin_translations
New Crowdin Translations
2026-03-11 12:26:36 -04:00
Vitor Pamplona 2649d05e25 merge with spotless apply 2026-03-11 12:24:25 -04:00
Crowdin Bot 60db83ecad New Crowdin translations by GitHub Action 2026-03-11 16:24:10 +00:00
Vitor Pamplona 0f934ee461 Merge branch 'main' of https://github.com/vitorpamplona/amethyst
* 'main' of https://github.com/vitorpamplona/amethyst:
  feat: add CodeSnippetEvent (NIP-C0) rendering to NoteCompose and ThreadFeedView
2026-03-11 12:22:44 -04:00
Vitor Pamplona 8d968c2fc0 Merge pull request #1806 from vitorpamplona/claude/namecoin-settings-route-qFW0S
Extract Namecoin settings to dedicated screen
2026-03-11 12:21:57 -04:00
Vitor Pamplona c1705507a8 Adds 1.06 change log 2026-03-11 12:21:03 -04:00
Claude 3b3482e753 feat: move NamecoinSettingsSection to its own route and screen
Extract the Namecoin settings from PrivacyOptionsScreen into a
dedicated NamecoinSettingsScreen with its own Route.NamecoinSettings
route. Add a "Namecoin Settings" entry to AllSettingsScreen so users
can navigate to it directly from the settings list.

https://claude.ai/code/session_013gEw6fJYFiFoe4zETo8dpC
2026-03-11 16:19:07 +00:00
Vitor Pamplona dccc644a9e Merge pull request #1804 from vitorpamplona/claude/add-code-snippet-rendering-0G1Mv
Add support for rendering NIP-23 Code Snippet events
2026-03-11 12:12:21 -04:00
Claude 74e44f1256 feat: add CodeSnippetEvent (NIP-C0) rendering to NoteCompose and ThreadFeedView
- Create CodeSnippet.kt with RenderCodeSnippetEvent (feed card view) and
  RenderCodeSnippetHeaderForThread (full thread view)
- Feed card shows: filename/language badge, description, 5-line code preview
  in a monospace box with rounded border
- Thread header shows: full code in scrollable monospace block plus metadata
  (license, runtime, deps)
- Add is CodeSnippetEvent branch to NoteCompose.kt RenderNoteRow when-statement
- Add is CodeSnippetEvent branch to ThreadFeedView.kt header when-statement

https://claude.ai/code/session_01X6jjsMLGBUmcaWXHJKmrEn
2026-03-11 15:46:18 +00:00
Vitor Pamplona 76090077b6 Displays % of uptime in relay settings 2026-03-11 10:59:43 -04:00
Vitor Pamplona 76e86ee5f7 adds calendar rendering to the thread view 2026-03-11 10:59:21 -04:00
Vitor Pamplona 3fdde60a37 Merge branch 'main' of https://github.com/vitorpamplona/amethyst
* 'main' of https://github.com/vitorpamplona/amethyst:
  New Crowdin translations by GitHub Action
  fix: resolve conflicts with upstream PR #1789 merge
  fix(desktop): remove noisy debug logs and silence SLF4J warnings
  feat(desktop): add bunker heartbeat indicator to sidebar navigation
  fix(desktop): verify user pubkey via get_public_key after nostrconnect login
  fix(desktop): address code review findings for NIP-46 bunker login
  feat(desktop): add nostrconnect:// login flow for QR-based signer pairing
  revert: remove QR code scanning from login
  feat(desktop): webcam QR scanning via ffmpeg for bunker login
  feat(desktop): add webcam QR code scanning for bunker login
  feat(desktop): add QR code scanning for bunker login
  fix(desktop): clear stored credentials on logout
  feat(desktop): update login hints to mention bunker:// option
  fix(desktop): simplify settings logout to just a button
  feat(desktop): add logout option to menu bar and settings
  test: add NIP-46 test suite for desktop, quartz, and fix pre-existing chess test errors
  feat(desktop): add NIP-46 remote signer (bunker://) login
2026-03-11 08:42:44 -04:00
Vitor Pamplona 71574a5ce0 tracks and displays connection tentatives on relay settings 2026-03-11 08:42:32 -04:00
Vitor Pamplona ca9074e6f5 better relay parsing messaging 2026-03-11 08:17:14 -04:00
Vitor Pamplona 4576204c1d Fixes relay list backup 2026-03-11 08:10:50 -04:00
Vitor Pamplona 190bdb0795 Merge pull request #1803 from vitorpamplona/l10n_crowdin_translations
New Crowdin Translations
2026-03-11 07:51:20 -04:00
Crowdin Bot c67781f87d New Crowdin translations by GitHub Action 2026-03-11 11:49:38 +00:00
Vitor Pamplona d01b5aba4e Merge pull request #1791 from nrobi144/feat/nip46-bunker-login
feat(desktop): NIP-46 bunker login with heartbeat indicator
2026-03-11 07:47:38 -04:00
nrobi144 f0ffe3cbe3 fix(ui): remove duplicate back button from SinglePaneLayout
Overlay screens (UserProfileScreen, ThreadScreen) already render their
own back+title header. Remove the redundant SinglePaneHeader bar.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 11:36:46 +02:00
nrobi144 3c6c368582 refactor(search): extract thread-safe EventDeduplicator, unify dedup
Replace raw MutableSet with synchronized EventDeduplicator class.
Remove dual dedup in addNoteResults — trackRelayEvent now gates all
event processing. SearchScreen callbacks skip dupes early via return
value.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 11:36:39 +02:00
nrobi144 edf764709d fix: resolve conflicts with upstream PR #1789 merge
- Add missing commons domain files (BunkerLoginUseCase, NostrConnectLoginUseCase)
- Restore CoroutineScope in NostrSignerRemote for suspend decrypt call
- Update isolation test: upstream removed `since` filter (PR #1789)
- Add new INostrClient interface methods to TrackingNostrClient mock

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 10:35:56 +02:00
nrobi144 36efbd1544 fix(desktop): remove noisy debug logs and silence SLF4J warnings
Remove feedSub/contactList debug prints from FeedScreen, suppress
GiftWrapEvent decryption failure log (expected for others' wraps),
and add slf4j-nop to silence "No SLF4J providers" console warnings.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 10:20:19 +02:00
nrobi144 4d1d92db39 feat(desktop): add bunker heartbeat indicator to sidebar navigation
Pulsating green heart icon shows NIP-46 signer connection status in both
DeckSidebar and SinglePaneLayout NavigationRail. Tooltip displays last
ping time. SignerConnectionState moved to commons for KMP sharing.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 10:20:18 +02:00