Commit Graph

1315 Commits

Author SHA1 Message Date
Re-bin
d0b4f0d70d feat(wecom): add WeCom channel with SDK pinned to GitHub tag v0.1.2 2026-03-11 07:57:12 +00:00
WhalerO
6ef7ab53d0 refactor: centralize tool call serialization in ToolCallRequest 2026-03-11 15:32:43 +08:00
WhalerO
ed82f95f0c fix: preserve provider-specific tool call metadata for Gemini 2026-03-11 15:32:26 +08:00
Re-bin
eb6310c438 merge origin/main into pr-1327
Made-with: Cursor
2026-03-11 07:30:38 +00:00
ethanclaw
12104c8d46 fix(memory): pass temperature, max_tokens and reasoning_effort to memory consolidation
Fix issue #1823: Memory consolidation does not inherit agent temperature
and maxTokens configuration.

The agent's configured generation parameters were not being passed through
to the memory consolidation call, causing it to fall back to default values.
This resulted in the consolidation response being truncated before the
save_memory tool call was emitted.

- Pass temperature, max_tokens, reasoning_effort from AgentLoop to
  MemoryConsolidator and then to MemoryStore.consolidate()
- Forward these parameters to the provider.chat_with_retry() call

Fixes #1823
2026-03-11 14:22:33 +08:00
ethanclaw
b75222d952 Merge remote main to fix branch 2026-03-11 13:12:26 +08:00
ethanclaw
c7e2622ee1 fix(subagent): pass reasoning_content and thinking_blocks in subagent messages
Fix issue #1834: Spawn/subagent tool fails with Deepseek Reasoner
due to missing reasoning_content field when using thinking mode.

The subagent was not including reasoning_content and thinking_blocks
in assistant messages with tool calls, causing the Deepseek API to
reject subsequent requests.

- Add reasoning_content to assistant message when subagent makes tool calls
- Add thinking_blocks to assistant message for Anthropic extended thinking
- Add tests to verify both fields are properly passed

Fixes #1834
2026-03-11 12:25:28 +08:00
Jerome Sonnet (letzdoo)
dee4f27dce feat: add Ollama as a local LLM provider
Add native Ollama support so local models (e.g. nemotron-3-nano) can be
used without an API key. Adds ProviderSpec with ollama_chat LiteLLM
prefix, ProvidersConfig field, and skips API key validation for local
providers.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 08:13:14 +04:00
Re-bin
82f4607b99 merge: PR #1856 exclude hidden files when syncing workspace templates 2026-03-11 03:50:54 +00:00
Re-bin
76c6063141 chore: normalize helpers.py file mode 2026-03-11 03:50:54 +00:00
Re-bin
f339f505cd Merge remote-tracking branch 'origin/main' into pr-1856 2026-03-11 03:48:05 +00:00
Re-bin
40721a7871 merge: PR #1848 preserve subagent reasoning fields across tool turns 2026-03-11 03:47:24 +00:00
Re-bin
ddccf25bb1 fix(subagent): preserve reasoning fields across tool turns
Share assistant message construction between the main agent and subagents, and add a regression test to keep reasoning_content and thinking_blocks in follow-up tool rounds.
2026-03-11 03:47:24 +00:00
Re-bin
1d611f9bf3 Merge remote-tracking branch 'origin/main' into pr-1848 2026-03-11 03:42:14 +00:00
Re-bin
df5c0496d3 merge: PR #1859 support DingTalk voice recognition text 2026-03-11 03:40:33 +00:00
Re-bin
91f17cad00 feat(dingtalk): support voice recognition text fallback
Read DingTalk recognition text when text.content is empty, and add a handler-level regression test for voice transcript delivery.
2026-03-11 03:40:33 +00:00
Re-bin
ef88a5be00 Merge remote-tracking branch 'origin/main' into pr-1859 2026-03-11 03:32:07 +00:00
Xubin Ren
4f7613d608 Merge PR #1855: fix: bump litellm version to 1.82.1 for Moonshot provider support
fix: bump litellm version to 1.82.1 for Moonshot provider support
2026-03-11 11:31:14 +08:00
dingyanyi2019
35d811c997 feat: support retrieving DingTalk voice recognition text 2026-03-11 10:19:43 +08:00
YinAnPing
d1df53aaf7 fix: exclude hidden files when syncing workspace templates
Skip files starting with '.' (e.g., macOS extended attributes like ._AGENTS.md)
to prevent UnicodeDecodeError during template synchronization.
2026-03-11 09:30:33 +08:00
greyishsong
a44ee115d1 fix: bump litellm version to 1.82.1 for Moonshot provider support
see issue #1628
2026-03-11 09:02:28 +08:00
Re-bin
6747b23c00 merge: PR #1704 switch memory consolidation to token-based context windows 2026-03-10 19:55:06 +00:00
Re-bin
62ccda43b9 refactor(memory): switch consolidation to token-based context windows
Move consolidation policy into MemoryConsolidator, keep backward compatibility for legacy config, and compress history by token budget instead of message count.
2026-03-10 19:55:06 +00:00
Re-bin
4784eb4128 merge origin/main into pr-1704 2026-03-10 18:09:15 +00:00
lailoo
2ffeb9295b fix(subagent): preserve reasoning_content in assistant messages
Subagent's _run_subagent() was dropping reasoning_content and
thinking_blocks when building assistant messages for the conversation
history. Providers like Deepseek Reasoner require reasoning_content on
every assistant message when thinking mode is active, causing a 400
BadRequestError on the second LLM round-trip.

