fix(signal): use sourceUuid as fallback when sourceNumber is null

Users without a visible phone number (like some Signal users)
were being silently dropped. Now falls back to UUID for sender ID.

- Add sourceUuid to SignalEnvelope type
- Use sourceUuid when sourceNumber is not available
- Only check against bot account when sourceNumber exists (avoid UUID comparison issues)
This commit is contained in:
Kasper Neist
2026-01-08 21:39:06 +01:00
committed by Peter Steinberger
parent 490bbd10fc
commit 9e9f2babeb

View File

@@ -24,6 +24,7 @@ import { runSignalSseLoop } from "./sse-reconnect.js";
type SignalEnvelope = {
sourceNumber?: string | null;
sourceUuid?: string | null;
sourceName?: string | null;
timestamp?: number | null;
dataMessage?: SignalDataMessage | null;
@@ -319,9 +320,9 @@ export async function monitorSignalProvider(
envelope.dataMessage ?? envelope.editMessage?.dataMessage;
if (!dataMessage) return;
const sender = envelope.sourceNumber?.trim();
const sender = envelope.sourceNumber?.trim() || envelope.sourceUuid?.trim();
if (!sender) return;
if (account && normalizeE164(sender) === normalizeE164(account)) {
if (account && envelope.sourceNumber && normalizeE164(envelope.sourceNumber) === normalizeE164(account)) {
return;
}
const groupId = dataMessage.groupInfo?.groupId ?? undefined;