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

    🎨 Landing completa rediseñada (todas las subpáginas) con efectos avanzados

    Toda la landing (/landing y las 5 subpáginas: funciones, precios, seguridad, sobre nosotros, contacto) rediseñada en estilo dark premium con un toolkit de efectos compartido: fondo aurora animado, glassmorphism, spotlight que sigue el ratón, tilt 3D, contadores animados, marquee de proveedores, reveal-on-scroll y botones con glow/shimmer. Nav y footer adaptados al tema oscuro en todas las páginas. Datos 100% reales de la plataforma.

    Nuevo

    • 🖱 Cards con spotlight que sigue el ratón + tilt 3D al hover
    • 🔢 Contadores animados (20+ modelos, 23 tools, 8 OAuth)
    • 🌓 Nav y footer del landing en tema oscuro en todas las páginas
    • 🧩 Formulario de contacto con estados + datos reales en todas las secciones

    Mejorado

    • 🎨 Toolkit de efectos compartido (fx.tsx): aurora, spotlight, tilt 3D, contadores, marquee, reveal

    Seguridad

    • 🏠 Home, Funciones, Precios, Seguridad, Sobre nosotros y Contacto — todo nuevo dark premium
  2. v9.1.0

    ✨ Nueva landing dark premium + preview pptx en chat + modal compartir móvil

    Rediseño completo de la /landing: estilo dark premium con fondo mesh animado, glassmorphism, gradientes, marquee de proveedores y animaciones reveal-on-scroll. Datos reales (20+ modelos, 23 herramientas, 8 OAuth, self-hosting, RLS, datos en UE). Nav y footer adaptados al tema oscuro. Además: la vista previa de pptx/docx del chat ahora detecta el tipo igual que Mis Archivos (por formato y extensión), y el modal de compartir es full-screen en móvil.

    Nuevo

    • Landing nueva dark premium con efectos (mesh animado, glass, gradientes, reveal-on-scroll)
    • 🏷 Marquee de proveedores (OpenAI, Anthropic, Google, Meta, Mistral, DeepSeek)
    • 🌓 Nav y footer del landing adaptados al tema oscuro
    • 📄 Preview pptx/docx en chat alineado con Mis Archivos (detección por formato + extensión)
    • 📱 Modal de compartir full-screen en móvil

    Seguridad

    • 🧩 Secciones: hero, stats, 3 pilares, 23 herramientas, casos reales, seguridad, CTA
  3. v9.0.3

    📤 Subir archivos sin análisis + delete rápido + preview responsive + sin splash

    Varias mejoras. (1) Mis Archivos: nuevo botón "Subir archivos" que guarda archivos SIN pasar por el análisis RAG (solo almacenamiento) — no afecta al sistema de análisis existente. (2) Botón de eliminar de acceso rápido: la barra de selección ahora es sticky (siempre visible) + botón flotante de eliminar en móvil. (3) Vista previa de documentos optimizada para móvil (pantalla completa, sin padding). (4) Splash screen eliminado por completo.

    Nuevo

    • 📤 "Subir archivos" en Mis Archivos sin análisis (skip_ingest) — solo guarda
    • 🗑 Barra de selección sticky + botón flotante de eliminar en móvil
    • 📱 Vista previa de docs responsive (pantalla completa en móvil)
    • 🚀 Splash screen eliminado
  4. v9.0.2

    ⚡ Borrado instantáneo en Mis Archivos + modal compartir con rol Editor/Lector

    Tres mejoras. (1) Eliminar archivos en Mis Archivos tardaba ~20s con el modal bloqueado (el endpoint borraba chunks RAG + blob + contents en secuencia). Ahora el borrado es instantáneo: el archivo desaparece y el modal se cierra al momento, la limpieza pesada corre en background y en paralelo. (2) Modal de compartir chat reorganizado con un selector de acceso prominente Editor / Lector (con descripción) que aplica tanto a invitaciones como a los enlaces que generes. (3) Generar enlace con rol: ahora puedes compartir un enlace en vivo eligiendo si quien entra es Editor (puede escribir) o Lector (solo lee), además del enlace público de solo lectura.

    Nuevo

    • 🚀 DELETE /api/files/[id] paraleliza la limpieza (chunks + contents + blob) en vez de secuencial
    • 🎚 Modal compartir: toggle Editor/Lector prominente con descripción de cada rol
    • 🔗 Enlace en vivo con rol elegible (Editor o Lector) + enlace público de solo lectura

    Mejorado

    • Mis Archivos: borrado individual y masivo instantáneo (optimista) — antes ~20s bloqueado
  5. v9.0.1

    📄 Fix card de documentos persistida + vista previa de docx/pptx

    Dos fixes en la generación de documentos. (1) La DocumentGenerationCard (Generado + Descargar) solo se renderizaba dentro del bloque de mensaje "live"; al persistir el mensaje, la card buena desaparecía y volvía la card de adjunto vieja. Ahora la card se renderiza también en mensajes persistidos normales y se filtra el adjunto duplicado del documento generado. (2) El botón "Abrir" descargaba el archivo (los Office docs no se previsualizan inline en el navegador). Ahora abre una "Vista previa" en modal: docx/xlsx/pptx con el visor de Microsoft Office Online (URL firmada) y PDF en iframe, con botones Abrir/Descargar.

    Nuevo

    • 🧹 El documento generado ya no se duplica como adjunto suelto debajo
    • 👁 Botón "Vista previa" (antes "Abrir"): docx/xlsx/pptx con visor Office Online, PDF en iframe
    • El modal de preview tiene botones Abrir en pestaña y Descargar + cierre con Esc

    Arreglado

    • 🐛 DocumentGenerationCard ahora persiste en el chat (no revierte a la card de adjunto vieja)
  6. v9.0.0

    🎉 v9.0 — Selección masiva en Mis Archivos, modelos por provider, email de reset pro

    Versión mayor 9.0.0 con varias mejoras. (1) Mis Archivos: selección individual + seleccionar todo + eliminación masiva, y tabs que separan Todos / Imágenes / Documentos. (2) Modal de permisos (admin → Roles): el tab Modelos ahora agrupa los modelos por provider (OpenAI, Ollama, etc.) con cabecera por grupo y "Bloquear/Permitir todos" por provider. (3) Email de recuperación de contraseña: nueva plantilla HTML profesional (logo, botón degradado, enlace de respaldo, nota de seguridad) servida desde el storage del Supabase self-hosted. (4) Verificado que el contenedor auth está sano (el aviso de Synology era una referencia de ID cacheada tras recrearlo por CLI).

    Nuevo

    • ☑️ Mis Archivos: selección individual + seleccionar todo + eliminación masiva
    • 🗂 Mis Archivos: tabs Todos / Imágenes / Documentos
    • 🔧 Contenedor auth verificado sano (login + reset operativos)

    Seguridad

    • 🏷 Modal permisos: modelos agrupados por provider con bloqueo por grupo
    • ✉️ Email de reset de contraseña con plantilla HTML pro (logo, botón, fallback, seguridad)
  7. v8.101.0

    🛠 Fix card de documentos + cuota real en Mis Archivos + dominio ai.garbotgpt.com

    Tres fixes. (1) La generación de documentos/pptx mostraba el SSE crudo (data: {document_generation_event}) + todo el texto del documento en vez de una card. Causa: el handler principal de envío (ChatInput) no parseaba document_generation_event ni lo filtraba del texto (solo lo hacía el de regenerar). Ahora muestra la card desde el inicio (como imágenes) y oculta el texto del stream — el contenido va dentro del archivo descargable. (2) La página Mis Archivos mostraba 5GB hardcoded; ahora lee el límite real del usuario (storage_limit_mb) y muestra la cuota correcta o "Sin límite". (3) El dominio cambió a ai.garbotgpt.com: actualizado SITE_URL en el self-hosted para que los emails de reset de contraseña apunten al dominio correcto.

    Nuevo

    • 📄 El texto del documento ya no se muestra en el chat durante el stream (solo la card, como imágenes)
    • 💾 Mis Archivos usa el límite de almacenamiento real del usuario (no 5GB fijo)
    • 🌐 Reset de contraseña ahora apunta a https://ai.garbotgpt.com (SITE_URL actualizado en self-hosted)

    Arreglado

    • 🐛 Card de documentos: ChatInput ahora parsea document_generation_event (card visible) + filtra el SSE crudo
  8. v8.100.0

    🎨 Admin: modal Roles/Permisos con tabs + tab Herramientas ordenado por categorías

    Dos rediseños del panel admin. (1) El modal de permisos por usuario (Roles y Permisos) era un scroll largo y feo; ahora es más ancho con 3 tabs internos (Herramientas, Modelos, Límites), toggles más claros, búsqueda de modelos, presets de cuota/almacenamiento y "Bloquear/Permitir todo". Incluye también el límite de almacenamiento. (2) El tab Herramientas era un grid plano de 23 cards; ahora está agrupado por categorías (Búsqueda e información, Generación de contenido, Análisis, Integraciones) con barra de stats (total/disponibles/con bloqueos/usuarios), buscador y filtro por estado.

    Nuevo

    • 🔘 Toggles de tools con check/cross verde-rojo + "Bloquear/Permitir todo"
    • 🔍 Búsqueda de modelos dentro del modal + presets de cuota y almacenamiento
    • 🧰 Tab Herramientas agrupado por 4 categorías con contador por sección
    • 📊 Barra de stats en Herramientas + buscador + filtro (Todas/Disponibles/Con bloqueos)

    Seguridad

    • 🗂 Modal Permisos con 3 tabs (Herramientas · Modelos · Límites) + más ancho y estético
  9. v8.99.0

    📧 SMTP real configurado + tab Modelos compactado (admin)

    Dos cosas: (1) Configurado SMTP real en la Supabase self-hosted (servidor sv91.ifastnet.com, cuenta garbot@garbotgpt.com) — ahora recuperación de contraseña y emails funcionan (verificado HTTP 200). El hostname mail.garbotgpt.com no tenía DNS; se detectó el servidor real vía SPF. (2) El tab Modelos del admin estaba saturado: cada modelo mostraba 5 cajas de métricas + 7 botones. Ahora cada fila es compacta (nombre, slug, capacidades como puntos, coste, toggle visibilidad, Editar y menú "⋯") con métricas expandibles bajo demanda.

    Nuevo

    • 📧 SMTP real en self-hosted: recuperación de contraseña y emails operativos
    • 🔍 Detectado servidor de correo real (sv91.ifastnet.com) vía SPF — mail.garbotgpt.com no resolvía
    • 🗜 Tab Modelos: filas compactas en vez de 5 cajas + 7 botones por modelo
    • 🔘 Capacidades como puntos (S/V/T/J/D/W/R), métricas expandibles, acciones en menú overflow
    • 👁 Toggle de visibilidad inline + badge "Oculto" + Editar primario
  10. v8.98.0

    🔧 Fix registro de usuarios (auto-confirm en self-hosted) + entrada directa al chat

    El registro daba "Error al registrarte" tras migrar a la Supabase self-hosted. Causa real: GoTrue tenía ENABLE_EMAIL_AUTOCONFIRM=false + SMTP placeholder (fake_mail_user), así que al registrar intentaba enviar email de confirmación, fallaba y devolvía HTTP 500 ("Error sending confirmation email"). Activado auto-confirm en el servidor (supabase.garbotgpt.com). Ahora el registro funciona y, como el usuario queda confirmado al instante con sesión activa, la página de registro lo lleva directo al chat en vez de mostrar "revisa tu email".

    Nuevo

    • Activado GOTRUE_MAILER_AUTOCONFIRM=true en el self-hosted + recreado contenedor auth
    • 🚀 Registro exitoso lleva directo a /chat (el usuario ya tiene sesión)
    • Verificado: el trigger de profiles asigna role "user" automáticamente al registrarse

    Arreglado

    • 🐛 Causa: ENABLE_EMAIL_AUTOCONFIRM=false + SMTP falso → signup 500 al enviar email de confirmación
  11. v8.97.0

    🔢 Versión visible en el header del Panel Admin (todas las tabs)

    El header del panel admin ahora muestra un badge con la versión actual (vX.XX.X) visible en todas las tabs, tanto en desktop (derecha del header) como en móvil (junto al label "Admin").

    Nuevo

    • 🔢 Badge de versión en AdminHeader desktop (lado derecho)
    • 📱 Badge de versión en el header admin móvil
  12. v8.96.0

    🏷 Título de la pestaña en Welcome ahora solo "GarBotGPT"

    El título del navegador en la página de inicio (welcome) mostraba "GarBotGPT - Gestion Empresarial con IA". Ahora muestra solo "GarBotGPT", más limpio. Los títulos de chats/proyectos/carpetas siguen igual (con su sufijo).

    Nuevo

    • 🏷 baseTitle de la welcome page simplificado a "GarBotGPT"
  13. v8.95.0

    💾 Límite de almacenamiento por usuario + modal de usuario con tabs

    Dos mejoras en el panel admin → Usuarios. (1) Nuevo límite de almacenamiento por usuario: un admin puede establecer un tope en MB (con presets 500MB/1GB/5GB o "sin límite"). El upload de archivos verifica el uso actual vs el límite y rechaza la subida si lo excede. El modal muestra una barra con el uso actual del usuario. (2) El modal de edición de usuario rediseñado: más grande (max-w-2xl) y organizado en 3 tabs — Perfil, Cuenta y seguridad, Permisos y límites — en vez de un scroll largo. La self-hosted Supabase (supabase.garbotgpt.com) pasa a ser la DB activa.

    Nuevo

    • 💾 Nuevo campo storage_limit_mb por usuario (migración 089)
    • 🚫 Enforcement en /api/files/upload: rechaza subida con 413 si supera el límite
    • 📊 Barra de uso de almacenamiento en el modal (verde/ámbar/rojo según %)
    • 🔐 GET /api/admin/users ahora devuelve storage_used_bytes (SUM de archivos) por usuario
    • 🗄 DB activa migrada a self-hosted supabase.garbotgpt.com

    Mejorado

    • 🎚 Presets rápidos de límite: 500 MB · 1 GB · 5 GB · Sin límite

    Seguridad

    • 🗂 Modal de usuario rediseñado con 3 tabs (Perfil · Cuenta y seguridad · Permisos y límites) y más grande
  14. v8.94.0

    👁 Visor de documentos in-app en "Mis Archivos"

    Antes, al clicar un archivo se abría una pestaña nueva que normalmente lo descargaba (sobre todo Office docs). Ahora se abre un visor full-screen integrado que previsualiza el documento según su tipo: imágenes, PDFs e iframe, vídeo/audio con reproductor, Office (.docx/.xlsx/.pptx) con el visor de Microsoft Office Online (vía URL firmada temporal), y texto/código/markdown/csv renderizado. Si un tipo no se puede previsualizar, ofrece descarga. Botones de Abrir en pestaña y Descargar en la toolbar, cierre con Esc.

    Nuevo

    • 👁 Visor full-screen con toolbar (Abrir / Descargar / Cerrar con Esc)
    • 🖼 Imágenes: render directo · 📄 PDF: iframe inline
    • 🎬 Vídeo y 🔊 audio: reproductor nativo embebido
    • 📊 Office (.docx/.xlsx/.pptx): visor de Microsoft Office Online vía URL firmada temporal (10 min)
    • 📝 Texto/código/markdown/csv: contenido renderizado (cap 200KB)
    • 🆕 Endpoint /api/files/[id]/signed-url para generar la URL firmada del visor Office

    Mejorado

    • Fallback a descarga para tipos no previsualizables
  15. v8.93.0

    🎨 "Mis Archivos" rediseñada por completo

    Rediseño total de la página /my-files. Antes era una tabla plana y gris. Ahora tiene: hero con icono degradado, 4 stats cards (archivos, indexados, procesando, espacio), barra de almacenamiento usado (cuota visual 5GB), iconos coloreados por tipo de archivo (PDF rojo, imagen fucsia, docx azul, pptx naranja, xlsx verde, etc.), filas tipo card con hover lift, badges de estado mejorados y mejores empty states. Soporte dark mode completo.

    Nuevo

    • 📊 4 stats cards: Archivos · Indexados · Procesando · Espacio usado
    • 🌈 Iconos coloreados por tipo: PDF rojo, imagen fucsia, vídeo rosa, audio cian, docx azul, pptx naranja, xlsx verde, código slate, zip ámbar
    • 🃏 Filas tipo card con sombra + hover lift en vez de tabla plana
    • 🔍 Búsqueda con focus ring + filtros pill con degradado activo
    • Topbar sticky con blur, mejores empty/loading states, Enter para guardar rename

    Mejorado

    • 🎨 Hero con icono degradado violeta→fucsia + subtítulo descriptivo
    • 💾 Barra de almacenamiento usado (cuota visual 5GB, se pone roja >90%)
  16. v8.92.0

    📁 "Mis Archivos" añadido al menú de usuario (desktop + móvil)

    La sección "Mis Archivos" (/my-files) solo era accesible desde la sidebar. Ahora aparece también en el menú desplegable del avatar (desktop) y en el menú de acciones (móvil), junto a Calendario y Changelog.

    Nuevo

    • 📁 Link "Mis Archivos" en el dropdown del avatar (Header.tsx desktop)
    • 📱 Entrada "Mis Archivos" en el menú de acciones móvil (MobileHeader.tsx)

    Mejorado

    • 🎨 Icono FileText ámbar para consistencia visual
  17. v8.91.0

    🎙 Voz: fix DEFINITIVO de bubbles que desaparecían + fix doble bubble en tool calls

    Dos fixes críticos del modo voz. (1) Las bubbles del modo voz desaparecían tras un rato porque mergeServerMessagesWithOptimistic en chat-store.ts wipea cualquier mensaje local que NO tenga meta.optimistic_local=true cuando loadMessages se ejecuta. Marcamos todos los addMessage del modo voz como optimistic_local + persistimos optimistic_client_message_id en DB para matching robusto. (2) Cuando se activaba un tool aparecía una bubble "[Respuesta de voz sin transcripcion]" antes de la respuesta real. Causa: response.done se dispara también para el turn que solo contiene function_call (sin texto). Ahora detectamos isFunctionCallOnly y skipeamos el bubble — solo creamos uno con la respuesta tras sendToolOutput.

    Nuevo

    • 🔇 Eliminado log ruidoso "response.audio.delta received" (se disparaba cada frame de audio)

    Mejorado

    • 🔗 Persistimos optimistic_client_message_id en DB para que matchesOptimisticWithPersisted matchee perfectamente

    Arreglado

    • 🐛 Fix DEFINITIVO bubbles voz: meta.optimistic_local=true en todos los addMessage del modo voz (user placeholder, AI deltas, AI final, generated image)
    • 🐛 Fix doble bubble en tools: response.done con solo function_call items NO crea bubble (se espera el response.done del follow-up tras sendToolOutput)
  18. v8.90.0

    🎙 GarBotGPT-Voz: 4 tools nuevas + identidad reforzada + fix bubbles que desaparecían

    Dos mejoras grandes al modo voz: (1) Las burbujas del usuario que aparecían un segundo y desaparecían eran porque updateMessage ignora silenciosamente IDs no presentes en el store (FIX 7.11.0) — si un loadMessages se disparaba entre handleSpeechCommitted y handleTranscript, el placeholder se wipeaba y el bubble nunca volvía. Ahora si el placeholder ya no existe, se re-añade con addMessage. (2) Añadidas 4 herramientas nuevas a GarBotGPT-Voz: youtube_search, save_memory, get_current_datetime, generate_image. System prompt reescrito con identidad fuerte "GarBotGPT-Voz" y descripción completa de capacidades.

    Nuevo

    • 🆕 Tool youtube_search: busca videos en YouTube (scrape ligero, sin API key)
    • 🆕 Tool save_memory: el usuario dice "recuerda que..." y GarBotGPT-Voz lo persiste en la tabla memories (scope user)
    • 🆕 Tool get_current_datetime: handler local (sin fetch) para "qué hora es" / "qué día es hoy"
    • 🆕 Tool generate_image: genera imagen via /api/image/generate y la inserta como attachment en el chat
    • 🎭 System prompt v8.90 con identidad "GarBotGPT-Voz, asistente conversacional con acceso completo a las herramientas de GarBotGPT"
    • 📋 Reglas explícitas por tool en el prompt: cuándo usar cada una y cómo presentar resultados en voz
    • Total tools en voz: 7 (web_search, network_search, db_query, youtube_search, save_memory, get_current_datetime, generate_image)

    Arreglado

    • 🐛 Fix bubbles desapareciendo: handleTranscript verifica si el placeholder sigue en store y lo re-añade si no
  19. v8.89.0

    🎙 Voz: arreglada transcripción + bubble del usuario (eventos GA renombrados)

    El nuevo modelo `gpt-realtime-mini` (GA) envía eventos con nombres distintos al Beta: `response.audio_transcript.*` → `response.output_audio_transcript.*`, y el `session.update` GA anida `turn_detection` y `transcription` dentro de `audio.input`. Nuestro hook escuchaba los nombres viejos → no llegaba transcripción ni del usuario ni del asistente (síntoma: "[Respuesta de voz sin transcripcion]" en bucle y sin bubble del usuario). Arreglado migrando todos los handlers + payload a formato GA.

    Nuevo

    • 🔧 session.update migrado a formato GA: `output_modalities`, `audio.input.{transcription,turn_detection}`, `audio.output.voice`
    • Compat: los handlers Beta antiguos se mantienen (case fall-through) por si en algún momento revertimos
    • 👤 Ahora aparece la bubble del usuario inmediatamente al hablar + transcripción real al terminar
    • 🤖 Ahora aparece transcripción real del asistente en vez del fallback "[Respuesta de voz sin transcripcion]"

    Arreglado

    • 🐛 Eventos GA añadidos: response.output_audio.delta/done · response.output_audio_transcript.delta/done · response.output_text.delta/done · conversation.item.input_audio_transcription.delta
  20. v8.88.0

    🎙 Voz: migración a gpt-realtime-mini (GA) — el preview anterior está deprecado

    OpenAI deprecó la familia `*-realtime-preview`. Migrado el default del modo voz a `gpt-realtime-mini` (modelo GA oficial). Mismo precio (~$10/$20 por 1M tokens audio in/out), mejor latencia (~400ms) y soporte completo GA: interrupciones nativas, function calling estable, image input y mejor calidad de voz. La cuenta ahora tiene acceso a los 4 modelos GA (gpt-realtime, gpt-realtime-mini, gpt-realtime-1.5 y gpt-realtime-2 — verificado HTTP 200 en client_secrets).

    Nuevo

    • Default migrado: `gpt-4o-mini-realtime-preview` → `gpt-realtime-mini`
    • 🆕 Modelos GA accesibles: gpt-realtime · gpt-realtime-mini · gpt-realtime-1.5 · gpt-realtime-2
    • 💰 Mini sigue siendo 3× más barato que los full (~$10/$20 vs ~$32/$64 por 1M tokens audio)
    • 🔧 Cambio en src/app/api/voice/session/route.ts + src/hooks/useRealtimeVoice.ts

    Mejorado

    • Latencia ~400ms (vs ~600ms del preview anterior)
  21. v8.87.0

    🔇 Botón mute arreglado + voice card en posición correcta en Welcome

    Dos fixes UX del modo voz: el botón mute no cambiaba visualmente (la lógica retornaba sin tocar state si el audio stream no estaba listo) y la voice card aparecía abajo en welcome (donde no hay composer). Ahora el mute siempre toggle el state + aplica al stream si está disponible, y la voice card en welcome se ancla encima del input centrado mediante CSS var --welcome-input-top expuesta por el WelcomeScreen.

    Nuevo

    • 📍 Voice card en welcome: top var(--welcome-input-top) + translateY(-100%) = justo encima del input centrado
    • 📏 WelcomeScreen expone posición Y del input vía useEffect + ResizeObserver

    Mejorado

    • Cuando voiceModalOpen, el wrapper del input del welcome tiene mt-32 extra para empujar elementos arriba y dejar hueco visual

    Arreglado

    • 🐛 toggleMute: setIsMuted(prev => !prev) primero, aplica a stream solo si existe. Antes retornaba si stream era null y el state no cambiaba.
  22. v8.86.0

    🎙 Voz: modelo default cambiado a gpt-4o-mini-realtime-preview (gpt-realtime requería acceso)

    El endpoint GA /v1/realtime/calls funciona perfecto, pero el modelo `gpt-realtime` (unified GA) requiere acceso especial que esta API key no tiene. Probé los modelos disponibles y todos los `*-realtime-preview` SÍ funcionan. Cambiado default a `gpt-4o-mini-realtime-preview` (más barato).

    Nuevo

    • Probados con HTTP 200: gpt-4o-realtime-preview · gpt-4o-realtime-preview-2024-12-17 · gpt-4o-mini-realtime-preview · gpt-realtime-mini
    • 💰 Default a gpt-4o-mini-realtime-preview (más barato que la versión full)

    Mejorado

    • 🔧 Si quieres usar gpt-realtime (unificado), solicita acceso a OpenAI o cámbialo en la UI

    Arreglado

    • 🐛 Error 403 model_not_found con `gpt-realtime` → confirmado por curl directo
  23. v8.85.0

    🎙 Voz — endpoint WebRTC GA descubierto: /v1/realtime/calls

    OpenAI también deprecó el endpoint WebRTC Beta /v1/realtime?model=X (no solo /v1/realtime/sessions). El nuevo GA es /v1/realtime/calls (sin query model, el modelo va en el ephemeral key). Probado con curl: ya no devuelve "Beta API no longer supported" sino que acepta el SDP correctamente.

    Nuevo

    • Nuevo endpoint GA: POST https://api.openai.com/v1/realtime/calls
    • El modelo ya NO va en query string — viene dentro del ephemeral token
    • 🔧 useRealtimeVoice.ts línea ~648 actualizado

    Arreglado

    • 🐛 SDP exchange daba 400 con "beta_api_shape_disabled" porque el endpoint WebRTC también era Beta
  24. v8.84.0

    🎙 Voz: error real visible + voice "marin"→"alloy" client + acepta value en root

    Si la conexión voz falla, ahora muestra el error real de OpenAI/Vercel en la pantalla en vez del genérico "No se pudo conectar". También arregla 2 detalles del cliente: voice default "marin" (que ya no existe) cambiado a "alloy" en useRealtimeVoice, y el extractor de ephemeral key ahora acepta `value` en root (formato GA) además del legacy `client_secret.value`.

    Nuevo

    • 🔧 Ephemeral key extractor acepta `session.value` (GA) + `session.client_secret.value` (legacy)
    • stop() limpia errorMessage al cerrar el modal

    Mejorado

    • 📢 Hook expone errorMessage al UI

    Arreglado

    • 🐛 Voice default "marin" en useRealtimeVoice cambiado a "alloy" (sin la voz no existe ya)
    • 👁 Modal muestra el error real (con prefix "Session:" o "SDP NNN:") en vez del genérico
    • 🗒 Console log con detail del error real para debug en DevTools
  25. v8.83.0

    🎙 Modo voz arreglado de verdad — OpenAI deprecó la Beta API

    OpenAI deprecó completamente el endpoint Beta /v1/realtime/sessions con error "The Realtime Beta API is no longer supported". Migrado al nuevo endpoint GA /v1/realtime/client_secrets con nueva forma del body. Modelo default actualizado a gpt-realtime (unificado GA). Mi fix anterior (v8.74.0) solo cambiaba modelo dentro del mismo endpoint Beta deprecated.

    Nuevo

    • Nuevo endpoint: POST /v1/realtime/client_secrets
    • Nuevo body: { session: { type: "realtime", model, audio: { output: { voice } } } }
    • Nuevo response: { value, expires_at, session: {...} } en lugar de { client_secret: { value, expires_at } }
    • 🔧 Response adapter: mantengo backward-compat exponiendo client_secret.value para el hook cliente
    • 🤖 Modelo default: gpt-realtime (GA unificado) en lugar de gpt-4o-mini-realtime-preview-2024-12-17
    • 🔇 Voice default: alloy (sigue funcionando)
    • 📡 useRealtimeVoice.ts actualizado a gpt-realtime en 3 lugares

    Arreglado

    • 🐛 Root cause: OpenAI deprecó /v1/realtime/sessions (no era el modelo, era el endpoint entero)
  26. v8.82.0

    🎨 Landing rediseñada estilo corporativo geeconomics (blanco + azul)

    Landing rehecha 100% con estilo institucional moderno tipo geeconomics.com: blanco + azul corporativo #0066CC + numeración editorial 01/02/03 + sin gradientes flashy. Layout, navbar y footer también actualizados al nuevo estilo. Reemplaza la versión navy+dorado anterior.

    Nuevo

    • 📐 Layout sobrio: sin gradientes ni glow, mucho espacio en blanco, tipografía sans light/medium
    • 🔢 Numeración estilo editorial — 01/02/03/04/05/06 antes de cada sección
    • 🧭 Navbar nuevo: blanco sticky, links con underline azul al activo, mobile con números
    • 🦶 Footer 4 columnas con icons contacto + numeración en columnas + DPA/GDPR links
    • 📰 Hero editorial 2 columnas: headline italic+regular + sub + CTAs + 4 stats inline
    • Sección "Desde 2026" estilo "Desde 1989" institucional con texto largo + CTA underline
    • 🛠 Servicios: 3 columnas grid divididas por líneas zinc-200, hover ArrowUpRight
    • 🏢 Modelos: 6 cards proveedores (OpenAI/Anthropic/Google/Meta/Mistral/DeepSeek)
    • 📋 Casos de uso: tabla editorial con 5 filas hover, num·área·título·tools
    • 💬 Quote editorial centrada con líneas separadoras y comillas azules
    • 📞 Contacto: 3 items (mail/phone/office) en grid divided

    Mejorado

    • 🎨 Paleta: bg white + #fafafa + text #1f1f1f + accent #0066CC (azul corporativo)
    • 🎨 Light theme completo — sin dark mode en landing (el chat sigue independiente)

    Seguridad

    • 🔒 Seguridad: split 2 columnas con 4 facts grid + CTA underline
  27. v8.81.0

    ✨ Landing rediseñada completa — paleta navy + dorado, estilo premium

    Landing principal /landing reescrita 100% con nueva paleta navy oscuro + dorado y estructura totalmente nueva (12 secciones). Estilo elegante tipo Stripe/Apple/Linear pero con touch premium dorado. Aurora background, mockup de chat realista, 3 pilares, tool groups, casos de uso editoriales, audit log showcase, stats grandes, pricing 3 tiers, FAQ y CTA final.

    Nuevo

    • 🚀 Hero: eyebrow + headline 2 líneas (white + gradient gold) + CTAs duales + trust badges
    • 💼 Modelo strip: social proof con providers (OpenAI, Anthropic, Google, Meta, Mistral, DeepSeek)
    • 🎯 3 Pilares: Unifica stack · Conecta tu mundo · Tuyo de verdad (con números 01-03)
    • 🛠 4 grupos de tools categorizadas: Conocimiento · Creación · Documentos · Datos&Código
    • 📰 4 Use Cases formato editorial con pasos numerados (Operaciones · Comercial · Soporte · Producto)
    • 📊 Stats band gigante: 20+ modelos · 23 tools · 8 OAuth · ∞ self-host
    • 🔌 IntegrationPill hover dorado para las 10 plataformas
    • FAQ con 6 preguntas (gratis, training, claves propias, self-host, GDPR, app móvil)
    • 🎯 CTA final con icono dorado + headline + 2 botones

    Mejorado

    • 🎨 Paleta nueva: navy oscuro (#050a14 → #0a1628) + dorado (#d4af37, #f5d97a)
    • 🌅 NavyAuroraBackground: gradiente base + orbs azul/dorado + grid sutil
    • 💎 Pricing 3 tarjetas: Free · Pro (highlighted gold) · Empresa
    • 🎬 Hero mockup chat: cards de tools + respuesta con file generado descargable

    Seguridad

    • 🛡 Security Showcase mockup: audit log en vivo + 3 badges (RLS · EU only · Status 99.9%)
  28. v8.80.0

    🌐 /landing/features actualizado con TODAS las tools y funciones (50+ items)

    Página de features reescrita con todo lo real: 23 tools (chat normal + nuevas), 8 integraciones OAuth, colaboración en vivo, agentes autónomos, empresa/admin/seguridad, UX y multi-idioma. 7 categorías, 50+ tarjetas. Anclas por sección, paletas extendidas (indigo/lime/teal/orange).

    Nuevo

    • 🤖 Chat: añadidos Auto modelo (router), Artifacts, edición + versiones
    • 🛠 Tools: lista completa de 22 herramientas (web/research/imagen/video/OCR/RAG/network/Excel/BD/code/browser/voz/docgen/PPTX/mindmap/quiz/music/app-builder/img-to-code/youtube)
    • 🔌 Integraciones: las 8 OAuth (Gmail, Drive, Calendar, Analytics, AdSense, Microsoft 365, Spotify, GitHub, Monday)
    • 👥 Colaboración nueva: chats compartidos, comentarios, asignaciones, presencia, canales, calendario
    • 🤖 Agentes nuevos: autónomos con scheduler + event triggers + toolchain unificada
    • UX/idiomas: 8 idiomas, sugerencias proactivas, online status, Spotify now-playing, themes, browser notifications, reescribir para, fast mode

    Mejorado

    • 🎨 Paletas accent extendidas: + indigo + lime + teal + orange

    Seguridad

    • 🏢 Empresa nuevo: roles+permisos, audit log, onboarding por dominio, status page, self-hosting, RLS, modo mantenimiento, Mis archivos
  29. v8.79.0

    🐛 Banner fix definitivo + landing extendida (empresas, self-hosting, stack)

    Encontrado el root cause del banner solapado: .desktop-minimal-header es position:absolute top:14px y mi fix anterior de orden DOM no era suficiente. Ahora el banner tiene pt-16/pt-20 dentro de su wrapper para empujarlo debajo del header flotante. Landing extendida con 3 secciones nuevas (Para empresas, Stack técnico) que mencionan self-hosting, roles avanzados, audit log, agentes, status page, artifacts, doc generation.

    Nuevo

    • 🔁 ChatShell: orden DOM revertido a Header→BannerDisplay (el padding ahora hace el offset)
    • 🆕 Landing: nueva sección "Stack técnico" con 6 tarjetas (Next.js 16, Supabase, pgvector, OpenAI, Anthropic, Vercel fra1)

    Arreglado

    • 🐛 Banner: pt-16 md:pt-20 + z-[35] dentro del wrapper inline (resuelve solape con header position:absolute)

    Seguridad

    • 🆕 Landing: nueva sección "Para empresas" con 6 cards (Self-hosting, Roles+permisos, Status page, Agentes autónomos, Artifacts/Canvas, Generar Word/Excel/PDF/PPT)
    • 📝 Privacy section ampliada con audit log, RLS, OAuth providers
  30. v8.78.0

    📺 Resumir YouTube añadido al menú de tools del chat (+ móvil)

    El toggle youtube_summary estaba en el store pero faltaba en el menú "+" del input. Añadido en el dropdown desktop (después de "Generar Quiz") y en el menú mobile estilo ChatGPT. Body del fetch envía `youtube_summary` al /api/chat y se cuenta en activeToolsCount.

    Nuevo

    • 📺 Item "Resumir YouTube" en menú desktop (+) del input
    • 📺 Mismo item en menú mobile bottom-sheet
    • 🔌 youtubeSummary destructurado del useChatStore
    • 🎬 Icon Youtube importado de lucide-react
    • 📡 body del fetch ahora envía youtube_summary: youtubeSummary
    • 🔢 activeToolsCount actualizado para incluir youtubeSummary

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