1589c82b0d
Three changes matching Pastorini's working implementation: 1. Always set root header in generateCarouselMessage - the root interactiveMessage header must always be present with title and hasMediaAttachment:false. Previously it was undefined when no text was provided, which violates WhatsApp MD protocol requirements. 2. Return plain JS object from generateWAMessageContent for carousel - skip WAProto.Message.fromObject() which can corrupt nested carousel structures by incorrectly handling oneOf fields in deeply nested InteractiveMessage cards. protobuf encode() handles plain objects correctly during serialization. 3. Pass plain JS object directly to relayMessage in sendMessage - call relayMessage(jid, msgContent) with the plain object instead of going through proto.WebMessageInfo.fromObject() first. This matches Pastorini's approach of relayMessage(jid, plainObject, opts). https://claude.ai/code/session_018DkDxsjWzM131jy3ivWjZp