github aldinokemal/go-whatsapp-web-multidevice v9.0.1

4 hours ago

What's New in v9.0.1

🛠️ Maintenance Release: Sender Names, Reliable Webhooks & URL Fixes

This release adds sender display names across chat history, reactions, and webhook payloads, while fixing several reliability issues around generated URLs, device webhook setup, webhook delivery, concurrent image sends, and LID JID formatting. It also improves diagnostics for undecryptable messages, documents device pairing responses more clearly, and refreshes WhatsApp protocol dependencies.


✨ New Features

Sender Display Names (#782)

  • Adds sender_display_name to chat history messages, nested reactions, and sender-bearing webhook payloads
  • Resolves names dynamically using the best available contact information while preserving the existing raw sender fields and legacy from_name behavior
  • Uses per-response caching to avoid repeated lookups and requires no database migration or backfill

🐛 Bug Fixes

Generated URLs Preserve Non-Default Ports (#781)

  • QR-code and downloaded-media URLs now retain the request port when the service is accessed through a non-default port
  • Replaces Fiber's hostname-only value with the complete request host while preserving existing proxy behavior

Webhook Configuration Uses the Generated Device ID (#785)

  • Creating a device without supplying device_id now saves its webhook configuration against the ID generated for the new device
  • Prevents a misleading 500 response after the device slot was already created and ensures the requested webhook settings are persisted

Webhook Requests Include Content-Length

  • Webhook bodies are now attached when the HTTP request is created, producing a Content-Length header instead of chunked transfer encoding
  • Fixes empty request bodies on receivers that do not reliably expose chunked payloads, including some PHP deployments behind nginx/FPM
  • Retry attempts now replay the original request body safely

Concurrent Image Sends Use Unique Temporary Files

  • Temporary image files are prefixed with a UUID so simultaneous sends of identically named files cannot overwrite or delete each other's working files

LID JIDs Drop Device Suffixes

  • FormatJID now normalizes device-specific suffixes for @lid addresses as well as standard WhatsApp JIDs

🔧 Technical Improvements

Undecryptable Message Diagnostics

  • Undecryptable incoming messages are now logged at warning level with sender and failure details instead of being silently dropped
  • No webhook or stored message is emitted because these events contain no plaintext payload

Device Login OpenAPI Documentation

  • Clarifies the device QR and pairing-code login endpoint descriptions and error responses
  • Adds explicit success schemas for device login and pairing-code responses

Dependency & Documentation Updates

  • Refreshes go.mau.fi/whatsmeow to recent snapshots throughout the release cycle
  • Corrects a stale configuration comment around viper.IsSet

What's Changed

  • fix: send webhooks with Content-Length instead of chunked by @aldinokemal
  • fix: strip device suffix from @lid JIDs in FormatJID by @aldinokemal
  • fix: log undecryptable messages instead of dropping them silently by @aldinokemal
  • fix: prefix send-image temp files with a UUID by @aldinokemal
  • docs: correct stale viper.IsSet comment by @aldinokemal
  • fix: keep the request port in generated URLs (#779) by @aldinokemal in #781
  • feat: add sender display names by @aldinokemal in #782
  • feat: update device login endpoints in OpenAPI spec by @aldinokemal
  • fix: save device webhook config against the generated device ID by @alkadoHs in #785
  • chore: update whatsmeow to latest by @aldinokemal

New Contributors

Full Changelog: v9.0.0...v9.0.1

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

NewReleases is sending notifications on new releases.