chorus/bot/chorus_bot
pyr0ball 73fb67b3bf fix: cog re-registration, thread NotFound, follow-up date, and error/empty states
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.
2026-07-13 15:01:32 -07:00
..
cogs fix: cog re-registration, thread NotFound, follow-up date, and error/empty states 2026-07-13 15:01:32 -07:00
__init__.py feat(bot): add modality map, config loader, and backend client 2026-07-13 13:48:39 -07:00
backend_client.py feat(bot): add modality map, config loader, and backend client 2026-07-13 13:48:39 -07:00
config.py feat(bot): add modality map, config loader, and backend client 2026-07-13 13:48:39 -07:00
main.py fix: cog re-registration, thread NotFound, follow-up date, and error/empty states 2026-07-13 15:01:32 -07:00
modality_map.py feat(bot): add modality map, config loader, and backend client 2026-07-13 13:48:39 -07:00
ping.py fix: prevent Discord embed field 400s from empty/oversized values 2026-07-13 15:01:23 -07:00