V3.2.0 - Multi-bot Group Chat Routing
[3.2.0] - 2026-04-29
Added
- Multi-bot registry:
botssection in config to define multiple Feishu bots withapp_id/app_secret - Chat-to-bot bindings:
bindings.chatsmapschat_id→bot_id, withfallback_botfor unbound sessions - Group rules framework:
bindings.group_rulessection reserved for future group trigger filtering (V3.2 no-op) - Bot management CLI:
hermes_feishu_card.cli botswithlist,show,add,removecommands - Sidecar routing diagnostics:
/health.routingexposesbot_count,chat_binding_count,last_route,bots[]details - Optional routing context extraction:
hook_runtime._event_data()now extractschat_type,tenant_key,agent_id,profile_idfrommessage.startedfor future features
Changed
runner.py: UsesFeishuBoundarywithBotRegistry.resolve()to route events to bot-specificFeishuClientserver.py: Adds bot lookup viaregistry.resolve(RoutingContext(...))before sending card updatesconfig.py: Addsbots,bindings,group_rulesschema validation with defaultscli.py: Newbotscommand group with management subcommands and--configflag- Package version:
3.1.0→3.2.0
Fixed
runner.py: EnsureNoopFeishuClientpath respects absent credentials without breakingcli.py: Default bot name resolution respects config-defined default item nameserver.py: Bot resolution gracefully falls back todefault_botwhen no binding matches
Docs
README.md/README.en.md: New "V3.2 多 bot 与群聊" section with config examples and CLI usageconfig.yaml.example: Fullbots+bindings+group_rulessample- Test suite updated to 398 tests (unit + integration coverage for bots, routing, config)
Full changelog: CHANGELOG.md