Compare commits
merge into: ruicesar/InfiniteAPI:test/state-feb28-end
ruicesar/InfiniteAPI:master
ruicesar/InfiniteAPI:fix/restore-master-from-mar18
ruicesar/InfiniteAPI:master-archive-pre-restore-2026-05-01
ruicesar/InfiniteAPI:fix/use-mar4-base
ruicesar/InfiniteAPI:fix/silence-decrypt-error-spam
ruicesar/InfiniteAPI:test/revert-username-pr
ruicesar/InfiniteAPI:fix/decryption-fail-fast
ruicesar/InfiniteAPI:fix/libsignal-raw-jid-transaction-key
ruicesar/InfiniteAPI:feat/replace-circuit-breaker-with-bounded-retry
ruicesar/InfiniteAPI:perf/upsert-fire-and-forget-postwork
ruicesar/InfiniteAPI:fix/view-once-linked-device
ruicesar/InfiniteAPI:chore/reduce-decrypt-error-log-verbosity
ruicesar/InfiniteAPI:fix/inbound-latency-restore
ruicesar/InfiniteAPI:fix/history-sync-tctoken-parallel
ruicesar/InfiniteAPI:feat/tctoken-lifecycle-completion
ruicesar/InfiniteAPI:perf/history-sync-memory
ruicesar/InfiniteAPI:test/reconnection-sync-skip
ruicesar/InfiniteAPI:perf/early-ignore-jid
ruicesar/InfiniteAPI:feat/username-inbound-support
ruicesar/InfiniteAPI:fix/abprops-bad-request
ruicesar/InfiniteAPI:test/revert-to-pr380
ruicesar/InfiniteAPI:fix/remove-vo-raw-debug-logs
ruicesar/InfiniteAPI:test/state-with-dual-protocol
ruicesar/InfiniteAPI:test/state-pre-dual-protocol
ruicesar/InfiniteAPI:test/state-at-pr355
ruicesar/InfiniteAPI:fix/view-once-msmsg-fanout
ruicesar/InfiniteAPI:feat/call-signaling-upstream
ruicesar/InfiniteAPI:fix/respect-caller-provided-waveform
ruicesar/InfiniteAPI:feat/view-once-receive
ruicesar/InfiniteAPI:fix/newsletter-media-upload
ruicesar/InfiniteAPI:fix/bad-mac-retry-alignment
ruicesar/InfiniteAPI:test/state-mar19-after-lidpn
ruicesar/InfiniteAPI:fix/histsync-lid-improvements
ruicesar/InfiniteAPI:test/state-mar19-after-304-histsync
ruicesar/InfiniteAPI:test/state-mar19-after-303-past
ruicesar/InfiniteAPI:fix/past-participants-normalization
ruicesar/InfiniteAPI:fix/past-participants-history-sync
ruicesar/InfiniteAPI:fix/newsletter-wmex-query-ids
ruicesar/InfiniteAPI:test/state-mar18-after-297
ruicesar/InfiniteAPI:fix/carousel-send-render-clean
ruicesar/InfiniteAPI:claude/debug-lint-failures-ZWZLy
ruicesar/InfiniteAPI:test/state-mar16-after-pnlid
ruicesar/InfiniteAPI:fix/pn-lid-session-reuse
ruicesar/InfiniteAPI:test/state-mar16-before-pnlid
ruicesar/InfiniteAPI:fix/carousel-web-runtime-only
ruicesar/InfiniteAPI:fix/carousel-web-clean
ruicesar/InfiniteAPI:fix/carousel-web-render
ruicesar/InfiniteAPI:test/state-mar13-ack-mention
ruicesar/InfiniteAPI:claude/check-music-metadata-version-dTq2i
ruicesar/InfiniteAPI:test/state-mar7-after-carousel
ruicesar/InfiniteAPI:fix/carousel-working-minimal
ruicesar/InfiniteAPI:fix/carousel-web-biz-node
ruicesar/InfiniteAPI:fix/sticker-waba-alignment
ruicesar/InfiniteAPI:test/state-mar4-after-waba
ruicesar/InfiniteAPI:fix/signal-waba-alignment
ruicesar/InfiniteAPI:fix/tctoken-waba-alignment
ruicesar/InfiniteAPI:feat/android-browser-upstream
ruicesar/InfiniteAPI:fix/android-paircode-useragent
ruicesar/InfiniteAPI:feat/android-browser-v2
ruicesar/InfiniteAPI:fix/bad-mac-session-loop
ruicesar/InfiniteAPI:fix/lid-to-pn-normalization
ruicesar/InfiniteAPI:feat/call-signaling
ruicesar/InfiniteAPI:fix/platform-web-to-macos-405
ruicesar/InfiniteAPI:fix/fetch-version-timeout
ruicesar/InfiniteAPI:fix/normalise-reaction-key-remoteJid
ruicesar/InfiniteAPI:test/state-feb28-end
ruicesar/InfiniteAPI:perf/fix-message-delivery-latency
..
pull from: ruicesar/InfiniteAPI:perf/fix-message-delivery-latency
ruicesar/InfiniteAPI:master
ruicesar/InfiniteAPI:fix/restore-master-from-mar18
ruicesar/InfiniteAPI:master-archive-pre-restore-2026-05-01
ruicesar/InfiniteAPI:fix/use-mar4-base
ruicesar/InfiniteAPI:fix/silence-decrypt-error-spam
ruicesar/InfiniteAPI:test/revert-username-pr
ruicesar/InfiniteAPI:fix/decryption-fail-fast
ruicesar/InfiniteAPI:fix/libsignal-raw-jid-transaction-key
ruicesar/InfiniteAPI:feat/replace-circuit-breaker-with-bounded-retry
ruicesar/InfiniteAPI:perf/upsert-fire-and-forget-postwork
ruicesar/InfiniteAPI:fix/view-once-linked-device
ruicesar/InfiniteAPI:chore/reduce-decrypt-error-log-verbosity
ruicesar/InfiniteAPI:fix/inbound-latency-restore
ruicesar/InfiniteAPI:fix/history-sync-tctoken-parallel
ruicesar/InfiniteAPI:feat/tctoken-lifecycle-completion
ruicesar/InfiniteAPI:perf/history-sync-memory
ruicesar/InfiniteAPI:test/reconnection-sync-skip
ruicesar/InfiniteAPI:perf/early-ignore-jid
ruicesar/InfiniteAPI:feat/username-inbound-support
ruicesar/InfiniteAPI:fix/abprops-bad-request
ruicesar/InfiniteAPI:test/revert-to-pr380
ruicesar/InfiniteAPI:fix/remove-vo-raw-debug-logs
ruicesar/InfiniteAPI:test/state-with-dual-protocol
ruicesar/InfiniteAPI:test/state-pre-dual-protocol
ruicesar/InfiniteAPI:test/state-at-pr355
ruicesar/InfiniteAPI:fix/view-once-msmsg-fanout
ruicesar/InfiniteAPI:feat/call-signaling-upstream
ruicesar/InfiniteAPI:fix/respect-caller-provided-waveform
ruicesar/InfiniteAPI:feat/view-once-receive
ruicesar/InfiniteAPI:fix/newsletter-media-upload
ruicesar/InfiniteAPI:fix/bad-mac-retry-alignment
ruicesar/InfiniteAPI:test/state-mar19-after-lidpn
ruicesar/InfiniteAPI:fix/histsync-lid-improvements
ruicesar/InfiniteAPI:test/state-mar19-after-304-histsync
ruicesar/InfiniteAPI:test/state-mar19-after-303-past
ruicesar/InfiniteAPI:fix/past-participants-normalization
ruicesar/InfiniteAPI:fix/past-participants-history-sync
ruicesar/InfiniteAPI:fix/newsletter-wmex-query-ids
ruicesar/InfiniteAPI:test/state-mar18-after-297
ruicesar/InfiniteAPI:fix/carousel-send-render-clean
ruicesar/InfiniteAPI:claude/debug-lint-failures-ZWZLy
ruicesar/InfiniteAPI:test/state-mar16-after-pnlid
ruicesar/InfiniteAPI:fix/pn-lid-session-reuse
ruicesar/InfiniteAPI:test/state-mar16-before-pnlid
ruicesar/InfiniteAPI:fix/carousel-web-runtime-only
ruicesar/InfiniteAPI:fix/carousel-web-clean
ruicesar/InfiniteAPI:fix/carousel-web-render
ruicesar/InfiniteAPI:test/state-mar13-ack-mention
ruicesar/InfiniteAPI:claude/check-music-metadata-version-dTq2i
ruicesar/InfiniteAPI:test/state-mar7-after-carousel
ruicesar/InfiniteAPI:fix/carousel-working-minimal
ruicesar/InfiniteAPI:fix/carousel-web-biz-node
ruicesar/InfiniteAPI:fix/sticker-waba-alignment
ruicesar/InfiniteAPI:test/state-mar4-after-waba
ruicesar/InfiniteAPI:fix/signal-waba-alignment
ruicesar/InfiniteAPI:fix/tctoken-waba-alignment
ruicesar/InfiniteAPI:feat/android-browser-upstream
ruicesar/InfiniteAPI:fix/android-paircode-useragent
ruicesar/InfiniteAPI:feat/android-browser-v2
ruicesar/InfiniteAPI:fix/bad-mac-session-loop
ruicesar/InfiniteAPI:fix/lid-to-pn-normalization
ruicesar/InfiniteAPI:feat/call-signaling
ruicesar/InfiniteAPI:fix/platform-web-to-macos-405
ruicesar/InfiniteAPI:fix/fetch-version-timeout
ruicesar/InfiniteAPI:fix/normalise-reaction-key-remoteJid
ruicesar/InfiniteAPI:test/state-feb28-end
ruicesar/InfiniteAPI:perf/fix-message-delivery-latency
2 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
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> |
||
|
|
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> |