From de3c47049b2237c11bcf7fc4e36686d48464dde7 Mon Sep 17 00:00:00 2001 From: brobert Date: Fri, 17 Oct 2025 10:12:23 +0200 Subject: [PATCH] docs: marca A1 como completada e introduce A5 con mejoras pendientes Co-authored-by: aider (openrouter/openai/gpt-5) --- docs/plan-onboarding-usuarios.md | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/docs/plan-onboarding-usuarios.md b/docs/plan-onboarding-usuarios.md index d2aa142..6b942bc 100644 --- a/docs/plan-onboarding-usuarios.md +++ b/docs/plan-onboarding-usuarios.md @@ -30,7 +30,7 @@ Fase A0 — Verificación y observabilidad (rápida, sin UX visible) - onboarding_assign_failures_total: counter de menciones no resolubles al crear tareas. - Logs de desarrollo (NODE_ENV=development): en src/server.ts, comparar participant vs participantAlt (normalizados) y mentionedJid normalizados para comprobar la frecuencia de correlación automática en tu instancia Evolution. -Fase A1 — Aprendizaje “agresivo” al entrar en grupos (ya casi implementado) +Fase A1 — Aprendizaje “agresivo” al entrar en grupos (Completada) - Al recibir groups.upsert (src/server.ts): - syncGroups → refreshActiveGroupsCache → syncMembersForActiveGroups (ya implementado). - Efectos: @@ -63,6 +63,11 @@ Fase A4 — Asistentes “just-in-time” y UX mínima - Asegurar ensureUserExists y responder con: “Listo, ya puedes reclamar/ser responsable en: …”. - Opcional web: si el usuario llega sin estar identificado, mostrar banner con botón a wa.me “hola”. +Fase A5 — Optimizaciones post-A1 (pendiente) +- Optimizar encadenado tras groups.upsert para sincronizar solo los grupos afectados cuando el payload lo permita. +- Añadir debounce/backoff por grupo (2–5 s) para coalescer ráfagas de upserts en corto intervalo. +- Añadir tests: uno que valide el filtrado a “grupos afectados” y otro que verifique que el debounce evita ejecuciones duplicadas dentro de la ventana. + Criterios de aceptación - p95 del tiempo desde que un usuario toca el enlace a quedar asignable < 1 minuto. - En la mayoría de grupos no se publica ningún mensaje (cobertura ≈100% tras primer sync + contacts). @@ -121,7 +126,7 @@ Caveats y buenas prácticas Checklist de ejecución - A0: Añadir métricas y logs de verificación (dev). -- A1: Confirmar que el sync de miembros corre al entrar; mantener contacts.update. +- A1: Confirmar que el sync de miembros corre al entrar; mantener contacts.update. (hecho) - A2: Ajuste en CommandService (fallback a número + ensureUserExists + métricas de fallo). - A3: Publicación condicional de mensaje por grupo con cooldown + persistencia mínima. - A4: DM “just-in-time” al asignador ante fallo de mención + confirmación al primer DM de usuario.