|
|
e2bbdb7a4f
|
Merge remote-tracking branch 'origin/main'
|
2026-03-16 09:43:17 +08:00 |
|
Meng Yuhang
|
f9ba6197de
|
fix: save DingTalk downloaded files to media dir instead of /tmp
|
2026-03-15 23:21:22 +08:00 |
|
Meng Yuhang
|
34358eabc9
|
feat: support file/image/richText message receiving for DingTalk
|
2026-03-15 23:21:22 +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 |
|
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
|
4e25ac5c82
|
test(dingtalk): cover group reply routing
|
2026-03-07 16:07:57 +00:00 |
|