From 69d01ca89cf8510ade56d7f18f14739d8078718d Mon Sep 17 00:00:00 2001 From: Kyle Crommett Date: Mon, 1 Dec 2025 16:09:20 -0800 Subject: [PATCH] updates --- src/twilio/monitor.ts | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/twilio/monitor.ts b/src/twilio/monitor.ts index 58bae951f..8e877dab9 100644 --- a/src/twilio/monitor.ts +++ b/src/twilio/monitor.ts @@ -100,6 +100,9 @@ export async function monitorTwilio( } } +// Track all seen message SIDs to avoid re-processing +const seenMessageSids = new Set(); + async function handleMessages( messages: ListedMessage[], client: ReturnType, @@ -109,6 +112,14 @@ async function handleMessages( ) { for (const m of messages) { if (!m.sid) continue; + // Skip messages we've already seen/logged + if (seenMessageSids.has(m.sid)) continue; + seenMessageSids.add(m.sid); + // Limit set size to prevent memory leak + if (seenMessageSids.size > 1000) { + const oldestSids = Array.from(seenMessageSids).slice(0, 500); + oldestSids.forEach((sid) => seenMessageSids.delete(sid)); + } if (lastSeenSid && m.sid === lastSeenSid) break; // stop at previously seen logDebug(`[${m.sid}] ${m.from ?? "?"} -> ${m.to ?? "?"}: ${m.body ?? ""}`); if (m.direction !== "inbound") continue;