feat(dashboard): neuer Security-Overview-Block — 6 Security-KPI-Tiles (Admin-Alerts, Outbound-Spikes, Retroscan-Treffer, Quarantäne, FN-Meldungen, Aktive IOCs) mit farbkodierter Gefahrenanzeige und Deep-Links zu Security Alerts (1.50.27)
feat(retroscan): Suffix-Matching für Ausschlüsse — Eintrag „cloudinary.com" deckt automatisch alle Subdomains ab (1.50.26)
feat(security): Retroscan-Ausschlüsse in Admin-UI verwaltbar — neuer Tab auf Security Alerts Seite (1.50.25)
feat(security): System Alerts tab — cluster-aggregated admin_alerts in UI (1.50.29)
feat(security): System-Alerts Tab auf Security Alerts Seite — Cluster-aggregierte admin_alerts (Disk, Zertifikat, Queue, Cluster, ClamAV, Retroscan, Outbound) mit aufklappbaren Details; URL-Parameter-Routing (?tab=X) für alle Tabs; Dashboard-Tile verlinkt direkt auf System-Alerts Tab (1.50.29)
feat(yara): Office-macro and JS-dropper detection rules (1.50.31)
feat(yara): YARA-Regeln für Office-Makros und JS-Dropper — Dateinamen-Erkennung (.xlsm/.docm/.js/.vbs/.hta), base64-OLE2-Magic, Script-API-Kombination in Klartext-Parts; postinst installiert jetzt alle nmg-*.yar Regeldateien (1.50.31)
fix(alerting): Irreführenden „auto-learned"-Hinweis in Retroscan-Alert-Mail entfernt (1.50.24)
fix(outboundguard): SQL-Syntaxfehler in Spike-Detection-Query behoben — STRING_AGG(...LIMIT 5) ist kein gültiges PostgreSQL, ersetzt durch ARRAY_TO_STRING(ARRAY_AGG(DISTINCT recipient)[1:5], ','). Outbound-Guard war seit 1.50.19 nie funktionsfähig (1.50.30)
fix(outboundguard): replace STRING_AGG LIMIT with ARRAY_AGG slice (1.50.30)
fix(retroscan): CDN-Plattformen von Retroscan-Treffern ausschließen (1.50.24)
fix(sandbox): Subdomain-Match für sender_domain Whitelist + Anthropic Envelope-Fix (1.50.23)
fix(security): Retroscan-Ausschlüsse Tabelle zeigte keine Daten — Doppel-Unwrap-Bug in allen Security-Alerts-Tabs behoben (1.50.26)