Peter Steinberger
6dd36a6b77
refactor(channels): reuse runtime group policy helpers
2026-02-22 12:44:23 +01:00
Peter Steinberger
85e5ed3f78
refactor(channels): centralize runtime group policy handling
2026-02-22 12:35:41 +01:00
Peter Steinberger
42f62821db
fix: include shared runtime group-policy helper and coverage ( #23367 ) (thanks @bmendonca3)
2026-02-22 12:21:04 +01:00
Peter Steinberger
777817392d
fix: fail closed missing provider group policy across message channels ( #23367 ) (thanks @bmendonca3)
2026-02-22 12:21:04 +01:00
Peter Steinberger
0bd9f0d4ac
fix: enforce strict allowlist across pairing stores ( #23017 )
2026-02-22 00:00:23 +01:00
Peter Steinberger
b8b43175c5
style: align formatting with oxfmt 0.33
2026-02-18 01:34:35 +00:00
Peter Steinberger
31f9be126c
style: run oxfmt and fix gate failures
2026-02-18 01:29:02 +00:00
cpojer
ed75d30ad3
chore: Fix types in tests 34/N.
2026-02-17 15:50:07 +09:00
cpojer
97c8f4999e
chore: Fix types in tests 27/N.
2026-02-17 14:31:55 +09:00
cpojer
d0cb8c19b2
chore: wtf.
2026-02-17 13:36:48 +09:00
Sebastian
ed11e93cf2
chore(format)
2026-02-16 23:20:16 -05:00
Sebastian
65fa529e03
Revert "fix(whatsapp): allow per-message link preview override\n\nWhatsApp messages default to enabling link previews for URLs. This adds\nsupport for overriding this behavior per-message via the \nparameter (e.g. from tool options), consistent with Telegram.\n\nFix: Updated internal WhatsApp Web API layers to pass option\ndown to Baileys ."
...
This reverts commit 1bef2fc68b .
2026-02-16 22:59:37 -05:00
cpojer
90ef2d6bdf
chore: Update formatting.
2026-02-17 09:18:40 +09:00
Peter Steinberger
a186ce2158
fix(ci): preserve whatsapp send API compatibility
2026-02-16 23:47:57 +00:00
Peter Steinberger
12a947223b
fix(ci): restore main checks after bulk merges
2026-02-16 23:47:27 +00:00
Peter Steinberger
eaa2f7a7bf
fix(ci): restore main lint/typecheck after direct merges
2026-02-16 23:26:11 +00:00
Rain
1bef2fc68b
fix(whatsapp): allow per-message link preview override\n\nWhatsApp messages default to enabling link previews for URLs. This adds\nsupport for overriding this behavior per-message via the \nparameter (e.g. from tool options), consistent with Telegram.\n\nFix: Updated internal WhatsApp Web API layers to pass option\ndown to Baileys .
2026-02-16 23:57:09 +01:00
Peter Steinberger
291275982c
refactor(web): reuse send api + access-control test helpers
2026-02-16 17:22:26 +00:00
Peter Steinberger
93ca0ed54f
refactor(channels): dedupe transport and gateway test scaffolds
2026-02-16 14:59:31 +00:00
Vignesh Natarajan
6957354d48
fix (telegram/whatsapp): use account-scoped pairing allowlists
2026-02-15 19:10:06 -08:00
Peter Steinberger
ca97c47a02
test(web): expand send API coverage
2026-02-15 05:33:04 +00:00
Peter Steinberger
3ec275f0b5
perf(test): consolidate inbound access-control suites
2026-02-14 23:51:47 +00:00
Gustavo Madeira Santana
dd1fb7ff78
test(web): annotate access-control harness mocks
2026-02-14 17:17:30 -05:00
Peter Steinberger
5bead2de85
refactor(test): share web inbound access control setup
2026-02-14 22:03:42 +00:00
Peter Steinberger
8719f381d1
test: split WhatsApp inbound access control tests
2026-02-14 19:52:39 +01:00
Marcus Castro
d14be8472e
fix(whatsapp): honor account-level dmPolicy override ( #10082 ) (thanks @mcaxtr)
...
Fixes openclaw#10082 (issue #8736 ): inbound WhatsApp DM policy now respects account-level dmPolicy overrides.
2026-02-14 19:41:42 +01:00
Tseka Luk
c544811559
fix(whatsapp): preserve outbound document filenames ( #15594 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: 8e0d765d1d
Co-authored-by: TsekaLuk <79151285+TsekaLuk@users.noreply.github.com >
Co-authored-by: steipete <58493+steipete@users.noreply.github.com >
Reviewed-by: @steipete
2026-02-13 18:54:10 +01:00
Marcus Castro
186dc0363f
fix: default MIME type for WhatsApp voice messages when Baileys omits it ( #14444 )
2026-02-11 23:09:09 -06:00
Sk Akram
1cee5135e4
fix: preserve original filename for WhatsApp inbound documents ( #12691 )
...
* fix: preserve original filename for WhatsApp inbound documents
* fix: cover WhatsApp document filenames (#12691 ) (thanks @akramcodez)
* test: streamline inbound media waits (#12691 ) (thanks @akramcodez)
---------
Co-authored-by: Gustavo Madeira Santana <gumadeiras@gmail.com >
2026-02-09 16:56:19 -05:00
cpojer
f06dd8df06
chore: Enable "experimentalSortImports" in Oxfmt and reformat all imorts.
2026-02-01 10:03:47 +09:00
cpojer
5ceff756e1
chore: Enable "curly" rule to avoid single-statement if confusion/errors.
2026-01-31 16:19:20 +09:00
cpojer
15792b153f
chore: Enable more lint rules, disable some that trigger a lot. Will clean up later.
2026-01-31 16:04:04 +09:00
Peter Steinberger
50fdd514ae
refactor(logging): split config + subsystem imports
2026-01-19 00:15:44 +00:00
Peter Steinberger
c7ea47e886
feat(channels): add resolve command + defaults
2026-01-18 01:00:24 +00:00
Peter Steinberger
05d149a49b
fix: treat reply-to-bot as implicit mention across channels
2026-01-16 21:51:01 +00:00
Peter Steinberger
072c3dc55c
fix: suppress WhatsApp pairing replies for historical DMs
2026-01-16 09:10:44 +00:00
juanpablodlc
4a99b9b651
feat(whatsapp): add debounceMs for batching rapid messages ( #971 )
...
* feat(whatsapp): add debounceMs for batching rapid messages
Add a `debounceMs` configuration option to WhatsApp channel settings
that batches rapid consecutive messages from the same sender into a
single response. This prevents triggering separate agent runs for
each message when a user sends multiple short messages in quick
succession (e.g., "Hey!", "how are you?", "I was wondering...").
Changes:
- Add `debounceMs` config to WhatsAppConfig and WhatsAppAccountConfig
- Implement message buffering in `monitorWebInbox` with:
- Map-based buffer keyed by sender (DM) or chat ID (groups)
- Debounce timer that resets on each new message
- Message combination with newline separator
- Single message optimization (no modification if only one message)
- Wire `debounceMs` through account resolution and monitor tuning
- Add UI hints and schema documentation
Usage example:
{
"channels": {
"whatsapp": {
"debounceMs": 5000 // 5 second window
}
}
}
Default behavior: `debounceMs: 0` (disabled by default)
Verified: All existing tests pass (3204 tests), TypeScript compilation
succeeds with no errors.
Implemented with assistance from AI coding tools.
Closes #967
* chore: wip inbound debounce
* fix: debounce inbound messages across channels (#971 ) (thanks @juanpablodlc)
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-01-15 23:07:19 +00:00
Christian A. Rodriguez
d763926364
style: fix biome formatting
2026-01-15 06:22:09 +00:00
Christian A. Rodriguez
7a683a4b62
feat(whatsapp): add sendReadReceipts config option
...
Add option to disable automatic read receipts for WhatsApp messages.
When set to false, Clawdbot will not mark messages as read (blue ticks).
Closes #344
Changes:
- Add sendReadReceipts to WhatsAppConfig and WhatsAppAccountConfig types
- Add sendReadReceipts to zod schemas for validation
- Add sendReadReceipts to ResolvedWhatsAppAccount with fallback chain
- Pass sendReadReceipts through to monitorWebInbox
- Gate sock.readMessages() call based on config option
Default behavior (true) is preserved - only explicitly setting false
will disable read receipts.
2026-01-15 06:22:09 +00:00
Peter Steinberger
c379191f80
chore: migrate to oxlint and oxfmt
...
Co-authored-by: Christoph Nakazawa <christoph.pojer@gmail.com >
2026-01-14 15:02:19 +00:00
Peter Steinberger
bcbfb357be
refactor(src): split oversized modules
2026-01-14 01:17:56 +00:00