updates
This commit is contained in:
parent
66dcf334e5
commit
69d01ca89c
@ -100,6 +100,9 @@ export async function monitorTwilio(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Track all seen message SIDs to avoid re-processing
|
||||||
|
const seenMessageSids = new Set<string>();
|
||||||
|
|
||||||
async function handleMessages(
|
async function handleMessages(
|
||||||
messages: ListedMessage[],
|
messages: ListedMessage[],
|
||||||
client: ReturnType<typeof createClient>,
|
client: ReturnType<typeof createClient>,
|
||||||
@ -109,6 +112,14 @@ async function handleMessages(
|
|||||||
) {
|
) {
|
||||||
for (const m of messages) {
|
for (const m of messages) {
|
||||||
if (!m.sid) continue;
|
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
|
if (lastSeenSid && m.sid === lastSeenSid) break; // stop at previously seen
|
||||||
logDebug(`[${m.sid}] ${m.from ?? "?"} -> ${m.to ?? "?"}: ${m.body ?? ""}`);
|
logDebug(`[${m.sid}] ${m.from ?? "?"} -> ${m.to ?? "?"}: ${m.body ?? ""}`);
|
||||||
if (m.direction !== "inbound") continue;
|
if (m.direction !== "inbound") continue;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user