- Alerting: return "sent"/"filtered"/"failed" from send_alert_with_retries() so filtered alerts don't log as delivery failures
- file-enrichment: parse raw_data JSON string from asyncpg before indexing, add TypeError to except clause
- titus-scanner: verify gzip contains tar archive before classifying as .tar.gz to avoid invalid tar header errors on plain .gz files