openclaw/extensions
Yuri Chukhlib 65dedef65b
fix(bluebubbles): debounce by messageId to preserve attachments in text+image messages (#4984)
* fix(bluebubbles): debounce by messageId to preserve attachments in text+image messages

BlueBubbles fires multiple webhook events for a single message - first
without attachment metadata, then ~350ms later with it. Previously,
messages with attachments bypassed debouncing and were processed
immediately, while the text-only version was also queued.

Now the debouncer uses messageId as the key when available, coalescing
all webhook events for the same message. The existing combineDebounceEntries
function merges attachments from all events.

Closes #4848

* fix: increase debounce and handle balloon messages

- Increase DEFAULT_INBOUND_DEBOUNCE_MS from 350ms to 500ms
- Update buildKey to use associatedMessageGuid for balloon messages
- Add regression test for debouncing behavior

Fixes issues identified in code review.

---------

Co-authored-by: Yurii Chukhlib <yurii.chukhlib@viber.com>
Co-authored-by: Tyler Yust <TYTYYUST@YAHOO.COM>
2026-01-30 15:53:14 -08:00
..
bluebubbles fix(bluebubbles): debounce by messageId to preserve attachments in text+image messages (#4984) 2026-01-30 15:53:14 -08:00
copilot-proxy chore: release 2026.1.29 2026-01-30 06:25:45 +01:00
diagnostics-otel chore: release 2026.1.29 2026-01-30 06:25:45 +01:00
discord chore: release 2026.1.29 2026-01-30 06:25:45 +01:00
google-antigravity-auth chore: release 2026.1.29 2026-01-30 06:25:45 +01:00
google-gemini-cli-auth chore: release 2026.1.29 2026-01-30 06:25:45 +01:00
googlechat chore: release 2026.1.29 2026-01-30 06:25:45 +01:00
imessage chore: release 2026.1.29 2026-01-30 06:25:45 +01:00
line fix(line): resolve TypeError in status command 2026-01-30 15:41:22 +00:00
llm-task chore: release 2026.1.29 2026-01-30 06:25:45 +01:00
lobster chore: release 2026.1.29 2026-01-30 06:25:45 +01:00
matrix chore: release 2026.1.29 2026-01-30 06:25:45 +01:00
mattermost chore: release 2026.1.29 2026-01-30 06:25:45 +01:00
memory-core chore: release 2026.1.29 2026-01-30 06:25:45 +01:00
memory-lancedb chore: release 2026.1.29 2026-01-30 06:25:45 +01:00
msteams chore: release 2026.1.29 2026-01-30 06:25:45 +01:00
nextcloud-talk chore: release 2026.1.29 2026-01-30 06:25:45 +01:00
nostr chore: release 2026.1.29 2026-01-30 06:25:45 +01:00
open-prose chore: release 2026.1.29 2026-01-30 06:25:45 +01:00
qwen-portal-auth refactor: rename to openclaw 2026-01-30 03:16:21 +01:00
signal chore: release 2026.1.29 2026-01-30 06:25:45 +01:00
slack chore: release 2026.1.29 2026-01-30 06:25:45 +01:00
telegram chore: release 2026.1.29 2026-01-30 06:25:45 +01:00
tlon chore: release 2026.1.29 2026-01-30 06:25:45 +01:00
twitch chore: release 2026.1.29 2026-01-30 06:25:45 +01:00
voice-call chore: release 2026.1.29 2026-01-30 06:25:45 +01:00
whatsapp chore: release 2026.1.29 2026-01-30 06:25:45 +01:00
zalo chore: release 2026.1.29 2026-01-30 06:25:45 +01:00
zalouser chore: release 2026.1.29 2026-01-30 06:25:45 +01:00