|  brobert | 3428fe930a | feat: maneja comandos desconocidos con encabezado emoji y ayuda rápida Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat> | 2 weeks ago | 
				
					
						|  brobert | b8979b8205 | feat: agregar help centralizado y tests de contenido Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat> | 2 weeks ago | 
				
					
						|  brobert | b19336659c | feat: agregar funciones code, section y bullets y pruebas Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat> | 2 weeks ago | 
				
					
						|  brobert | e2f0186cfe | feat: ejecutar reconciliación de alias al arranque Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat> | 2 weeks ago | 
				
					
						|  brobert | 182c976697 | feat: resolver alias y dígitos en ResponseQueue; reconciliación Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat> | 2 weeks ago | 
				
					
						|  brobert | c31ca200c6 | feat: evita que @lid o más de 15 dígitos sean plausibles Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat> | 2 weeks ago | 
				
					
						|  brobert | 07bfa0f419 | feat: alinea copy A3/A4 a activar y añade tests; actualiza env y docs Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat> | 2 weeks ago | 
				
					
						|  brobert | b9252f4c49 | feat: implementar flujo A4 de onboarding con DM JIT y activar Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat> | 2 weeks ago | 
				
					
						|  brobert | 64096e93be | feat: añadir onboarding A3 en group-sync.ts y .env.example Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat> | 2 weeks ago | 
				
					
						|  brobert | 7033c6149f | feat: añade onboarding A3 con onboarding_prompted_at y encolado Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat> | 2 weeks ago | 
				
					
						|  brobert | 8b1af56764 | feat: añadir fallback numérico y métricas en CommandService (A2) Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat> | 2 weeks ago | 
				
					
						|  brobert | d25efb097c | feat: añadir métricas con labels y calcular alias_coverage_ratio Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat> | 2 weeks ago | 
				
					
						|  brobert | 06c4a0619d | feat: rediseño de TaskItem, añade completar y lista 24h Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat> | 2 weeks ago | 
				
					
						|  borja | 3a161e2821 | feat: mostrar siempre la URL ICS usando token_plain y migración Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat> | 2 weeks ago | 
				
					
						|  borja | 331b21ec71 | fix: añadir fallback de migraciones y export de crypto Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat> | 2 weeks ago | 
				
					
						|  borja | 73ae69892f | feat: añadir migración calendar-tokens y servicio ICS de tokens Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat> | 2 weeks ago | 
				
					
						|  borja | 689e030a83 | feat: agregar /admin allow all para habilitar pendientes de grupos Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat> | 3 weeks ago | 
				
					
						|  brobert | 90771eb34a | fix: usar dígitos del jid como fallback al normalizar WhatsApp ID Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat> | 3 weeks ago | 
				
					
						|  brobert | bd0fda2248 | fix: endurece GroupSyncService y activa métricas en tests web-login Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat> | 3 weeks ago | 
				
					
						|  brobert | 6082574a52 | chore: silenciar logs del migrador en test para reducir ruido Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat> | 3 weeks ago | 
				
					
						|  brobert | c8c4fdd927 | feat: añadir soporte para /t web con tokens de login y util crypto Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat> | 3 weeks ago | 
				
					
						|  brobert | f6672ec52b | feat: agrega migración v10 para web_tokens y web_sessions Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat> | 3 weeks ago | 
				
					
						|  brobert | 3d6c446547 | feat: dar prioridad a DB_PATH sobre DATA_DIR en la BD SQLite Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat> | 3 weeks ago | 
				
					
						|  borja | e647ad7c3a | feat: añadir DATA_DIR para DB compartida y configurar Bun workspaces Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat> | 3 weeks ago | 
				
					
						|  borja | 3039af3a43 | fix: evitar duplicar recordatorio diario, filtrar por grupos y limitar a 10 Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat> | 3 weeks ago | 
				
					
						|  borja | cae5a7f1f6 | feat: implementar ventana de gracia para recordatorios y métricas Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat> | 3 weeks ago | 
				
					
						|  borja | 275f5adfde | feat: validar y normalizar fechas explícitas (YYYY-MM-DD y YY-MM-DD) Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat> | 3 weeks ago | 
				
					
						|  borja | b39ca2041a | fix: corregir texto del footer para usar 'responsable' Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat> | 1 month ago | 
				
					
						|  borja | 1635d0af17 | fix: actualizar encabezado de lista de tareas activas Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat> | 1 month ago | 
				
					
						|  borja | cdcc5091cb | feat: añade pie de página con instrucción para ver tareas sin dueño Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat> | 1 month ago | 
				
					
						|  borja | c912ee362e | feat: añadir /admin ver todos para listar tareas activas globales Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat> | 1 month ago | 
				
					
						|  brobert | cd453afbce | feat: exponer group_sync_seconds_until_next y adaptar tests Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat> | 1 month ago | 
				
					
						|  brobert | a5eedb5c7f | fix: usar '' como fallback para community_id al insertar grupos Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat> | 1 month ago | 
				
					
						|  brobert | 4dfac4a6e7 | fix: reiniciar db AllowedGroups tras discovery y quitar retorno Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat> | 1 month ago | 
				
					
						|  brobert | 228f2d40a2 | feat: habilitar sync multicomunidad y persistir nombres de grupos Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat> | 1 month ago | 
				
					
						|  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 |