# Estado del Proyecto - Task Manager para WhatsApp ## ✅ Funcionalidades Completadas - **Infraestructura Principal** - Servidor webhook con health checks - Dockerización y despliegue CapRover - Gestión de dependencias con Bun - **Base de Datos** - Modelo de tareas y asignaciones - Normalización de IDs de WhatsApp - Transacciones atómicas - Esquema de `response_queue` extendido con columna `metadata` (migración ligera al inicio) - **Sincronización de Grupos** - Caché de grupos activos y validación en el servidor - Sync periódico con Evolution API - **Webhooks** - Registro/verificación con Evolution API - Manejo de eventos (MESSAGES_UPSERT) con normalización del nombre del evento - **Cola de Respuestas** - Persistencia en DB y envío real a Evolution API - Workers en background activos - Soporte de menciones: persistencia en `metadata` y envío como `mentioned` en el payload - **Comandos** - `/tarea nueva` end-to-end: parseo de descripción y última fecha futura, extracción de asignados desde menciones y tokens `@...`, limpieza de la descripción, persistencia de tarea y asignaciones, y respuesta con menciones. - **Validaciones de Usuario** - Integración completa de normalización y `ensureUserExists` en el flujo principal de mensajes - Tests de integración para validaciones de usuarios - **Testing** - Suite de tests unitarios con DB en memoria para aislamiento ## ⚠️ Funcionalidades Pendientes - **Gestión de Tareas** - Listar (`/tarea mostrar`) y completar (`/tarea completar`) tareas; eliminación opcional - **Cola de Respuestas** - Reintentos con backoff y jitter - Recuperación de ítems en estado `processing` tras caídas - Métricas/observabilidad y limpieza/retención - **Validaciones** - Permisos de usuario (roles) y pertenencia a grupos (si se requiere política estricta) - **Menciones y nombres** - Resolver nombres “amigables” desde Evolution API y/o cache local para reemplazar `@número` por `@Nombre` en el texto (ya se envía `mentioned` para resaltar) - **Migraciones** - Sistema de migraciones de esquema ## ➡️ Próximos Pasos Prioritarios 1. Implementar `/tarea mostrar` y `/tarea completar`. 2. Mejorar UX de menciones: resolver nombres y formateo de “asignados”. 3. Extender soporte de entrada: `extendedTextMessage` y captions de media. 4. Mejoras de fiabilidad de la cola: reintentos con backoff y recuperación de `processing`. 5. Métricas/observabilidad básicas y plan de migraciones de DB. ## 🐞 Problemas conocidos - Las menciones en WhatsApp no muestran todavía el nombre del contacto del usuario final; se envía `mentioned` correctamente, pero el texto contiene `@número`. Pendiente integrar nombres “amigables”. - 1 test falla actualmente: “Database > Table Schemas > response_queue table should have required columns”. ## 🔧 Archivos Clave a Modificar - `src/services/response-queue.ts` - `src/services/command.ts` - `src/tasks/service.ts` - `src/server.ts` ## Commit history and status - Latest commit: One schema test failing and mentions UX pending; resto verde y funcionalidad principal de creación de tareas operativa.