What problem does it solve?
ProjectRouter enables multiple projects in config.toml to share the same IM platform credentials (e.g., one Feishu bot serving three projects). It maintains a single platform connection and routes incoming messages to the correct Engine based on per-session bindings.
Core Features & Use Cases
- Shared platform routing across multiple projects using a single connection
- Per-session binding and project switching via the /project command
- Thread-isolation support with optional BaseSessionKeyer
- Binding persistence to survive restarts and support fallback routing
- Button-based selection UI when supported by the platform, with a text fallback
- Clear architecture references and test coverage to ensure reliability
- Extensible for adding new subcommands and i18n strings
Quick Start
Configure multiple projects in your config.toml, initialize the routers for shared platforms, start all engines, then use the /project command to bind and switch between projects.