chengyongru
91d95f139e
fix: cross-platform test compatibility
...
- test_channel_plugins: fix assertion logic for discoverable channels
- test_filesystem_tools: normalize path separators for Windows
- test_tool_validation: use python to generate output, avoid cmd line limits
2026-03-14 16:13:38 +08:00
Xubin Ren
dbdb43faff
feat: channel plugin architecture with decoupled configs
...
- Add plugin discovery via Python entry_points (group: nanobot.channels)
- Move 11 channel Config classes from schema.py into their own channel modules
- ChannelsConfig now only keeps send_progress + send_tool_hints (extra=allow)
- Each built-in channel parses dict->Pydantic in __init__, zero internal changes
- All channels implement default_config() for onboard auto-population
- nanobot onboard injects defaults for all discovered channels (built-in + plugins)
- Add nanobot plugins list CLI command
- Add Channel Plugin Guide (docs/CHANNEL_PLUGIN_GUIDE.md)
- Fully backward compatible: existing config.json and sessions work as-is
- 340 tests pass, zero regressions
2026-03-14 16:13:38 +08:00
Xubin Ren
ca5047b602
feat(web): multi-provider web search + Jina Reader fetch
2026-03-13 05:44:16 +00:00
Xubin Ren
84b107cf6c
fix(ci): upgrade setup-python, add system deps, simplify test assertions
2026-03-13 04:05:08 +00:00
Xubin Ren
4b50a7b6c0
Merge branch 'main' into pr-1916
2026-03-13 03:57:09 +00:00
Xubin Ren
6d3a0ab6c9
fix(memory): validate save_memory payload and raw-archive on repeated failure
...
- Require both history_entry and memory_update, reject null/empty values
- Fallback to tool_choice=auto when provider rejects forced function call
- After 3 consecutive consolidation failures, raw-archive messages to
HISTORY.md without LLM summarization to prevent context window overflow
2026-03-13 03:53:50 +00:00
Xubin Ren
60c29702cc
Merge branch 'main' into pr-1810
...
# Conflicts:
# nanobot/agent/memory.py
# tests/test_memory_consolidation_types.py
2026-03-13 03:29:16 +00:00
Xubin Ren
4f77b9385c
fix(memory): fallback to tool_choice=auto when provider rejects forced function call
...
Some providers (e.g. Dashscope in thinking mode) reject object-style
tool_choice with "does not support being set to required or object".
Retry once with tool_choice="auto" instead of failing silently.
Made-with: Cursor
2026-03-13 03:18:08 +00:00
Frank
a09245e919
fix(qq): restore plain text replies for legacy clients
2026-03-12 12:48:25 -07:00
Re-bin
3467a7faa6
fix: improve local provider auto-selection and update docs for VolcEngine/BytePlus
2026-03-12 15:22:15 +00:00
Jiajun Xie
ec6e099393
feat(ci): add GitHub Actions workflow for test directory
...
- nanobot/channels/matrix.py: Add keyword-only parameters restrict_to_workspace/workspace to MatrixChannel.__init__ and assign them to _restrict_to_workspace/_workspace with proper type conversion and path resolution
- tests/test_commands.py: Add _strip_ansi() function to remove ANSI escape codes, use regex assertions for --workspace/--config parameters to allow 1 or 2 dashes
2026-03-12 21:54:22 +08:00
Re-bin
64888b4b09
Simplify reply context extraction, fix slash commands broken by reply injection, attach reply media regardless of caption
2026-03-12 06:16:57 +00:00
Re-bin
869149ef1e
Merge branch 'main' into pr-1900
2026-03-12 06:06:26 +00:00
Re-bin
64aeeceed0
Add /restart command: restart the bot process from any channel
2026-03-12 04:33:51 +00:00
Re-bin
35260ca157
fix: raise persisted tool result limit to 16k
2026-03-12 02:50:28 +00:00
John Doe
3f799531cc
Add media download functionality
2026-03-12 06:43:59 +07:00
John Doe
1eedee0c40
add reply context extraction for Telegram messages
2026-03-12 06:23:02 +07:00
Re-bin
0d94211a93
enhance: improve filesystem & shell tools with pagination, fallback matching, and smarter output
2026-03-11 16:20:11 +00:00
Re-bin
9d0db072a3
fix: guard quoted home paths in shell tool
2026-03-11 15:43:04 +00:00
Re-bin
85609c99b3
Merge remote-tracking branch 'origin/main' into pr-1827
2026-03-11 15:32:52 +00:00
Re-bin
9fc74bde9a
Merge remote-tracking branch 'origin/main' into pr-1874
2026-03-11 15:26:39 +00:00
Re-bin
c72c2ce7e2
refactor: move generation settings to provider level, eliminate parameter passthrough
2026-03-11 09:47:04 +00:00
Re-bin
a180e84536
Merge remote-tracking branch 'origin/main' into pr-1868
2026-03-11 09:10:29 +00:00
Re-bin
4478838424
fix(pr-1863): complete Ollama provider routing and README docs
2026-03-11 08:42: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
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
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
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
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
b0a5435b87
refactor(llm): share transient retry across agent paths
2026-03-10 10:10:37 +00:00
Re-bin
b7ecc94c9b
fix(skill-creator): restore validation and align packaging docs
2026-03-10 09:16:23 +00:00
suger-m
6c70154fee
fix(exec): enforce workspace guard for home-expanded paths
2026-03-10 15:55:04 +08:00
Re-bin
4f9857f85f
feat(telegram): add configurable group mention policy
2026-03-10 04:34:15 +00:00
Re-bin
0ecfb0a9d6
Merge branch 'main' into pr-1785
2026-03-10 04:07:53 +00:00
shenchengtsi
b24d6ffc94
fix(memory): validate save_memory payload before persisting
2026-03-10 11:32:11 +08: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
Re-bin
28330940d0
fix(slack): skip thread_ts for direct messages
2026-03-09 17:18:10 +00:00
ailuntz
9c88e40a61
fix(cli): respect gateway port from config when --port omitted
2026-03-10 00:32:42 +08:00
ailuntz
620d7896c7
fix(slack): define thread usage when sending messages
2026-03-10 00:14:34 +08:00
Re-bin
5eb67facff
Merge branch 'main' into pr-1728 and harden MCP tool cancellation handling
2026-03-08 16:01:06 +00:00
Re-bin
7cbb254a8e
fix: remove stale IDENTITY bootstrap entry
2026-03-08 15:39:40 +00:00
Re-bin
bf0ab93b06
Merge branch 'main' into pr-1635
2026-03-08 03:24:15 +00:00
Re-bin
fb4f696085
Merge branch 'main' into pr-1635
2026-03-08 03:14:20 +00:00
Re-bin
20dfaa5d34
refactor: unify instance path resolution and preserve workspace override
2026-03-08 02:58:25 +00:00
Re-bin
057927cd24
fix(auth): prevent allowlist bypass via sender_id token splitting
2026-03-07 16:36:12 +00:00
Re-bin
3e9c5aa34a
merge main into pr-532 and keep qq msg_seq/startup behavior while adding group @message support with regression tests
2026-03-07 16:22:41 +00:00
Re-bin
4e25ac5c82
test(dingtalk): cover group reply routing
2026-03-07 16:07:57 +00:00
Re-bin
83433198ca
Merge main into pr-436
2026-03-07 15:51:53 +00:00