docs: actualiza README.md y STATUS.md con estado actual y próximos pasos

Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
pull/1/head
borja 2 months ago
parent f22fff887c
commit 395bb31dc9

@ -84,7 +84,7 @@ Estado: la tabla response_queue ya está creada e incluida en los tests de DB.
## Flujo del worker continuo (MVP) ## Flujo del worker continuo (MVP)
- Se inicia al arrancar el servidor (desactivado en tests). - Se inicia al arrancar el servidor (desactivado en tests).
- Ciclo: seleccionar hasta un pequeño batch de mensajes queued, marcar processing, enviar a Evolution API, marcar sent o failed según respuesta. - Ciclo: seleccionar hasta un pequeño batch de mensajes queued, marcar processing, enviar a Evolution API, marcar sent o failed según respuesta.
- Sin reintentos; logs mínimos y no sensibles. - Reintentos con backoff exponencial + jitter y recuperación de processing; logging moderado.
## Limitaciones actuales ## Limitaciones actuales
- Sin orden garantizado por chat (pendiente serialización por destinatario). - Sin orden garantizado por chat (pendiente serialización por destinatario).
@ -185,7 +185,7 @@ bun test
## 📅 Roadmap & Priorities (Updated Plan) ## 📅 Roadmap & Priorities (Updated Plan)
### MVP — Próximos pasos (prioridad actual) ### MVP — Próximos pasos (prioridad actual)
1) Afinar recordatorios por DM (daily/weekly): encabezados, hora configurable y pequeños ajustes de formato. 1) Afinar recordatorios por DM (daily/weekly): hora configurable por usuario y pequeños ajustes de formato.
2) 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. 2) 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.
3) Sincronización mínima de miembros: obtener y cachear miembros de grupos activos con TTL, uso no bloqueante; base para futuras validaciones/UX. 3) Sincronización mínima de miembros: obtener y cachear miembros de grupos activos con TTL, uso no bloqueante; base para futuras validaciones/UX.
4) Ampliar test suite: actualización de nombres, sync de miembros y casos extremos de ResponseQueue. 4) Ampliar test suite: actualización de nombres, sync de miembros y casos extremos de ResponseQueue.
@ -353,21 +353,21 @@ Este apartado documenta las decisiones de UX aprobadas para el MVP y su evoluci
### Mensajes: plantillas compactas ### Mensajes: plantillas compactas
- Confirmación al crear (DM al creador): - Confirmación al crear (DM al creador):
- 26 “*Acta de la reunión*” - 📝 26 “*Acta de la reunión*”
- 📅 12/09 - 📅 12/09
- 👥 sin dueño (Junta AMPA) — o — 👤 @Juan - 🚫👤 sin dueño (Junta AMPA) — o — 👤 @Juan
- DM a asignados: - DM a asignados:
- 🔔 Tarea 26 — 📅 12/09 - 📬 Tarea 26 — 📅 12/09
- “*Acta de la reunión*” - “*Acta de la reunión*”
- Grupo: Junta AMPA - Grupo: Junta AMPA
- Completar: /t x 26 - Completar: /t x 26
- Listado (enviado por DM): - Listado (enviado por DM):
- Junta AMPA - Junta AMPA
- 26) “*Acta…*” — 📅 12/09 — 👤 @Juan - 26) “*Acta…*” — 📅 12/09 — 👤 @Juan
- 27) “*Carteles fiesta*” — 📅 10/09 — 👥 sin dueño - 27) “*Carteles fiesta*” — 📅 10/09 — 🚫👤 sin dueño
- … y 3 más - … y 3 más
- Completar (feedback por DM): - Completar (feedback por DM):
- ✔️ 26 completada — “*Acta…*” - 26 completada — “*Acta…*”
- Gracias, Juan. - Gracias, Juan.
### Preferencias (MVP) ### Preferencias (MVP)
@ -377,10 +377,10 @@ Este apartado documenta las decisiones de UX aprobadas para el MVP y su evoluci
### Recordatorios ### Recordatorios
- Resumen diario por DM (si el usuario eligió “diario”): - Resumen diario por DM (si el usuario eligió “diario”):
- Buenos días, Ana — hoy tienes 3 tareas: - ⏰ Recordatorio diario — hoy 12/09
- 26) “*Acta…*” — 12/09 — Junta AMPA - 26) “*Acta…*” — 📅 12/09 — Junta AMPA
- 31) “*Pagar comedor*” — hoy — Casa - 31) “*Pagar comedor*” — hoy — Casa
- 33) “*…*” — 15/09 — Casa - 33) “*…*” — 📅 15/09 — Casa
- Completar: /t x <id> - Completar: /t x <id>
- Un solo DM con secciones por comunidad para evitar múltiples mensajes. - Un solo DM con secciones por comunidad para evitar múltiples mensajes.

