238 Commits (58ac01cc73dba2a0719867ef288a2abd068b7f53)

Author SHA1 Message Date
brobert abfa9b73a7 feat: añadir alias para comandos de admin y actualizar tests
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
1 month ago
borja 95abc8d025 fix: alinear dbInstance de AllowedGroups con la del servidor antes del seed
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
1 month ago
borja ad26dd5175 feat: guarda label en allowed_groups y actualiza en upsertGroups
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
1 month ago
borja 662c335824 feat: instrumentar métricas de allowed_groups, admin, commands y sync
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
1 month ago
borja df8f8a7096 feat: sembrar ALLOWED_GROUPS desde env y exponer métricas en /metrics
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
1 month ago
borja bf46976b1c fix: limpiar caché de AllowedGroups al activar gating por grupos
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
1 month ago
borja 78efc857bc feat: mostrar resumen '… y N más' en recordatorios cuando hay tope
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
1 month ago
borja db9f71abaa feat: aplicar gating por AllowedGroups en tareas y recordatorios
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
1 month ago
borja c51cb3f124 feat: notifica a ADMIN_USERS al descubrir grupos (modo discover)
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
1 month ago
borja adad0a0609 refactor: normalizar IDs de WhatsApp eliminando dominio y separador
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
1 month ago
borja 7308c73a79 fix: normalizar ID de WhatsApp para usuarios y grupos
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
1 month ago
borja ae0a853b63 feat: agrega AdminService y comandos /admin con bypass del gating
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
1 month ago
borja 302ba6daa8 feat: aplicar gating en syncMembersForActiveGroups y añadir pruebas
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
1 month ago
borja 37db7b283d fix: asegurar grupo existente en DB; actualizar prueba de gating
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
1 month ago
borja d747e7aa4b feat: activar gating de grupos en CommandService y GroupSyncService
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
1 month ago
borja a03604d293 feat: implementar gating de grupos en server en modo enforce
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
1 month ago
borja c7c0491200 feat: implementar descubrimiento de grupos desconocidos (discover)
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
1 month ago
borja 0fa985c145 feat: añadir migración v9_allowed_groups y servicio AllowedGroups
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
1 month ago
brobert 8b701e9435 feat: mostrar id de tarea al quedar sin responsable
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
1 month ago
brobert 9d3636b828 fix: corregir errores de sintaxis y alcance en CommandService
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
1 month ago
brobert 0e90dbfa0f fix: eliminar línea innecesaria y alinear sangría en CommandService
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
1 month ago
brobert 6031207c6f fix: usar resolvedId en respuestas y añadir display_code en tareas
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
1 month ago
brobert 133d7670fb feat: añade display_code global para tareas, con migración y render
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
1 month ago
brobert 4a8523746e mejora más la ayuda, buen punto al que volver si algo falla más adelante. Aquí funciona de to 1 month ago
brobert 7c66dac01d afina ayuda. está en un buen punto donde funciona todo, pendiente de hacer cambios para autojoin a grupos 1 month ago
brobert 670a2488c3 fix: filtrar IDs numéricos en mentioned al resolver alias
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
1 month ago
brobert 3d9f044f34 feat: añadir caché en memoria para alias y resolver solo IDs numéricos
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
1 month ago
brobert 9b57662a6b feat: permitir múltiples IDs en /t x y /t tomar (espacios o comas; máx 10)
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
1 month ago
brobert ac0c5ff064 fix: resolver ids de usuarios con IdentityService al devolver resultados
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
1 month ago
brobert 0e07efd155 feat: resolver alias de IDs de miembros durante la sincronización de grupos
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
1 month ago
brobert 029a632e9d feat: añadir scheduler de grupos y arrancarlo al iniciar el servicio
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
1 month ago
brobert 098e135b11 feat: añadir modo weekdays en recordatorios con hora configurable
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
1 month ago
brobert a8448fa4dd fix: usar MAX_MEMBERS_SNAPSHOT_AGE_MS y snapshot_fresh para last_sync_ok
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
1 month ago
brobert 753e0688ec fix: calcular last_sync_ok usando métrica o fallback a lv
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
1 month ago
brobert e526707bf7 fix: omitir CHATBOT_PHONE_NUMBER en la validación de entorno
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
1 month ago
brobert 48c031441b fix: quitar autocorrección de URL interna y permitir Docker en producción
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
1 month ago
brobert 67caca8b26 feat: añadir IdentityService para mapear alias a números
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
1 month ago
brobert f4b0e4433e fix: priorizar participantAlt para sender JID en grupos
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
1 month ago
borja bae6678a0e fix: ignorar mensajes de grupos inactivos en modo test
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
2 months ago
borja 0d29200dd7 feat: asegurar grupo al instante y sincronizar miembros ante eventos
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
2 months ago
borja e8e319afb0 afina algunos formatos de mensajes, a ver si no petan los tests 2 months ago
borja 12d18322ff refactor: quitar cursivas de descripciones y añadir saltos entre grupos
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
2 months ago
borja fe5a8d29cb feat: aplicar codeId y monoespacio en listados, ayudas y mensajes
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
2 months ago
borja 60ed92970b refactor: reemplazar ackParts por ackLines y usar codeId en mensajes
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
2 months ago
borja b4f6d525e1 fix: usar id directo y formatear con ) en listado de tareas
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
2 months ago
borja 3824c6c6c9 fix: usar codeId para IDs en listados, acuse y completado
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
2 months ago
borja ac158416a5 fix: usar id en completada y generar ack en formato compacto
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
2 months ago
borja 135fee7773 feat: actualizar guía rápida y formato de mensajes de tarea completada
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
2 months ago
borja ca09b82390 fix: adaptar formato de respuestas al modo compacto
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
2 months ago
borja 0401f1661c fix: estandarizar mensajes de tarea con codeId(id) y texto de estado
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
2 months ago
borja 05952efbf3 feat: añadir formatting.ts para IDs 4 dígitos y fechas
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
2 months ago
borja 8983cfa453 feat: añade métricas, health detallada, mantenimiento y tests
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
2 months ago
borja b686d20caa refactor: activar FK, eliminar baseline y log persistente de migraciones
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
2 months ago
borja a34739d5ed feat: añadir alias para ver todos y mapear alcance en comandos
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
2 months ago
borja 845fb86f57 fix: ajustar ver todos para mostrar sin responsable por grupo
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
2 months ago
borja de544c42de feat: agregar verificación de membresía y filtrado por snapshot
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
2 months ago
borja e11978663d fix: quitar bypass de rate limit en pruebas de GroupSync
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
2 months ago
borja c306b2a762 fix: usar process.env en GroupSync y mejorar parseo de participantes
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
2 months ago
borja a092a25234 feat: agregar sincronización de miembros con Evolution API y webhooks
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
2 months ago
borja 61add46ede feat: crear tabla group_members y reconciliar miembros de grupos
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
2 months ago
borja bdba776b5c feat: activar WAL en SQLite y actualizar STATUS.md y .gitignore
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
2 months ago
borja bff4c99876 feat: hacer dinámico el mensaje del límite por minuto y README
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
2 months ago
borja 21e01c7470 fix: ajustar formato del mensaje de tarea completada
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
2 months ago
borja 3b41c01360 fix: cambiar 'dueño' a 'responsable' y quitar comillas en descripciones
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
2 months ago
borja f22fff887c feat: centralizar iconos en ICONS y actualizar mensajes a nuevos iconos
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
2 months ago
borja 5c49f16c4e feat: añadir recordatorios por DM diarios/semanales y configuración
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
2 months ago
borja 530c0f6f70 fix: shouldNotify maneja undefined y admite primer aviso por usuario
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
2 months ago
borja 9668802cbe feat: añade limitador de tasa por usuario (15/min) y tests
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
2 months ago
borja 831778ce51 feat: usar TZ por entorno y parsear 'hoy'/'mañana' como fechas
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
2 months ago
borja 57f5dd04e6 feat: añadir soporte de tomar y soltar tareas (claim/unassign)
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
2 months ago
borja a4c0d49991 fix: añadir cabecera 'Tus tareas' y aplicar COALESCE en filtros
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
2 months ago
borja 137e0d2d07 feat: añade alias para tomar/soltar y ver sin/todos con consultas por grupo
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
2 months ago
borja 3f9280eb1a feat: añadir limpieza/retención de response_queue (borrado duro)
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
2 months ago
borja 79b5d83f5b feat: habilitar reintentos con backoff exponencial + jitter en cola
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
2 months ago
borja efe8aaef89 feat: añadir migrador de migraciones up-only para SQLite
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
2 months ago
borja 4a305dc007 fix: usar remitente correcto en DMs y evitar Invalid sender ID
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
2 months ago
borja a1df163db0 feat: añadir conteos de pendientes y mostrar… y X más en /t ver
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
2 months ago
borja 218080ae45 feat: Fase 3: listar pendientes y completar tareas por DM (dd/MM)
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
2 months ago
borja 48d750b648 fix: silenciar errores DB en webhook y actualizar pruebas de TaskService
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
2 months ago
borja 90d78bf195 refactor: asegurar created_by y usuarios al asignarlos en TaskService
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
2 months ago
borja 714c7a6c4e feat: habilita /t y /tarea con parsing de fechas y respuestas compactas
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
2 months ago
borja 2a3345e21c fix: evitar llamadas de red en tests desde ContactsService
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
2 months ago
borja 89398d2dfd fix: añadir metadata a response_queue y unificar ack en CommandService
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
2 months ago
borja 4f6f483a27 feat: añadir menciones del creador y de asignados en notificaciones
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
2 months ago
borja 4a1baca559 feat: agregar notificaciones DM a creador y asignados; grupo desactivado
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
2 months ago
borja bfb9f44b69 refactor: añade rutas Evolution para obtener nombre de contacto
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
2 months ago
borja 8fdac8b49f fix: enviar siempre la respuesta por DM al creador
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
2 months ago
borja 3ff63f1503 feat: añadir ContactsService y usar nombres en menciones de usuarios
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
2 months ago
borja 7a901c9d95 feat: enviar al grupo si está activo; si no, al creador
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
2 months ago
borja 133058caeb feat: aceptar tokens @user como asignados y combinar con menciones
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
2 months ago
borja de70cd863b fix: usar assignmentUserIds para mentionsForSending
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
2 months ago
borja 59605e01e8 le pido que me console loguee lo que manda de payload para ver cómo hace lo de las menciones 2 months ago
borja a6ec631329 feat: agregar columna metadata a response_queue
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
2 months ago
borja 6c9f744f1f feat: habilita menciones en mensajes y limpia descripciones de tareas
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
2 months ago
borja a209c40ac3 feat: centralizar /tarea en CommandService y usar DB
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
2 months ago
borja 703ea61c67 refactor: migrar a bun:sqlite y adaptar servicio/tareas y pruebas
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
2 months ago
borja 7b9928937b feat: añadir TaskService con dbInstance y tests unitarios
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
2 months ago
borja 94f6813cb2 fix: persistir tarea con created_by y asignaciones en transacción
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
2 months ago
borja 939cf1ac9f feat: normalizar evento webhook y registrar rawEvent en logs
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
2 months ago
borja 8bdb851062 feat: iniciar worker de ResponseQueue y mejorar procesamiento
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
2 months ago