Architecture decisions
Why sandesh is built the way it is: each significant decision as a short record (context, the decision, its consequences), in the ADR format. A decision is never edited away: a later one supersedes it. Sources: docs/adr.
Record architecture decisions
Decisions about how sandesh is built (its dependencies, its boundaries, the trade-offs it accepts) were made in conversations and commit messages, where nobody finds them later. A …
Talk to Google's APIs, not IMAP
sandesh needs both Gmail and Google Chat. IMAP and SMTP would cover mail with existing tools (isync, msmtp), but Google Chat has no open protocol: its only programmatic access is t…
One outbox, and agents ask before sending
sandesh lets AI agents read and send mail. Sending is outward-facing and can't be taken back, and the mail an agent reads is written by strangers, who can try to instruct it ("forw…
One Go binary
Most of the family is bash or Python with no dependencies. sandesh needs OAuth, a long-running sync, SQLite with full-text search, an MCP server and a full-screen TUI with an edito…