v8.7.0

joshiayush/inbv8.7.0Jun 4, 2026by aldinokemal

AI Summary

Enhances WhatsApp functionality with scheduled presence pulses, quoted media replies, and improved reliability for handling send failures and encrypted message edits.

Key Highlights

  • Scheduled presence pulse feature for connected devices
  • Support for quoting media replies in send requests
  • Improved handling of WhatsApp 463 send errors and encrypted message edits

New Features

  • Scheduled presence pulse
  • Quoted media replies
  • WhatsApp 463 send pre-warm and retry
  • SecretEncryptedMessage edit compatibility

Full Release Notes

## 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

* feat: add scheduled presence pulse by @aldinokemal in https://github.com/aldinokemal/go-whatsapp-web-multidevice/pull/692
* fix: pre-warm and one-shot retry on WhatsApp send error 463 by @aldinokemal in https://github.com/aldinokemal/go-whatsapp-web-multidevice/pull/695
* fix(webhook): decrypt SecretEncryptedMessage for message edits by @nasirnaqash in https://github.com/aldinokemal/go-whatsapp-web-multidevice/pull/693
* fix(webhook): add support for SecretEncryptedMessage edits by @aldinokemal
* chore: reorganize .gitignore and add statics/ by @fadlank-noer in https://github.com/aldinokemal/go-whatsapp-web-multidevice/pull/690
* feat(send): support quoted media replies by @aldinokemal in https://github.com/aldinokemal/go-whatsapp-web-multidevice/pull/705
* fix: preserve WhatsApp store identity on restart by @aldinokemal in https://github.com/aldinokemal/go-whatsapp-web-multidevice/pull/706
* chore: update whatsmeow to latest by @aldinokemal

## New Contributors

* @nasirnaqash made their first contribution in https://github.com/aldinokemal/go-whatsapp-web-multidevice/pull/693
* @fadlank-noer made their first contribution in https://github.com/aldinokemal/go-whatsapp-web-multidevice/pull/690

**Full Changelog**: https://github.com/aldinokemal/go-whatsapp-web-multidevice/compare/v8.6.0...v8.7.0