You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

64 lines
3.1 KiB
Markdown

# 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.