Multi-channel communications hub for Books in Hand — aggregates BH/personal text, email, voice, Messenger, and more into one triage interface.
Find a file
pyr0ball f1bf86a5c9 fix(bot): preserve HTML body content and isolate mailbox poll failures
_extract_body previously discarded real HTML content, replacing it with
a placeholder whenever a multipart email had no text/plain part. Now
falls back to the raw text/html payload before giving up, only using
the placeholder when a message has no text-bearing part at all.

poll_mailboxes also had no error isolation: an unhandled IMAP exception
from any one mailbox would stop the discord.ext.tasks.Loop permanently,
silently killing ingestion for all three mailboxes. Each mailbox's poll
is now wrapped in try/except so one failure doesn't block the others.
2026-07-13 14:12:46 -07:00
backend feat(backend): add FastAPI routes for items 2026-07-13 13:43:09 -07:00
bot fix(bot): preserve HTML body content and isolate mailbox poll failures 2026-07-13 14:12:46 -07:00
.gitignore chore: initialize chorus repo 2026-07-13 11:01:51 -07:00
README.md chore: initialize chorus repo 2026-07-13 11:01:51 -07:00

Chorus

Multi-channel communications hub for Books in Hand.

Aggregates BH text, personal text, BH email, personal email, voice, Facebook Messenger, and ND messenger into a single triage interface, so Donna can coordinate with volunteers and donors without switching between apps.

Standalone client project for Books in Hand. Not part of the CircuitForge product line — no BSL tiering, no CircuitForge license server integration.

Design spec and implementation plan live in a separate private planning repo (circuitforge-plans/books-in-hand/superpowers/) and won't always be available to whoever is working in this repo.

Status

Design in progress.