chorus/bot/chorus_bot/cogs
pyr0ball 75ee9f8117 fix: prevent Discord embed field 400s from empty/oversized values
C1: build_ping_embed set sender_id field value="" whenever sender_id was
None, which manual_share.py always passes -- Discord rejects empty embed
field values (min length 1), so every manual-share ping failed to send.
Fixed by using a zero-width space sentinel that round-trips back to ""
(raw_content) or None (sender_id) in parse_ping_embed. Added regression
tests asserting no field value is ever empty after build_ping_embed runs.

C2: raw_content over 1024 chars (Discord's embed field cap) caused
inbox.send() to raise before the UID was marked seen, so oversized emails
were retried forever and never ingested. Added a defensive hard truncation
in build_ping_embed itself, plus an explicit truncation in email_ingest.py
before the embed is built (lossy for very long emails, acceptable for MVP).
2026-07-13 15:01:23 -07:00
..
__init__.py feat(bot): add manual-share cog forwarding channel messages to #inbox 2026-07-13 14:00:56 -07:00
email_ingest.py fix: prevent Discord embed field 400s from empty/oversized values 2026-07-13 15:01:23 -07:00
manual_share.py fix: preserve true message content in raw_content for attachment-only messages 2026-07-13 14:04:48 -07:00
subscribe.py feat(bot): add subscribe/unsubscribe commands and bot bootstrap 2026-07-13 14:16:28 -07:00
thread_ingest.py feat(bot): add email ingestion polling and thread-open triage creation 2026-07-13 14:07:53 -07:00