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

7 hours ago

What's New in v8.6.0

πŸš€ Minor Release: Message Edit History, Message Reactions, Label Webhooks & Pure-Go SQLite Builds

This release persists WhatsApp message edits and reactions into chat history, forwards label appstate events to webhooks, adds pure-Go SQLite builds for easy ARMv6/ARMv7 cross-compilation, and ships several reliability fixes around message sending and chat list scoping.


✨ New Features

Persist WhatsApp Message Edit History (#679)

  • New message_edits table tracks every MESSAGE_EDIT event as an append-only history
  • The original message content is updated in-place while previous revisions remain queryable
  • Existing edit webhook payload behavior is preserved

Persist Chat Message Reactions

  • New reaction storage with migration and chat/search hydration
  • Inbound and history-sync reaction events are persisted separately from messages
  • Reactions exposed in chat responses and documented in OpenAPI, with regression coverage

Forward WhatsApp Label Appstate Events to Webhooks (#659)

  • Label edits and chat–label association changes are now forwarded to configured webhooks
  • Reuses existing webhook forwarding, event filtering, and LID normalization behavior
  • Payloads include label metadata, label state, chat_id, and chat_lid when applicable

Pure-Go SQLite Support via Build Tags (#677)

  • New pkg/sqlite abstraction switches between CGO-based mattn/go-sqlite3 (default) and pure-Go modernc.org/sqlite (with -tags purego)
  • Enables easy cross-compilation for Raspberry Pi (ARMv6/ARMv7) and other platforms without a C toolchain
  • Pure-Go path applies tuned pragmas (busy_timeout=30s, WAL, synchronous=NORMAL) to prevent SQLITE_BUSY on slow MicroSD cards
  • Default build behavior is unchanged β€” fully backward compatible
  • README includes a Raspberry Pi cross-compilation guide

Phone Number in Contact Messages (#646)

  • Outgoing contact messages now store name + phone number together in saved content
  • Contact message text extraction includes the phone number from the vCard
  • Added unit tests for proto and event contact text formatting
  • Closes #645

Gowa Favicon (#672)

  • Web client now shows the Gowa favicon in the browser tab using the existing gowa.svg asset

πŸ› Bug Fixes

API-Sent Messages Missing from Chat List (#683, PR #687)

  • wrapSendMessage previously used context.Background() for async storage, which dropped the device instance attached by ContextWithDevice
  • This caused rows to be stored with an empty device_id while queries used the logged-in JID β€” a device scoping mismatch surfacing as total_messages=0
  • Fix uses context.WithoutCancel(ctx) so device context survives after the HTTP request completes
  • StoreSentMessageWithContext now returns an explicit error when device_id cannot be resolved (no more silent bad data)
  • deviceChatStorage.StoreSentMessageWithContext injects device scope when context lacks one (defense in depth)
  • Note: messages previously stored with empty device_id will not appear until re-sent or re-synced via history

Mitigate WhatsApp Server Error 463 on Send

  • Privacy token storage is kept on the primary WhatsApp database while the optional keys cache is used only for encryption and session data
  • WhatsApp server error 463 is mapped to a WA_REACHOUT_TIMELOCK response so API callers get actionable retry guidance
  • Documented safer DB_KEYS_URI usage with regression coverage for the store and send-error behavior

πŸ”§ Technical Improvements

CI / Docker

  • Publish the latest Docker manifest on each release

Dependency Updates

  • go.mau.fi/whatsmeow: updated to latest
  • All Go dependencies kept up-to-date

What's Changed

New Contributors

Full Changelog: v8.5.1...v8.6.0

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

NewReleases is sending notifications on new releases.