zeroclaw/src
Argenis 2b3603bacf
fix(anthropic): merge consecutive same-role messages to prevent 500 errors (#3501)
When multiple tool calls execute in a single turn, each tool result was
emitted as a separate role="user" message. Anthropic's API rejects
adjacent messages with the same role, and newer models like
claude-sonnet-4-6 respond with 500 Internal Server Error instead of a
descriptive 400.

Merge consecutive same-role messages in convert_messages() so that
multiple tool_result blocks are combined into one user message, and
consecutive user/assistant messages are also properly coalesced.

Fixes #3493
2026-03-14 15:10:37 -04:00
..
agent fix(channels): harden slack threading and utf8 truncation (#3461) 2026-03-14 07:31:10 -04:00
approval fix(onboard): use provider-aware env var hint in quick setup next steps 2026-02-24 16:03:01 +08:00
auth feat: stabilize codex oauth and add provider model connectivity workflow 2026-02-24 16:03:01 +08:00
channels fix(nextcloud_talk): accept "Create" event type for new messages (#3500) 2026-03-14 14:48:48 -04:00
config feat(channels): add show_tool_calls config to suppress tool notifications (#3480) 2026-03-14 09:49:35 -04:00
cost fix(agent): parse MiniMax tool call formats for execution 2026-02-21 12:36:28 +08:00
cron feat(agent): 支持交互会话状态持久化与恢复 (#3421) 2026-03-13 18:55:42 -04:00
daemon feat(agent): 支持交互会话状态持久化与恢复 (#3421) 2026-03-13 18:55:42 -04:00
doctor feat: stabilize codex oauth and add provider model connectivity workflow 2026-02-24 16:03:01 +08:00
gateway feat(gateway): enable multi-turn chat for WebSocket connections (#3467) 2026-03-14 07:04:59 -04:00
hardware Addressed clippy lint issues 2026-03-10 01:48:19 -04:00
health refactor(sync): migrate remaining std mutex usage to parking_lot 2026-02-18 00:45:26 +08:00
heartbeat fix: route heartbeat outputs to configured channels 2026-02-24 16:02:59 +08:00
hooks feat(hooks): add webhook-audit builtin hook (#3212) 2026-03-11 23:34:17 -04:00
integrations feat(install): branded one-click installer with secure pairing flow (#3471) 2026-03-14 07:33:14 -04:00
memory fix(memory): resolve embedding api_key from embedding_provider env var, not default_provider key (#3184) 2026-03-11 15:39:54 -04:00
observability fix(observability): support verbose backend selection (#3374) 2026-03-13 16:15:43 -04:00
onboard feat(install): branded one-click installer with secure pairing flow (#3471) 2026-03-14 07:33:14 -04:00
peripherals fix(build): unblock strict 32-bit no-default-features builds (#3375) 2026-03-13 15:45:03 -04:00
providers fix(anthropic): merge consecutive same-role messages to prevent 500 errors (#3501) 2026-03-14 15:10:37 -04:00
rag chore(lint): extend low-risk clippy cleanup batch 2026-02-17 16:40:58 +08:00
runtime feat(tools): add Windows support for shell tool_call execution (#3442) 2026-03-13 17:12:16 -04:00
security feat(tools): add Windows support for shell tool_call execution (#3442) 2026-03-13 17:12:16 -04:00
service fix: resolve all compilation, test, and fmt errors on main 2026-02-21 12:09:06 +08:00
skillforge chore: Remove blocking read strings 2026-02-19 14:52:29 +08:00
skills Addressed clippy lint issues 2026-03-10 01:48:19 -04:00
sop fix(web): call doctor endpoint with authenticated POST 2026-02-24 16:02:59 +08:00
tools feat(gateway): add dynamic node discovery and capability advertisement (#3448) 2026-03-13 18:23:48 -04:00
tunnel fix: skip documentation URLs in cloudflare tunnel URL parser (#3416) 2026-03-13 09:40:02 -04:00
identity.rs test: cover deterministic HashMap ordering paths 2026-02-18 21:55:40 +08:00
lib.rs feat(channel): add channel send CLI command for outbound messages (#2907) 2026-03-12 10:18:04 -04:00
main.rs feat(install): branded one-click installer with secure pairing flow (#3471) 2026-03-14 07:33:14 -04:00
migration.rs readd tests, remove markdown files 2026-02-18 14:42:39 +08:00
multimodal.rs fix: resolve clippy warnings and rustfmt across codebase 2026-02-21 12:39:34 +08:00
util.rs fix(ci): restore containerized validation on main (#1096) 2026-02-20 07:48:58 -05:00