Commit Graph

4435 Commits

Author SHA1 Message Date
Shadow
bae59b462b Docs: credit Docker cache PR 2026-01-09 14:24:45 -06:00
Zach Knickerbocker
4ac4a75fed Docker: cache deps layer for faster rebuilds (#605) 2026-01-09 14:23:06 -06:00
Peter Steinberger
036e25c00d fix: honor config timeout in tui 2026-01-09 21:22:50 +01:00
Peter Steinberger
46dec6ed7d fix: inject skills prompt list 2026-01-09 21:20:51 +01:00
Peter Steinberger
a0a8f13dc0 fix(discord): remove unused import 2026-01-09 21:18:26 +01:00
Peter Steinberger
aa134559b2 fix(agents): fail over on billing/credits errors 2026-01-09 21:17:07 +01:00
Peter Steinberger
55df1b0561 Merge pull request #547 from pasogott/feature/broadcast-groups
feat: add broadcast groups for multi-agent responses
2026-01-09 20:15:42 +00:00
Peter Steinberger
8bb8515c0e fix: land broadcast groups (#547) (thanks @pasogott) 2026-01-09 21:14:19 +01:00
Shadow
1b0734acc9 Docs: add PR 608 changelog entry 2026-01-09 14:12:38 -06:00
Nicholas Spisak
03517c1c06 fix(discord): add zombie connection detection with HELLO timeout
Add 30-second timeout after WebSocket opens to detect when Discord
never sends HELLO (zombie state). If isConnected stays false after
timeout, forces a fresh connection instead of hanging indefinitely.

Relates to #595
2026-01-09 14:12:38 -06:00
Nicholas Spisak
7df307d0c2 fix(discord): log gateway debug events for disconnect visibility
Add listener for Carbon GatewayPlugin 'debug' events to capture WebSocket
connection state changes. Critical events (close, reconnect, resume) are
logged at INFO level always; all debug messages logged in verbose mode.

Fixes #595
2026-01-09 14:12:38 -06:00
Peter Steinberger
570e118f24 feat(agents): add session_status tool 2026-01-09 21:09:42 +01:00
Peter Steinberger
244779ef8b fix(discord): log gateway reconnects 2026-01-09 21:06:19 +01:00
Peter Steinberger
f58a8178a1 fix: dedupe telegram updates 2026-01-09 21:06:06 +01:00
sheeek
0d298b134d feat: add broadcast groups for multi-agent responses
Enables multiple agents to process the same message simultaneously,
allowing teams of specialized agents with atomic tasks to work together
in the same group using one phone number.

Key features:
- Configure multiple agents per WhatsApp group/DM via routing.broadcast
- Parallel (default) or sequential processing strategies
- Full session isolation (separate history, workspace, tools per agent)
- Minimal code changes (~50 lines in auto-reply.ts)
- Backward compatible with existing routing

Use cases:
- Specialized agent teams (code reviewer + security scanner + docs)
- Multi-language support (EN + DE + ES agents)
- Quality assurance workflows (support + QA agents)
- Task automation (tracker + logger + reporter)

Example config:
{
  "routing": {
    "broadcast": {
      "strategy": "parallel",
      "120363403215116621@g.us": ["alfred", "baerbel", "assistant3"]
    }
  }
}

This enables scaling to hundreds of focused micro-agents on a single
phone number, each handling specific atomic tasks.
2026-01-09 21:05:58 +01:00
Shadow
a824c10a59 update carbon 2026-01-09 13:52:59 -06:00
Peter Steinberger
237f4732c0 style(macos): swiftformat cleanup 2026-01-09 19:49:12 +00:00
Peter Steinberger
9abd361be2 chore(swift): narrow formatter/lint scope 2026-01-09 19:49:12 +00:00
Peter Steinberger
9817df9b67 feat(telegram): inline keyboard buttons (#491)
Co-authored-by: Azade <azade@hey.com>
2026-01-09 20:47:03 +01:00
Peter Steinberger
dec00b95d0 chore: update clawtributors 2026-01-09 20:46:33 +01:00
Peter Steinberger
77ae497e93 Merge pull request #600 from samratjha96/fix/discord-duplicate-messages
fix(queue): deduplicate followup queue entries
2026-01-09 19:45:10 +00:00
Peter Steinberger
702df1adda fix: dedupe followup queue by message id (#600) (thanks @samratjha96) 2026-01-09 20:44:11 +01:00
Peter Steinberger
225af878f6 Merge pull request #537 from Nachx639/fix/discord-web-provider-activity
fix: Discord eventQueue + WhatsApp provider activity accounting
2026-01-09 19:43:27 +00:00
Peter Steinberger
8cb359dd11 fix: align WhatsApp activity account id (#537) (thanks @Nachx639) 2026-01-09 20:42:35 +01:00
Samrat Jha
c91589d311 fix(queue): deduplicate followup queue entries to prevent duplicate responses
## Problem

When messages arrived while the agent was busy processing a previous message,
the same message could be enqueued multiple times into the followup queue.
This happened because Discord's event system can emit the same message multiple
times (e.g., during reconnects or due to slow listener processing), and the
followup queue had no deduplication logic.

This caused the bot to respond to the same user message 2-4+ times.

## Solution

Add simple exact-match deduplication in `enqueueFollowupRun()`: if a prompt
is already in the queue, skip adding it again. Extracted into a small
`isPromptAlreadyQueued()` helper for clarity.

## Testing

- Added test cases for deduplication (same prompt rejected, different accepted)
- Manually verified on Discord: single response per message even when multiple
  events fire during slow agent processing
2026-01-09 20:40:18 +01:00
Tu Nombre Real
4491e9c8d5 fix(web): pass accountId in WhatsApp provider activity tracking
Recent changes added recordProviderActivity calls with accountId, but
the type definition and usage didn't include accountId in ActiveWebSendOptions.
This fix adds the optional accountId field and uses optional chaining
when accessing it to handle cases where options is undefined.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 20:40:03 +01:00
Peter Steinberger
1a3d0bace2 chore: add pnpm app workflow scripts 2026-01-09 19:38:48 +00:00
Peter Steinberger
eed2ac72ef feat(messages): add whatsapp messagePrefix and responsePrefix auto 2026-01-09 19:29:04 +00:00
Peter Steinberger
b1fd0a73c1 Merge pull request #604 from clawdbot/fix/model-fallback-error-message
Fix model fallback error message handling
2026-01-09 19:24:22 +00:00
Peter Steinberger
cc865b3c92 docs: update changelog for model fallback lint fix (#604) (thanks @steipete) 2026-01-09 20:24:08 +01:00
Peter Steinberger
20fc2b3a5e fix: avoid base-to-string in model fallback 2026-01-09 20:23:00 +01:00
Shadow
6df49ba164 chore: update carbon 2026-01-09 13:22:32 -06:00
Peter Steinberger
278fe8e904 Merge pull request #603 from clawdbot/refactor/ui-chat-split-475
refactor(ui): split chat renderers and styles
2026-01-09 19:21:56 +00:00
Peter Steinberger
d56559a063 refactor(ui): split chat renderers and styles 2026-01-09 20:20:06 +01:00
Peter Steinberger
ff848cd51e Merge pull request #599 from mcinteerj/fix/gemini-tool-schemas
fix: simplify tool schemas for Gemini compatibility
2026-01-09 19:19:01 +00:00
Peter Steinberger
1f8e4790b5 fix(messages): restore explicit responsePrefix default 2026-01-09 19:18:34 +00:00
Peter Steinberger
f080127072 fix: simplify session tool schemas for Gemini compatibility (#599) (thanks @mcinteerj) 2026-01-09 20:17:46 +01:00
Peter Steinberger
6d02197bcd Merge pull request #602 from clawdbot/refactor/model-override-warnings
refactor: centralize model override validation
2026-01-09 19:15:51 +00:00
Peter Steinberger
e797d0a62c refactor: centralize test path containment checks 2026-01-09 19:15:44 +00:00
Keith the Silly Goose
e68973fb3f fix: simplify tool schemas for Gemini compatibility
Replaces Type.Integer with Type.Number and simplifies the sessions_send tool schema to avoid anyOf/oneOf unions that cause 400 errors with Google Cloud Code Assist API.
2026-01-09 20:15:26 +01:00
Peter Steinberger
1e3c8f3380 refactor: centralize model override validation (#602) (thanks @steipete) 2026-01-09 20:15:26 +01:00
Peter Steinberger
865abef566 refactor: centralize model override validation 2026-01-09 20:14:42 +01:00
Shadow
93416106c8 Changelog: add PR 601 2026-01-09 13:06:41 -06:00
Peter Steinberger
75d667e1b0 docs: add messages concept overview 2026-01-09 19:06:14 +00:00
Peter Steinberger
9031406494 Merge pull request #472 from koala73/main
feat: add hooks.gmail.model for cheaper Gmail PubSub processing
2026-01-09 19:00:53 +00:00
Martin Púčik
6e4098fcd3 docs: split CLI install commands into separate code blocks (#601) 2026-01-09 13:00:50 -06:00
Peter Steinberger
b53f657485 fix: harden Gmail hook model defaults (#472) (thanks @koala73) 2026-01-09 19:59:45 +01:00
Magi Metal
c3336cec4b Discord: fix DM recipient parsing for bare numeric user IDs (#596)
Co-authored-by: Shadow <shadow@clawd.bot>
2026-01-09 12:58:25 -06:00
Shadow
f47cdc9820 Docs: pin Carbon dependency 2026-01-09 12:57:58 -06:00
Peter Steinberger
8716955847 Merge pull request #475 from rahthakor/feature/ui-enhancements
feat(ui): refactor chat layout with sidebar, message grouping, and nav improvements
2026-01-09 18:54:44 +00:00