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 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:
@@ -166,6 +166,24 @@ export type SocketConfig = {
|
||||
/** Circuit breaker configuration for message operations */
|
||||
messageCircuitBreaker?: Partial<CircuitBreakerOptions>
|
||||
|
||||
// === CTWA (Click-to-WhatsApp) Ads Recovery ===
|
||||
|
||||
/**
|
||||
* Enable automatic recovery of CTWA (Click-to-WhatsApp) ads messages.
|
||||
*
|
||||
* Messages from Facebook/Instagram ads don't arrive on linked devices because
|
||||
* Meta's ads endpoint doesn't encrypt messages for multi-device architecture.
|
||||
* They arrive as "Message absent from node" placeholders.
|
||||
*
|
||||
* When enabled, the library will automatically request the original message
|
||||
* from the primary phone via PDO (Peer Data Operation) when a CTWA placeholder
|
||||
* is detected.
|
||||
*
|
||||
* @default true
|
||||
* @see https://github.com/WhiskeySockets/Baileys/issues/1723
|
||||
*/
|
||||
enableCTWARecovery?: boolean
|
||||
|
||||
// === Listener Limits (Memory Leak Prevention) ===
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user