Compare commits

..

2 Commits

Author SHA1 Message Date
Renato Alcara cfa74127a1 fix: address PR review — stale comments, mutex key normalization, test sync
- Update stale comments in event-buffer.ts (15s→3s) and socket.ts (5s→2s)
  to reflect actual timeout values
- Normalize mutex keys with jidNormalizedUser() for receiptMutex and
  notificationMutex to handle device suffix variants (e.g. user:5@s.whatsapp.net)
- Update offline-buffer-timeout.test.ts to match new 2s timeout value
  (was hardcoded at 5s, causing test/source divergence)
- Rejected suggestion to use attrs.id as fallback (false positive — attrs.id
  is a message ID, not a chat identifier; 'unknown' is the correct catch-all)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 17:21:11 -03:00
Renato Alcara ce38e7836d perf: reduce message delivery latency across all connection scenarios
Surgical optimizations to eliminate message delivery delays after QR scan,
pm2 restart, and code updates:

Buffer/Flush:
- bufferTimeoutMs: 5s→3s (safety auto-flush cap)
- maxBufferTimeoutMs: 8s→3s (adaptive timeout ceiling)
- flushDebounceMs: 100ms→10ms (createBufferedFunction debounce)
- OFFLINE_BUFFER_TIMEOUT_MS: 5s→2s (first-connection buffer)
- AwaitingInitialSync: 4s→2s (history sync wait)

Mutex parallelism:
- receiptMutex: global→keyed by remoteJid (parallel receipt processing)
- notificationMutex: global→keyed by remoteJid (parallel notification processing)

Delay reduction:
- retryRequestDelayMs: 250ms→150ms
- transactionOpts.delayBetweenTriesMs: 3s→1s

Offline processing:
- BATCH_SIZE: 10→25 (fewer event loop yields)

Expected impact: QR scan worst-case 8s→2s, pm2 restart 100ms→10ms.
All existing customizations preserved (Circuit Breaker, Prometheus,
TcToken, CTWA Recovery, sanitizeCallerPn, Session Cleanup, LID Mapping,
Identity Key cache, clearRoutingInfoOnStart, wasm-bridge).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 17:07:13 -03:00

Diff Content Not Available