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.84

    🫧 Input móvil: un poco más transparente

    Ajuste fino del cristal del input móvil: más transparente (velo blanco de ~0.5 a ~0.34) pero manteniendo el desenfoque alto (22px) y la saturación baja (1.28) para que el color de las burbujas de detrás siga difuminado y no vuelva el tinte azul.

    Nuevo

    • 🫧 Más transparente (velo ~0.34) sin recuperar el tinte azul
    • 🌫️ Blur 22px + saturación 1.28 mantienen el fondo difuminado
  2. v9.4.83

    🩹 Input móvil: arreglado el tinte azul (legibilidad)

    En el iPhone el input se volvía un pegote azul-morado: al ser demasiado transparente, las burbujas de mensaje azules de detrás se colaban y la saturación alta las convertía en un degradado azul. Ahora lleva un velo blanco real (~0.5), saturación moderada y más desenfoque, así que el color de detrás ya no tiñe el cuadro y el texto se lee bien. Mantiene el bisel, el anillo de borde y el brillo especular (carácter de cristal).

    Nuevo

    • 🚫 Adiós al tinte azul: velo blanco ~0.5 + saturación 1.3 + blur 18px
    • 👁️ Mucho más legible sobre burbujas de color
    • 🔷 Conserva bisel/anillo/especular para el look de cristal

    Interfaz móvil

    • Se quitó la dispersión cromática cian/ámbar que sumaba al tinte azul; sheen y franja inferior atenuados para evitar manchas.
  3. v9.4.82

    🫧 Input móvil: cristal grueso con lente y especular (iPhone)

    Segunda iteración del liquid glass del input móvil, llevando la aproximación CSS al máximo para iPhone (Safari no permite la refracción real). Ahora el cuadro de escribir parece cristal grueso: borde biselado (luz arriba, sombra abajo), anillo de borde tipo lente, dispersión cromática sutil (cian/ámbar) como el efecto de Apple, y un reflejo especular más nítido en la esquina superior. Solo afecta al input del móvil.

    Nuevo

    • 🔷 Borde biselado tipo lente (luz arriba / sombra abajo) → look de cristal grueso
    • 🌈 Dispersión cromática sutil (cian/ámbar) en los cantos, como Apple
    • Reflejo especular más nítido en la esquina superior + raya de borde

    Interfaz móvil

    • Nota: Safari/iOS no soporta refracción real (backdrop-filter con filtro SVG); esta es la mejor aproximación CSS posible en iPhone, sin doblar el fondo.
  4. v9.4.81

    🧪 Prueba: input móvil estilo "Apple Liquid Glass"

    Cambio de prueba en el cuadro de escribir del móvil: en vez del cristal esmerilado lechoso de antes, ahora usa un cristal mucho más transparente al estilo de Apple (menos desenfoque, deja ver el fondo, más saturación y un borde superior brillante). Solo afecta al input del móvil; el escritorio no cambia. Nota: la refracción de bordes (que dobla el fondo) es exclusiva de Chrome/Android; en iPhone se ve esta versión CSS transparente.

    Nuevo

    • 🫧 Input móvil más transparente y con brillo especular (look Apple), menos efecto plástico
    • 📱 Solo cambia el composer del móvil; el de escritorio queda igual
    • 🛟 Fallback opaco si el navegador no soporta desenfoque

    Interfaz móvil

    • Receta liquid glass en .mobile-chatgpt-composer: blur bajo (7px), fondo translúcido (~0.1–0.2), saturación 1.9 y rim especular superior.
    • La refracción de bordes vía filtro SVG es Chrome/Chromium-only; en iOS/Safari se aplica la versión CSS transparente.
  5. v9.4.80

    📊 AdSense: modelo más barato, variación en las cards y panel propio /adsense

    Mejoras de Google AdSense. (1) Las consultas de AdSense en el chat ahora usan el modelo barato (GarBotGPT-5-Mini) en vez del 5.5: solo resume datos ya calculados, así que es más rápido y económico. (2) Las tarjetas de AdSense muestran SIEMPRE la variación vs el periodo anterior (flecha + %), no solo en "hoy vs ayer". (3) Nueva página dedicada /adsense con selector de cuenta, rango y métricas, KPIs con variación y una gráfica diaria — sin pasar por el chat. Accesible desde el menú lateral.

    Nuevo

    • 📈 Variación vs periodo anterior siempre visible en las cards (flecha + %)
    • 🗂️ Nueva página /adsense: cuenta + rango + métricas + gráfica diaria
    • 🔗 Acceso a AdSense desde el menú lateral (escritorio y móvil)

    Mejorado

    • 💸 AdSense en el chat usa GarBotGPT-5-Mini (más barato y rápido) en vez de 5.5

    Google AdSense

    • El modelo se fuerza a gpt-5-mini SOLO cuando AdSense es la herramienta activa (anula AutoRoute en ese caso).
    • Modo resumen: se consulta también el periodo anterior comparable y se calcula la variación por métrica.
    • Página /adsense con KPIs (con variación) y gráfica diaria SVG por métrica; avisa si falta conectar/reautorizar Google.
    • Nuevo endpoint /api/google/adsense/report (totales + serie diaria).
  6. v9.4.79

    📂 Arreglado: cálculos/listados sobre una carpeta (p.ej. sumar nóminas)

    Cuando seleccionabas una carpeta con varios documentos y pedías algo tipo "dime todas mis nóminas y el total del salario neto", la IA listaba los archivos pero se quedaba preguntando qué hacer en vez de calcular. El motivo: solo recibía un fragmento de unos pocos documentos (no de todos) y un contexto demasiado blando. Ahora, en consultas de cálculo/listado sobre una carpeta, la IA recibe el contenido real de TODOS los documentos de la carpeta y la instrucción de calcular y responder directamente.

    Nuevo

    • 📂 En cálculos/listados sobre una carpeta, la IA lee el contenido de TODOS los documentos (no solo unos pocos)
    • 🧮 Instrucción imperativa: calcula y responde con el listado por documento y el total, sin pedir confirmación
    • 🔎 Más cobertura de búsqueda (match_count adaptado al nº de documentos de la carpeta)

    Carpetas / Conocimiento

    • Detección de intención de agregación (total, suma, todas, cada, listado, importes, netos…) sobre la carpeta.
    • En esas consultas se inyecta el extracto real de cada documento (no solo el resumen de secciones/tablas) y se cubren todos los archivos (hasta 25).
    • match_count del RAG de carpeta adaptado al número de documentos; las consultas normales mantienen el comportamiento anterior.
  7. v9.4.78

    🛠️ Nueva página /cron para gestionar el cron del servidor

    Hay una página nueva en /cron (solo administradores) para gestionar el cron del servidor que ejecuta las tareas/automatizaciones programadas. Muestra si el cron está vivo (latido), cuándo fue la última ejecución, las próximas tareas y agentes, y la actividad reciente. Permite activarlo/desactivarlo, fijar cada cuánto procesa, y ejecutarlo al instante con "Ejecutar ahora". Tienes un acceso directo desde Ajustes → Tareas.

    Nuevo

    • 🩺 Salud del cron en vivo (latido) y resumen de la última ejecución
    • ⏯️ Activar/desactivar el cron y fijar el intervalo de proceso desde la web
    • 📅 Próximas tareas, agentes activos y actividad reciente en una sola vista

    Mejorado

    • Botón "Ejecutar ahora" para lanzar el scheduler al instante

    Cron / Servidor

    • Nueva página /cron (admin) con estado, control e historial del scheduler.
    • El scheduler registra un latido en cada llamada del cron del NAS; la página lo lee para mostrar si está activo.
    • Config en BD (migración 103 cron_state): activado/desactivado e intervalo de proceso, respetados por el scheduler.
    • Endpoints /api/cron (GET estado, PATCH config, POST ejecutar-ahora) protegidos por administrador.
  8. v9.4.77

    🤖 Automatizaciones más fiables + cristal en la barra y el menú móvil

    Mejoras en las automatizaciones (tareas programadas) y un par de retoques visuales en móvil. Ahora puedes crear una automatización directamente desde Ajustes (antes solo nacían desde el chat); si una automatización falla, se reintenta automáticamente y, si aun así no sale, te avisa en el chat (y por email si lo tienes activado). También se arregló un fallo que impedía pausar tareas. En móvil, la barra inferior y el menú lateral ahora tienen efecto de cristal esmerilado real.

    Nuevo

    • Crear automatizaciones desde Ajustes → Tareas (botón "Nueva")
    • 🔁 Reintentos automáticos (hasta 3) y aviso al usuario si una tarea falla
    • 🪟 Cristal esmerilado real en la barra inferior y el menú lateral del móvil

    Arreglado

    • ⏸️ Arreglado: pausar una tarea ya no da error

    Automatizaciones / Tareas

    • Nuevo formulario para crear automatizaciones desde la pestaña de Ajustes (recurrencia, acción, herramientas, prompt e indicaciones).
    • El scheduler reintenta las tareas fallidas con backoff y, al agotar los intentos, avisa por chat y/o email y deja de reintentar (recurrentes saltan a la próxima ocurrencia).
    • Migración 102: el estado "paused" ahora es válido en BD (antes el CHECK lo rechazaba y pausar fallaba).
    • Endpoint interno del worker del scheduler protegido con CRON_SECRET.

    Interfaz móvil

    • Barra de navegación inferior con cristal esmerilado (blur + translúcido + rim-light) en vez del fondo plano.
    • Menú lateral con backdrop-blur real; ambos con respaldo opaco si el navegador no soporta backdrop-filter.
  9. v9.4.76

    🖼️ Miniatura real de las imágenes en "Mis archivos"

    En la página "Mis archivos", las imágenes ahora muestran una miniatura real (la propia foto recortada) en vez del icono genérico de imagen. Si por lo que sea la miniatura no carga, se vuelve a mostrar el icono coloreado de siempre. El resto de tipos (PDF, hojas de cálculo, etc.) siguen con su icono.

    Nuevo

    • 🖼️ Las imágenes se ven como miniatura real (object-cover) en la lista de "Mis archivos"
    • ↩️ Si la miniatura falla, cae automáticamente al icono coloreado
    • 🪶 Carga diferida (lazy) para no ralentizar la lista

    Mis archivos

    • Nuevo componente de miniatura: para imágenes usa la vista inline del archivo; para el resto, el icono por tipo.
    • Carga perezosa de las miniaturas (loading="lazy") y recorte object-cover con borde sutil.
  10. v9.4.75

    📎 Arreglado: el chip "[Adjunto N]" ya no te devuelve al chat (PWA)

    El chip "[Adjunto N]" de las respuestas no abría el documento: en la app instalada (PWA) al pulsarlo te mandaba otra vez al chat. La causa era que el saneador de enlaces de Markdown vaciaba nuestro enlace interno, dejando un enlace vacío que la PWA interpretaba como "ir al inicio". Ahora el chip abre el adjunto correctamente.

    Nuevo

    • 📎 El chip "[Adjunto N]" vuelve a abrir el documento real (antes te devolvía al chat en la PWA)

    Seguridad

    • 🔒 Se preserva nuestro enlace interno de adjuntos sin abrir la puerta a esquemas no seguros

    Respuestas (citas de adjuntos)

    • Se conserva el esquema interno "geia-att:" al renderizar Markdown (antes lo eliminaba el saneador por defecto).
    • El chip evita que el clic se propague y abra navegación accidental.
  11. v9.4.74

    📱 "Mis archivos" totalmente adaptado a móvil

    La página "Mis archivos" ahora se ve y se usa mucho mejor en el móvil: cada archivo muestra su estado con una etiqueta compacta y los botones de acción (ver, descargar, indexar, renombrar, borrar) pasan a una fila inferior con buen tamaño para el dedo, en vez de amontonarse junto al nombre. La barra superior también se compacta (el botón "Volver" deja solo el icono) para que quepa todo.

    Nuevo

    • 📱 Filas de archivo en 2 niveles en móvil: nombre+estado arriba, acciones abajo (toques cómodos)
    • 🏷️ Etiqueta de estado compacta visible también en móvil
    • ↔️ Barra superior compacta (icono "Volver", menos relleno) para que entre todo

    Mis archivos (responsive)

    • En móvil las acciones de cada archivo van en una fila inferior con separador, con iconos más grandes para el dedo.
    • Badge de estado (Indexado/En cola/Fallido/Sin indexar) ahora también visible en móvil, en versión compacta.
    • Barra superior y contenido con menos relleno lateral en pantallas pequeñas; "Volver al chat" queda como icono.
  12. v9.4.73

    📎 "Archivos recientes" estilo ChatGPT, "[Adjunto N]" clicable, tablas más bonitas y menú del sidebar arreglado

    Varias mejoras de interfaz. (1) "Archivos recientes" ya no abre una ventana centrada encima: en escritorio se despliega a un lado al pasar el ratón (como ChatGPT) y en el móvil sube como hoja inferior. (2) Los marcadores "[Adjunto 1]", "[Adjuntos 2 y 3]" de las respuestas ahora son chips clicables que abren el documento de verdad. (3) Las tablas se ven más limpias. (4) El menú de tres puntos de un chat ya no se corta: ahora hace scroll dentro de sí mismo y se ven todas las opciones.

    Nuevo

    • 📎 "Archivos recientes": flyout lateral en escritorio (hover) y bottom sheet en móvil
    • 🔗 "[Adjunto N]" ahora es un chip clicable que abre el adjunto real
    • 📊 Tablas más limpias y con más aire
    • 🧩 El menú ⋯ de un chat ya no se corta (scroll interno, se ven todas las opciones)

    Selector de archivos recientes

    • Escritorio: panel que se despliega a la derecha del menú al pasar el ratón (ya no una ventana centrada que tapaba todo).
    • Móvil: hoja inferior (bottom sheet) optimizada para el dedo.
    • Las imágenes muestran miniatura; los documentos, su icono por tipo.

    Citas y tablas

    • "[Adjunto N]" / "[Adjuntos N y M]" se convierten en chips clicables (abren el archivo); se quitan los "[Carpeta/Conocimiento/Fuente N]" redundantes.
    • Tablas: cabecera con degradado, más padding y números monetarios a la derecha; fila "Total" resaltada.

    Menú del sidebar

    • El menú ⋯ de un chat (y el de carpeta) ahora tiene scroll interno y altura máxima: ya no se sale de pantalla ni hay que desplazar la lista de chats.
  13. v9.4.72

    ⚙️ Indexación más robusta: worker de respaldo, tablas sin partir y auto-indexado de adjuntos

    Tres mejoras internas del análisis de documentos. (1) Un worker en segundo plano (cada 5 min) completa la indexación de archivos que se quedaron a medias (p. ej. si cerraste la pestaña). (2) Al trocear documentos para la IA, las tablas no se parten: las filas de una tabla se mantienen juntas para no separar una cifra de su concepto. (3) Cuando la IA lee un adjunto que aún no estaba indexado, lo deja en cola para indexarlo de fondo, así la próxima consulta es más rápida.

    Nuevo

    • ⚙️ Worker de ingesta cada 5 min: termina lo que quedó a medias (sin perder indexaciones)
    • 📊 Las tablas no se parten al trocear el documento (cifras junto a su concepto)

    Mejorado

    • Los adjuntos leídos al vuelo se indexan en segundo plano para la próxima vez

    Worker de ingesta (#17)

    • Nuevo endpoint /api/files/ingest-worker (protegido por CRON_SECRET) que procesa archivos atascados en estado "en cola".
    • Cron en el NAS cada 5 minutos; cierra el hueco de la ingesta dirigida por el cliente si el navegador se cierra.

    Chunking consciente de tablas (#19)

    • Detección de bloques de tabla (filas con columnas y números); si caben, se indexan como un bloque entero en vez de partirse.

    Auto-indexado de adjuntos (#16)

    • Si la IA extrae un adjunto no indexado al vuelo, lo marca para que el worker lo indexe en segundo plano.
  14. v9.4.71

    📊 Tablas sin hueco a la derecha + 🖼️ miniaturas en "Archivos recientes"

    Dos pulidos visuales. (1) Las tablas ya no dejan un espacio en blanco a la derecha: la caja se ajusta al ancho del contenido. (2) En el selector "Archivos recientes" del chat, las imágenes muestran una miniatura real en vez de un icono genérico.

    Nuevo

    • 📊 Tablas: la caja se ajusta al contenido (adiós al hueco blanco a la derecha)
    • 🖼️ "Archivos recientes": miniaturas reales para las imágenes

    Tablas

    • La tabla deja de estirarse a todo el ancho; el contenedor abraza el contenido (con scroll si es muy ancha).

    Archivos recientes

    • Las imágenes se firman en lote y se muestran como miniatura; los documentos mantienen su icono por tipo.
  15. v9.4.70

    🖼️ Arreglada la vista previa rota de imágenes en el chat

    Cuando enviabas una imagen, a veces la miniatura en el mensaje salía rota (icono de imagen rota + nombre de archivo). Ahora la miniatura se auto-repara: si la URL falla, recarga la imagen desde el servidor, así que siempre se ve.

    Nuevo

    • 🖼️ La imagen enviada ya no se ve rota: se recarga desde el servidor si la URL falla

    Vista previa de adjuntos

    • Las miniaturas de imagen del mensaje usan un componente con auto-reparación: ante un error de carga (URL firmada caída o blob revocado) recargan desde /api/files/<id>/download.
  16. v9.4.69

    🔎 Búsqueda híbrida (significado + palabras clave) en tus documentos

    Mejora de calidad al consultar tus archivos. Hasta ahora la IA buscaba en tus documentos solo por "significado" (vectores), que a veces falla con números, importes, nombres propios o términos exactos como "total" o "IVA". Ahora combina ese significado con una búsqueda por palabras clave (igual que ya hacía con las unidades de red): así recupera el fragmento correcto aunque el término exacto no "puntúe" bien por significado. Aplica a adjuntos del chat, archivos de carpeta y bases de conocimiento.

    Nuevo

    • 🔎 Recuperación híbrida vector + palabras clave en archivos de usuario
    • 📚 Aplica a adjuntos, carpetas y colecciones de conocimiento

    Mejorado

    • 🔢 Mejor con números, importes, nombres propios y términos exactos ("total", "IVA"...)

    Recuperación de documentos (RAG)

    • Migración 101: nuevas funciones match_user_file_chunks_hybrid y match_file_chunks_by_ids_hybrid (vector 0.8 + keyword 0.2 con ts_rank).
    • Incluye fragmentos que coinciden por palabra clave aunque su similitud semántica no llegue al umbral.
    • Si una búsqueda falla, sigue cayendo a fragmentos directos / extracción inline (sin romper la respuesta).
  17. v9.4.68

    ⚡ Arreglada la lentitud al adjuntar imágenes en el chat

    Regresión corregida: al adjuntar una imagen en el chat, la miniatura se quedaba girando mucho tiempo. La causa: tras subir, se esperaba a "indexar" el archivo, y para las imágenes eso lanzaba un OCR que tardaba varios segundos. Ahora la miniatura aparece en cuanto se sube, la indexación va en segundo plano, y las imágenes ya no pasan por OCR al adjuntarlas (se adjuntan para que el modelo las vea, no para buscarlas).

    Nuevo

    • 🚫 Las imágenes del chat ya no lanzan OCR al adjuntarse (eran para visión, no para RAG)
    • 🗂️ Los documentos siguen indexándose, pero en segundo plano (sin bloquear)

    Mejorado

    • La imagen adjunta aparece al instante (ya no espera a la indexación)

    Subida de adjuntos

    • El adjunto se marca como listo en cuanto termina la subida; la indexación RAG ya no bloquea la miniatura.
    • Se omite la indexación/OCR de imágenes adjuntadas en el chat (innecesaria para visión).
    • Aplicado tanto en el chat normal como en la pantalla de bienvenida.
  18. v9.4.67

    📊 Tablas mucho mejores + 🐛 el modelo ya no cambia al editar un mensaje con archivo

    Dos arreglos visibles. (1) Las tablas que genera la IA ahora se ven como una hoja de cálculo de verdad: cabecera marcada, separadores de columna, números alineados a la derecha automáticamente y la fila de "Total" resaltada. (2) Bug corregido: al editar un mensaje que llevaba un PDF/documento y reenviarlo, el modelo cambiaba (p. ej. de GarBotGPT-5.5 a uno inferior) y a veces dejaba de leer el archivo; ahora se reenvía siempre el adjunto del propio mensaje, así que mantiene el modelo y sigue analizando el documento.

    Nuevo

    • 📊 Tablas estilo hoja de cálculo: números a la derecha, fila Total resaltada, separadores

    Arreglado

    • 🐛 Editar un mensaje con PDF ya no cambia el modelo ni pierde el archivo

    Tablas en las respuestas

    • Cabecera más marcada, separadores de columna y zebra; bordes y radios más limpios.
    • Detección automática de celdas numéricas/monetarias → alineadas a la derecha con cifras tabulares.
    • La fila de "Total"/"Subtotal" se resalta (negrita + borde superior).

    Editar/regenerar con adjunto

    • Al editar y reenviar un mensaje con PDF/documento se reenvía SIEMPRE su adjunto (antes solo si había una herramienta activa).
    • Esto evita que el enrutado automático bajara de modelo al no "ver" el adjunto, y que el documento dejara de analizarse.
  19. v9.4.66

    🔁 "Reindexar pendientes" en Mis archivos + chequeo de salud de la BD

    Mejoras de mantenimiento de archivos. En "Mis archivos" aparece un botón "Reindexar pendientes" que indexa de golpe todos los archivos que están "Sin indexar" o "Fallidos" (con progreso en vivo), ideal para poner al día tus documentos antiguos para que la IA pueda leerlos. Además se ha añadido una herramienta interna de chequeo de la base de datos que verifica que existen todas las funciones, tablas y columnas críticas y avisa si falta algo, para evitar fallos como el que tuvimos.

    Nuevo

    • 🔁 Botón "Reindexar pendientes (N)" en Mis archivos: indexa en lote los "Sin indexar"/"Fallidos"
    • 📊 Progreso en vivo "Indexando X/N" y concurrencia controlada
    • 🩺 Chequeo de salud de la BD para detectar drift (funciones/tablas/columnas que falten)

    Mis archivos

    • Nuevo botón que reindexa todos los archivos pendientes (sin indexar o fallidos) con concurrencia limitada (3) y contador de progreso.

    Fiabilidad de la base de datos

    • Nuevo chequeo interno (skill db-check) que verifica que la BD de producción tiene todas las RPC/tablas/columnas que la app necesita y avisa de lo que falte.
    • Verificado hoy: 0 objetos faltantes (la BD quedó en sintonía con las migraciones tras los arreglos recientes).
  20. v9.4.65

    🐛 LA causa final: faltaban las funciones de búsqueda en la base de datos

    Resuelto del todo el problema de leer documentos. Los logs revelaron el error real: las funciones de búsqueda RAG (match_user_file_chunks y compañía) NO existían en la base de datos de producción (error PGRST202), así que cualquier intento de recuperar el contenido fallaba. Se han (re)creado las 4 funciones. Además, ahora un fallo de esas funciones ya NO interrumpe la lectura: la IA recurre a la extracción directa del documento (Tika), que sí funciona.

    Nuevo

    • 🛠️ (Re)creadas las funciones de búsqueda RAG que faltaban en la BD (match_user_file_chunks, etc.)
    • Verificado: Tika extrae bien (p. ej. 8108 caracteres); ya hay con qué responder

    Arreglado

    • 🧯 Un fallo de búsqueda ya no aborta la lectura: la IA usa la extracción directa del documento

    Arreglo crítico de RAG

    • Migración 100: recrea match_file_chunks, match_user_file_chunks, match_file_chunks_by_ids y match_network_chunks_by_file_ids (faltaban en producción → PGRST202).
    • El chat ya no lanza excepción si una RPC de búsqueda falla; continúa a chunks crudos y a extracción inline (Tika), que es lo que de verdad lee el PDF en la primera consulta.
    • Recarga del schema cache de PostgREST tras crear las funciones.
  21. v9.4.64

    🧹 Modal "Archivos recientes" más compacto + auditoría del análisis de documentos

    El modal de "Archivos recientes" salía demasiado grande y descolocado; ahora es compacto, centrado y por encima del menú. Además se ha auditado a fondo el sistema de análisis de documentos: el motor de extracción (Tika 3.2.3 + pdf2json de respaldo), embeddings text-embedding-3-large, OCR (spa+eng+cat) y el panel admin de configuración están operativos. Se ha versionado en migraciones la tabla de configuración (doc_analysis_config) que existía solo en producción.

    Nuevo

    • 🧹 Modal "Archivos recientes" compacto y bien posicionado (antes muy grande)
    • 🔎 Auditoría: extracción (Tika + pdf2json), embeddings y OCR verificados y operativos
    • 🗃️ Versionada la tabla doc_analysis_config (faltaba en migraciones)

    Archivos recientes (UI)

    • Modal más estrecho (max-w-md), más bajo y con filas compactas; z-index por encima del menú de herramientas.

    Análisis de documentos (auditoría)

    • Migración 099: versiona doc_analysis_config (motor de extracción, Tika, embeddings, OCR, chunking, análisis LLM) que solo existía creada a mano en producción.
    • Verificado en producción: Tika 3.2.3 responde OK; config aplicada (motor hybrid, embeddings text-embedding-3-large@1536, OCR spa+eng+cat, LLM gpt-4o).
  22. v9.4.63

    🐛 LA causa real: los archivos subidos no se indexaban (la IA no podía leerlos)

    Por fin la raíz del problema con los PDF: las subidas se guardaban SIN analizar (sin indexar para RAG), así que la IA no tenía el contenido de los documentos —solo la lista de nombres—. En "Mis archivos" cada subida forzaba "no analizar", y por defecto la indexación automática estaba apagada. Ahora los archivos se analizan/indexan al subir por defecto (con un interruptor "Analizar al subir" por si quieres solo guardar), y se ha añadido un botón para indexar/reindexar manualmente cualquier archivo, incluidos los que están "Sin indexar".

    Nuevo

    • Los archivos se indexan al subir por defecto → la IA ya puede leer su contenido
    • 🔁 Nuevo botón para indexar/reindexar cualquier archivo (también los "Sin indexar")
    • 🎛️ Interruptor "Analizar al subir" por si solo quieres almacenar sin análisis

    Arreglado

    • 🧹 Arreglado: "Mis archivos" subía SIEMPRE sin analizar (de ahí los "Sin indexar")

    Indexación de archivos

    • Auto-indexado al subir ON por defecto (antes requería una variable de entorno que no estaba puesta → nada se indexaba).
    • La indexación la dirige el cliente con una petición dedicada a /api/files/ingest (fiable en Vercel; el auto-ingest del servidor era "fire-and-forget" y podía morir).
    • "Mis archivos": la subida deja de forzar "sin análisis"; nuevo interruptor "Analizar al subir" (por defecto activado).
    • Botón de indexar/reindexar disponible en archivos "Sin indexar", "Fallidos" e "Indexados" (antes solo en fallidos).
  23. v9.4.62

    🐛 Arreglado a fondo el análisis de documentos (carpetas, conocimiento y proyectos)

    Continuación del arreglo anterior. El mismo fallo (la lectura del contenido de los documentos dependía de un paso de búsqueda que a veces fallaba) afectaba también a las carpetas con archivos, a las bases de conocimiento y a los proyectos: la IA veía la lista de archivos pero no su contenido, así que decía cosas como "no tengo los importes, solo veo los metadatos". Ahora, cuando ese paso falla, la IA lee igualmente el contenido real de cada documento (los primeros fragmentos de cada archivo), así que puede analizar nóminas, presupuestos, etc. aunque la búsqueda semántica no esté disponible.

    Nuevo

    • 📂 La IA ya lee el contenido de los archivos de una carpeta (no solo la lista de nombres)
    • 📚 Igual para bases de conocimiento (p. ej. la colección de nóminas) y proyectos
    • 🧮 Puede calcular totales / analizar varios documentos aunque la búsqueda semántica falle

    Análisis de documentos (robustez)

    • El contenido de carpeta, conocimiento y proyecto ya no se omite si falla/!no se genera el embedding.
    • Nuevo fallback común: cuando no hay coincidencias semánticas, se inyectan los primeros fragmentos de CADA archivo (clave para colecciones grandes como 16 nóminas).
    • La búsqueda semántica se sigue priorizando cuando está disponible; el fallback solo entra si no devuelve nada.
    • Cubre los 4 caminos: adjuntos del mensaje, archivos de carpeta, colecciones de conocimiento y archivos de proyecto.
  24. v9.4.61

    🐛 Arreglado: la IA pedía el PDF aunque ya estaba adjunto + 📎 Archivos recientes

    Bug importante corregido: al adjuntar un PDF (u otro documento) y pedir analizarlo, a veces la IA respondía "envíame el archivo" aunque ya estaba en el chat. La causa: la lectura del contenido del documento estaba ligada por error a la generación del vector de búsqueda (embedding); si ese paso fallaba, el modelo no recibía nada del adjunto. Ahora la extracción del texto del documento funciona siempre, con o sin embedding. Además, nueva opción "Archivos recientes" en el menú de herramientas para adjuntar un archivo que ya subiste, sin volver a subirlo (estilo ChatGPT).

    Nuevo

    • 📎 Nuevo "Archivos recientes" en herramientas: adjunta un archivo ya subido sin re-subirlo

    Arreglado

    • 🐛 La IA ya no pide el archivo cuando el PDF/documento ya está adjunto
    • 📄 La extracción del contenido del documento ya no depende del embedding (más robusta)

    Arreglo de adjuntos

    • La inyección del contenido de los adjuntos al modelo ya no se salta si falla/no se genera el embedding.
    • La búsqueda semántica (con embedding) sigue priorizándose cuando está disponible; sin ella, se cae a chunks directos y a extracción inline del documento.
    • Si aún no hay texto extraíble, el modelo recibe el aviso de "archivo en proceso" en vez de pedir que lo reenvíes.

    Archivos recientes

    • Nueva entrada "Archivos recientes" en el menú de herramientas del chat.
    • Lista tus archivos ya subidos y, al elegir uno, lo adjunta al mensaje reutilizando el archivo (sin volver a subirlo).
    • Evita duplicados y respeta el modelo con visión para imágenes.
  25. v9.4.60

    ✨ Carga de chats rediseñada (logo animado + skeleton)

    Las pantallas de carga del chat ahora son mucho más cuidadas. Al abrir, restaurar o preparar un chat aparece un loader con el logo, un anillo girando y un halo suave (con soporte claro/oscuro); y mientras se descargan los mensajes se muestra un "esqueleto" de burbujas con efecto shimmer en vez del spinner pequeño. Además se ha eliminado la antigua pantalla de bienvenida (splash) que ya no se usaba.

    Nuevo

    • Loader de marca al abrir/restaurar un chat (logo + anillo + halo, claro/oscuro)
    • 💀 Skeleton de mensajes con shimmer mientras cargan (antes un spinner pequeño)
    • 🧹 Eliminada la pantalla splash muerta (y su número de versión desactualizado)

    Carga de chats

    • Nuevo componente ChatLoading: pantalla de carga con logo animado, anillo y halo; respeta "reduce motion".
    • Esqueleto de burbujas (usuario/asistente) con efecto shimmer mientras se descargan los mensajes.
    • Unificado en los estados "Cargando chat", "Restaurando chat" y "Preparando nuevo chat".
    • Eliminado el componente SplashScreen huérfano (no se montaba y mostraba una versión antigua).
  26. v9.4.59

    ⌘K Paleta de comandos, slash de herramientas, prompts guardados y arrastrar chats a carpetas

    Tanda grande de productividad en escritorio. (1) ⌘K (o Ctrl+K) abre una paleta de comandos: busca en chats y lanza acciones (nuevo chat, ajustes), cambia de modelo, activa herramientas o salta a una carpeta. (2) Escribiendo "/" en el chat puedes activar herramientas: /imagen, /buscar, /tabla, /documento, /investigar. (3) Nuevos "Prompts guardados" (Ajustes → Prompts): plantillas reutilizables que aparecen como tus propios slash. (4) En el panel lateral puedes arrastrar un chat a una carpeta y seleccionar varios chats para archivar/borrar/mover de golpe.

    Nuevo

    • 🔖 Prompts guardados: plantillas reutilizables usables como /tu-atajo
    • 🗂️ Arrastra un chat a una carpeta; multiselección con archivar/borrar/mover en bloque

    Mejorado

    • ⌘K abre una paleta de comandos (acciones, modelos, herramientas, carpetas y búsqueda)
    • Slash que activan herramientas: /imagen, /buscar, /tabla, /documento, /investigar

    Paleta de comandos (⌘K)

    • Sustituye al buscador anterior: incluye la búsqueda en chats y añade acciones rápidas.
    • Acciones: nuevo chat, abrir ajustes; cambiar a cualquier modelo; activar herramientas (web, imagen, investigación, documento, hoja de cálculo); ir a una carpeta.
    • Filtro al escribir y navegación por teclado (↑↓, ⏎, Esc). Funciona con Ctrl+K y ⌘K (Mac).

    Slash commands de herramientas

    • /imagen, /buscar, /tabla, /documento, /investigar activan la herramienta correspondiente.
    • Si el modelo actual no admite esa herramienta, avisa en vez de activarla.
    • Conviven con los slash de plantilla existentes (/summarize, /translate, /code, etc.).

    Prompts guardados

    • Nueva pestaña Ajustes → Prompts para crear plantillas (nombre, atajo y texto).
    • Se usan en el chat escribiendo "/" + su atajo; el texto se inserta para editarlo antes de enviar.
    • Se guardan en tu cuenta (disponibles entre dispositivos).

    Organización de chats (escritorio)

    • Arrastra un chat del panel lateral y suéltalo sobre una carpeta para moverlo.
    • Multiselección: "Seleccionar" en el menú del chat activa casillas; barra superior para archivar, eliminar o mover a carpeta en bloque.
    • No afecta a la lista normal: la ordenación y apertura de chats siguen igual.
  27. v9.4.58

    📌 Reordenar tus chats anclados arrastrando (móvil)

    En el móvil, al filtrar por "Anclados" ahora puedes arrastrar (con el asa ≡) para poner tus chats favoritos en el orden que quieras; el orden se guarda. La lista normal de chats no cambia: se sigue ordenando por actividad reciente, el orden manual solo afecta a los anclados.

    Nuevo

    • 📌 Arrastra ≡ para reordenar los chats anclados (vista "Anclados" en móvil)
    • 💾 El orden manual se guarda y se mantiene entre dispositivos
    • La lista normal de chats no se toca (sigue por actividad reciente)

    Reordenar anclados

    • Nueva columna pin_order en la base de datos para guardar el orden de los anclados.
    • En el filtro "Anclados" del móvil, lista plana con asa de arrastre (pointer/táctil) para reordenar.
    • El nuevo orden se aplica solo entre chats anclados; los no anclados siguen por updated_at.
  28. v9.4.57

    🖼️ Visor de imágenes con zoom táctil y "Guardar en Fotos" + 🎙️ notas de voz

    Dos mejoras pensadas para el móvil. (1) Al abrir una imagen (generada o adjunta) ahora puedes hacer zoom con dos dedos (pinch) y moverla con el dedo, y hay un botón "Guardar/Compartir" que en el móvil abre la opción nativa de guardar la imagen en Fotos. (2) Nueva "Nota de voz" en el menú de herramientas: graba un audio, lo adjunta a tu mensaje y además lo transcribe a texto editable para que lo revises antes de enviar.

    Nuevo

    • 🖼️ Zoom con dos dedos (pinch) y arrastre en el visor de imágenes
    • 💾 Botón "Guardar/Compartir": en móvil guarda la imagen en Fotos (Web Share)
    • 🎙️ Nota de voz: graba audio, lo adjunta y transcribe el texto al input
    • ⏱️ Barra de grabación con cronómetro, parar y cancelar (tope 2 min)

    Visor de imágenes

    • Pinch-zoom táctil (dos dedos) y arrastre con un dedo cuando hay zoom, además del zoom con rueda/botones en escritorio.
    • Botón Guardar/Compartir: usa Web Share con el archivo (en móvil ofrece "Guardar imagen"/"Guardar en Fotos") y degrada a descarga si no está disponible.
    • Aplica tanto a imágenes generadas por IA como a imágenes adjuntas.

    Notas de voz

    • Nueva opción "Nota de voz" en el menú de herramientas del chat.
    • Graba con el micrófono (barra con cronómetro, parar y cancelar; tope de 2 minutos).
    • Al parar, adjunta el audio al mensaje y transcribe el texto al campo de escritura para editarlo antes de enviar.
    • Es distinta del dictado por voz: la nota CONSERVA el audio además del texto.
  29. v9.4.56

    📸 Cámara en móvil + memoria global editable en Ajustes

    Dos novedades. (1) Nuevo botón "Hacer foto" en el menú de herramientas del chat: en el móvil abre directamente la cámara del dispositivo y adjunta la foto a tu mensaje (con compresión y subida directa, igual que cualquier imagen). (2) La pestaña "Memoria" de Ajustes pasa a ser un perfil global: ahora ves y editas TODAS las cosas que GIA sabe de ti entre conversaciones (antes solo las globales), con filtro Todas/Globales/De conversaciones, etiqueta de tipo, de dónde se capturó cada recuerdo y edición del texto.

    Nuevo

    • 📸 Botón "Hacer foto": abre la cámara del móvil y adjunta la imagen al chat
    • 🧠 Pestaña Memoria global: ver y editar todo lo que GIA recuerda de ti, no solo lo global
    • 🔎 Filtro Todas / Globales / De conversaciones + etiqueta de tipo y origen del recuerdo
    • ✏️ Edición inline del texto de cada recuerdo (además de activar/desactivar y borrar)

    Cámara (móvil)

    • Nuevo "Hacer foto" en el menú de herramientas (móvil y escritorio).
    • En móvil abre la cámara trasera; en escritorio degrada a selector de archivo.
    • La foto se adjunta reutilizando el flujo existente (compresión + subida firmada directa a Storage).
    • Si el modelo no admite imágenes, avisa igual que al adjuntar una imagen normal.

    Memoria global (Ajustes)

    • La pestaña Memoria lista ahora TODAS tus memorias (todos los ámbitos), no solo las globales.
    • Filtro Todas / Globales / De conversaciones y etiqueta de ámbito (Global, Conversación, Proyecto).
    • Muestra "Capturado en: <nombre del chat>" cuando se conoce el origen.
    • Edición del texto del recuerdo en línea (botón lápiz), además de activar/desactivar y eliminar.
    • Botón de recargar la lista.
  30. v9.4.55

    ⚡ Agentes más potentes: pasos en paralelo, varios agentes a la vez, email del resultado y elegir modelo

    Mejora grande de los agentes. Ahora los pasos de búsqueda/lectura se ejecutan en paralelo (más rápido), las ejecuciones programadas también crean un chat con el resultado (antes solo quedaba en el Historial), puedes pedir que te llegue el resultado por email, elegir el modelo del agente (gpt-4o-mini o gpt-4o) y los agentes pueden dar más pasos (hasta 12). En las ejecuciones programadas, varios agentes corren a la vez.

    Nuevo

    • 🗓️ Las ejecuciones programadas también crean y guardan un chat con el resultado
    • ✉️ Opción de recibir el resultado del agente por email
    • 🤹 En la programación, varios agentes se ejecutan a la vez

    Mejorado

    • Los pasos de un agente (buscar/leer URLs) se ejecutan en paralelo: más rápido
    • 🧠 Elegir el modelo del agente (gpt-4o-mini rápido / gpt-4o más capaz) y más pasos (12)

    Velocidad (pasos en paralelo)

    • Los pasos de herramienta (búsqueda web, leer URLs, consulta a BD) ya no se hacen uno detrás de otro: se lanzan en paralelo y luego se resume todo junto.
    • El planificador puede usar hasta 12 pasos (antes 10) para tareas más complejas.

    Ejecuciones programadas

    • Cada ejecución programada crea un chat nuevo con el resultado (igual que al pulsar "Ejecutar"), no solo una entrada en el Historial.
    • En cada pasada del programador, los agentes pendientes se ejecutan en paralelo en vez de en fila.

    Email del resultado

    • Nueva opción al crear/editar un agente: "Enviarme el resultado por email".
    • El email se manda solo a tu propia cuenta (la conectada en Integraciones), nunca a terceros.

    Modelo configurable

    • Puedes elegir el modelo del agente: gpt-4o-mini (rápido y barato) o gpt-4o (más capaz).
    • Afecta tanto a la planificación como al resumen final del agente.

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