Baileys 7 uses LIDs (Linked IDs) instead of phone numbers in remoteJid for
some messages. This caused messages to be matched to wrong tickets because
the LID was used as the sender identifier. This commit adds proper support
for both phone numbers and user IDs across WhatsApp and Signal channels.
Changes:
Database:
- Add migration for whatsapp_user_id and signal_user_id fields on users table
Zammad controllers:
- Update user lookup with 3-step fallback: phone → dedicated user_id field →
user_id in phone field (legacy)
- Store user IDs in dedicated fields when available
- Update phone field when we receive actual phone number for legacy records
- Fix redundant condition in Signal controller
Bridge services:
- Extract both phone (from senderPn/participantPn) and LID (from remoteJid)
- Send both identifiers to Zammad via webhooks
- Use camelCase (userId) in bridge-whatsapp, convert to snake_case (user_id)
in bridge-worker for Zammad compatibility
Baileys 7 compliance:
- Remove broken loadAllUnreadMessages() call (removed in Baileys 7)
- Return descriptive error directing users to use webhooks instead
Misc:
- Add docs/ to .gitignore
* We have to stay on react 17 (and therefore next 12) because we require
@mui/styles which does not support react 18
* Furthermore react-mic does not support a version of react after 16
So I disabled the mic feature for now since it is not in use.
In the future we will probably have to fork or implement our own mic
library.