Renato Alcara
a9e926b907
fix: correct w:mex QueryIds and response fields for newsletter operations ( #302 )
...
Reverse-engineered from WA Web JS bundle and live CDP interception.
All QueryIds and XWAPaths were wrong; mute/unmute also had wrong variables structure.
- FOLLOW QueryId: 7871414976211147 → 24404358912487870
- UNFOLLOW QueryId: 7238632346214362 → 9767147403369991
- MUTE QueryId: 29766401636284406 → 31938993655691868
- UNMUTE QueryId: 9864994326891137 → 31938993655691868 (same mutation as MUTE)
- xwa2_newsletter_follow: 'xwa2_newsletter_follow' → 'xwa2_newsletter_join_v2'
- xwa2_newsletter_unfollow: 'xwa2_newsletter_unfollow' → 'xwa2_newsletter_leave_v2'
- xwa2_newsletter_mute_v2: 'xwa2_newsletter_mute_v2' → 'xwa2_newsletter_update_user_setting'
- xwa2_newsletter_unmute_v2: 'xwa2_newsletter_unmute_v2' → 'xwa2_newsletter_update_user_setting'
- newsletterMute/Unmute variables: flat {newsletter_id} → {input: {newsletter_id, type, value}}
Fixes #2346
2026-03-19 11:49:42 -03:00
Renato Alcara
71fe69fd21
chore: update WhatsApp Web version to v2.3000.1035504971 ( #301 )
...
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-03-19 06:33:42 -03:00
github-actions[bot]
eecf6df2a2
chore: update proto/version to v2.3000.1035484955 ( #300 )
...
Co-authored-by: rsalcara <rsalcara@users.noreply.github.com >
2026-03-19 01:48:35 -03:00
Renato Alcara
d04a3e1af8
fix: restore working carousel send/render path ( #297 )
...
fix: restore working carousel send/render path (#297 )
2026-03-18 20:30:18 -03:00
Renato Alcara
21462c26d5
chore: update WhatsApp Web version to v2.3000.1035406580 ( #299 )
...
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-03-18 06:42:44 -03:00
github-actions[bot]
fc2122b11a
chore: update proto/version to v2.3000.1035370989 ( #298 )
...
Co-authored-by: rsalcara <rsalcara@users.noreply.github.com >
2026-03-18 01:49:58 -03:00
Renato Alcara
11eed3aedc
chore: update WhatsApp Web version to v2.3000.1035317910 ( #296 )
...
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-03-17 06:16:35 -03:00
github-actions[bot]
dbc6dd6aed
chore: update proto/version to v2.3000.1035302375 ( #295 )
...
Co-authored-by: rsalcara <rsalcara@users.noreply.github.com >
2026-03-17 00:46:29 -03:00
Renato Alcara
e152aee740
Fix/pn lid session reuse ( #294 )
...
* fix: unify PN and LID session reuse for 1:1 sends
* fix: limit PN/LID reuse changes to session cache
2026-03-16 23:22:05 -03:00
Renato Alcara
ff9b84c561
fix: unify PN and LID session reuse for 1:1 sends ( #293 )
...
fix: unify PN and LID session reuse for 1:1 sends (#293 )
2026-03-16 22:59:28 -03:00
Renato Alcara
50c13398c4
fix: harden carousel live rendering path ( #292 )
...
* fix: harden carousel live rendering path
* fix: flatten carousel thumbnail fallback
2026-03-16 22:09:14 -03:00
Renato Alcara
d991d0212d
fix: add biz node injection and quality_control for carousel WhatsApp Web rendering ( #291 )
...
- Add interactive message detection helpers (getButtonType, isCarouselMessage, etc.)
- Inject biz node with interactive/native_flow for non-carousel interactive messages
- Inject biz + quality_control with decision_id for carousel messages
- Skip bot node for native_flow/carousel/catalog (breaks Web rendering)
- Force device-identity inclusion for carousel messages
- Append deferred biz/bot/quality_control nodes after device-identity and tctoken
- Store tctoken under both LID and PN for reliable lookup
2026-03-16 21:25:29 -03:00
Renato Alcara
7c095c84a5
chore: update WhatsApp Web version to v2.3000.1035223526 ( #289 )
...
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-03-16 06:20:34 -03:00
github-actions[bot]
a25e6740fd
chore: update proto/version to v2.3000.1035216863 ( #288 )
...
Co-authored-by: rsalcara <rsalcara@users.noreply.github.com >
2026-03-16 00:58:19 -03:00
Renato Alcara
986ac588a9
chore: update WhatsApp Web version to v2.3000.1035203283 ( #287 )
...
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-03-15 06:08:25 -03:00
github-actions[bot]
64c73faab2
chore: update proto/version to v2.3000.1035198198 ( #286 )
...
Co-authored-by: rsalcara <rsalcara@users.noreply.github.com >
2026-03-15 00:56:35 -03:00
Renato Alcara
b5464bec73
chore: update WhatsApp Web version to v2.3000.1035176028 ( #285 )
...
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-03-14 06:07:31 -03:00
github-actions[bot]
9f8f74fc7a
chore: update proto/version to v2.3000.1035169204 ( #284 )
...
Co-authored-by: rsalcara <rsalcara@users.noreply.github.com >
2026-03-14 00:44:33 -03:00
Renato Alcara
aaf3bd83eb
chore: update WhatsApp Web version to v2.3000.1035102652 ( #283 )
...
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-03-13 06:11:31 -03:00
github-actions[bot]
8fe71b03d5
chore: update proto/version to v2.3000.1035083696 ( #282 )
...
Co-authored-by: rsalcara <rsalcara@users.noreply.github.com >
2026-03-13 00:45:20 -03:00
Renato Alcara
c2c156d707
chore(deps): update music-metadata from 11.12.0 to 11.12.3 ( #281 )
...
Includes security fix for CWE-85 (infinite loop in ASF parsing),
Ogg/Vorbis duration fix, and restored TypeScript declaration files.
2026-03-12 23:52:05 -03:00
Renato Alcara
e46b9750c2
chore: update WhatsApp Web version to v2.3000.1035018135 ( #280 )
...
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-03-12 06:13:34 -03:00
github-actions[bot]
542b7a278d
chore: update proto/version to v2.3000.1034989030 ( #279 )
...
Co-authored-by: rsalcara <rsalcara@users.noreply.github.com >
2026-03-12 00:45:49 -03:00
Renato Alcara
6d7e0d7b35
chore: update WhatsApp Web version to v2.3000.1034928492 ( #278 )
...
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-03-11 06:12:36 -03:00
github-actions[bot]
9daee4d8fd
chore: update proto/version to v2.3000.1034906703 ( #277 )
...
Co-authored-by: rsalcara <rsalcara@users.noreply.github.com >
2026-03-11 00:44:13 -03:00
Renato Alcara
d7b2ceb161
chore: update WhatsApp Web version to v2.3000.1034844076 ( #276 )
...
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-03-10 06:12:48 -03:00
github-actions[bot]
2236ef83a9
chore: update proto/version to v2.3000.1034813620 ( #275 )
...
Co-authored-by: rsalcara <rsalcara@users.noreply.github.com >
2026-03-10 00:44:00 -03:00
Renato Alcara
07f775dd18
chore: update WhatsApp Web version to v2.3000.1034756368 ( #274 )
...
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-03-09 06:14:04 -03:00
github-actions[bot]
ad81d1535d
chore: update proto/version to v2.3000.1034750325 ( #273 )
...
Co-authored-by: rsalcara <rsalcara@users.noreply.github.com >
2026-03-09 00:46:14 -03:00
Renato Alcara
7ecfaefcfa
chore: update WhatsApp Web version to v2.3000.1034735671 ( #272 )
...
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-03-08 06:05:18 -03:00
github-actions[bot]
ad4f676e2b
chore: update proto/version to v2.3000.1034732001 ( #271 )
...
Co-authored-by: rsalcara <rsalcara@users.noreply.github.com >
2026-03-08 00:45:02 -03:00
Renato Alcara
54d6a023a4
chore: update WhatsApp Web version to v2.3000.1034715486 ( #270 )
...
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-03-07 06:05:25 -03:00
github-actions[bot]
935484c790
chore: update proto/version to v2.3000.1034696150 ( #269 )
...
Co-authored-by: rsalcara <rsalcara@users.noreply.github.com >
2026-03-07 00:37:49 -03:00
Renato Alcara
f2c14f9ad6
fix: carousel renders on WhatsApp Web without F5
...
Two fixes:
1. Stanza type="media" for carousel messages — WhatsApp Web needs this
to render carousel in real-time. Without it, only shows header until
page refresh (F5).
2. Fix jimp detection: typeof Jimp === 'function' (not just 'object')
so jpegThumbnail is generated for card images.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-07 00:25:07 -03:00
Renato Alcara
ac2acf3d87
Fix/carousel working minimal ( #268 )
...
Fix/carousel working minimal (#268 )
2026-03-06 23:58:59 -03:00
Renato Alcara
0b527b0855
fix: inline carousel handler for WhatsApp Web rendering ( #267 )
...
fix: inline carousel handler for WhatsApp Web rendering (#267 )
2026-03-06 23:26:43 -03:00
Renato Alcara
9f8b603e28
fix: skip biz node for carousel messages (fixes WhatsApp Web rendering) ( #265 )
...
fix: skip biz node for carousel messages (fixes WhatsApp Web rendering) (#265 )
2026-03-06 21:29:26 -03:00
Renato Alcara
6c904484e4
chore: update WhatsApp Web version to v2.3000.1034641024 ( #264 )
...
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-03-06 06:09:40 -03:00
github-actions[bot]
5382d03f93
chore: update proto/version to v2.3000.1034621774 ( #263 )
...
Co-authored-by: rsalcara <rsalcara@users.noreply.github.com >
2026-03-06 00:44:39 -03:00
Renato Alcara
5e602ebbf8
chore: update WhatsApp Web version to v2.3000.1034553229 ( #262 )
...
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-03-05 06:12:30 -03:00
github-actions[bot]
12c400cf1e
chore: update proto/version to v2.3000.1034530777 ( #261 )
...
Co-authored-by: rsalcara <rsalcara@users.noreply.github.com >
2026-03-05 00:45:05 -03:00
Renato Alcara
92085d283a
fix(sticker): align sticker pack with WABA Android ( #260 )
...
fix(sticker): align sticker pack with WABA Android (#260 )
2026-03-04 10:19:25 -03:00
Renato Alcara
38aa34ffb0
chore: update WhatsApp Web version to v2.3000.1034439448 ( #259 )
...
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-03-04 06:10:49 -03:00
Renato Alcara
52aa6402c0
fix(signal): align Signal Protocol handling with WABA Android behavior ( #257 )
...
7 corrections based on 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)
* fix: remove unused jidDecode import from decode-wa-message.ts
* 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.
2026-03-04 00:51:20 -03:00
github-actions[bot]
8ea7f5434e
chore: update proto/version to v2.3000.1034427372 ( #258 )
...
Co-authored-by: rsalcara <rsalcara@users.noreply.github.com >
2026-03-04 00:43:59 -03:00
Renato Alcara
cf72068b6c
fix(tctoken): align lifecycle with WABA Android behavior ( #256 )
...
- Error 463 (MissingTcToken): add getPrivacyTokens() re-fetch before retry
- Error 479 (SmaxInvalid): add getPrivacyTokens() re-fetch (fire-and-forget)
- Add realIssueTimestamp field matching wa_trusted_contacts_send schema
- Session refresh reissue: store IQ result + persist senderTimestamp/realIssueTimestamp
2026-03-03 22:03:02 -03:00
Renato Alcara
9165a4941e
chore: update WhatsApp Web version to v2.3000.1034382497 ( #255 )
...
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-03-03 06:12:34 -03:00
github-actions[bot]
a8d9e308bc
chore: update proto/version to v2.3000.1034302344 ( #254 )
...
Co-authored-by: rsalcara <rsalcara@users.noreply.github.com >
2026-03-03 00:46:23 -03:00
Renato Alcara
c29fe8e5ac
fix: use MACOS UserAgent for Android browser to fix pair code registration ( #253 )
...
The web protocol (WA\x06\x03) requires a web-compatible UserAgent.
Using SMB_ANDROID in the UserAgent caused pair code registration to
fail with "cannot connect device" even though the phone confirmation
appeared. The Android identity is now only set in DeviceProps.platformType
(ANDROID_PHONE) in the registration node, which correctly determines
the display name in "Linked Devices" as "Android (14)".
Changes:
- getUserAgent(): always returns MACOS platform and Desktop device
- getClientPayload(): always includes webInfo (no longer skipped for Android)
- Remove unused isAndroidBrowser import from validate-connection.ts
- Update pair code comments documenting tested platform IDs
- Add structured logging to pair code request
2026-03-02 22:06:55 -03:00
Renato Alcara
d2ceeaadc4
feat: change default browser to Android (SMB_ANDROID) ( #252 )
...
* feat: add connection and pair code presentation logs
Single-line logs showing how the lib presents to WhatsApp:
- 📱 /🖥️ Connection: phone number, platform, device, type
- 🔗 Pair code: companion platform, android override status
2026-03-02 15:03:41 -03:00