Renato Alcara
bedb21fa1b
Revert "fix: add blank line before line 1893 to satisfy linting rules"
...
This reverts commit eb84424142 .
2026-04-04 00:33:16 -03:00
Renato Alcara
eb84424142
fix: add blank line before line 1893 to satisfy linting rules
2026-03-15 21:16:08 -03:00
Renato Alcara
49241af14f
Merge branch 'master' into feat/call-signaling-upstream
2026-03-13 20:53:22 -03:00
João Lucas
c4e5d1262a
Fix ack handling ( #2373 )
...
* fix: ack handling to match wa web
* fix: prevent duplicate ack on message errors
2026-03-13 21:45:49 +02:00
Renato Alcara
83a166f1cc
style: fix CRLF line endings and prettier formatting
...
Convert CRLF to LF line endings and apply prettier auto-fix
to pass CI lint checks.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-04 13:17:01 -03:00
Renato Alcara
67b578db33
feat: complete WhatsApp call signaling (voice, video, call links)
...
Implements comprehensive call signaling based on real WhatsApp Android
protocol captures via Frida dynamic instrumentation (v2.26).
Voice calls: offerCall, acceptCall, preacceptCall, rejectCall, terminateCall,
sendRelayLatency, sendTransport, sendCallDuration
Video calls: sendVideoState, sendEncRekey, muteCall, sendHeartbeat
Call links: createCallLink, queryCallLink, joinCallLink
Enhanced handleCall to process multi-children stanzas (e.g. transport +
mute_v2 arriving together) and added CB:relay handler for top-level
relay stanzas carrying TURN server info.
Inspired by WhiskeySockets/Baileys#2375 — verified and corrected against
real protocol captures.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-01 15:04:45 -03:00
João Lucas
7a5b090616
fix: request placeholder resend for messages without encryption (CTWAads) ( #2334 )
...
* fix: request placeholder resend for messages without encryption (CTWA ads)
* fix: implement placeholder resend cache management and metadata preservation
2026-02-11 11:56:23 +02:00
vini
23156c833e
feat(call): add caller phone number to offer call event ( #2190 )
2026-02-11 02:11:16 +02:00
João Lucas
b5c174111f
feat: replace async crypto with sync Rust WASM for app state sync ( #2315 )
...
* feat: replace async crypto with sync Rust WASM for app state sync
* fix: remove unecessary buffer copying
* fix: update whatsapp-rust-bridge to version 0.5.2 and refactor async calls to sync. HKDF and MD5 in rust
2026-02-05 16:06:47 +02:00
João Lucas de Oliveira Lopes
92d4198ff1
fix: skip retry for expired status messages over 24 hours old ( #2280 )
2026-01-22 14:55:29 +02:00
João Lucas de Oliveira Lopes
5cbad3170b
Fix connection showing "Online" but disconnected ( #2132 ) ( #2264 )
...
* fix(messages): handle identity change notifications correctly (#2132 )
* fix: tests and linting, add a helper like waweb
2026-01-22 14:54:10 +02:00
Rajeh Taher
d4e5b4167d
history: fortify contact data
2026-01-22 14:13:33 +02:00
Luiz Braga
32134a870e
chore: Add messageTimestamp to message updates in messages-recv when receiving a message status update ( #2277 )
2026-01-20 12:37:34 +02:00
Rajeh Taher
83e0f22af8
messages-recv: decrease PDO response timeout
2026-01-18 01:34:39 +02:00
YonkoSam
1408499d7c
moved retryCount before validating the session ( #2167 )
2026-01-18 01:11:10 +02:00
Matheus Filype
b7960dbb9a
feat: Optimize Offline Node Processing with Batching and Event Loop Yielding ( #2138 )
...
* fix: improve message resend logic by adding checks for message IDs
* Revert "fix: improve message resend logic by adding checks for message IDs"
This reverts commit c03f9d8e6fc6cbfbb9d1f8f67c169700e704213d.
* fix(messages-recv): improve offline node processing and error handling
* feat: improve offline node processing by yielding to event loop
2025-12-12 06:50:18 +02:00
YonkoSam
1e6f65cf5e
fix Memory leak in makeMutex - Promise never gets garbage collected ( #2151 )
...
* Memory leak in makeMutex - Promise never gets garbage collected
Hey, I've been debugging a memory leak in my application and traced it back to the makeMutex implementation.
The current implementation chains promises indefinitely without ever breaking the chain:
Every call to mutex() creates a new Promise that awaits the previous task, then becomes the new task. The problem is the old promises never get released because each one holds a reference to the previous through the closure.
What I found
Took a heap snapshot after running for a while and found hundreds of Promises from make-mutex.js holding ~15MB and growing. The retainer graph shows a long chain of Promises all pointing back to each other.
Since processingMutex handles every incoming message/notification, this chain grows constantly and never shrinks.
This keeps the same mutex behavior but lets the GC clean up old promises every 50 tasks instead of holding them forever.
* Refactor makeMutex to use AsyncMutex directly
* lint
* revert
2025-12-12 04:35:24 +02:00
Matheus Filype
829fa8d601
feat: Mutex redesign - isolate event processing for better ordering and throughput ( #2137 )
...
* fix: improve message resend logic by adding checks for message IDs
* Revert "fix: improve message resend logic by adding checks for message IDs"
This reverts commit c03f9d8e6fc6cbfbb9d1f8f67c169700e704213d.
* fix: introduce separate mutexes for message, receipt, app state patch, and notification processing
* fix: remove unused processing mutex for notifications
2025-12-12 04:34:59 +02:00
João Lucas de Oliveira Lopes
674f116b00
fix(messages-recv): cancel pending phone requests for message retries ( #2147 )
2025-12-05 23:41:14 +02:00
YonkoSam
96e4e04239
Await cache checks for message resend logic ( #2136 )
2025-12-05 23:40:38 +02:00
Rajeh Taher
f46e8b118c
messages-recv: handle newsletter and unavailable message acks
2025-11-21 17:35:46 +02:00
Rajeh Taher
23f1268918
messages-recv: remove outdated case for privacy_token
2025-11-21 17:09:06 +02:00
Rajeh Taher
129df47fbb
revert #2010
2025-11-19 16:57:22 +02:00
Rajeh Taher
e3cc1acec0
messages-recv: ignore only view once messages
2025-11-19 16:54:57 +02:00
Rajeh Taher
247c717881
messages, auth: rename 'contacts-tc-token' to tctoken
2025-11-19 16:35:18 +02:00
Rajeh Taher
50d410d117
chore: lint
2025-11-19 16:25:56 +02:00
vini
a70e4da1c4
feat(signal): better parity with whatsapp web ( #1967 )
2025-11-19 15:20:49 +02:00
Cassio Santos
5c456e514e
fix: cannot send message on new Whatsapp Business limited accounts ( #2080 )
...
* fix: cannot send message on new Whatsapp Business limited accounts
* chore: add woraround to resend the message on 475 errors
* fix: lint
* fix: add handler
* fix: lint
* Update src/Socket/messages-send.ts
---------
Co-authored-by: Rajeh Taher <rajeh@reforward.dev >
2025-11-19 15:18:19 +02:00
vini
b4863b624e
refactor(retry): improve message encryption and retry logic ( #2055 )
2025-11-19 15:13:51 +02:00
João Lucas de Oliveira Lopes
9b012baa5c
fix: suppress receipts for newsletter messages to prevent disconnection ( #2071 )
2025-11-19 15:13:03 +02:00
João Lucas de Oliveira Lopes
e5f820d119
fix: gracefully handle unavailable view-once messages and improve log error ( #2070 )
2025-11-19 15:12:28 +02:00
Rajeh Taher
29318cf6c2
chore: lint and re-organize
2025-10-20 00:37:37 +03:00
Rajeh Taher
cc3cd17392
cleanup: remove string lid / jid refs and improve hosted support
2025-10-20 00:05:54 +03:00
Rajeh Taher
928fa6ac66
messages-recv: simplify retry logic + re-do acks
2025-10-18 21:02:58 +03:00
Rajeh Taher
07536dedfc
process-message: check fromMe properly in message addons
2025-10-18 20:28:58 +03:00
Rajeh Taher
e41a66b3c4
libsignal,lid-mapping, etc.: Partially fix "No sessions" on hosted JIDs
2025-10-16 18:31:01 +03:00
vini
20c43d1d3c
chore: remove unnecessary info logs ( #1893 )
2025-10-11 13:45:38 +03:00
Rajeh Taher
f56293365f
chore: avoid npm warnings (update conventional-changelog)
2025-10-08 19:46:39 +03:00
Rajeh Taher
54db127303
defaults,utils: Minimize vectors for automation detection
2025-10-07 20:29:47 +03:00
Rajeh Taher
acc5111792
group events: fix serialization issue
2025-10-07 20:17:07 +03:00
Rajeh Taher
c5b0001b61
*group: parse @lids properly when processing group notifications
...
*This commit is breaking, it changes the format of participants in group-participants.update.
2025-10-05 23:56:14 +03:00
Rajeh Taher
09263aa3d2
libsignal: Process @hosted conversions to @hosted.lid
2025-10-05 22:51:13 +03:00
Rajeh Taher
dd93b641c9
Signal, messages-recv, jid-utils: Handle ADJIDs properly in Signal
2025-10-05 19:09:28 +03:00
Rajeh Taher
38e0f2c0e6
Signal, messages-recv: Fix previous commit, fix log
2025-10-04 15:30:04 +03:00
Rajeh Taher
334977f983
general: revert #1665
2025-10-03 18:14:30 +03:00
Rajeh Taher
37d729b33a
messages-recv, decode-wa-message: handle storing new pairs better + lint
2025-10-03 01:17:37 +03:00
Rajeh Taher
50b36ece3b
decode-wa-message, process-message: Fix @hosted lids processing
2025-10-03 00:22:57 +03:00
Rajeh Taher
39541cc162
messages: No longer send <ack>s on successful decrypt + fix lid acks
2025-10-02 23:30:28 +03:00
Gustavo Quadri
ae456cb342
fix: send message speed, lid logic, remove messages-send useless functions ( #1794 )
...
* fix: remove redundant migration
* fix: remove deduplicatelidpnjids
* fix: assertsessions complexity
* fix: assertsessions call
* fix: remove getencryptionjid
* fix: add wirejid to injecte2esession, remove libsignal lid migration
* fix: logger lid-mapping
* fix: injecte2esession decoded approach
* fix: changes made by @AstroX11
* fix: lint
* fix: lint
* fix: lint
* Revert "fix: injecte2esession decoded approach"
This reverts commit 4e368296ed084398b8a173ec117dc2478e481748.
* fix: centralize getlidforpn calls in messages-send
* fix: add resolvechunklids to signal
* fix: remove useless arrays
* fix: assertsessions logic
* fix: lint
* Revert "fix: assertsessions logic"
This reverts commit 65b0730891c91573edcab1c96af010db54382fba.
* fix: remove onwhatsapp fallback to prevent rate limit, migrate sessions when lid-map is created, new migration logic and user devices key
* fix: migrate session devices, socket creation
* fix: add back decryptionjid validation
* fix: add resolveSignalAddress to get lid
* fix: type error migration
* fix: lint
* fix: device level cache, proposed changes
2025-09-26 06:53:15 +03:00
João Lucas de Oliveira Lopes
3b46d43beb
fix: harden Protobuf Deserialization and Refactor Utilities ( #1820 )
...
* refactor: reorganize browser utility functions and improve buffer handling
* fix: harden protobuf deserialization and clean up code
* refactor: simplify data handling in GroupCipher and SenderKey classes
* fix: Ensure consistent Buffer hydration and remove redundant code
* refactor: update decodeAndHydrate calls to use proto types for improved type safety
2025-09-26 04:45:30 +03:00