github aldinokemal/go-whatsapp-web-multidevice v8.7.0

5 hours ago

What's New in v8.7.0

🚀 Minor Release: Presence Pulses, Quoted Media Replies, Send Retry Reliability & WhatsApp Edit Compatibility

This release adds scheduled presence pulses, lets media send endpoints quote existing messages, improves recovery from WhatsApp 463 send failures, fixes encrypted message-edit handling for newer WhatsApp clients, and preserves WhatsApp store identity after restart.


✨ New Features

Scheduled Presence Pulse (#692)

  • New scheduler periodically marks connected logged-in devices as available, then returns them to unavailable
  • Configurable through defaults, environment variables, CLI flags, and both REST/MCP startup paths
  • Documents the behavior in the README, webhook payload docs, and example environment file
  • Adds focused scheduler coverage for connected-device filtering, timing, and shutdown behavior

Quoted Media Replies (#705)

  • Image, file, video, and audio send requests now accept optional reply_message_id
  • Media sends reuse the existing reply-context flow, so stored messages can be quoted without changing response shapes
  • Embedded media send forms and OpenAPI docs now expose the reply field
  • Adds repository/wrapper support plus validation and usecase regression coverage

🐛 Bug Fixes

WhatsApp 463 Send Pre-Warm and Retry (#695)

  • Detects WhatsApp reachout timelock/server error 463 and pre-warms 1:1 recipients before one retry
  • Runs a WA-Web-style presence, subscribe, composing, and paused sequence bounded to 3 seconds
  • Skips groups, broadcasts, newsletters, and non-463 errors so existing send paths remain unchanged
  • Improves WA_REACHOUT_TIMELOCK guidance when Meta still rejects the send

SecretEncryptedMessage Edit Compatibility (#693)

  • Decrypts SecretEncryptedMessage{MESSAGE_EDIT} envelopes sent by newer/LID-migrated WhatsApp clients
  • Materializes encrypted edits into the legacy ProtocolMessage{MESSAGE_EDIT} shape for existing chat storage, webhook, and auto-reply paths
  • Fixes edited-message webhooks so message.edited includes the original message ID and edited body again
  • Keeps legacy-format edits unchanged and falls back to previous behavior when decryption is not possible

Preserve WhatsApp Store Identity on Restart (#706)

  • Existing devices keep their persisted whatsmeow JID when loaded after restart
  • Non-AD device IDs can reuse persisted AD store devices
  • Optional keys DB sync now copies only the current device instead of deleting unrelated key parents
  • Fixes device registration paths that could come back with an empty instance JID after restart

🔧 Technical Improvements

Runtime and Repository Hygiene

  • Reorganized .gitignore into logical sections and added statics/ for runtime media, QR codes, and send items (#690)
  • Replaced the legacy CLAUDE.md guidance with scoped AGENTS.md instructions for the repository and key modules

Dependency Updates

  • go.mau.fi/whatsmeow: updated to latest
  • go.mau.fi/libsignal: updated to v0.2.2
  • Related Go dependency checksums refreshed through go.mod and go.sum

What's Changed

New Contributors

Full Changelog: v8.6.0...v8.7.0

Don't miss a new go-whatsapp-web-multidevice release

NewReleases is sending notifications on new releases.