openclaw/extensions/bluebubbles/src
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
..
accounts.ts refactor: rename to openclaw 2026-01-30 03:16:21 +01:00
actions.test.ts refactor: rename to openclaw 2026-01-30 03:16:21 +01:00
actions.ts refactor: rename to openclaw 2026-01-30 03:16:21 +01:00
attachments.test.ts fix: harden BlueBubbles voice memos (#1477) (thanks @Nicell) 2026-01-23 04:38:08 +00:00
attachments.ts refactor: rename to openclaw 2026-01-30 03:16:21 +01:00
channel.ts refactor: rename to openclaw 2026-01-30 03:16:21 +01:00
chat.test.ts feat: add support for setting group icons in BlueBubbles, enhancing group management capabilities 2026-01-20 12:07:54 +00:00
chat.ts refactor: rename to openclaw 2026-01-30 03:16:21 +01:00
config-schema.ts refactor: rename to openclaw 2026-01-30 03:16:21 +01:00
media-send.ts refactor: rename to openclaw 2026-01-30 03:16:21 +01:00
monitor.test.ts fix(bluebubbles): debounce by messageId to preserve attachments in text+image messages (#4984) 2026-01-30 15:53:14 -08:00
monitor.ts fix(bluebubbles): debounce by messageId to preserve attachments in text+image messages (#4984) 2026-01-30 15:53:14 -08:00
onboarding.ts refactor: rename to openclaw 2026-01-30 03:16:21 +01:00
probe.ts feat: enhance BlueBubbles functionality by implementing macOS version checks for message editing and improving server info caching 2026-01-20 12:07:54 +00:00
reactions.test.ts (Step 2) Phase 2 & 3 Complete + Reviewed 2026-01-20 12:07:54 +00:00
reactions.ts refactor: rename to openclaw 2026-01-30 03:16:21 +01:00
runtime.ts refactor: rename to openclaw 2026-01-30 03:16:21 +01:00
send.test.ts fix: harden message aborts + bluebubbles dm create (#1751) (thanks @tyler6204) 2026-01-25 10:20:14 +00:00
send.ts refactor: rename to openclaw 2026-01-30 03:16:21 +01:00
targets.test.ts feat: enhance BlueBubbles messaging targets by adding support for UUID and hex chat identifiers, improving normalization and parsing functions 2026-01-20 12:07:54 +00:00
targets.ts feat: enhance BlueBubbles messaging targets by adding support for UUID and hex chat identifiers, improving normalization and parsing functions 2026-01-20 12:07:54 +00:00
types.ts feat: add chunking mode option for BlueBubbles (#1645) 2026-01-25 00:47:10 +00:00