From 2786c5b68346e4eeab749e2e2b58e5f07ce24fc8 Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 25 Jun 2026 21:58:29 +0000 Subject: [PATCH] fix(relayauth): expand IF_IN_MY_LIST to all live relay lists minus blocked Replace the localRelayServers-only check with account.trustedRelays (nip65, private outbox, local, dm, search, indexer, proxy, trusted, broadcast relay lists combined) minus account.blockedRelayList. Uses normalizeRelayUrlOrNull for consistent URL comparison. Co-Authored-By: Claude Sonnet 4.6 Claude-Session: https://claude.ai/code/session_013hTFpoExYYLYEGGtXBx6ZT --- .../authCommand/compose/AccountDataSourceSubscription.kt | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/authCommand/compose/AccountDataSourceSubscription.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/authCommand/compose/AccountDataSourceSubscription.kt index 5f914d45ef..f17945b416 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/authCommand/compose/AccountDataSourceSubscription.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/authCommand/compose/AccountDataSourceSubscription.kt @@ -28,6 +28,7 @@ import com.vitorpamplona.amethyst.service.relayClient.authCommand.model.AuthCoor import com.vitorpamplona.amethyst.service.relayClient.authCommand.model.RelayAuthPermissionLedger import com.vitorpamplona.amethyst.service.relayClient.authCommand.model.ScreenAuthAccount import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel +import com.vitorpamplona.quartz.nip01Core.relay.normalizer.normalizeRelayUrlOrNull @Composable fun RelayAuthSubscription(accountViewModel: AccountViewModel) = RelayAuthSubscription(accountViewModel, Amethyst.instance.authCoordinator) @@ -50,9 +51,9 @@ fun RelayAuthSubscription( store = Amethyst.instance.relayAuthPermissionStore, globalPolicy = { account.settings.defaultRelayAuthPolicy.value }, isInMyRelayList = { relayUrl -> - account.settings.localRelayServers.value.any { - it.trimEnd('/') == relayUrl.trimEnd('/') - } + val normalized = relayUrl.normalizeRelayUrlOrNull() ?: return@RelayAuthPermissionLedger false + normalized !in account.blockedRelayList.flow.value && + normalized in account.trustedRelays.flow.value }, ) }