Novedades · Changelog

Cada semana, un poco mejor.

Mejoramos GarBotGPT casi a diario. Estas son las novedades más recientes: nuevas herramientas, mejoras de velocidad y arreglos, contadas en claro.

  1. v9.4.54

    🧹 Respuesta del agente más limpia + nueva herramienta "Leer URLs"

    Cuando un agente abre un chat con su resultado, ahora muestra solo la respuesta (antes se colaba la "traza interna" con los pasos como texto suelto, que quedaba feo; esa traza sigue disponible en el Historial). Además, al crear un agente puedes activar la herramienta "Leer URLs" para que descargue y lea páginas concretas (no solo buscar). Se ha quitado del agente la opción "Intérprete de código", que no funciona en este entorno.

    Nuevo

    • 🧹 La respuesta del agente en el chat ya no incluye la traza interna (queda en Historial)
    • 🔗 Nueva herramienta seleccionable: "Leer URLs" (browse_url)
    • Quitada del agente la opción no funcional "Intérprete de código"
  2. v9.4.53

    🤖 Ejecutar un agente abre un chat con el resultado + panel de agentes unificado

    Dos arreglos en los agentes. (1) Al pulsar "Ejecutar" en un agente, ahora se crea un chat nuevo automáticamente con el resultado y se abre, en vez de dejarlo solo en el Historial: así ves la respuesta como una conversación normal. Además se avisa de que la ejecución puede tardar ~30s (el agente busca en web y razona). (2) Había dos paneles de agentes distintos y al refrescar saltabas de uno a otro; ahora hay uno solo (el del panel de administración). El agente ya funcionaba —el problema era que tardaba y no mostraba bien el resultado.

    Nuevo

    • 🤖 "Ejecutar" crea y abre un chat nuevo con el resultado del agente
    • Aviso de que la ejecución tarda ~30s (antes parecía colgado)
    • 🧹 Un único panel de agentes (se elimina el duplicado y el salto al refrescar)

    Ejecución de agentes

    • Al ejecutar un agente se crea una conversación nueva (título = nombre del agente) con tu mensaje y la respuesta, y se abre automáticamente.
    • Si la creación del chat fallara, la ejecución igualmente se completa y queda en el Historial.
    • Indicador "Ejecutando… (~30s)" mientras trabaja.

    Panel de agentes

    • Eliminada la página suelta /admin/agents que duplicaba la pestaña del panel y causaba un cambio de UI al refrescar.
    • Ahora /admin/agents siempre carga la pestaña de Agentes del panel de administración.
  3. v9.4.52

    🩹 Arreglado el indicador de agente activo en el composer

    Al activar la herramienta "Agentes", el indicador del agente seleccionado se mostraba descolocado y sin estilo (texto suelto debajo del cuadro de escribir), porque reutilizaba el hueco del indicador de "herramientas activas". Ahora aparece como una etiqueta morada propia ("🤖 Nombre", con ✕ para quitarlo) justo encima del input, con el aviso de que tu mensaje lo ejecutará ese agente.

    Nuevo

    • ✕ Quitar el agente o tocar el nombre para cambiarlo

    Arreglado

    • 🩹 El agente activo se ve como etiqueta limpia encima del input (ya no descolocado)
  4. v9.4.51

    🤖 Agentes desde el chat: elígelos, créalos y ejecútalos

    Ahora puedes usar tus agentes directamente desde el composer. En el menú de herramientas hay una entrada nueva "Agentes": abre un panel donde ves tus agentes, eliges uno (queda activo, con un indicador junto al cuadro de escribir) y al enviar un mensaje lo ejecuta ESE agente —con su plan y herramientas— en vez del modelo normal; el resultado aparece como respuesta. Desde el mismo panel puedes crear un agente nuevo (nombre, objetivo y herramientas). Además, el agente ahora tiene en cuenta el mensaje que escribes (antes solo ejecutaba su objetivo fijo). Y de paso: el botón del menú que decía "Modo agente" en realidad era el intérprete de código —lo hemos renombrado a "Intérprete de código" para que deje de confundir.

    Nuevo

    • 🤖 Nueva entrada "Agentes" en el composer: elegir, crear y ejecutar agentes
    • 🏷️ Indicador de agente activo junto al input (y opción de quitarlo)
    • 💬 El agente tiene en cuenta tu mensaje, no solo su objetivo fijo
    • 🧹 Renombrado "Modo agente" → "Intérprete de código" (estaba mal etiquetado)

    Usar agentes desde el chat

    • Menú de herramientas → "Agentes" abre un panel con tus agentes activos.
    • Al elegir uno queda activo: lo ves en un chip junto al composer y, al enviar, ese agente ejecuta tu mensaje (no el modelo).
    • Botón para "dejar de usar el agente" y volver al chat normal.

    Crear agentes

    • Desde el mismo panel: nombre, objetivo en lenguaje natural y herramientas (Búsqueda Web / Base de Datos).
    • Se crean como "manual"; puedes ponerles horario desde el panel de administración de agentes.

    Motor

    • El ejecutor ahora recibe tu mensaje como contexto del planificador (antes ignoraba lo que escribías).
    • Sin cambios en seguridad: el agente solo lee tus datos (db_query SELECT con lista blanca) y no escribe nada.
  5. v9.4.50

    ⌨️ Arreglado el "Tab" del autocompletado y quitado en móvil

    La sugerencia gris del autocompletado (con el botón "Tab") a veces se pintaba encima del texto de ejemplo del input cuando estaba vacío, viéndose superpuesta y confusa. Ahora solo aparece cuando ya has escrito algo. Además, en móvil se desactiva por completo: sin teclado físico, el atajo "Tab" no aporta y solo molestaba.

    Nuevo

    • ⌨️ El autocompletado solo se muestra con texto escrito (ya no se solapa con el placeholder)
    • 📱 Desactivado en móvil (no tiene sentido sin tecla Tab)

    Autocompletado (ghost text + Tab)

    • Ya no se renderiza el texto fantasma cuando el input está vacío (era lo que se superponía al placeholder).
    • Solo se muestra con contenido real y en una sola línea (no en mensajes multilínea).
    • En móvil se desactiva tanto la generación de sugerencias como su overlay.
  6. v9.4.49

    🪄 Las herramientas se activan solas según lo que escribes

    Extendemos el auto-activado a más herramientas: si escribes una intención clara, se enciende sola la herramienta correcta (y lo ves, con un aviso). "Genérame una imagen / dibuja…" activa Generar Imagen; "haz una presentación / unas diapositivas" activa Presentación; "redáctame un documento / informe" activa Generar Documento. Se suma a la búsqueda web (enlaces y "busca en internet"). Los textos están acotados para no dispararse por error, y si lo apagas a mano no se reactiva.

    Nuevo

    • 🖼️ "genérame una imagen / dibuja…" → activa Generar Imagen
    • 📊 "haz una presentación / diapositivas…" → activa Presentación (en el chat)
    • 📄 "redáctame un documento / informe…" → activa Generar Documento
    • 🤝 Visible (aviso) y respetuoso: si lo apagas a mano, no se reactiva

    Detección de intención

    • Generar Imagen: se activa con "genérame/crea/haz/dibuja/pinta una imagen, foto, ilustración, dibujo, logo, póster…" (y equivalentes en inglés: generate/draw/create image/picture).
    • Presentación: se activa con "genera/haz/prepara una presentación, diapositivas, slides, PowerPoint, ppt, keynote…" (solo en el chat; la pantalla de inicio no gestiona presentaciones).
    • Generar Documento: se activa con "genera/haz/redacta/escribe/prepara un documento, informe, reporte, Word, PDF, carta, memo, ensayo, artículo…".
    • Búsqueda web (de v9.4.47/48): pegar un enlace o escribir "busca en internet / búsqueda web / cerca web / search the web".

    Cómo se comporta

    • Solo se activa en la transición (cuando aparece el disparador), no en cada tecla.
    • Si desactivas la herramienta a mano, no se vuelve a activar para ese mismo texto.
    • Si borras la frase/enlace y la habíamos activado nosotros, se apaga sola.
    • Respeta permisos del modelo, ajustes de chat compartido y límites de invitado.

    Anti-falsos-positivos

    • El verbo de crear debe ir pegado al sustantivo: "busca el documento X" o "tengo una foto" NO disparan nada.
    • Cada herramienta tiene su propio patrón; "genera un documento" no enciende imagen ni presentación.
  7. v9.4.48

    🔗 Pega un enlace (o di "busca en internet") y la búsqueda web se activa sola

    Cuando escribes o pegas un enlace en el chat —o escribes una intención explícita como "busca en internet" o "búsqueda web"— la herramienta de búsqueda web se activa automáticamente (y lo ves: aparece en las herramientas activas, con un aviso). Como la búsqueda ahora también LEE las URLs (v9.4.47), basta con pegar el enlace y pedir "analízalo" — sin acordarte de encender nada. Si prefieres desactivarla, la apagas a mano y no se vuelve a activar; y si borras el disparador, se apaga sola si la habíamos encendido nosotros.

    Nuevo

    • 🔗 Detecta enlaces en el input y activa la búsqueda web automáticamente (visible)
    • 🗣️ También se activa con frases como "busca en internet" / "búsqueda web"
    • 🤝 Respeta tu decisión: si la apagas a mano, no se reactiva
    • 🧭 Disponible en el chat y en la pantalla de inicio
  8. v9.4.47

    🔗 La búsqueda web ahora LEE los enlaces que le pegas

    Antes, con "Cerca Web" activo, si pegabas un enlace y pedías "analiza esta página", el sistema solo buscaba por palabras clave: si la página no estaba indexada (un sitio nuevo o propio), la IA no recibía su contenido y respondía que no lo tenía. Ahora, cuando tu mensaje contiene una o varias URLs, se descarga y lee el contenido REAL de esas páginas (usando navegador headless cuando hacen falta para páginas con JavaScript) y se le pasa a la IA para que lo analice de verdad.

    Nuevo

    • 🔗 Lee directamente las URLs que pegas (hasta 3), no solo busca por palabras clave
    • 🧩 Funciona incluso con páginas nuevas/propias no indexadas y con páginas que requieren JS

    Seguridad

    • 🛡️ Mantiene la protección anti-SSRF (solo URLs públicas)
  9. v9.4.46

    🧠 Captura de memoria más lista (con ayuda de un modelo)

    La detección automática de datos para recordar ya no depende solo de patrones de texto. Si los patrones rápidos no detectan nada, un modelo pequeño analiza el mensaje y decide si hay un dato personal duradero que valga la pena recordar (en cualquier idioma), redactándolo en tercera persona. Sigue pidiéndote confirmación antes de guardar nada. Para acotar el coste, el modelo solo se consulta cuando los patrones no encuentran nada y el mensaje tiene cierta longitud.

    Nuevo

    • 🧠 Captura con LLM como respaldo del regex (multiidioma, menos casos perdidos)
    • Sigue requiriendo tu confirmación antes de guardar
    • 💸 Coste acotado: el modelo solo se usa cuando el regex no detecta nada
  10. v9.4.45

    🔄 Las carpetas también se sincronizan entre dispositivos

    Completamos la sincronización en tiempo real entre dispositivos. Ahora, al crear, renombrar, marcar como favorita o borrar una CARPETA en un dispositivo, el cambio aparece al instante en el sidebar de tus otros dispositivos (antes había que refrescar). Los chats, los fijados, el archivado y los mensajes del chat que tengas abierto ya se sincronizaban.

    Nuevo

    • 🗂️ Carpetas (crear/renombrar/favorita/borrar) sincronizadas en tiempo real entre dispositivos
  11. v9.4.44

    ⚡ Menos latencia: respuestas que empiezan antes

    Optimización de la ruta del chat: dos consultas a la base de datos que antes se hacían en serie antes de empezar a responder (el GPT activo de la conversación y los recuerdos del usuario) ahora se piden en paralelo junto a las demás. Menos idas y vueltas a la base de datos = el modelo empieza a escribir un poco antes en cada mensaje. Sin cambios de comportamiento.

    Nuevo

    • 🛡️ Sin tocar el historial ni los caminos de chat compartido/regenerar

    Mejorado

    • active_gpt_id y memorias del usuario se cargan en paralelo (−2 consultas en serie)
  12. v9.4.43

    🧠 Memoria mejorada + sincronización del sidebar entre dispositivos

    Mejoras en el sistema de memoria y dos arreglos. Memoria: ahora puedes EDITAR cada recuerdo desde el panel; cada recuerdo muestra su fecha y de qué chat se capturó; un indicador en cada respuesta enseña qué recuerdos influyeron; y puedes PAUSAR la memoria en un chat concreto. Arreglos: al crear, renombrar o borrar un chat en un dispositivo, ahora aparece al instante en el sidebar de tus otros dispositivos (antes había que refrescar); y el botón para desactivar la herramienta de YouTube desde el composer ahora funciona (era la única que no se desactivaba).

    Nuevo

    • ✏️ Editar recuerdos en el panel, con fecha y chat de origen
    • 🧠 Indicador de "recuerdos usados" en cada respuesta + pausar memoria por chat
    • 🔄 El sidebar se sincroniza entre dispositivos al crear/renombrar/borrar chats

    Arreglado

    • 🛠️ Arreglado el botón de desactivar la herramienta de YouTube
  13. v9.4.42

    🧩 Pulido: quiz a medida, indicador de escritura más robusto y mejor captura de memoria

    Tres arreglos menores detectados en la auditoría. (1) El generador de quiz ahora respeta el número de preguntas que pides ("quiz de 5 preguntas"); antes siempre creaba 10. (2) El indicador de "escribiendo…" ya no genera errores 500 esporádicos ante un fallo transitorio de base de datos: al ser una función decorativa, ahora degrada en silencio. (3) La captura automática de memorias reconoce más casos (ubicación, idioma preferido, dieta/alergias, más profesiones) y filtra ruido (deja de guardar frases triviales como "me gusta esto").

    Nuevo

    • 🎯 El quiz respeta el nº de preguntas pedido (1–20, por defecto 10)
    • 🔇 Indicador de "escribiendo" degrada en silencio en vez de dar 500
    • 🧠 Captura de memoria con más categorías (ubicación/idioma/dieta) y menos ruido
  14. v9.4.41

    🧠 Memoria: un único sistema, sin duplicados ni tablas muertas

    El sistema de memoria tenía dos caminos divergentes: el chat inyectaba las memorias por separado (sin deduplicar y sin tope) mientras existía un consolidador más completo que no usaba nadie, además de varias tablas creadas y nunca conectadas. Ahora hay un solo camino: las memorias de usuario y de proyecto se fusionan en un bloque deduplicado, ordenado por especificidad y con tope de inyección, y se han eliminado las piezas muertas. Las memorias de carpeta/colaboración no cambian.

    Nuevo

    • 🧠 Memorias de usuario+proyecto consolidadas en un solo bloque (dedup + orden por especificidad)

    Mejorado

    • Tope de inyección (máx. 50): el prompt ya no crece sin freno al acumular memorias
    • 🧹 Eliminadas tablas/endpoint/UI muertos del subsistema (categorías, relaciones, log de accesos, settings)
  15. v9.4.40

    ⚡ Rendimiento: menos latencia en el chat, navegación y carga de imágenes

    Optimizaciones de la auditoría (P1–P5). (P1) El chat leía el perfil del usuario varias veces antes de responder; ahora se lee una sola vez y se reutiliza → una ida menos a la base de datos por mensaje. (P2) El middleware consultaba el perfil (rol/suspensión) en CADA petición; ahora se cachea unos segundos por instancia → menos latencia en toda la navegación. (P3/P4) Añadidos índices en la base de datos que faltaban (claves foráneas de canales/incidentes y la tabla de actividad). (P5) Las miniaturas de un mensaje con varias imágenes se firman en UNA sola llamada en vez de una por imagen. Sin cambios de comportamiento.

    Nuevo

    • 🗂️ Índices BD añadidos (FKs de canales/incidentes + tabla de actividad)
    • 🖼️ Firma de imágenes en lote (una llamada por mensaje, no por imagen)

    Mejorado

    • Perfil del usuario leído una sola vez por mensaje (−1 consulta) + caché de rol en el middleware
  16. v9.4.39

    🛡️ Auditoría: corregidos los errores y agujeros de seguridad detectados

    Tras una auditoría a fondo del proyecto, se han corregido todos los errores encontrados (de crítico a bajo). Seguridad: (CRÍTICO) un usuario ya no puede sobrescribir mensajes de otra conversación al "regenerar" (se valida que el mensaje pertenece a la conversación); (ALTO) ya no se pueden adjuntar archivos a proyectos ajenos (se exige rol de editor); (ALTO) el resumen de chat vuelve a funcionar para participantes de chats compartidos; las consultas SQL del asistente bloquean sentencias apiladas y comentarios; y se limita el tamaño del mensaje. Robustez: las fotos de chats compartidos vuelven a verse (firma vía servidor con permiso verificado); borrar una conversación es ahora atómico; el contador de vistas de enlaces compartidos es atómico; el listado de chats ya no carga toda la tabla de participantes; y se evita el solapamiento al enviar mensajes en cola.

    Nuevo

    • 🛡️ CRÍTICO: cerrado IDOR de "regenerar" (no se pueden reescribir mensajes ajenos)
    • 🧱 SQL del asistente endurecido (sin sentencias apiladas/comentarios) + límite de tamaño de entrada
    • 🖼️ Fotos de chats compartidos visibles de nuevo; borrado y contador de vistas atómicos

    Seguridad

    • 🔒 ALTO: adjuntar a un proyecto exige rol de editor; resumen de chats compartidos restaurado
  17. v9.4.38

    🩹 Arreglado "Conversation not found": el mensaje ya no se pierde si el chat activo no existe

    Si al abrir la app se restauraba un chat "último activo" que ya no existía (un chat borrado, o una sesión de invitado anterior), al escribir y enviar el mensaje fallaba con "Conversation not found" y no había respuesta de la IA (reutilizaba ese id muerto sin crear la conversación). Ahora, si /api/chat responde 404, la app crea la conversación con ese id y reintenta el envío una vez automáticamente, así el mensaje llega y la IA responde. Detectado probando la app en el navegador.

    Nuevo

    • 🤖 La IA responde aunque el "último chat" restaurado fuera obsoleto

    Arreglado

    • 🩹 Enviar en un chat cuyo id ya no existe ya no falla: se crea y reintenta solo
  18. v9.4.37

    🐞 Posible arreglo del error React #185 al enviar (solo en producción)

    En producción, al enviar un mensaje, la consola mostraba el error React #185 ("Maximum update depth": un bucle de re-render que React corta solo, no fatal, pero ensuciaba la consola). Solo ocurría en producción (no en desarrollo), lo que apunta al React Compiler. Se ha aplicado la puerta de escape oficial ("use no memo") al componente del cuadro de escritura (ChatInput) para que el compilador no lo transforme y vuelva al comportamiento estándar de React. El resto de la app mantiene las optimizaciones del compilador. Pendiente de confirmar en producción.

    Nuevo

    • 🐞 ChatInput excluido del React Compiler ("use no memo") para cortar el bucle de #185

    Mejorado

    • ⚙️ El resto de la app conserva las optimizaciones del compilador
  19. v9.4.36

    🔊 Leer en voz alta por mensaje · ⌨️ atajos de teclado · 🔁 regenerar con otro modelo

    Tres mejoras de productividad. (1) Cada respuesta del asistente tiene ahora un botón 🔊 para leerla en voz alta (y pararla); solo suena un mensaje a la vez. (2) Atajos de teclado: Ctrl/Cmd+J abre un chat nuevo, "/" enfoca el cuadro de escritura, Esc detiene la respuesta en curso, y Ctrl/Cmd+M abre el selector de modelo. (3) En cualquier respuesta puedes pulsar el "▾" junto a Regenerar para "Regenerar con otro modelo": rehace esa respuesta con el modelo que elijas sin tener que reescribir el mensaje (y respeta exactamente ese modelo, sin AutoModel).

    Nuevo

    • 🔊 Botón de leer en voz alta en cada respuesta de la IA
    • ⌨️ Atajos: Ctrl/Cmd+J nuevo chat · "/" enfocar input · Esc detener · Ctrl/Cmd+M modelo
    • 🔁 "Regenerar con otro modelo" sin reescribir el prompt
  20. v9.4.35

    🌐 El idioma se guarda en tu cuenta y se sincroniza entre dispositivos

    Antes el idioma (Català/Castellano) se guardaba solo en el navegador (localStorage), así que al entrar desde otro PC salía en castellano aunque tú lo tuvieras en catalán. Ahora se guarda en tu cuenta (en la base de datos): al iniciar sesión en cualquier dispositivo se aplica tu idioma, y al cambiarlo se actualiza para todos. La preferencia que ya tenías en este equipo se migra automáticamente la primera vez. El navegador sigue usándose como caché para el primer pintado.

    Nuevo

    • 🌐 Idioma guardado en la cuenta (profiles.language), no solo en el navegador
    • 🔄 Sincroniza entre dispositivos al iniciar sesión
    • ⤴️ Migra automáticamente tu idioma actual la primera vez
  21. v9.4.34

    ✨ Welcome más bonita (Quiz + cards rediseñadas) y subida de imágenes más rápida

    Tres cosas. (1) En las acciones rápidas de la pantalla de bienvenida, "Unidad de red" se sustituye por "Quiz" (el generador interactivo). (2) Las cards de esas acciones se han rediseñado: icono con color propio por herramienta, estado activo con acento y punto indicador, hover con elevación y subtítulo (Activado / Tocar para activar). (3) Las imágenes ahora se comprimen/redimensionan en el navegador ANTES de subirse (máx ~1600px, JPEG): una foto de móvil de 3-4 MB pasa a ~300-700 KB, así la subida es mucho más rápida y la visión más ágil. Si la compresión no es posible (formato raro), se sube el original.

    Mejorado

    • Cards de la welcome rediseñadas (color por herramienta, activo con acento, hover elevado)
    • 🎯 "Quiz" reemplaza a "Unidad de red" en las acciones rápidas de la welcome
    • Imágenes comprimidas en el cliente antes de subir → subida mucho más rápida
  22. v9.4.33

    🆚 Comparador de modelos: respuestas lado a lado + consumo de cada modelo

    La comparativa multi-modelo ya no muestra las respuestas apiladas una debajo de otra. Ahora salen en COLUMNAS, a la misma altura (2 modelos lado a lado; con 3-4 se desliza en horizontal). Cada columna lleva su cabecera con el nombre del modelo y, abajo, su CONSUMO: tokens (entrada→salida = total) y latencia. La información estaba ya guardada pero no se mostraba; ahora se ve por cada modelo. (Las comparativas antiguas siguen viéndose en el formato anterior.)

    Nuevo

    • 🆚 Respuestas de los modelos en columnas a la misma altura (no apiladas)
    • ↔️ Con 3-4 modelos, las columnas se deslizan en horizontal

    Mejorado

    • 📊 Consumo por modelo: tokens (entrada/salida/total) + latencia
  23. v9.4.32

    🎯 Quiz interactivo: responde pregunta a pregunta y ve tu nota al final

    El Generador de Quiz ya no muestra un bloque de texto con respuestas colapsables (que además salían como etiquetas <details> sin renderizar). Ahora es una tarjeta INTERACTIVA: cada pregunta con sus opciones seleccionables, botón Siguiente/Anterior y barra de progreso; al terminar ves tu nota (aciertos/total y %), qué preguntas fallaste, tu respuesta y la correcta con su explicación, y un botón para reintentar. Internamente el modelo genera el quiz en un formato estructurado que la app pinta como componente.

    Nuevo

    • 🎯 Quiz como tarjeta interactiva: elige opción → Siguiente → resultados
    • 🔁 Botón "Reintentar"; ya no aparecen etiquetas <details> sin formato

    Arreglado

    • 📊 Al final: nota, aciertos/fallos, tu respuesta vs la correcta + explicación
  24. v9.4.31

    🧹 Arreglado el "data: {...}" raro que salía en las respuestas con imagen

    Al analizar imágenes (con OCR) aparecía una línea técnica fea encima de la respuesta: data: {"type":"tool_timeline_event",...}. Era un evento interno del stream que no se filtraba bien cuando quedaba pegado al texto. Ahora se elimina aunque no esté en su propia línea, y además el contenido FINAL del mensaje del asistente se limpia de estos eventos al pintarlo (no solo durante el streaming), sin afectar a artifacts ni código.

    Nuevo

    • 🧹 Ya no se cuela el "data: {tool_timeline_event…}" encima de las respuestas

    Arreglado

    • 🛡️ Limpieza robusta: pilla el evento aunque venga pegado al texto, y también en el mensaje ya guardado
  25. v9.4.30

    ⚡ Menos latencia: lecturas de BD en paralelo al preparar la respuesta

    Primer paso (conservador) para reducir el tiempo que tarda el chat en arrancar la respuesta. Antes de llamar al modelo se hacían varias consultas a la base de datos de forma secuencial; ahora se lanzan en paralelo las que son independientes: el perfil del usuario junto con sus memorias, y (en proyectos) los datos del proyecto junto con las memorias del proyecto. La sección de carpetas ya iba en paralelo. Cada par ahorra una ida y vuelta a la BD (~50-150 ms con la BD en el NAS). Sin cambios de comportamiento.

    Nuevo

    • Cambio conservador en la ruta crítica del chat: misma lógica, menos esperas

    Mejorado

    • Perfil + memorias del usuario se cargan en paralelo (antes secuencial)
    • En proyectos: datos del proyecto + memorias del proyecto en paralelo
  26. v9.4.29

    🏷️ La insignia muestra el modelo REAL que respondió + modelo de visión configurable

    Dos mejoras. (1) Hasta ahora la insignia del mensaje mostraba el modelo que TENÍAS seleccionado, aunque el servidor lo cambiara (AutoModel o el forzado de visión a 5.5). Ahora el servidor avisa por el stream del modelo realmente usado y la insignia lo refleja al instante, sin esperar a recargar. (2) El modelo que analiza las imágenes ya no está fijo en el código: hay un ajuste nuevo en el panel admin (Modelos → "Modelo para análisis de imagen") con un desplegable de los modelos con visión; si no se configura, se usa GarBotGPT-5.5 por defecto.

    Nuevo

    • 🏷️ La insignia del mensaje refleja el modelo que de verdad respondió (no el seleccionado)
    • ⚙️ Panel admin: elige el modelo para análisis de imagen (desplegable de modelos con visión)
    • 🔁 Por defecto sigue siendo GarBotGPT-5.5 si no se configura nada
  27. v9.4.28

    🖼️ Fotos sin tarjeta (solo la imagen) + análisis de imagen siempre con GarBotGPT-5.5

    Dos ajustes pedidos. (1) Las imágenes en el chat se muestran ahora SOLO como la foto: se quitó la tarjeta azul con borde, el nombre del archivo, el tamaño y el icono; además ya no se recorta (se conserva la imagen entera, no cuadrada forzada). Sigue siendo pulsable para abrir la vista grande. (2) El análisis de imagen ya no lo hace el modelo Mini: cuando hay una foto adjunta, el servidor fuerza GarBotGPT-5.5 (el mejor en visión), por encima del AutoModel y del modelo seleccionado. Si por permisos 5.5 no estuviera disponible para ese usuario, se cae al AutoModel/modelo normal.

    Nuevo

    • 🖼️ Las fotos del chat se ven solo como imagen (sin tarjeta, sin borde, sin recortar)
    • 🧠 Con foto adjunta se usa SIEMPRE GarBotGPT-5.5 para analizarla (no el Mini)
  28. v9.4.27

    🖼️ Las fotos vuelven a verse en el chat (miniaturas) y en cuadrícula compacta

    Dos arreglos para los adjuntos de imagen en el chat. (1) Las fotos no se veían: salía una tarjeta con icono de clip en vez de la miniatura. Causa: el bucket privado user-files tenía RLS activado pero SIN políticas, así que el navegador no podía firmar la URL de tus propias imágenes (todo denegado por defecto); solo el servidor, con clave de servicio, podía. Se han añadido las políticas estándar para que cada usuario acceda a SUS archivos (carpeta = su id), de forma segura: un usuario no puede ver los de otro. (2) Las imágenes se apilaban a lo ancho (220px) una debajo de otra, obligando a hacer scroll; ahora se muestran como miniaturas cuadradas compactas que se colocan varias por fila. Los archivos no-imagen (PDF, hojas, docs) mantienen su tarjeta.

    Nuevo

    • 🖼️ Las fotos del chat se ven de nuevo como miniatura (no el icono de clip)
    • 🧱 Imágenes en cuadrícula compacta (varias por fila) en vez de apiladas → menos scroll

    Seguridad

    • 🔐 Políticas RLS del bucket user-files: cada quien ve solo SUS archivos (seguro)
  29. v9.4.26

    🖼️ Arreglado: editar un mensaje con fotos ya no pide volver a subirlas

    Al editar (o regenerar) un mensaje que tenía imágenes, el modelo se quedaba sin ellas y pedía que las subieras otra vez. La causa: al reenviar la petición, los adjuntos solo se incluían si había una herramienta de documentos activa (unidad de red, hoja de cálculo, generación de documentos, intérprete de código o RAG estricto); las imágenes, que usan visión y no dependen de ninguna herramienta, se descartaban. Ahora las imágenes se reenvían SIEMPRE al editar/regenerar, así la visión sigue funcionando. Los adjuntos no-imagen (documentos/hojas) mantienen su condición anterior.

    Nuevo

    • 🖼️ Editar/regenerar un mensaje con fotos conserva las imágenes (visión sigue activa)
    • 🔧 Las imágenes se reenvían siempre; los documentos/hojas siguen ligados a su herramienta
  30. v9.4.25

    💬 Chats independientes: varias conversaciones respondiendo a la vez

    Antes el estado de "respondiendo" era único y global: si un chat estaba generando respuesta y te ibas a otro, el segundo se bloqueaba (tu mensaje quedaba en cola). Ahora el streaming es POR conversación: cada chat tiene su propio buffer, su propio indicador y su propio botón de detener. Puedes lanzar una respuesta en un chat, cambiarte a otro y escribir/enviar allí inmediatamente, mientras el primero sigue respondiendo en segundo plano; al volver, ves su texto en vivo. Un mensaje encolado siempre se envía a SU conversación de origen aunque hayas cambiado de chat. Los campos que ve la UI siguen reflejando el chat que estás mirando, así que el resto de la app (indicadores, sugerencias, voz, artifacts) no cambia. Si borras un chat que estaba respondiendo, su stream se aborta limpiamente.

    Nuevo

    • 💬 Streaming POR conversación: ya no se bloquea enviar en otro chat mientras uno responde
    • 🔀 Cambia de chat libremente: el de origen sigue respondiendo en segundo plano
    • 📨 La cola de mensajes recuerda su conversación: cada mensaje va a SU chat
    • 🧹 Borrar un chat en curso aborta su respuesta sin afectar a los demás

1118 versiones publicadas · página 28 de 38. Míralo dentro de la app.