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

    🧹 Menos usuarios invitados "fantasma"

    Cada visita sin sesión creaba un usuario invitado que en su mayoría nunca llegaba a escribir, acumulando cuentas vacías. Ahora se evita crear duplicados cuando la sesión aún no se ha propagado y un proceso periódico elimina automáticamente los invitados sin ninguna conversación.

    Nuevo

    • 🧹 Limpieza automática (cada hora) de invitados sin conversaciones ni mensajes
    • 🚫 Se evita crear un segundo invitado mientras la sesión todavía no propaga

    Infraestructura

    • Función cleanup_anonymous_guests + endpoint /api/maintenance/guest-cleanup (cron NAS o admin).
    • GuestBootstrap: bloqueo anti-duplicados de 30s al iniciar sesión anónima.
  2. v9.4.91

    🗑️ Admin: borrado masivo de usuarios + saldo de créditos en la fila

    En la gestión de usuarios del panel de administración ahora puedes seleccionar varios usuarios (o todos) y eliminarlos de una vez, con confirmación. Además, cada fila muestra directamente el saldo de créditos del usuario sin tener que abrir su modal.

    Nuevo

    • ☑️ Selección múltiple de usuarios y borrado masivo con confirmación

    Mejorado

    • Saldo de créditos visible en cada fila de la lista de usuarios

    Panel de administración

    • Casillas de selección por usuario y "seleccionar todos" en la cabecera.
    • Barra de acción para eliminar los usuarios seleccionados de golpe.
    • Nueva columna "Créditos" con el saldo actual de cada usuario.
  3. v9.4.90

    🛠️ Admin: gestionar créditos y suscripción por usuario

    En el panel de administración, cada usuario tiene un nuevo botón "Créditos y suscripción": ver su saldo, añadir/quitar/fijar créditos y cambiar su plan, estado de suscripción y créditos mensuales. Todo queda registrado en el historial de créditos.

    Nuevo

    • 💳 Ver y ajustar créditos de cualquier usuario (añadir / quitar / fijar)
    • 🔁 Cambiar plan, estado de suscripción y créditos/mes desde el admin

    Panel de administración

    • Nuevo modal "Créditos y suscripción" por usuario en la gestión de usuarios.
    • Endpoint admin /api/admin/users/[id]/billing (protegido); cambios auditados en credit_ledger.
  4. v9.4.89

    💎 El chat muestra el coste en créditos de cada respuesta

    Cada respuesta de la IA muestra ahora cuántos créditos ha consumido (un pequeño distintivo bajo el mensaje). Además se ajustó el consumo: cada mensaje cuesta más que antes y usar herramientas (búsqueda web, imágenes, deep research, documentos, código…) añade un recargo según la herramienta.

    Nuevo

    • ⚙️ Consumo por mensaje más realista + recargo por herramienta activa

    Mejorado

    • 💎 Distintivo "N créditos" bajo cada respuesta de la IA
  5. v9.4.88

    💳 Página de "Mi suscripción" + acceso desde el menú

    Nueva página dedicada (/suscripcion) para gestionar tu plan: saldo de créditos, consumo del mes, estado, renovación y botones para comprar más o gestionar/cancelar la suscripción. Accesible desde el menú de usuario (escritorio) y el menú de acciones (móvil).

    Nuevo

    • 💳 Nueva página /suscripcion para gestionar plan, créditos y facturación
    • 🔗 Acceso directo "Suscripción" en el menú de usuario (escritorio) y de acciones (móvil)
  6. v9.4.87

    💳 Suscripción por uso (créditos) + pestaña "Suscripción" en Ajustes

    Nuevo sistema de planes y créditos. Hay una página de planes (/pricing) con suscripciones Pro/Max y recargas de créditos (pago con Stripe), y una nueva pestaña "Suscripción" en Ajustes donde ves tu saldo de créditos, lo consumido este mes, tu plan y la fecha de renovación, con accesos para comprar más o gestionar la suscripción.

    Nuevo

    • 💳 Página /pricing con planes Pro/Max y packs de créditos (Stripe)
    • 🧾 Nueva pestaña "Suscripción" en Ajustes: saldo, consumo del mes, plan y renovación
    • 🔄 Gestionar/cancelar suscripción desde el portal de Stripe

    Suscripción y créditos

    • Créditos que se consumen según el modelo usado; suscripción mensual con créditos incluidos + recargas opcionales.
    • Pestaña "Suscripción" en Ajustes con saldo, consumo del periodo, estado y fecha de renovación.
    • El cobro real se activa con un interruptor del servidor; mientras tanto el chat funciona igual.
  7. v9.4.86

    🫧 Input móvil: mucho más transparente

    Seguía viéndose poco transparente porque se apilaban varias capas de brillo blanco (velo + sheen). Ahora el velo es mínimo (~0.08), menos desenfoque (13px) y las capas de brillo muy reducidas: el input se ve mucho más transparente, como cristal de verdad.

    Nuevo

    • 🫧 Velo mínimo (~0.08) y capas de brillo blanco muy reducidas → mucho más transparente
    • 🔍 Blur 13px: se ve a través del cristal
  8. v9.4.85

    🫧 Input móvil: menos gris, más transparente

    El velo blanco hacía que el input se viera grisáceo. Lo bajé bastante (de ~0.34 a ~0.2) y subí el desenfoque a 24px: ahora es más transparente y se ve más cristal/menos gris, sin que vuelva el tinte azul de las burbujas de detrás.

    Nuevo

    • 🫧 Velo blanco ~0.2 (antes ~0.34) → menos gris, más transparente
    • 🌫️ Blur 24px mantiene el fondo difuminado y sin tinte
  9. 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
  10. 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.
  11. 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.
  12. 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.
  13. 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).
  14. 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.
  15. 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.
  16. 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.
  17. 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.
  18. 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.
  19. 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.
  20. 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.
  21. 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.
  22. 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.
  23. 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.
  24. 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).
  25. 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.
  26. 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.
  27. 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).
  28. 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.
  29. 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).
  30. 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).

1036 versiones publicadas · página 24 de 35. Míralo dentro de la app.