fix: ignore system DMs in reactor — prevent stalemate notification cascade
Release / Build darwin/amd64 (push) Canceled after 0s
Release / Build linux/amd64 (push) Canceled after 0s
Release / Build darwin/arm64 (push) Canceled after 0s
Release / Build linux/arm64 (push) Canceled after 0s
Release / Generate Homebrew Formula (push) Canceled after 0s
Release / GitHub Release (push) Canceled after 0s
Release / Docker Image (push) Canceled after 0s
Release / Publish to MCP Registry (push) Canceled after 0s
Release / Build darwin/amd64 (push) Canceled after 0s
Release / Build linux/amd64 (push) Canceled after 0s
Release / Build darwin/arm64 (push) Canceled after 0s
Release / Build linux/arm64 (push) Canceled after 0s
Release / Generate Homebrew Formula (push) Canceled after 0s
Release / GitHub Release (push) Canceled after 0s
Release / Docker Image (push) Canceled after 0s
Release / Publish to MCP Registry (push) Canceled after 0s
The StaleWorker sends DMs from 'system' to all channel members when workflow messages are stuck in 'proposed' state. These DMs were triggering reactive agent runs, which couldn't action the stale messages, burning daily budget on wasted K8s Jobs. Now: reactor silently ignores all messages from 'system' sender. System notifications are for human review, not agent action. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.6
parent
4b8c574096
commit
7848911a5f
@@ -75,6 +75,13 @@ func (r *Reactor) Dispatch(ctx context.Context, event dispatcher.MessageEvent) e
|
||||
|
||||
// evaluateTrigger runs the decision chain for a single agent.
|
||||
func (r *Reactor) evaluateTrigger(ctx context.Context, agentName string, event dispatcher.MessageEvent) error {
|
||||
// 0. Ignore system messages — stalemate worker notifications, retention warnings,
|
||||
// and other automated DMs should NOT trigger reactive runs. They're notifications
|
||||
// meant for the human owner, not actionable work for agents.
|
||||
if event.FromAgent == "system" {
|
||||
return nil
|
||||
}
|
||||
|
||||
// 1. Get agent config
|
||||
agent, err := r.agentStore.GetAgentByName(ctx, agentName)
|
||||
if err != nil {
|
||||
|
||||
Reference in New Issue
Block a user