Deploy: 2026-06-24 15:38:05

This commit is contained in:
Hamza-Ayed
2026-06-24 15:38:05 +03:00
parent a21ba8a058
commit 9c07db6f30

View File

@@ -66,22 +66,17 @@ async function startSession(session_key, webhook_url) {
const socketConfig = { const socketConfig = {
auth: { auth: {
creds: state.creds, creds: state.creds,
// Wrap keys with makeCacheableSignalKeyStore for fast in-memory
// Signal key access — this prevents E2EE key lookup failures
// that cause "Waiting for this message" on recipient devices
keys: makeCacheableSignalKeyStore(state.keys, logger), keys: makeCacheableSignalKeyStore(state.keys, logger),
}, },
printQRInTerminal: false, printQRInTerminal: false,
logger: logger, logger: logger,
browser: ['Flash Call OTP Gateway', 'Chrome', '120.0.0'], browser: ['Flash Call OTP Gateway', 'Chrome', '120.0.0'],
// Message retry counter cache — tracks how many times each message
// retry has been attempted, preventing infinite retry loops
msgRetryCounterCache, msgRetryCounterCache,
markOnlineOnConnect: true,
syncFullHistory: true,
getMessage: async (key) => { getMessage: async (key) => {
if (recentMessages.has(key.id)) { const compoundKey = `${key.remoteJid}:${key.id}`;
return recentMessages.get(key.id); return recentMessages.get(compoundKey) || recentMessages.get(key.id);
}
return undefined;
} }
}; };
if (version) socketConfig.version = version; if (version) socketConfig.version = version;
@@ -422,11 +417,17 @@ async function sendMessage(session_key, phone, message, mediaUrl = null, audioBa
} }
// Cache outbound messages for E2EE decryption retries // Cache outbound messages for E2EE decryption retries
// Use compound key (remoteJid:id) to match how Baileys queries getMessage
if (sentMsg && sentMsg.key && sentMsg.key.id && sentMsg.message) { if (sentMsg && sentMsg.key && sentMsg.key.id && sentMsg.message) {
const compoundKey = `${sentMsg.key.remoteJid}:${sentMsg.key.id}`;
recentMessages.set(compoundKey, sentMsg.message);
recentMessages.set(sentMsg.key.id, sentMsg.message); recentMessages.set(sentMsg.key.id, sentMsg.message);
if (recentMessages.size > 2000) { if (recentMessages.size > 5000) {
const firstKey = recentMessages.keys().next().value; const keys = recentMessages.keys();
recentMessages.delete(firstKey); for (let i = 0; i < 1000; i++) {
const key = keys.next().value;
if (key) recentMessages.delete(key);
}
} }
} }