Compare commits

..

3 Commits

Author SHA1 Message Date
Renato Alcara 2ba7e24842 fix: add try/catch to delayed PreKey deletion to prevent unhandled rejection
The setTimeout async callback in removePreKey could cause unhandled promise
rejection if the keystore was destroyed (connection closed) before the
5-min grace period expired.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 00:49:04 -03:00
Renato Alcara 392b302836 fix: remove unused jidDecode import from decode-wa-message.ts
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 00:42:05 -03:00
Renato Alcara 74fc289cd8 fix(signal): align Signal Protocol handling with WABA Android behavior
7 corrections based on Frida reverse-engineering of WhatsApp Business Android:

1. resolveCanonicalJid: PN→LID resolution for transaction lock keys (prevent race conditions)
2. Retain PN session during LID migration (avoid No Session errors)
3. Delayed PreKey deletion with 5-min grace period (prevent Invalid PreKey ID races)
4. Surgical session cleanup: only delete the specific corrupted device, not all devices
5. Identity dual storage: save identity key in both LID and PN addresses
6. MAC error cooldown reduced 10s→1s (faster recovery, aligned with WABA)
7. Allow session recreation on first retry (retryCount >= 1 instead of > 1)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 00:23:23 -03:00
2 changed files with 2 additions and 2 deletions
+1 -1
View File
@@ -1,7 +1,7 @@
syntax = "proto3";
package proto;
/// WhatsApp Version: 2.3000.1034427372
/// WhatsApp Version: 2.3000.1034302344
message ADVDeviceIdentity {
optional uint32 rawId = 1;
+1 -1
View File
@@ -1 +1 @@
{"version": [2, 3000, 1034427372]}
{"version":[2,3000,1034382497]}