fix: address PR #305 review comments — Origin header, lowServerCount threshold, keepalive guard
- history.ts: add Origin: DEFAULT_ORIGIN to CDN DELETE request headers — the download path injects it internally but options does not carry it - socket.ts: fix lowServerCount comparison — was preKeyCount <= topUpAmount which triggered uploads even when above MIN_PREKEY_COUNT (e.g. 250 prekeys → topUp=550 → 250<=550=true → unnecessary upload). Now uses correct threshold: preKeyCount < MIN_PREKEY_COUNT - socket.ts: guard scheduleNextKeepAlive() with !closed check to prevent orphan timers when end() was called concurrently on a different path Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -786,14 +786,15 @@ export const makeSocket = (config: SocketConfig) => {
|
||||
try {
|
||||
let count = 0
|
||||
const preKeyCount = await getAvailablePreKeysOnServer()
|
||||
if (preKeyCount === 0) count = INITIAL_PREKEY_COUNT
|
||||
else count = Math.max(0, INITIAL_PREKEY_COUNT - preKeyCount)
|
||||
// How many to upload: top-up to INITIAL_PREKEY_COUNT from whatever remains on server
|
||||
count = Math.max(0, INITIAL_PREKEY_COUNT - preKeyCount)
|
||||
const { exists: currentPreKeyExists, currentPreKeyId } = await verifyCurrentPreKeyExists()
|
||||
|
||||
logger.info(`${preKeyCount} pre-keys found on server`)
|
||||
logger.info(`Current prekey ID: ${currentPreKeyId}, exists in storage: ${currentPreKeyExists}`)
|
||||
|
||||
const lowServerCount = preKeyCount <= count
|
||||
// Trigger upload when below the replenishment threshold, not when count < topUp amount
|
||||
const lowServerCount = preKeyCount < MIN_PREKEY_COUNT
|
||||
const missingCurrentPreKey = !currentPreKeyExists && currentPreKeyId > 0
|
||||
|
||||
const shouldUpload = lowServerCount || missingCurrentPreKey
|
||||
@@ -1309,7 +1310,10 @@ export const makeSocket = (config: SocketConfig) => {
|
||||
logger.warn('keep alive called when WS not open')
|
||||
}
|
||||
|
||||
scheduleNextKeepAlive()
|
||||
// Do not reschedule once shutdown has started (closed set by end() on any concurrent path)
|
||||
if (!closed) {
|
||||
scheduleNextKeepAlive()
|
||||
}
|
||||
}
|
||||
|
||||
scheduleNextKeepAlive()
|
||||
|
||||
Reference in New Issue
Block a user