Commit Graph

91 Commits

Author SHA1 Message Date
08964ec18f Feat: Agregar sistema de alias para chats
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m10s
- Agregar campo alias a tabla chats con migración 003
- Crear endpoint PUT /api/messages/:instanceId/:chatId/alias
- Modificar MCP para priorizar alias sobre nombres automáticos
- Crear modal ChatAliasModal para editar alias desde UI
- Agregar botón de editar alias en ChatItem
- Integrar modal en página de mensajes

El alias permite asignar nombres personalizados a chats que tienen
prioridad sobre los nombres de WhatsApp tanto en la interfaz como
en el MCP para agentes IA.
2025-12-04 15:06:46 -06:00
67b54d4ad9 Feat: Sincronizar contactos y grupos, mejorar nombres en MCP
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m8s
- Agregar listeners contacts.upsert y contacts.update
- Agregar listeners groups.upsert y groups.update
- Guardar contactos del historial en messaging-history.set
- Modificar MCP para hacer JOIN con contacts y group_metadata
- Ahora los chats muestran nombres reales en lugar de números/IDs
2025-12-04 14:51:09 -06:00
42f0dcafc1 Fix: Agregar fromMe al key de reacciones para mensajes propios
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m11s
2025-12-04 14:34:15 -06:00
f6a58a4d16 Feat: Agregar middleware global de autenticación API
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m9s
- Valida Bearer token para rutas expuestas (/api/messages/send, /api/mcp)
- Valida x-authentik-username para rutas protegidas por Authentik
- Rutas públicas (/api/health) sin autenticación
- Defensa en profundidad: cualquier endpoint /api/* está protegido
2025-12-04 14:32:18 -06:00
ae4c674a0f Fix: Agregar /api/mcp al router sin Authentik
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m10s
2025-12-04 14:10:46 -06:00
7abad2b6c3 Feat: Agregar MCP Server para agentes IA
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m10s
- Endpoint JSON-RPC 2.0 en /api/mcp
- 8 herramientas: list_instances, list_chats, get_chat, search_chats, send_message, get_messages, react_message, get_guide
- Soporte para todos los tipos de mensaje (text, image, video, audio, document, sticker, contact, poll, event)
- Guías de uso integradas con ejemplos JSON
- Autenticación via NUXT_MASTER_API_KEY
2025-12-04 14:05:27 -06:00
23e78fb0b2 Feat: Agregar botón para iniciar conversación con número nuevo
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m11s
- Nuevo endpoint POST /api/messages/:instanceId/new-chat
- Valida que el número esté registrado en WhatsApp
- Crea el chat en la DB si no existe
- Modal en UI para ingresar número de teléfono
- Botón verde "+" junto a la barra de búsqueda
2025-12-04 12:59:01 -06:00
af5ed0f0c5 Fix: shouldSyncHistoryMessage debe retornar true cuando no hay timestamp
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m9s
El check inicial de Baileys pasa un objeto sin messageTimestamp.
Cuando era undefined, la comparación retornaba false y Baileys
deshabilitaba la sincronización de historial completamente.
2025-12-04 12:38:09 -06:00
32f66c8fe0 Fix: fetchMessageHistory con evento SSE y logs de debug
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m9s
- Agregar logs detallados en /api/debug/history/fetch para diagnosticar
- Emitir evento SSE 'history.synced' cuando llegan mensajes del historial
- Frontend ahora escucha el evento SSE en vez de timeout fijo de 3 segundos
- Agregar script y documentación para referencia de Baileys message history
2025-12-04 12:33:22 -06:00
a9e786a8bd Fix: Envío de eventos usando proto directo (bypass sendMessage)
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m12s
Baileys no maneja 'event' en generateWAMessageContent, causando
"Invalid media type" error. Se usa generateWAMessageFromContent
con proto.Message.IEventMessage y relayMessage directamente.
2025-12-04 12:28:17 -06:00
b0101c791a Fix: Agregar soporte para recepción de Polls y Events
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m8s
- manager.ts: Detectar pollCreationMessage y eventMessage en getMessageType
- manager.ts: Extraer y guardar datos de poll/event como JSON en content
- index.get.ts: Parsear poll/event desde raw_message y content
- index.get.ts: Incluir poll y event en respuesta de la API
2025-12-04 12:14:45 -06:00
cb846d0c56 Feat: Agregar soporte para envío de Contacts, Polls y Events
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m8s
- Backend: Nuevo soporte en endpoint /send para tipos contact, poll, event
- UI: Modales para crear y enviar contactos, encuestas y eventos
- Visualización: Componentes MessagePoll y MessageEvent para mostrar mensajes recibidos
- Tipos: Agregar PollInfo, EventInfo y tipo 'event' a MessageType
2025-12-04 12:06:35 -06:00
48f23c512b Clean: Eliminar logs y divs de debug, mantener panel de debug del input
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m8s
2025-12-04 11:50:25 -06:00
7b4b3e035c Fix: Usar nombre correcto del componente MessagesMediaPreview
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m9s
2025-12-04 11:47:38 -06:00
f1c3306890 Debug: Agregar info de debug en MediaPreview
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m8s
2025-12-04 11:45:35 -06:00
565b66b2d2 Debug: Agregar indicador visual para archivos seleccionados
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m8s
2025-12-04 11:43:05 -06:00
91173775a4 Fix: Usar UButton para debug y agregar logs de selección de archivos
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m10s
2025-12-04 11:40:08 -06:00
3ef09c7b4d Add: Debug panel al input de mensajes para ver estado de archivos y mensaje
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m7s
2025-12-04 11:36:18 -06:00
828eb406a5 Fix: Corregir contenedor de input para que no se comprima y muestre preview
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m8s
2025-12-04 11:30:43 -06:00
8e5dccd8d5 Debug: Agregar boton para probar expansion del area de input
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m7s
2025-12-04 10:43:29 -06:00
6cb13f6907 Fix: Mejorar animacion de crecimiento del area de input
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m7s
- Cambiar animacion a translateY para mejor rendimiento
- Agregar transition-all al contenedor del input
- El contenedor crece suavemente cuando hay archivos seleccionados
2025-12-04 10:40:15 -06:00
5df59747fe Feat: Agregar animacion de crecimiento vertical para previews
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m9s
- Usar Vue Transition con slide-up para MediaPreview y ReplyPreview
- Animar altura, opacidad y espaciado
- Duracion 0.3s con ease
2025-12-04 10:33:42 -06:00
3a3fa70092 Debug: Agregar logs para depurar envio de stickers
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m8s
2025-12-04 10:31:14 -06:00
f09ce37897 Fix: Forzar mimetype ogg para notas de voz PTT
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m11s
- Preferir grabacion en ogg/opus en el navegador
- Forzar mimetype a audio/ogg; codecs=opus para PTT en servidor
- WhatsApp requiere ogg para notas de voz
2025-12-04 10:24:53 -06:00
9f90b8cd2b Fix: Mejorar manejo de duracion de audio y errores de envio
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m10s
- Validar que duration sea numero finito en MessageAudio
- Obtener duracion del elemento audio si no esta en metadata
- Agregar toast de error para envio de notas de voz
2025-12-04 10:22:49 -06:00
9667738604 Feat: Validacion de tamaño de archivos y notificaciones de error
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m9s
- Agregar validacion de tamaño en frontend antes de enviar
- Mostrar toast con error cuando archivo excede limite
- Mostrar toast con mensaje de error del servidor cuando falla envio
- Limites: imagen 16MB, video 64MB, audio 16MB, documento 100MB
2025-12-04 10:14:35 -06:00
f4cf23f1ee Fix: Agregar placeholder dinamico y mejorar reactividad de archivos
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m9s
- Placeholder muestra cantidad de archivos seleccionados
- Usar filter() en removeFile para mantener reactividad
- Remover console.logs de debug
2025-12-04 10:07:17 -06:00
efba6dbf31 Fix: Corregir reactividad de selectedFiles en MediaPreview
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m10s
- Usar spread operator en lugar de push() para que Vue detecte cambios
- Agregar console.logs temporales para debug
2025-12-04 10:03:10 -06:00
0e2b707f3b Fix: Actualizar UDropdown a UDropdownMenu para Nuxt UI 4
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m9s
- Cambiar UDropdown a UDropdownMenu
- Cambiar :popper a :content con side/align
- Cambiar click a onSelect en items del menú
2025-12-04 09:50:34 -06:00
9cf4faedec Fix: Corregir UModal en MessageContact usando v-model:open
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m7s
El modal de contacto usaba v-model en lugar de v-model:open según
la documentación de Nuxt UI 4. También se actualizó la estructura
para usar los slots correctos del UModal (#header, #body, #footer).
2025-12-04 09:45:25 -06:00
ec40cd6826 Unificar endpoint de envío y agregar soporte para stickers
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 2m28s
- Consolidar send.post.ts y send-media.post.ts en un único endpoint /send
- Agregar servicio sticker-processor.ts para convertir imágenes a WebP 512x512
- Agregar toggle Imagen/Sticker en MediaPreview para enviar imágenes como stickers
- Actualizar MessageInput y página de mensajes para usar endpoint unificado
- Instalar dependencia sharp para procesamiento de imágenes
2025-12-04 09:33:03 -06:00
09d3c5398a Fix: Pasar quoted como opción de Baileys, no dentro del content
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m8s
El campo quoted debe ir en el tercer parámetro (opciones) de sendMessage,
no dentro del objeto content. Esto corrige el envío de respuestas.
2025-12-03 11:07:06 -06:00
e8b74e71de Fix: Agregar soporte para mensajes de respuesta (reply) en envío de texto
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m30s
El endpoint send.post.ts ignoraba el campo quotedMessageId que el frontend
enviaba, causando que los mensajes de respuesta llegaran como mensajes normales.
2025-12-03 10:56:10 -06:00
f1d7be175b Fix: ReactionPicker se alinea a la izquierda en mensajes propios
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m7s
- Agregada prop 'align' al ReactionPicker (left/right)
- Mensajes propios (fromMe): picker se alinea a la izquierda (right-0)
- Mensajes recibidos: picker se alinea a la derecha (left-0)
- Evita que el picker extienda la página horizontalmente
2025-12-03 10:44:47 -06:00
5007049bcf UI: Botones de acción flotantes con position absolute
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m6s
- Botones ahora flotan fuera de la burbuja sin ocupar espacio
- Para mensajes propios: botones a la izquierda (right-full)
- Para mensajes recibidos: botones a la derecha (left-full)
- Agregado fondo y sombra a los botones para mejor visibilidad
2025-12-03 10:26:45 -06:00
8213864ad1 UI: Mover botones de acción fuera del overflow-hidden
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m7s
- Botones de responder/reaccionar/debug ahora están fuera del contenedor con overflow
- ReactionPicker ya no se trunca y flota correctamente
- Botones siempre aparecen al lado izquierdo de la burbuja (usando flex-row-reverse para fromMe)
2025-12-03 10:01:24 -06:00
fec189d5a5 Fix: Corregir uso de UModal según API de Nuxt UI v4
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m7s
- Usar v-model:open en lugar de v-model
- Usar slot #content para contenido personalizado
- Usar slots #body/#footer para estructura predefinida
- Corregir modal de imagen fullscreen
- Corregir modal de selector de emojis
2025-12-03 09:57:30 -06:00
b335405ac9 Fix: Corregir bugs en interfaz de mensajes
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m8s
- Corregir modal de imagen vacío (agregar template #default a UModal)
- Agregar soporte para click derecho y long press en selector de reacciones
- Agregar fondo sólido al card de reacciones (bg-[var(--wa-surface)])
2025-12-03 09:51:56 -06:00
768d8ee8e2 UI: Agregar notificaciones toast a todas las funciones de copiar en Mensajes
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m43s
2025-12-03 09:37:55 -06:00
c0af0a3478 Feature: Cargar historial de WhatsApp desde la UI
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m5s
- Agregar endpoint oldest.get.ts para obtener mensaje mas antiguo de un chat
- Agregar boton 'Cargar historial de WhatsApp' en vista de mensajes
- Mejorar HistorySection.vue con selector de chats y auto-deteccion
2025-12-02 21:59:27 -06:00
3b0fb57ce4 UI: Agregar boton 'Copiar todos' al receptor de webhooks
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m5s
2025-12-02 21:40:48 -06:00
cc87bde154 UI: Agregar iconos a expandir/colapsar y notificacion al copiar
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m4s
2025-12-02 21:31:59 -06:00
8f44826e64 Fix: Usar URL interna para debug webhook receiver (bypass authentik)
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m4s
2025-12-02 21:27:45 -06:00
80d0042c7e Feature: Agregar botón para crear webhook de debug automáticamente
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m4s
- Agregar botón "Crear Webhook de Debug" en WebhookReceiverSection
- Detectar si ya existe un webhook apuntando al receptor de debug
- Permitir eliminar el webhook de debug
- Incluir todos los eventos disponibles al crear el webhook
- También incluye mejoras previas de manejo de media y mensajes
2025-12-02 21:21:33 -06:00
71593b25e9 Feature: Receptor de webhooks interno para debug
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m3s
- Endpoint POST /api/debug/webhook-receiver para recibir webhooks
- Almacenamiento en memoria de ultimos 100 eventos
- Endpoint GET/DELETE para consultar/limpiar eventos
- Nueva tab Webhooks en seccion Debug con polling cada 5s
2025-12-02 21:14:39 -06:00
371b5676fb UI: Agregar botones de copiar en paneles de debug de ChatItem y MessageBubble
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m2s
2025-12-02 21:06:51 -06:00
f4ed9488bd UI: Agregar botones de copiar en paneles de debug de Mensajes
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m2s
2025-12-02 20:58:41 -06:00
b92ccf88b7 Fix: Usar propiedad slot en tabs de debug para mostrar contenido correctamente
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m2s
2025-12-02 20:53:58 -06:00
9f2f3ac510 Docs: Script para scrapear documentacion de Baileys API
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m3s
- Script en scripts/scrape-baileys-docs.ts
- Genera docs/baileys-api-reference.md con 6433 lineas
- 79 secciones: interfaces, types, functions, variables, enums
- Referencia completa para desarrollo de mensajes
2025-12-02 20:49:59 -06:00
ae8e4e37a7 Fix: Checkboxes de eventos en formulario de webhook
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m2s
2025-12-02 20:39:16 -06:00