|  brobert | 46d172fc12 | feat: permitir forzar sync de grupos y completar labels faltantes Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat> | 1 month ago | 
				
					
						|  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 |