What's New in v9.6.0
💬 Reply Context, Reshareable Statuses & Rich Link Edits
Version 9.6.0 keeps reply relationships in stored chat history, lets API-sent statuses opt into resharing, and adds rich link previews to message edits. It also fixes stale login QR codes, missing WhatsApp Business messages, and phone numbers in iPhone-shared contacts, with an updated whatsmeow dependency.
✨ Features
Reply Context in Chat History (#863)
GET /chat/{chat_jid}/messagesnow returns an optionalcontext_metadataJSON string containingreplied_to_id; the same message response is available through MCP- Reply IDs are stored for received, sent, and history-synced messages, including supported ephemeral and view-once wrappers
- Edits and partial replays preserve known context, while context-bearing replays can fill older rows; metadata previously discarded needs reingestion
- Adds migration 49 while preserving the existing migration history and device/chat isolation; webhook payloads are unchanged
Reshareable Text, Image and Video Statuses (#862)
/send/message,/send/imageand/send/videoacceptallow_reshare: trueforphone=status@broadcast, enabling WhatsApp's reshare eligibility flag- MCP
whatsapp_sendaccepts the same option for text, image and video, and scheduled sends retain it - Omitting the flag keeps existing behavior; enabling it for a non-status recipient is rejected
Rich Link Previews in Message Edits (#861)
POST /message/{message_id}/updateand the MCP edit action accept an optionallinkfield to send the edit with a title, description and thumbnail- The link is appended when it is not already present, and stored text/history retain the actual sent URL
- Edits without
linkkeep their existing plain-text behavior
🐛 Bug Fixes
Reliable QR Login Refreshes (#856)
- QR codes no longer become stale while the login dialog remains open
- Fresh clients isolate unpaired-device QR attempts, per-device locks serialize concurrent logins, and events from replaced clients cannot disrupt the current session
WhatsApp Business Messages in Storage, Webhooks and Chatwoot (#857)
- Templates, interactive messages, buttons, lists, products, orders and selection replies now receive consistent text rendering, so business-only chats no longer appear blank
- Webhooks expose structured
template,buttons,productandselectiondetails alongside the message body - History sync preserves supported wrapped message content and media; Chatwoot formatting no longer turns URL parameters or
snake_caseidentifiers into italics
Phone Numbers in iPhone-Shared Contacts (#858)
- Group-prefixed and case-insensitive vCard
TELproperties are recognized, restoring phone numbers in contact webhooks, stored summaries and Chatwoot - Similarly named properties such as
TELEXare no longer mistaken for telephone numbers
🔧 Technical Improvements
Dependency Updates
- Updates whatsmeow to
v0.0.0-20260929112325-8b41cfe6d9c4
What's Changed
- feat(chatstorage): persist reply context across live and history messages (#863) by @aldinokemal, carrying forward @lucaslorentz's work in #648
- feat(send): allow resharing status posts (#862) by @aldinokemal
- feat(message): keep rich link preview when editing a message (#861) by @samihalawa
- fix(utils): read grouped TEL properties when extracting the vCard phone (#858) by @ElioBonfim
- fix(message): store and render WhatsApp Business messages (#857) by @aldinokemal, @Kizuno18 and @shukrilabs
- fix(login): QR code goes stale while the login dialog stays open (#856) by @aldinokemal
- chore: update whatsmeow to latest by @aldinokemal
- chore(release): v9.6.0 (62e319d) by Codex
Contributors
Full Changelog: v9.5.0...v9.6.0