Builds on v1.0.2. A resilience release for the web sidecar — both fixes are for WhatsApp Web minifying its own internals out from under whatsapp-web.js.
Fixes
-
Messages no longer arrive with
id: null(#6). Recent WhatsApp Web builds ship their ID classes minified, so a message key reaches the sidecar as{ fromMe, remote, id, $1 }with no_serialized. The sidecar now rebuilds the canonicalfromMe_remote_id[_participant]string from the key's own parts — chat, contact and participant IDs get the same treatment.PersistIncomingMessagealso inserts rather than upserts when a message still has no ID, so those can't overwrite each other's row. -
Loading chats no longer 500s with
{"error": "r"}(#5).getChats()walks a large surface of minified internals and throws a one-letter error when WhatsApp moves them, taking/chatsand/groupsdown with it. The sidecar now falls back to reading the in-page chat store itself, guarding every field access, so a chat it can't fully describe degrades to partial data instead of failing the request. Response shapes are unchanged.
Also
npm testscript for the sidecar — 17 tests covering the ID helpers and the chat-store fallback.- Troubleshooting entry for the
{"error": "r"}symptom and the fallback log line. - Changelog backfilled for 1.0.1 and 1.0.2, which were released but never written up.
Upgrading is a composer update — no migrations, no config changes, no API changes.
Thanks to @alisaleem27 for reporting both issues with the detail that made them quick to pin down.
Full changelog: v1.0.2...v1.0.3