Commit Graph

10325 Commits

Author SHA1 Message Date
Vitor Pamplona 7f4e1f153a Merge pull request #2014 from vitorpamplona/l10n_crowdin_translations
New Crowdin Translations
2026-03-29 20:17:43 -04:00
Crowdin Bot d9471f9531 New Crowdin translations by GitHub Action 2026-03-30 00:14:57 +00:00
Vitor Pamplona 5e20806229 Merge pull request #2015 from vitorpamplona/claude/implement-nip87-rendering-PBlES
Add NIP-87 Ecash support with Cashu and Fedimint event types
2026-03-29 20:13:32 -04:00
Vitor Pamplona f91f68a74e Merge pull request #2013 from vitorpamplona/claude/refactor-url-detector-FCLCA
Refactor URL detection and path normalization for clarity
2026-03-29 19:16:05 -04:00
Claude c4044858a9 feat: implement NIP-87 ecash mint discoverability
Add protocol support and UI rendering for NIP-87 which defines ecash
mint discovery via three event kinds: MintRecommendationEvent (38000),
CashuMintEvent (38172), and FedimintEvent (38173).

https://claude.ai/code/session_01JR2nFVPjPGG9jTV4Qq2PUW
2026-03-29 22:25:46 +00:00
David Kaspar a170335db8 Merge pull request #2012 from vitorpamplona/l10n_crowdin_translations
New Crowdin Translations
2026-03-29 21:36:21 +02:00
Crowdin Bot 59c18f2c75 New Crowdin translations by GitHub Action 2026-03-29 18:39:41 +00:00
David Kaspar 6613d1cacd Merge pull request #2011 from vitorpamplona/l10n_crowdin_translations
New Crowdin Translations
2026-03-29 20:38:25 +02:00
Crowdin Bot bed5f96f20 New Crowdin translations by GitHub Action 2026-03-29 14:53:06 +00:00
Vitor Pamplona c624293661 Merge branch 'main' of https://github.com/vitorpamplona/amethyst 2026-03-29 10:51:11 -04:00
Vitor Pamplona 9dc208deba Removing internal runBlockings 2026-03-29 10:43:38 -04:00
Vitor Pamplona decf7df2bb Merge pull request #2007 from davotoula/ci-build-stop-daemons-after-build
Added ./gradlew --stop (with if: always()) after the Gradle steps in both test and build-desktop jobs
2026-03-29 10:21:39 -04:00
Vitor Pamplona ebbcb603fb Fixes lazy on trimming service 2026-03-29 10:20:06 -04:00
Vitor Pamplona 8613ae4f31 Speeding up start by parallelizing access to the preference files before they are needed. 2026-03-29 10:17:51 -04:00
Vitor Pamplona 56510e4213 Merge pull request #2010 from vitorpamplona/claude/nip43-relay-members-dWO19
Add NIP-43 relay members support with UI screens
2026-03-29 10:17:29 -04:00
Vitor Pamplona cd17badaf4 Merge pull request #2008 from vitorpamplona/claude/add-nip-61-support-KTkuk
Add NIP-61 Nutzaps support with event types and tag handling
2026-03-29 10:17:18 -04:00
Vitor Pamplona a4ce8439de Merge branch 'main' into claude/add-nip-61-support-KTkuk 2026-03-29 10:17:11 -04:00
Vitor Pamplona 2c5f80f613 Merge pull request #2009 from vitorpamplona/claude/add-nip60-support-DOf8B
Add NIP-60 Cashu wallet and spending history event support
2026-03-29 10:16:46 -04:00
Claude cad0ff3d80 fix: Make add/remove member events support multiple p tags and add NIP-43 to NoteMaster
Changes memberPubKey() to memberPubKeys() returning a list of all p tags
in RelayAddMemberEvent and RelayRemoveMemberEvent. Updates renderers to
display multiple members. Adds NIP-43 event rendering to ThreadFeedView
(NoteMaster) alongside NoteCompose.

