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:
committed by
Peter Steinberger
parent
490bbd10fc
commit
9e9f2babeb
@@ -24,6 +24,7 @@ import { runSignalSseLoop } from "./sse-reconnect.js";
|
|||||||
|
|
||||||
type SignalEnvelope = {
|
type SignalEnvelope = {
|
||||||
sourceNumber?: string | null;
|
sourceNumber?: string | null;
|
||||||
|
sourceUuid?: string | null;
|
||||||
sourceName?: string | null;
|
sourceName?: string | null;
|
||||||
timestamp?: number | null;
|
timestamp?: number | null;
|
||||||
dataMessage?: SignalDataMessage | null;
|
dataMessage?: SignalDataMessage | null;
|
||||||
@@ -319,9 +320,9 @@ export async function monitorSignalProvider(
|
|||||||
envelope.dataMessage ?? envelope.editMessage?.dataMessage;
|
envelope.dataMessage ?? envelope.editMessage?.dataMessage;
|
||||||
if (!dataMessage) return;
|
if (!dataMessage) return;
|
||||||
|
|
||||||
const sender = envelope.sourceNumber?.trim();
|
const sender = envelope.sourceNumber?.trim() || envelope.sourceUuid?.trim();
|
||||||
if (!sender) return;
|
if (!sender) return;
|
||||||
if (account && normalizeE164(sender) === normalizeE164(account)) {
|
if (account && envelope.sourceNumber && normalizeE164(envelope.sourceNumber) === normalizeE164(account)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
const groupId = dataMessage.groupInfo?.groupId ?? undefined;
|
const groupId = dataMessage.groupInfo?.groupId ?? undefined;
|
||||||
|
|||||||
Reference in New Issue
Block a user