Deploy: 2026-06-24 15:38:05
This commit is contained in:
@@ -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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user