From 0cd16ff3589e7f2b738cf5a18b7436e2150cdf93 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alejandro=20Guti=C3=A9rrez?= <35082514+alezmad@users.noreply.github.com> Date: Mon, 6 Apr 2026 18:34:09 +0100 Subject: [PATCH] fix: exclude sender only for broadcasts, not direct messages The sender exclusion filter (excludeSenderSessionPubkey) was blocking delivery of ALL messages from the sender, including direct messages to other peers. Now only excludes on broadcast (target_spec = '*'). Co-Authored-By: Claude Opus 4.6 (1M context) --- apps/broker/src/broker.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/broker/src/broker.ts b/apps/broker/src/broker.ts index bed7cd0..4e29fd4 100644 --- a/apps/broker/src/broker.ts +++ b/apps/broker/src/broker.ts @@ -1337,7 +1337,7 @@ export async function drainForMember( AND delivered_at IS NULL AND priority::text IN (${priorityList}) AND (target_spec = ${memberPubkey} OR target_spec = '*'${sessionPubkey ? sql` OR target_spec = ${sessionPubkey}` : sql``} OR target_spec IN (${groupTargetList})) - ${excludeSenderSessionPubkey ? sql`AND (sender_session_pubkey IS NULL OR sender_session_pubkey != ${excludeSenderSessionPubkey})` : sql``} + ${excludeSenderSessionPubkey ? sql`AND NOT (target_spec IN ('*') AND sender_session_pubkey = ${excludeSenderSessionPubkey})` : sql``} ORDER BY created_at ASC, id ASC FOR UPDATE SKIP LOCKED )