Added
- Live message-edit support now emits
message.editedthrough webhooks and WebSocket subscriptions on
both engines, updates the stored message and Chats dashboard in occurrence order, and exposes the
standard sender/direction/type/media/mention fields to webhook smart filters. Existing wildcard (*)
subscriptions receive the new event automatically. Thanks @rogeriorioli. (#734)
Changed
- ⚠️ Breaking:
GET /api/settingsno longer returns the incorrect, always-zero
general.sessionTimeoutfield. Migration: remove reads, destructuring, or schema requirements for that
admin-only field; there is no replacement because OpenWA has no equivalent session-timeout setting. - Java SDK callers sending audio/voice notes now pass
SendAudioRequesttosendAudio; other media sends
continue to useSendMediaRequest. Bulk media uses the nestedBulkMediaRequesttype. - The PHP SDK's configured
timeoutnow applies to every request, including calls made through an injected
Guzzle client; passtimeoutexplicitly when a different bound is required. - PHP SDK contributor installs now remain compatible with the declared PHP 8.1 runtime floor, and CI
exercises the suite on both PHP 8.1 and 8.2.
Fixed
- Preserve plugin state across package updates, make data/storage backup and restore cover both engine
auth stores plus generated secrets, and preserve messagechatNameduring data import. - Bound webhook and integration redrive work, make Redis throttling atomic, guard stale engine teardown,
and make media precedence, data-URI normalization, limits, and omission markers consistent across engines. - Record API-key authorization changes in administrative activity logs, protect the final usable admin,
and align action-style POST routes with their documented HTTP200responses. - Correct ingress method/verification/dedup metadata, dashboard session-state visibility and plugin config
fallback, SDK timeout/type parity, metrics types, deployment configuration forwarding, and CI contract gates.