feat: wire external rules pipeline into ingress and dispatch

- Add DispatchContext field to Task model for rule metadata storage
- Add BlocklistEmails config (BLOCKLIST_EMAILS env var)
- Wire rules.Pipeline into IMAPWatcher, replacing inline whitelist check
- Pass rule metadata through DispatchContext to OpenClaw dispatch
- Remove isWhitelisted method (now handled by WhitelistRule)

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-04-28 06:38:37 +07:00
co-authored by Claude Opus 4.7
parent ab992abc26
commit aa05e3f7c0
9 changed files with 69 additions and 31 deletions
+1
View File
@@ -24,6 +24,7 @@ type Task struct {
Sender string
Subject string
BodyPlain string
DispatchContext string // JSON metadata from external rules pipeline.
AIResponse string
Status string `gorm:"index;not null"`
AttemptOpenClaw int `gorm:"default:0"`