1) Rate limiting básico: bucket en memoria por remitente (p. ej., 10/min), respuesta amable al exceder, desactivado en NODE_ENV=test.
2) Recordatorios diarios por DM: preferencia por usuario (daily|off, por defecto off), hora fija local (p. ej., 08:30 TZ), un DM con resumen compacto de “tus tareas”.
3) Refinar ContactsService: mejorar heurística de nombre, invalidación temprana en CHATS_UPDATE/CONTACTS_UPDATE, TTL configurable, robustez ante fallos, sin llamadas de red en tests.
4) Sincronización mínima de miembros: obtener y cachear miembros de grupos activos con TTL, uso no bloqueante; base para futuras validaciones/UX.
5) Ampliar test suite: cubrir recordatorios, rate limiting, actualización de nombres, sync de miembros y casos extremos de ResponseQueue.
### Phase 1: User & Group Foundation (Highest Priority - In Progress)
- [x] **Create WhatsApp ID Normalization Utility:** (`src/utils/whatsapp.ts`) Handle different ID formats.
- [x] **Implement `ensureUserExists`:** (`src/db.ts`) Add users to DB on first interaction.
- Refinar políticas de caché (TTL, invalidación) y ampliar compatibilidad de endpoints; en DM, WhatsApp no pinta chips de mención de terceros (limitación del cliente).
## ➡️ Próximos Pasos Prioritarios
1. Métricas y observabilidad de ResponseQueue (/metrics).
2. Gestión de tareas: eliminación y mejoras de edición.
1. Rate limiting básico (bucket en memoria por remitente; desactivado en tests).
2. Recordatorios diarios por DM (opt-in daily|off; hora fija local; resumen compacto).
3. Refinar ContactsService (caché/nombres; TTL configurable; robustez ante fallos; sin red en tests).
4. Sincronización mínima de miembros (cacheada; no bloqueante).
5. Ampliar test suite (recordatorios, rate limiting, contactos, sync de miembros, ResponseQueue).
## 🐞 Problemas conocidos
- En chats privados, WhatsApp no renderiza chips de mención para terceros; en grupos sí se resuelven al nombre local de cada receptor. El bot incluye nombres en el texto cuando los conoce y números como @dígitos para acción rápida; no hay reescritura por receptor.
@ -76,8 +79,11 @@
## ▶️ Para continuar ahora
Propuesta inmediata:
- Métricas y observabilidad de ResponseQueue (contadores, latencias, tamaño de cola) y endpoint /metrics.
- Gestión de tareas: eliminación y edición básica.
- Rate limiting básico (bucket en memoria por remitente; desactivado en tests).
- Recordatorios diarios por DM (opt-in daily|off; hora fija local; resumen compacto).
- Refinar ContactsService (caché y nombres; TTL configurable; robustez ante fallos; sin red en tests).
- Sincronización mínima de miembros (cacheada; no bloqueante).
- Ampliar test suite (recordatorios, rate limiting, contactos, sync de miembros, ResponseQueue).
Para que pueda proponer cambios de código, añade estos archivos a este chat: