fix: histsync LID improvements — raw_id mapping, prekeys, keepalive j… (#304)
* fix: histsync LID improvements — raw_id mapping, prekeys, keepalive jitter, CDN DELETE * fix: prekey pool strategy — 800 initial, top-up to 800 when below 200 - INITIAL_PREKEY_COUNT: 812 → 800 (rounded, matches WA Business ~812 from CDP capture) - MIN_PREKEY_COUNT: 25 → 200 (replenishment trigger threshold) - uploadPreKeysToServerIfRequired: top-up to INITIAL_PREKEY_COUNT instead of uploading a flat MIN_PREKEY_COUNT — restores full 800-key pool on each replenish - handleEncryptNotification: same top-up logic (INITIAL_PREKEY_COUNT - count) so server notification path also restores to 800, not just adds 200 uploadPreKeys(5) in error recovery path intentionally left unchanged.
This commit is contained in:
+14
-2
@@ -15,7 +15,7 @@ import {
|
||||
import { toNumber } from './generics'
|
||||
import type { ILogger } from './logger.js'
|
||||
import { normalizeMessageContent } from './messages'
|
||||
import { downloadContentFromMessage } from './messages-media'
|
||||
import { downloadContentFromMessage, getUrlFromDirectPath } from './messages-media'
|
||||
|
||||
const inflatePromise = promisify(inflate)
|
||||
|
||||
@@ -423,7 +423,19 @@ export const downloadAndProcessHistorySyncNotification = async (
|
||||
historyMsg = await downloadHistory(msg, options)
|
||||
}
|
||||
|
||||
return processHistoryMessage(historyMsg, logger)
|
||||
const result = processHistoryMessage(historyMsg, logger)
|
||||
|
||||
// Mirror WA Desktop behaviour: DELETE the CDN blob only after processing succeeds.
|
||||
// Doing this earlier (e.g. inside downloadHistory) risks permanent history loss if
|
||||
// processing throws — the server copy would be gone and retry after reconnect would fail.
|
||||
if (msg.directPath) {
|
||||
const cdnUrl = getUrlFromDirectPath(msg.directPath)
|
||||
fetch(cdnUrl, { ...options, method: 'DELETE' }).catch(() => {
|
||||
// non-fatal — server will expire it anyway
|
||||
})
|
||||
}
|
||||
|
||||
return result
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user