fix(slack): stop trends spam + enable daily brief and pitch analyzer work
Summary
Two shipped fixes on top of spam work, plus scaffold for next features.
Spam fix (urgent)
- 24h cooldown on trends digest + drain-all-candidates on post
- Process-local anchor (_PROCESS_COOLDOWN_ANCHOR) that backstops on-disk state, because Colima/virtiofs shows flaky reads right after container rebuild
- Notifier loop primes the anchor on startup — first tick post-rebuild is guaranteed to be quiet
Cleanup CLI
- cmoagent slack cleanup --only-trend-digests --keep-last N deletes bot-authored messages
- Requires groups:history scope on Slack app (PENDING CEO action)
Test plan
-
273/273 tests pass -
CEO adds groups:history scope -
CEO runs cleanup to drop old spam messages -
Monitor channel for 24h to confirm no repost