feat: add automatic CTWA (Click-to-WhatsApp) ads message recovery
Messages from Facebook/Instagram ads (Click-to-WhatsApp) don't arrive on linked devices because Meta's ads endpoint doesn't encrypt for multi-device. They arrive as "Message absent from node" placeholders. This change automatically requests the message from the primary phone via PDO (Peer Data Operation) when a CTWA placeholder is detected. Changes: - Add enableCTWARecovery config option (default: true) - Trigger requestPlaceholderResend() for "Message absent from node" errors - Add Prometheus metrics for CTWA recovery tracking - Add comprehensive unit tests for CTWA recovery functionality Resolves: https://github.com/WhiskeySockets/Baileys/issues/1723 Resolves: https://github.com/WhiskeySockets/Baileys/issues/1034
This commit is contained in:
@@ -107,6 +107,21 @@ export type SocketConfig = {
|
||||
/** Enable recent message caching for retry handling */
|
||||
enableRecentMessageCache: boolean
|
||||
|
||||
/**
|
||||
* Enable automatic recovery of Click-to-WhatsApp (CTWA) ads messages.
|
||||
*
|
||||
* When enabled, messages from Facebook/Instagram ads that arrive as
|
||||
* "placeholder messages" (Message absent from node) will be automatically
|
||||
* recovered by requesting resend from the primary phone device.
|
||||
*
|
||||
* This is necessary because Meta's ads endpoint doesn't encrypt messages
|
||||
* for linked devices - they only arrive on the primary phone.
|
||||
*
|
||||
* @default true
|
||||
* @see https://github.com/WhiskeySockets/Baileys/issues/1723
|
||||
*/
|
||||
enableCTWARecovery: boolean
|
||||
|
||||
/**
|
||||
* Returns if a jid should be ignored,
|
||||
* no event for that jid will be triggered.
|
||||
|
||||
Reference in New Issue
Block a user