https://claude.ai/code/session_01PRqe4bBCb9u62oPh8u9sHx
2026-03-29 14:13:41 +00:00
Vitor Pamplona ae99700cef Updates media 2026-03-29 10:02:52 -04:00
Vitor Pamplona 03c692a8cf Merge pull request #2005 from davotoula/Introduce-log-level-filtering
Introduce log level filtering
2026-03-29 09:56:21 -04:00
David Kaspar efe0bde005 Merge pull request #2006 from vitorpamplona/l10n_crowdin_translations
New Crowdin Translations
2026-03-29 15:42:25 +02:00
davotoula 3f09150d80 Added ./gradlew --stop (with if: always()) after the Gradle steps in both test and build-desktop jobs 2026-03-29 15:41:40 +02:00
Crowdin Bot bc367b2a7b New Crowdin translations by GitHub Action 2026-03-29 13:40:34 +00:00
davotoula 380026c7be optimise imports 2026-03-29 15:38:51 +02:00
davotoula 0b3bce5bc2 fixes for sonar 2026-03-29 15:13:43 +02:00
davotoula c40c1ed383 perf: convert remaining 12 interpolated log calls to lambda overloads
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-29 13:07:34 +02:00
davotoula c17fb4641a feat: add find-non-lambda-logs skill for auditing log call hygiene
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-29 13:00:21 +02:00
davotoula 6d89de9444 refactor: simplify PlatformLog actuals and convert remaining interpolated log calls to lambdas
- Extract private log() helper in JVM and iOS PlatformLog to reduce
  copy-paste branching
- Fix JVM formatter to be private and non-nullable
- Convert 60+ interpolated Log.w/e/i calls to lambda overloads,
  including hot-path Filter.kt toJson() and LocalCache event processing

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-29 10:58:11 +02:00
davotoula 3b81731771 perf: convert 194 interpolated Log.d() calls to lambda overloads
Defers string construction until after the level check, avoiding
allocation when debug logging is filtered in release/benchmark builds.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-29 10:58:10 +02:00
davotoula 541b197a64 feat: add throwable support to Log.d/i and inline lambda overloads
- Add optional throwable parameter to d() and i() across all platforms
- Add inline lambda overloads for all log levels to defer message
  construction, avoiding string allocation when level is filtered
- Restore VoiceMessagePreview to pass throwable directly

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-29 10:56:18 +02:00
davotoula 250d89ca0a feat: set Log.minLevel in app entry points and migrate android.util.Log usages
- Set Log.minLevel based on BuildConfig.DEBUG in Amethyst.kt init
- Set Log.minLevel = DEBUG in Desktop Main.kt
- Migrate VideoCompressionHelper to quartz Log + LogLevel enum
- Migrate VoiceAnonymizer, VoiceMessagePreview, LiveStatusIndicator to quartz Log

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-29 10:56:18 +02:00
davotoula 25b2cb42d0 feat: convert Log from expect/actual to filtered wrapper over PlatformLog
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-29 10:56:18 +02:00
davotoula 65bc617222 feat: add PlatformLog actual implementations for all platforms
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-29 10:55:18 +02:00
davotoula 067938657f feat: add LogLevel enum and PlatformLog expect declaration
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-29 10:55:18 +02:00
Claude 72106ea478 feat: add NIP-61 Nutzaps protocol support in quartz
Implements NIP-61 (Nutzaps) event types following the NIP-88 structure pattern:
- NutzapEvent (kind 9321): P2PK-locked Cashu token payments with proof, mint URL, unit tags
- NutzapInfoEvent (kind 10019): Replaceable event for recipient preferences (mints, relays, P2PK pubkey)
- NutzapRedemptionEvent (kind 7376): Token redemption history with NIP-44 encrypted content
- TokenEvent (kind 7375): Unspent proof storage with NIP-44 encrypted content

https://claude.ai/code/session_013tQRvZXdyh5VD11xENpNE5
2026-03-29 04:37:54 +00:00
Claude 32324e5bbe feat: Add NIP-60 Cashu wallet support in quartz
Implements the NIP-60 specification for cashu-based wallets with four event types:
- CashuWalletEvent (kind:17375) - replaceable wallet definition with encrypted mints/privkey
- CashuTokenEvent (kind:7375) - unspent cashu proofs with NIP-44 encrypted JSON content
- CashuSpendingHistoryEvent (kind:7376) - transaction history with encrypted tag array
- CashuMintQuoteEvent (kind:7374) - optional mint quote state with NIP-40 expiration

