- Add CONFIG_RETENTION_DAYS setting (default 90) to config.py - Create retention_service.py with cleanup_expired_snapshots (parameterized SQL via make_interval) - APScheduler IntervalTrigger runs cleanup every 24h with 1h jitter - Prometheus counter and histogram for observability - CASCADE FKs handle diff/change deletion automatically - All 4 unit tests pass Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>