diff --git a/README.md b/README.md index ba98dd1..9e53ced 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,7 @@ This service provides a WhatsApp interface for task management within WhatsApp g - DM-only responses: the bot does not post messages in groups; all outputs are sent via DM to the author (except the optional creation summary below). - Advanced listings: "/t ver" supports scopes "grupo", "mis", "sin" and "todos" with pagination ("… y X más"). - Complete tasks: "/t x " (aliases: hecho, completar, done) with compact DM feedback. +- Claim/unassign tasks: "/t tomar " and "/t soltar " with compact DM feedback. - Optional: group notification on task creation controlled by NOTIFY_GROUP_ON_CREATE (default false), including proper mentions for visibility. ## 🔐 Security Model @@ -110,7 +111,7 @@ Estado: la tabla response_queue ya está creada e incluida en los tests de DB. - Cleans description to remove @mentions tokens. - Persists task and assignments atomically via `TaskService`. - Builds response with assignment list and includes Evolution API “mentioned” JIDs via `ResponseQueue`. -- Command handling for listings and completion: +- Command handling for listings, completion and assignment (tomar/soltar): - `/t ver` with scopes `grupo`, `mis`, `sin` and `todos` with top-N and “… y X más”; DM-only policy enforced. - `/t x ` to complete tasks (aliases: `hecho`, `completar`, `done`) with compact feedback. - Task persistence service (`src/tasks/service.ts`) with `created_by` and assignment inserts in a transaction; supports DB injection for tests. @@ -187,6 +188,7 @@ bun test - [x] Implementar `/tarea mostrar [group|mine]` para listar pendientes. - [x] Implementar `/tarea completar ` con validaciones básicas. - [x] Soportar mensajes de texto extendido y captions de media (además de conversation). +- [x] Implementar tomar/soltar (claim/unassign) con feedback por DM. ### Phase 4: Fiabilidad de la cola (Media; observabilidad pospuesta post-MVP) - [x] Añadir reintentos con backoff exponencial y jitter. diff --git a/STATUS.md b/STATUS.md index 2f1141e..b4173da 100644 --- a/STATUS.md +++ b/STATUS.md @@ -27,7 +27,7 @@ - `/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. - Listados: `/t ver` con `grupo`, `mis`, `sin` y `todos`, con tope y resumen “… y X más”, siempre por DM. - Completar: `/t x ` (alias: `hecho`, `completar`, `done`) con feedback compacto por DM. - - Alias añadidos para gestión de asignación: `tomar` (`claim`, `asumir`, `asumo`) y `soltar` (`unassign`, `dejar`, `liberar`, `renunciar`) — mapeados en el parser (acciones aún no implementadas). + - Tomar/Soltar: `/t tomar ` y `/t soltar ` implementados end-to-end con feedback compacto por DM (idempotentes). - **Contactos y Nombres** - Servicio `ContactsService` con caché en memoria (TTL) y actualización por webhooks (CONTACTS_UPDATE/CHATS_UPDATE); fallback a Evolution API para obtener nombres. Se usa para mostrar nombres en los textos (con fallback a números). En entorno de test evita llamadas de red para acelerar y aislar la suite. - **UX de Notificaciones** @@ -42,7 +42,6 @@ ## ⚠️ Funcionalidades Pendientes - **Gestión de Tareas** - - Implementar comandos “tomar” y “soltar” (claim/unassign) con validaciones. - Eliminación opcional de tareas y mejoras de edición. - **Fechas y parsing** - Parser de fechas naturales “hoy/mañana” en creación. @@ -54,9 +53,8 @@ - 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. Implementar “tomar” y “soltar” end-to-end (TaskService + CommandService), con feedback por DM. -2. Añadir parser “hoy/mañana” en creación y unificar formato de fechas (dd/MM) en todos los mensajes. -3. Ayuda por DM: guía corta con ejemplos cuando el usuario escribe “/t” o “ayuda”. +1. Añadir parser “hoy/mañana” en creación y unificar formato de fechas (dd/MM) en todos los mensajes. +2. Ayuda por DM: guía corta con ejemplos cuando el usuario escribe “/t” o “ayuda”. ## 🐞 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. @@ -78,9 +76,8 @@ ## ▶️ Para continuar ahora Propuesta inmediata: -- Implementar comandos: `/t tomar ` y `/t soltar ` (claim/unassign), con validaciones y mensajes compactos. -- Añadir parser de fechas “hoy/mañana” en creación y ayuda “/t ayuda” por DM. -- Afinar `ResponseQueue` con métricas básicas y mantener metadata de menciones. +- Añadir parser de fechas “hoy/mañana” en creación. +- Ayuda “/t ayuda” por DM, guía breve y ejemplos. Para que pueda proponer cambios de código, añade estos archivos a este chat: - `src/services/command.ts`