Follows the same structural patterns as the NIP-88 polls implementation.

https://claude.ai/code/session_018UfHPzrQCAFMwB1zB1ftDM
2026-03-29 04:34:41 +00:00
Claude c3447e2a05 feat: Add @Preview annotations to NIP-43 UI components
Adds preview functions for RelayMemberEventCard variants (membership
list, add/remove member, join/leave request) and MembershipActions
states (not member, is member, join sent, leave sent).

https://claude.ai/code/session_01PRqe4bBCb9u62oPh8u9sHx
2026-03-29 04:22:33 +00:00
Claude a462221ca6 refactor: improve URL detector performance and readability
- Replace 6 regex operations in Url.removeDotSegments() with simple
  string operations (startsWith/indexOf) using a when-expression
- Remove regex-based dropLastSegment() in favor of StringBuilder with
  lastIndexOf
- Extract duplicated hex/octal/decimal parsing in DomainNameReader
  into shared parseNumericLiteral() helper
- Deduplicate scheme matching by unifying findValidScheme* methods
  into findSchemeSuffix() using regionMatches (avoids lowercase allocation)
- Extract readPath() validity check into isPathValid() to remove
  duplicated 5-line condition
- Extract trySchemeNoSlashesOrUserPass() from readScheme() to
  eliminate duplicated branch logic
- Restructure readCurrent() with when-expression and extract
  resetDomainCounters() helper

https://claude.ai/code/session_017oGieyaUiLCxehNJ5aMFDK
2026-03-29 04:08:58 +00:00
Claude b1b9707c5f feat: Implement NIP-43 relay access metadata and membership management
Adds full NIP-43 support with Quartz event classes (kinds 13534, 8000,
8001, 28934, 28935, 28936) following the nip88Polls structure pattern.
Includes relay membership list screen with join/leave actions and
NoteCompose rendering for NIP-43 events in the feed.

https://claude.ai/code/session_01PRqe4bBCb9u62oPh8u9sHx
2026-03-29 03:13:56 +00:00
Vitor Pamplona 48da76c6a3 Activates the decryption for all types of files if it matches the decryption url with the cipher info 2026-03-28 22:24:54 -04:00
Vitor Pamplona a096d62cfb Adds relay discovery to the node master rendering list 2026-03-28 22:19:56 -04:00
Vitor Pamplona 8702ec4d96 Adds a scroll to the settings page. 2026-03-28 20:22:16 -04:00
Vitor Pamplona 4b5405c6b7 Dynamically adjust the preferred server to the first one when the list changes and the current default is not in the list of servers. 2026-03-28 20:21:57 -04:00
Vitor Pamplona 589bb041b2 Fixes refactoring issues by Claude. 2026-03-28 19:58:04 -04:00
Vitor Pamplona ff9b619d26 Merge branch 'main' of https://github.com/vitorpamplona/amethyst
* 'main' of https://github.com/vitorpamplona/amethyst:
  fix: keep screen on during PiP playback and survive screen lock
  feat: add RelayDiscoveryEvent renderer for feed display
  feat: add OpenGraph preview to WebBookmark cards
  revert: keep INostrClient/NostrClient naming and restore onEose/isLive
  refactor: simplify NostrClient API for beginner-friendliness
2026-03-28 19:25:29 -04:00
Vitor Pamplona 14ff2fbf8c Sends Accept and Content-Type to the NIP86 request 2026-03-28 19:23:48 -04:00
Vitor Pamplona 7290f16d0d sorts pubkeys in the relay management and fixes issues on duplicated keys for the lazy column 2026-03-28 19:23:23 -04:00
Vitor Pamplona 567cfa33e8 Merge pull request #2000 from vitorpamplona/claude/add-relay-discovery-events-NqmlS
Add relay discovery event rendering UI component
2026-03-28 19:12:41 -04:00
Vitor Pamplona 31adfe80ff Merge pull request #1999 from vitorpamplona/claude/pip-wake-lock-investigation-XhK3D
Fix PiP video playback: keep screen on and improve lifecycle
2026-03-28 19:12:05 -04:00