Align with the main AgentLoop which already preserves these fields via
ContextBuilder.add_assistant_message().

Closes #1834
2026-03-11 00:47:09 +08:00
Nikolas de Hor
808064e26b fix: detect tilde paths in restrictToWorkspace shell guard
_extract_absolute_paths() only matched paths starting with / or drive
letters, missing ~ paths that expand to the home directory. This
allowed agents to bypass restrictToWorkspace by using commands like
cat ~/.nanobot/config.json to access files outside the workspace.

Add tilde path extraction regex and use expanduser() before resolving.
Also switch from manual parent-chain check to is_relative_to() for
more robust path containment validation.

Fixes #1817
2026-03-10 13:45:05 -03:00
Re-bin
947ed508ad chore: exclude skills from core agent line count 2026-03-10 10:13:46 +00:00
Re-bin
a3b617e602 Merge PR #1512: share transient LLM retry across agent paths 2026-03-10 10:10:40 +00:00
Re-bin
b0a5435b87 refactor(llm): share transient retry across agent paths 2026-03-10 10:10:37 +00:00
Re-bin
46b31ce7e7 Merge remote-tracking branch 'origin/main' into pr-1512 2026-03-10 09:40:48 +00:00
Re-bin
417a8a22b0 Merge PR #1416: sync missing scripts from upstream openclaw repository and restore skill-creator validation 2026-03-10 09:20:22 +00:00
Re-bin
b7ecc94c9b fix(skill-creator): restore validation and align packaging docs 2026-03-10 09:16:23 +00:00
Re-bin
6abd3d10ce Merge remote-tracking branch 'origin/main' into pr-1416 2026-03-10 09:00:02 +00:00
suger-m
6c70154fee fix(exec): enforce workspace guard for home-expanded paths 2026-03-10 15:55:04 +08:00
Re-bin
a1b5f21b8b merge: PR #1389 add Telegram groupPolicy support 2026-03-10 04:34:18 +00:00
Re-bin
4f9857f85f feat(telegram): add configurable group mention policy 2026-03-10 04:34:15 +00:00
Re-bin
8aa754cd2e Merge branch 'main' into pr-1389 2026-03-10 04:26:12 +00:00
Re-bin
d803144f44 merge: PR #1785 respect gateway port from config when --port omitted 2026-03-10 04:08:00 +00:00
Re-bin
0ecfb0a9d6 Merge branch 'main' into pr-1785 2026-03-10 04:07:53 +00:00
Re-bin
39d21bc19d merge: PR #1797 let gateway use configured port by default 2026-03-10 03:54:46 +00:00
shenchengtsi
b24d6ffc94 fix(memory): validate save_memory payload before persisting 2026-03-10 11:32:11 +08:00
Chris Alexander
d633ed6e51 fix(subagent): avoid missing from_legacy call 2026-03-09 20:36:31 +00:00
Chris Alexander
71d90de31b feat(web): configurable web search providers with fallback
Add multi-provider web search support: Brave (default), Tavily,
DuckDuckGo, and SearXNG. Falls back to DuckDuckGo when provider
credentials are missing. Providers are dispatched via a map with
register_provider() for plugin extensibility.

- WebSearchConfig with env-var resolution and from_legacy() bridge
- Config migration for legacy flat keys (tavilyApiKey, searxngBaseUrl)
- SearXNG URL validation, explicit error for unknown providers
- ddgs package (replaces deprecated duckduckgo-search)
- 16 tests covering all providers, fallback, env resolution, edge cases
- docs/web-search.md with full config reference

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 20:36:14 +00:00
Protocol Zero
1284c7217e fix(cli): let gateway use config port by default
Respect config.gateway.port when --port is omitted, while keeping CLI flags as the highest-precedence override.
2026-03-09 20:12:11 +00:00
Protocol Zero
0104a2253a fix(telegram): avoid media filename collisions
Use file_unique_id when storing downloaded Telegram media so different uploads do not silently overwrite each other on disk.
2026-03-09 20:11:16 +00:00
Re-bin
99b896f5d4 merge: PR #1784 refine Slack thread handling 2026-03-09 17:18:13 +00:00
Re-bin
28330940d0 fix(slack): skip thread_ts for direct messages 2026-03-09 17:18:10 +00:00
chengyongru
45c0eebae5 docs(wecom): add wecom configuration guide in readme 2026-03-10 00:53:23 +08:00
Re-bin
757921fb27 Merge branch 'main' into pr-1784 2026-03-09 16:35:10 +00:00
ailuntz
9c88e40a61 fix(cli): respect gateway port from config when --port omitted 2026-03-10 00:32:42 +08:00