"Necesitamos un sistema de alertas automáticas: cuando la retención de usuarios de un plan cae más de un 10% semana-sobre-semana, que envíe un email al account manager con el resumen del cohort y un enlace directo al dashboard."
code-explorer
orch-add-feature/src/lib/notifications/ (actualmente vacío) + 1 API routegh search + Context7
gh search repos "supabase pg_cron email alert typescript" → 3 repos relevantes encontradosresend.emails.send() con React Email templates@react-email/components v0.0.22, resend v4.0.0vercel.json) — sin dep. adicionalplanner agent
RetentionAlert y CohortSnapshot en src/types/alerts.tsScomputeWeeklyRetentionDelta() en src/lib/analytics/cohorts.ts (amplía existente)Ssrc/lib/notifications/emailAlerter.ts — env Resend, template React EmailMapp/api/cron/retention-alerts/route.ts — orquesta T-2 + T-3, secret headerMvercel.json — cron 0 9 * * 1 (lunes 09:00 UTC)SRESEND_API_KEY, CRON_SECRET — docs en .env.exampleStdd-guide agent
retention-alerts
✓ 14 passed · 0 failed
code-reviewer + security-reviewer
| Sev. | Hallazgo | Resolución |
|---|---|---|
| WARN | CRON_SECRET comparado con === — susceptible a timing attack |
Reemplazado con crypto.timingSafeEqual() ✓ |
| WARN | RESEND_API_KEY loggeada en bloque catch en modo dev |
Reemplazada por [REDACTED] en logs ✓ |
| INFO | Tipo CohortSnapshot no exportado — inutilizable desde otros módulos |
Añadido export en alerts.ts ✓ |
| OK | Validación de input API route, manejo de errores Resend, env vars | Sin hallazgos críticos ni altos |
git — 4 commits