v8.7.0
openclaw/openclawv8.7.0Jun 4, 2026by aldinokemal
AI Summary
v8.7.0 is a minor release that adds scheduled presence pulses and quoted media replies, while improving reliability through pre-warming retries for WhatsApp error 463 and decrypting message edits from newer clients.
Key Highlights
- Scheduled presence pulses to automatically manage device availability states
- Quoted media replies for images, files, video, and audio attachments
- Enhanced recovery from WhatsApp 463 server errors via pre-warming and retry logic
- Compatibility with encrypted message edits from newer WhatsApp clients
New Features
- Scheduled Presence Pulse scheduler with configurable timing
- Quoted Media Replies functionality for media send endpoints
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