About this project

TinyChannels is a Rust library that provides channel and messaging primitives for the OpenHuman framework. It offers a portable channel contract, configuration schema, connection metadata, route helpers, and a backend delegation layer. This design connects channel surfaces to OpenHuman harnesses without coupling this crate to the main OpenHuman application crate. Runtime side effects are pluggable through the `ChannelBackend` trait. OpenHuman owns the actual backend implementation for REST/JWT/config storage, while this crate validates channel metadata and delegates operations through that trait. The library includes optional provider implementations that must be explicitly enabled via Cargo features: - **Email (send only)**: SMTP send via `lettre`. - **Email**: SMTP + IMAP via `lettre`, `async-imap`, and `mail-parser`. - **Lark/Feishu**: Webhook receiver + Protobuf decoder via `axum` and `prost`. - **WhatsApp Web**: Multi-device support via `whatsapp-rust`. Other providers, including Telegram, Discord, Slack, Signal, iMessage, IRC, and Yuanbao/DingTalk, are included in the default build. The crate is not published to crates.io; it is consumed via a vendored path dependency or a direct Git dependency. The repository is organized into several crates and modules: - `tinychannels-bus`: The core contract, including `Channel`, `ChannelMessage`, `SendMessage` traits, configuration, capabilities, and conversation keys. - `tinychannels-runtime`: Listener supervision, bounded dispatch loop, logout-scoped sessions, health checks, and a console `CliChannel`. - `tinychannels-module`: The loadable TinyBus module. - `src/delivery/`: Durable outbound queue and a streaming reply driver for draft, thinking, and filler bubbles. - `src/remote/`: Implements status, sessions, new, and help commands for providers with remote control capability. - `src/approvals/`: Sends in-chat approval prompts for providers with chat approval capability. - `src/relay/`: Relay transport loop, WebSocket dialer, and process-wide transport registry.