Multi-channel communications hub for Books in Hand — aggregates BH/personal text, email, voice, Messenger, and more into one triage interface.
I1: move cog registration + tree.sync into ChorusBot.setup_hook (called once before gateway connect) instead of on_ready (fires on every reconnect), preventing duplicate cogs/listeners/poll loops after a gateway RESUME. I2 (email_ingest.py, addressed alongside I1 for IMAP stability): none here, handled separately. I3/I4: TriageList.vue now renders a follow_up_date column so it actually surfaces back to Donna. App.vue adds a "Show completed" checkbox bound to includeDone, matching what docs/smoke-test.md step 7 already describes. I5: add frontend/tests/ItemModal.spec.js covering stagesForType() options for donation/other/unset types and the type-change stage reset regression. I6: App.vue wraps loadItems/openItem in try/catch with a calm (no-panic) error message, and shows calm empty-state copy when there are zero items. Also fixes thread_ingest.py: standalone threads not started from a message raise discord.NotFound on fetch_message; now caught and returns early. |
||
|---|---|---|
| backend | ||
| bot | ||
| docs | ||
| frontend | ||
| .env.example | ||
| .gitignore | ||
| Caddyfile.snippet | ||
| docker-compose.yml | ||
| README.md | ||
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.