IMP-03: e-mail-regeln-zuordnung-tags-klassifizierung
Regelwerk für automatische Zuordnung, Verschlagwortung und Klassifizierung importierter E-Mails nach Absender, Betreff, Postfach und Anhangstyp. - store.go: Postgres-Store für Regeln (Absender-/Betreff-/Postfach-/ Anhangstyp-Muster als reguläre Ausdrücke, Category einwertig, Tag mehrwertig, Priority — niedrigere Zahl = höhere Priorität). - engine.go: Engine.Evaluate wertet Regeln in Prioritätsreihenfolge aus, "first match wins" für Category, alle zutreffenden Regeln tragen zu Tags bei. Muster werden beim Erzeugen der Engine einmal kompiliert. - Bewusst keine Funktion zum rückwirkenden Neuklassifizieren bestehender Nachrichten — nur explizite RunOnce-artige Neuauswertung wirkt. Prüfungen (alle real durchgeführt, siehe mail/docs/IMP-03-PRUEFPROTOKOLL.md): 1. TestEvaluate_ConflictingRulesRespectDocumentedPriority: höherpriorisierte Regel gewinnt real bei widersprüchlichen Kategorien. 2. TestNewEngine_NewRuleDoesNotAffectAlreadyCapturedResult: bereits erfasstes Ergebnis bleibt real unverändert nach neuer Regel. 3. TestEvaluate_TwentyPlusRulesStayPerformant: 31 Regeln, 2,64µs/Auswertung. Kein Umbau: kein bestehendes Paket angefasst. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HhgFcLS8tYMhDJpP74C6AQ
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
7238568918
commit
089d7e6d96
@@ -0,0 +1,14 @@
|
||||
CREATE TABLE IF NOT EXISTS mail_rules (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
tenant_slug TEXT NOT NULL,
|
||||
name TEXT NOT NULL,
|
||||
sender_pattern TEXT NOT NULL DEFAULT '',
|
||||
subject_pattern TEXT NOT NULL DEFAULT '',
|
||||
mailbox_pattern TEXT NOT NULL DEFAULT '',
|
||||
attachment_type_pattern TEXT NOT NULL DEFAULT '',
|
||||
category TEXT NOT NULL DEFAULT '',
|
||||
tag TEXT NOT NULL DEFAULT '',
|
||||
priority INT NOT NULL DEFAULT 100,
|
||||
created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
|
||||
updated_at TIMESTAMPTZ NOT NULL DEFAULT now()
|
||||
)
|
||||
Reference in New Issue
Block a user