@ -33,7 +33,7 @@
- **Contactos y Nombres** - **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. - 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** - **UX de Notificaciones**
- Confirmación por DM al creador siempre (en una sola línea con id y descripción) y DM a cada asignado (excluyendo al creador). - Confirmación por DM al creador (encabezado: 📝 <id> “desc”, con líneas de fecha 📅 y dueño 🚫👤/👤) y DM a cada asignado (📬, excluye al creador); fechas vencidas marcadas con ⚠️.
- Notificación opcional al grupo controlada por `NOTIFY_GROUP_ON_CREATE` (false por defecto), incluyendo menciones para visibilidad. - Notificación opcional al grupo controlada por `NOTIFY_GROUP_ON_CREATE` (false por defecto), incluyendo menciones para visibilidad.
- Política solo DM: el bot no publica respuestas en grupos; todos los mensajes de salida se envían por DM al autor (salvo la notificación opcional anterior). - Política solo DM: el bot no publica respuestas en grupos; todos los mensajes de salida se envían por DM al autor (salvo la notificación opcional anterior).
- **Validaciones de Usuario** - **Validaciones de Usuario**
@ -59,7 +59,7 @@
- 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). - 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 ## ➡️ Próximos Pasos Prioritarios
1. Afinar recordatorios por DM (daily/weekly): encabezados, hora configurable y pequeños ajustes de formato. 1. Afinar recordatorios por DM (daily/weekly): hora configurable por usuario y pequeños ajustes de formato.
2. Refinar ContactsService (caché/nombres; TTL configurable; robustez ante fallos; sin red en tests). 2. Refinar ContactsService (caché/nombres; TTL configurable; robustez ante fallos; sin red en tests).
3. Sincronización mínima de miembros (cacheada; no bloqueante). 3. Sincronización mínima de miembros (cacheada; no bloqueante).
4. Ampliar test suite (contactos, sync de miembros, ResponseQueue). 4. Ampliar test suite (contactos, sync de miembros, ResponseQueue).
@ -84,7 +84,7 @@
## ▶️ Para continuar ahora ## ▶️ Para continuar ahora
Propuesta inmediata: Propuesta inmediata:
- Recordatorios diarios por DM (opt-in daily|off; hora fija local; resumen compacto). - Afinar recordatorios por DM (daily/weekly): hora configurable por usuario; encabezados ⏰ y formato de mensajes ya actualizados.
- Refinar ContactsService (caché y nombres; TTL configurable; robustez ante fallos; sin red en tests). - Refinar ContactsService (caché y nombres; TTL configurable; robustez ante fallos; sin red en tests).
- Sincronización mínima de miembros (cacheada; no bloqueante). - Sincronización mínima de miembros (cacheada; no bloqueante).
- Ampliar test suite (recordatorios, contactos, sync de miembros, ResponseQueue). - Ampliar test suite (recordatorios, contactos, sync de miembros, ResponseQueue).

Loading…
Cancel
Save