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

    🔧 Multi-cuenta estable + avatar limpio + visor más rico

    Causa raíz del "Auth session missing" identificada: GoTrue tenía el reuse interval de refresh token en 10 s, así que los tokens guardados se invalidaban casi de inmediato — lo subimos a 24 h. Limpiamos también las URLs de avatar antiguas que apuntaban al Supabase Cloud descatalogado, y el banner de ubicación pasa a toast flotante abajo. El visor de chats del admin ahora muestra una tarjeta del usuario con avatar, rol, créditos y plan.

    Nuevo

    • 🔧 GoTrue REFRESH_TOKEN_REUSE_INTERVAL: 10s → 86400s (24h) → multi-cuenta funciona
    • 🖼️ Avatares antiguos del cloud descatalogado limpiados (mostraban roto)
    • 📍 Banner de ubicación: toast flotante abajo (ya no tapa header)
    • 👤 Visor chats: tarjeta del usuario con avatar, rol, créditos y fecha alta
  2. v9.5.22

    ⚡ Mensajes admin en tiempo real + iconos en /pricing

    Cuando un admin envía un mensaje (banner/popup) a un usuario, ahora le aparece al INSTANTE sin necesidad de recargar la página. Además los packs 60k y 130k tienen iconos dedicados en la página de planes, destacados como "Mejor relación".

    Mejorado

    • Banners/popups en tiempo real (Supabase Realtime)
    • 🎨 Iconos animados de los packs 60k/130k en /pricing

    Infraestructura

    • Migración 117: política RLS SELECT sobre banners + publicación realtime.
    • BannerDisplay se suscribe a postgres_changes y refetcha al cambiar.
  3. v9.5.20

    🔁 Todos los ids con guion bajo (el de Play sí los admite)

    Play tiene dos campos: el "ID de producto" (el que llega al backend al comprar, admite _) y el "ID de opción de compra" (interno, requiere -). Solo este último necesita guiones, así que ponemos TODOS los ids de catálogo con guion bajo y dejamos en el "ID de opción" el de guion.

    Nuevo

    • 🔁 BD vuelve a usar credits_60k / credits_130k (con guion bajo)
  4. v9.5.19

    🔁 Solo los packs nuevos (60k/130k) usan id con guion

    Los packs antiguos (5k, 15k) y las suscripciones (Pro/Max) vuelven a sus ids originales con guion bajo (nunca van a Play, no había razón para cambiarlos). Solo los packs nuevos (60k, 130k) usan kebab-case porque son los que se crean en Google Play, que no admite guion bajo.

    Nuevo

    • 🔁 IDs en BD: credits_5k, credits_15k, pro_monthly, max_monthly (como antes)
    • Solo nuevos: credits-60k, credits-130k (con guion, válidos en Play)
  5. v9.5.18

    🩹 3 fixes: ids Play, avatar header y aviso saldo bajo

    Renombrados los ids de los packs y planes a kebab-case (con guiones) para que sean válidos en Google Play. La foto de perfil ahora se actualiza al instante en el header tras subirla en Ajustes. El aviso de saldo bajo se mueve a un toast flotante abajo a la derecha (antes tapaba el header).

    Nuevo

    • 💬 Aviso de saldo bajo: toast flotante abajo (ya no tapa el header)

    Mejorado

    • 🖼️ Avatar del header se refresca al instante tras cambiar la foto

    Arreglado

    • 🩹 IDs de packs/planes en kebab-case (credits-5k, pro-monthly…) válidos en Play

    Infraestructura

    • Migración 114: rename de ids con _ → - en billing_products y user_entitlements.plan.
    • Evento geia-profile-updated para sincronizar avatar/nombre entre Settings y Header/Sidebar.
  6. v9.5.17

    📍 Ubicación opcional + visor de chats con estadísticas

    Nuevo banner para compartir tu ubicación (consentido); a partir de ahí GarBotGPT puede darte el tiempo, la hora local o sugerencias cerca de ti. Además, el visor de chats del admin muestra ahora una barra de estadísticas (mensajes, tokens, créditos, modelos, tiempo total) y un buscador para filtrar conversaciones.

    Nuevo

    • 📍 Compartir ubicación → contexto local en las respuestas (tiempo, hora, etc.)
    • 📊 Estadísticas en el visor de chats (msgs, tokens, créditos, modelos)
    • 🔍 Buscador de conversaciones en el visor

    Infraestructura

    • Migración 113: profiles.location_json + endpoint /api/user/location (PUT/GET/DELETE).
    • Reverse-geocode con Nominatim (OSM). Ubicación inyectada en el system prompt del chat.
  7. v9.5.16

    ⚡ Borrado de usuarios mucho más rápido

    El borrado de usuarios desde admin (uno o varios) tardaba mucho. Optimizado: evitamos un round-trip redundante a la BD por usuario y el borrado masivo ahora corre en paralelo (5 a la vez en vez de uno a uno). Borrar 10 usuarios pasa de ~10× a ~2×.

    Nuevo

    • 🧹 Endpoint usa solo auth.admin.deleteUser (cascadea, menos consultas)

    Mejorado

    • Borrado masivo paralelizado (concurrencia 5)
  8. v9.5.15

    🔧 Multi-cuenta: fix v3 (singleton + recuperación)

    Cambiamos el cliente Supabase del navegador a singleton para que TODOS los eventos de rotación de token lleguen a un único listener — antes los tokens guardados quedaban obsoletos en silencio. Si el cambio aún así falla, ahora te llevamos directo al login con el email pre-rellenado para que vuelvas a entrar con 1 clic.

    Nuevo

    • 🔧 Cliente Supabase singleton (los tokens guardados se mantienen frescos)
    • ↪️ Si una cuenta caducó, te lleva al login con su email puesto
  9. v9.5.14

    💰 Ajuste de costes en créditos (modelos, herramientas y artifacts)

    Subimos los costes en créditos de las funciones más caras para reflejar mejor lo que cuestan en realidad. Las más afectadas: generar imágenes, vídeo, deep research y artifacts (webs/apps HTML). Los mensajes normales suben muy poco.

    Nuevo

    • 🎬 Vídeo: 180 → 1200 (Sora es caro)
    • 🔬 Deep research: 90 → 200
    • 📦 Artifact (HTML/app): 40 → 200

    Mejorado

    • 🎨 Imágenes: 60 → 180 créditos (cubre alta calidad)
  10. v9.5.13

    💎 Dos packs nuevos de créditos: 50€ y 100€

    Añadidos dos packs grandes con descuento progresivo: 60.000 créditos por 50€ y 130.000 créditos por 100€. Aparecen en la página de planes junto a los packs existentes.

    Mejorado

    • 💎 Pack 60.000 créditos · 50€ (≈44% más créditos/€ que el pack pequeño)
    • 💎 Pack 130.000 créditos · 100€ (≈56% más créditos/€)
  11. v9.5.12

    🖼️ Arreglada la subida de foto de perfil

    La foto de perfil no se aplicaba al subirla: el bucket "avatars" no tenía políticas RLS, así que la subida fallaba en silencio. Añadidas las políticas (cada usuario puede subir solo a su carpeta) y mejorado el mensaje de error si algo va mal.

    Nuevo

    • ⚠️ Mensaje claro si la subida falla (tipo no válido, tamaño, etc.)

    Mejorado

    • 🖼️ Foto de perfil ahora se guarda correctamente
  12. v9.5.11

    🔧 Multi-cuenta: fix definitivo (server-side switch)

    El cambio de cuenta ya no falla con "Auth session missing!": ahora el intercambio de tokens se hace en el servidor, que valida el refresh_token contra GoTrue y escribe las cookies de sesión correctamente. Si falla, la sesión actual queda intacta.

    Nuevo

    • 🛟 Si los tokens caducaron, la sesión actual NO se rompe

    Arreglado

    • 🔧 Cambio de cuenta robusto vía endpoint server-side
  13. v9.5.10

    📦 Artifacts compactos en el chat + ajuste de costes

    Cuando la IA genera HTML/código en un artifact, la burbuja del chat ya no muestra el código entero ocupando media pantalla: solo aparece la tarjeta compacta y al pulsarla se abre el panel lateral con el preview/código. Además se ha subido un poco el consumo de créditos para reflejar mejor el coste real de la IA, hay un recargo cuando se genera un artifact, y el bonus de bienvenida pasa de 1000 a 500.

    Nuevo

    • 📦 Burbuja compacta cuando hay artifact (sin código volcado)
    • 🎁 Bono de bienvenida: 500 créditos (antes 1000)

    Mejorado

    • 💎 Coste por mensaje un poco mayor (≈1,5–2×) y recargo por artifact
  14. v9.5.9

    🔧 Multi-cuenta: arreglado el error al cambiar entre cuentas

    Fix del bug "Auth session missing!" al cambiar de cuenta (que además dejaba sin sesión también a la cuenta activa). Ahora los tokens guardados se mantienen actualizados con cada refresh y, si el cambio falla, la sesión actual se restaura.

    Nuevo

    • 🔧 Cambio entre cuentas estable (sin "Auth session missing!")
    • 🛟 Si el cambio falla, la sesión actual se restaura automáticamente
  15. v9.5.8

    📱 Multi-cuenta también en el menú móvil

    La gestión de varias cuentas (añadir cuenta + cambiar entre ellas) que ya estaba en el menú de escritorio ahora está también en el menú de usuario de la barra lateral móvil.

    Nuevo

    • 📱 "Añadir cuenta" + cambio entre cuentas en el menú del sidebar móvil
  16. v9.5.7

    🪵 Admin: audit log con borrado + nueva tab "Log errores"

    Ahora puedes borrar entradas del audit log (una por una, las de más de 30 días o todas), y hay una nueva pestaña "Log errores" al lado donde aparecen los errores del programa (con su origen, mensaje, contexto y stack), también borrables.

    Nuevo

    • 🗑️ Borrado de entradas del audit log (uno / antiguos / todos)

    Arreglado

    • 🐛 Nueva pestaña "Log errores" con los errores del servidor y borrado

    Infraestructura

    • Tabla error_logs + helper logError() + endpoint /api/admin/error-logs.
    • Captura inicial en webhook Stripe y cron de auto-recarga.
  17. v9.5.6

    🛠️ Admin: visor de chats en página + créditos en tab Usuarios

    El visor de chats de un usuario ahora se abre en una pestaña nueva con un layout tipo chat real (sidebar de conversaciones a la izquierda, mensajes a la derecha en burbujas), en modo solo lectura. Además, el botón "Créditos y suscripción" está disponible también desde la tab Usuarios (antes solo en Roles y Permisos).

    Nuevo

    • 🪟 Visor de chats como página nueva con look de chat real (sin input)
    • 💳 Botón "Créditos y suscripción" añadido en la tab Usuarios
  18. v9.5.5

    👥 Multi-cuenta: cambia entre cuentas desde el menú

    Ahora puedes tener varias cuentas guardadas en el navegador y cambiar entre ellas desde el menú de usuario (arriba a la derecha): nuevo botón "Añadir cuenta" y, cuando hay más de una, una lista para elegir con un toque, sin cerrar sesión cada vez.

    Nuevo

    • 👥 "Añadir cuenta" en el menú de usuario
    • 🔄 Cambia entre cuentas con un clic
  19. v9.5.4

    ⚡ Pequeña mejora de latencia en el chat

    Eliminamos una consulta redundante a la base de datos antes de cada respuesta (reutilizamos el perfil que ya se había leído), reduciendo un poco el tiempo hasta que la IA empieza a responder.

    Mejorado

    • Una consulta menos a la base de datos por mensaje
  20. v9.5.3

    📧 Avisos por email: renovación, pago fallido y saldo bajo

    Ahora recibes un email cuando tu suscripción se renueva (con los créditos añadidos), cuando falla un pago (para que actualices la tarjeta y no pierdas el acceso) y cuando te queda poco saldo. Complementa los avisos dentro de la app.

    Nuevo

    • 📧 Email al renovar la suscripción (créditos añadidos)
    • ⚠️ Email si falla el pago, con enlace para actualizar la tarjeta

    Mejorado

    • 💎 Email de saldo bajo (una vez al mes)

    Facturación

    • Helper SMTP (nodemailer) + emails en el webhook de Stripe y en el cron de facturación.
  21. v9.5.2

    🔁 Auto-recarga opcional de créditos

    Nueva opción (opt-in) en "Mi suscripción": cuando tu saldo baja de 50 créditos, compramos automáticamente un pack de 5.000 con tu tarjeta guardada, para que nunca te quedes sin servicio. Lo activas y desactivas tú cuando quieras.

    Nuevo

    • 🔁 Auto-recarga (opt-in): compra 5.000 créditos al bajar de 50

    Seguridad

    • 🔒 Desactivable en cualquier momento; requiere tarjeta guardada

    Facturación

    • Ajuste en /api/billing/auto-topup + cobro off-session en /api/billing/auto-topup/run (cron cada 15 min).
  22. v9.5.1

    🎁 Referidos + bono de bienvenida de 1000 créditos

    Nuevo sistema de invitaciones: comparte tu enlace desde "Mi suscripción" y ganas 500 créditos por cada amigo que se registre (y ellos 200). Además, al crear una cuenta nueva recibes 1000 créditos de bienvenida, y a los invitados se les ofrece registrarse tras probar el chat.

    Nuevo

    • 🎁 Enlace de invitación: +500 para ti, +200 para tu amigo
    • 1000 créditos de bienvenida al crear cuenta
    • 👋 A los invitados se les ofrece registrarse tras 3 mensajes

    Crecimiento

    • Tabla referrals + código por usuario; concesión en /api/auth/post-signup (idempotente).
    • Enlace ?ref=CODE en el registro; tarjeta de invitación en /suscripcion.
  23. v9.5.0

    🧾 Facturas descargables + reembolsos desde admin

    Ahora puedes descargar tus facturas y recibos directamente desde "Mi suscripción" (PDF de Stripe). Y en el panel de administración, cada usuario tiene un botón para reembolsar su último pago en Stripe, con la opción de descontar los créditos otorgados.

    Nuevo

    • 🧾 Facturas/recibos descargables en /suscripcion
    • ↩️ Reembolso del último pago desde la ficha del usuario (admin)

    Facturación

    • Endpoint /api/billing/invoices (lista facturas del cliente en Stripe).
    • Reembolso admin vía /api/admin/users/[id]/billing (refund + ajuste de créditos).
  24. v9.4.99

    📈 Gráficas de AdSense táctiles + logo vectorial actualizado

    En la página de Google AdSense ahora puedes tocar (o clicar) cualquier barra de la gráfica para ver su dato exacto — antes solo aparecía al pasar el ratón por encima, así que en el móvil no se veía. Además se actualizó el logo en formato vectorial (SVG), que se había quedado con el diseño antiguo.

    Nuevo

    • 📈 Barras de la gráfica de AdSense clicables/táctiles con lectura del dato

    Mejorado

    • 🎨 logo.svg actualizado al logo nuevo
  25. v9.4.98

    🏷️ Facturación: importes netos con descuentos aplicados

    El panel de facturación ahora muestra el ingreso real con los códigos de descuento ya aplicados: el MRR se calcula con lo que de verdad se cobra en cada suscripción (no el precio de lista) y se añaden los ingresos netos del mes y totales. Se conserva el precio de lista a modo de comparación.

    Nuevo

    • 🏷️ MRR neto con descuentos (antes mostraba el precio de lista)
    • 💶 Ingresos netos del mes y totales realmente cobrados

    Panel de administración

    • admin_billing_overview() usa amount_paid de las facturas de Stripe (neto) y amount_total de los packs.
  26. v9.4.97

    🔍 Visor de chats admin: buscador, exportar y editados

    El visor de conversaciones del panel de administración ahora tiene un buscador para filtrar mensajes dentro de la conversación, botones para exportar el chat a Markdown o PDF, y un distintivo "editado" en los mensajes que se han modificado.

    Nuevo

    • 🔍 Buscador dentro de la conversación
    • ⬇️ Exportar a Markdown (.md) o PDF
    • ✏️ Distintivo "editado" en mensajes modificados
  27. v9.4.96

    📊 Panel de facturación en administración

    Nueva sección "Facturación" en el panel de administración: ingreso recurrente estimado, créditos en circulación, suscripciones activas, pagos con problemas (past_due), suscripciones que vencen en 7 días, eventos de webhook recientes y consumo de créditos por día, usuario, modelo y herramienta.

    Nuevo

    • 📊 Nueva pestaña "Facturación" con MRR, créditos y estados de suscripción
    • ⚠️ Pagos con problema y suscripciones por vencer a la vista
    • 📈 Consumo por día / usuario / modelo / herramienta

    Panel de administración

    • Función admin_billing_overview() + endpoint /api/admin/billing/overview.
  28. v9.4.95

    💎 Aviso de saldo bajo y mensaje claro al quedarte sin créditos

    Cuando te quedan pocos créditos (menos de 50) aparece un aviso discreto con acceso directo a recargar o subir de plan. Y si te quedas sin créditos, en vez de un error seco verás una ventana clara que te explica las opciones; tu conversación se conserva.

    Nuevo

    • 🔔 Aviso de saldo bajo (menos de 50 créditos) con botón para conseguir más

    Arreglado

    • 💎 Ventana "sin créditos" con recarga / subir de plan en lugar de un error
  29. v9.4.94

    📣 Enviar un mensaje (banner/popup) a un usuario concreto

    Desde el panel de administración, en la lista de usuarios, ahora hay un botón para enviar un mensaje a un usuario concreto: se le muestra como popup o banner (a tu elección) la próxima vez que entre. Puedes elegir el tipo, si lo puede cerrar y añadir un botón con enlace.

    Nuevo

    • 📣 Botón "Enviar mensaje" por usuario en la gestión de usuarios
    • 🎯 El mensaje (popup o banner) solo lo ve ese usuario

    Panel de administración

    • banners.target_user_id: un banner puede dirigirse a un usuario (NULL = global).
    • Modal de composición: título, mensaje, formato (popup/banner/ambos), tipo, botón opcional y si es cerrable.
  30. v9.4.93

    🔎 Visor de chats del admin mucho más completo

    El visor de conversaciones de un usuario (panel de administración) ahora muestra mucho más: miniaturas de las imágenes adjuntas, los archivos adjuntos con nombre y tamaño, qué herramientas usó la IA en cada respuesta, las fuentes consultadas (RAG/web) y un pie con modelo, créditos consumidos, tokens y tiempo de respuesta.

    Nuevo

    • 🧰 Etiquetas de herramientas usadas en cada respuesta
    • 🖼️ Miniaturas de imágenes y adjuntos con nombre/tamaño
    • 🔗 Fuentes consultadas + pie con modelo, créditos, tokens y tiempo

    Panel de administración

    • El endpoint de mensajes devuelve meta resumido, fuentes recortadas y miniaturas firmadas.

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