fa9492c4d4
Merge remote-tracking branch 'origin/main'
...
Test Suite / test (3.11) (push) Failing after 1m49s
Test Suite / test (3.12) (push) Failing after 1m18s
Test Suite / test (3.13) (push) Failing after 1m15s
# Conflicts:
# nanobot/agent/loop.py
# nanobot/agent/tools/message.py
# nanobot/agent/tools/shell.py
# nanobot/channels/whatsapp.py
# nanobot/cli/commands.py
# tests/test_channel_plugins.py
# tests/test_commands.py
2026-03-24 09:24:56 +08:00
Xubin Ren
0ca639bf22
fix(cli): use discovered class for channel login
2026-03-24 01:11:33 +08:00
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