Recursos

Novedades

Todo lo que trae Tiancode 1.0.0, la versión estable, y las anteriores.

Versión 1.0.0

Última versión7 de octubre de 2026

Modelos gratuitos de OpenCode, bienvenida completa y mascota en el chat

  • Modelos gratuitos. El grupo «OpenCode Free» (Big Pickle, Exo, Fledge Alpha, Ling, LongCat, MiMo, Muse Spark, Nemotron, Space Bunny…) se activa en Ajustes › Proveedores, Ajustes › Modelos o la bienvenida, con un interruptor por modelo. La lista sigue el catálogo de OpenCode y se actualiza cada hora.
  • Bienvenida de 1200×850. Seis pasos con barra lateral: idioma y tema; escala de la interfaz, tamaño y ancho de la conversación con vista previa; pestañas, terminal y vista previa; línea de tiempo; modelos gratuitos; y qué se abre al iniciar.
  • Mascota en el chat. Junto a Pensando, Explorando, Editar, Escribir, Shell, preguntas y sub-agentes, con la expresión de lo que hace el modelo.
  • opencode 1.18.35. Las imágenes de los resultados de herramientas llegan a xAI y los formatos que rechaza se omiten.
  • CLI. tiancode run avisa de los reintentos del proveedor y se detiene con el motivo si la espera supera dos minutos.

Correcciones

  • Cerrar la vista previa ya no la vuelve a abrir en bucle, ni con una web ni con una app.
  • Cerrar el Sandbox mientras el agente mira la página ya no lo reabre al instante.
  • Las filas de Ajustes con un solo interruptor ya no saltan de línea en paneles estrechos.
  • Ajustes vuelve a su tamaño original (1243×763, como en 1.0.8) y lo mantiene en pantalla con cualquier escala de la interfaz.
  • Al abrir en modo Code, Tiancode continúa en tu último proyecto y solo pide una carpeta la primera vez.

Tiancode vuelve a empezar en 1.0.0 e incluye todo lo de 1.0.1 a 1.0.8. Quien tenga 1.0.1–1.0.8 instala Tiancode.exe encima; se conservan claves, ajustes, sesiones, copias de seguridad y autenticación MCP. Release 1.0.0

Versión 1.0.8

Anterior3 de octubre de 2026

Control visual de Windows y luz azul durante el uso de la PC

  • Observar, actuar y verificar. Capturas adjuntas para el modelo, dimensiones del monitor, ventana enfocada y contexto de controles accesibles de Windows.
  • Más acciones. Enumerar y activar ventanas, clic izquierdo, derecho, central y doble, arrastre, texto Unicode, atajos y desplazamiento en un punto, esperar, finalizar y solicitar intervención.
  • Acciones de UI-TARS. Una predicción validada por llamada, con cajas 0..1000 y tokens de caja. Sin ejecutar código generado por el modelo.
  • Control visible. Luz azul en los bordes de todos los monitores, transparente a los clics, con Detener y atajo global. La parada interrumpe el arrastre y suelta el ratón.
  • Monitor y permisos. Selección de pantalla, coordenadas adaptadas a su escala, observaciones recientes y autorización por aplicación. Se conservan claves, ajustes, sesiones, backups y autenticación MCP.

Requiere un modelo con visión y herramientas en la app de Windows. La integración no instala pesos de UI-TARS ni servicios remotos o Android. Guía de uso · Versiones en GitHub

Versión 1.0.7

Anterior2 de octubre de 2026

Descubrir completo, conectores de apps y actualizaciones cuidadas

  • Descubrir lista unas 3.600 entradas: plugins de Claude Code (oficiales, Knowledge Work, finanzas, ciencias de la vida, legal, salud y comunidad) y de Codex, skills de Anthropic y OpenAI, y servidores MCP de GitHub, del registro oficial y de Cline.
  • Los plugins de Claude Code y Codex se instalan con un clic: Tiancode añade sus skills, comandos, subagentes y servidores MCP; desinstalar quita exactamente lo que añadió.
  • Conexiones › Conectores: cerca de 300 apps (Gmail, Drive, Notion, Linear, Atlassian, Canva, Stripe…); conectar añade su servidor MCP y abre el inicio de sesión en el navegador.
  • Cada entrada muestra su logo real, y la búsqueda también consulta el registro oficial de MCP.
  • Un asistente de actualización dentro de la app muestra la descarga, las novedades y «Reiniciar e instalar».
  • La escala de la interfaz va del 80 % al 120 % en pasos de 5 %, y la ventana de carga muestra el logo completo.

Correcciones

  • El asistente de bienvenida aparece solo en la primera instalación, nunca tras una actualización.
  • Los avisos de actualización ya no usan cuadros de diálogo del sistema mientras la app está abierta.

Versión 1.0.6

Anterior1 de octubre de 2026

Inteligencia real, decisiones locales y un CLI como el de opencode

  • Inteligencia en cuatro mosaicos: Memoria (ver, editar y vaciar USER.md y MEMORY.md), Contexto (compactación, poda y límite de salida), Protección y Decisiones locales.
  • Decisiones locales con laya: un modelo sin conexión (~360 MB, solo si lo descargas) distingue si una respuesta terminó, necesita tu respuesta o falló; los avisos del sistema y los de Telegram, Discord y Slack lo dicen.
  • Uso de la PC: Escritorio con el control de ratón y teclado en vivo y «Detener ahora», permisos con Preguntar / Permitir / Bloquear, Navegador con reglas por sitio y Acceso remoto con su estado y QR.
  • Notificaciones: estado del permiso del sistema con «Probar aviso», silenciar todo, volumen, sonar solo en segundo plano y una fila por evento con aviso y sonido.
  • General en cinco mosaicos compactos (Chat, Vista, Espacio de trabajo, Escritorio y Datos), con controles segmentados y las copias de seguridad con su fecha.
  • CLI como el de opencode: run --attach muestra la respuesta, attach avisa si el servidor está caído o pide contraseña, sin claves falla al instante con el paso a seguir y los argumentos desconocidos se nombran.
  • La lectura en voz alta usa la voz del idioma de cada texto.

Correcciones

  • Los interruptores de Inteligencia se aplican al momento, sin reabrir proyectos ni cancelar sesiones; CodeGraph indexa el proyecto de verdad.
  • Los comandos críticos de la shell siempre piden permiso, aunque tengas la aprobación automática; capturas y portapapeles preguntan por defecto.
  • Guardar ajustes en un proyecto ya no borra su config.json, restaurar una copia de seguridad ocurre en el siguiente arranque y detener una respuesta ya no suena como error.
  • PowerShell conserva tildes y eñes, y tiancode serve explica un puerto ocupado o inválido.

Versión 1.0.5

Anterior1 de octubre de 2026

Modelos locales seguros y Ajustes rediseñados

  • Modelos locales: Explorar con la lista y la ficha lado a lado, En disco con descargas y acciones por archivo, Motor con su estado en vivo y su registro, y Ajustes agrupados.
  • Ajustes nuevos del motor: lote físico, hilos para el prompt, expertos MoE en la CPU, tiempo máximo de carga y modo ligero del chat.
  • Skills compacta su cabecera para que la lista y la ficha ocupen casi todo el cuadro.
  • MCP y Plugins: tarjetas con estado y menú (editar, reconectar, cerrar sesión, eliminar), catálogo en cuadrícula y un diálogo con campos para comando, URL, cabeceras, OAuth y tiempo de espera.
  • Voces: prueba de micrófono, pulsar para hablar, atajo de dictado, motor, velocidad y volumen, y voces de Fish Audio.
  • Mascotas: tu mascota con su estado y «Acariciar»; en el escritorio se arrastra, recuerda su sitio y sigue el idioma.
  • Acerca de: estado de la actualización, versiones del sistema con «Copiar datos», carpetas y enlaces. La bandeja del sistema está en tu idioma y suma Ajustes y Buscar actualizaciones.

Correcciones

  • Eliminar un modelo local ya no borra otros con nombre parecido, cancelar una descarga ya no detiene el modelo del chat y «Usar en el chat» ya no copia tus proveedores.
  • La voz elegida es la que lee las respuestas, ya no se cortan a los 30 segundos, abrir una sesión no lee mensajes viejos y el micrófono se libera al terminar.
  • Escape en un diálogo de MCP ya no cierra Ajustes y desactivar un plugin de .tiancode/plugins se respeta.

Versión 1.0.4

Anterior1 de octubre de 2026

Sandbox fiable, sub-agentes editables y skills más claras

  • Reiniciar la vista previa detiene de verdad el servidor anterior, espera a que su puerto quede libre y la Vista en vivo recarga sola; si otro programa ocupa el puerto, Tiancode lo dice con su nombre y PID.
  • La página previsualizada queda aislada: sin cámara, micrófono, portapapeles ni notificaciones, sin navegar la ventana de Tiancode, y el agente no la lleva a otro sitio ni descarga archivos.
  • Sub-agentes editables: modelo, temperatura, pasos máximos, permisos por herramienta, instrucciones adicionales, color y ocultar del menú @, con «Restablecer».
  • Skills con buscador, filtros con nombre y recuento, acciones rápidas y una ficha con tipo, origen, uso y ubicación.
  • En el chat, las herramientas aparecen con nombre («Inspeccionar página», «Reiniciar vista previa») en lugar de «Se llamó a…».
  • Ajustes reorganizados: Servidor reúne Servidores, Proyectos y Worktrees, y GitHub está dentro de Conexiones, cada grupo con su cabecera y una tarjeta por sección.

Correcciones

  • Guardar un sub-agente o una skill ya no borra los proveedores ni los servidores MCP de tiancode.json, y un tiancode.jsonc conserva sus comentarios.
  • Tus reglas de permisos se aplican también a los sub-agentes especialistas.
  • El logo se ve completo, Emparejar y Experimental están dentro de Uso de la PC y el cuadro de Ajustes es un poco más grande.

Versión 1.0.3

Anterior1 de octubre de 2026

Tus datos se conservan al actualizar

  • Si una actualización anterior abrió Tiancode vacío, 1.0.3 vuelve a usar la carpeta donde estaban tus sesiones, claves y ajustes (%APPDATA%\ai.tiancode.desktop). Si ya introdujiste tus claves en la carpeta nueva, Tiancode la respeta y un aviso te indica dónde están tus sesiones anteriores. No se mueve ni se borra nada.
  • Ajustes › General › Datos muestra la carpeta de datos en uso, la abre y, si la otra carpeta también tiene sesiones o claves, cambia a ella con un reinicio. Un aviso te lo indica una sola vez.
  • Cuando el instalador de GitHub sustituye una instalación anterior, sigue usando sus datos; en un equipo sin Tiancode empieza limpio.
  • Una clave de cifrado ilegible nunca se sobrescribe y los inicios de sesión MCP cifrados con otra clave se conservan.

Versión 1.0.2

Anterior30 de septiembre de 2026

Funciones de opencode v2, modo diseño y emparejamiento

  • Omitir permisos pide confirmación con el aviso «¿Omitir todos los permisos?»: Cancelar queda enfocado y un enlace explica qué implica.
  • Ajustes al estilo opencode v2: buscador, General por secciones (Línea de tiempo, Vista previa, Barra superior, Apariencia, Actualizaciones, Pantalla y Datos) y páginas nuevas de Notificaciones, Proyectos, Worktrees, Emparejamiento, Experimental y Acerca de.
  • La línea de tiempo tiene un control deslizante de detalle, de solo texto a todo: comandos, ediciones, razonamiento, sub-agentes y avisos.
  • Resumen de la sesión con Ctrl/⌘ + Mayús + Y: proyecto, local o worktree, rama, archivos cambiados y extensiones activas (MCP, plugins, skills y LSP).
  • Pestañas verticales con el nombre del proyecto, terminal al lado o abajo, Ajustar líneas en los diffs y mensajes de seguimiento en cola que se editan, reordenan y eliminan.
  • Cuando la IA termina de cambiar una app, el chat ofrece abrirla en el Sandbox o en el escritorio.
  • Modo diseño: elige un elemento de la vista previa y añádelo al chat con su selector, HTML, estilos y una captura recortada.
  • Emparejamiento por red local: abre Tiancode en el móvil, la tablet u otro PC escaneando un código QR, con la contraseña guardada cifrada. Incluye Mantener la pantalla activa.
  • Marketplace con Composio (más de 1000 apps a través de un servidor MCP) y las skills de diseño de ui-skills.com.
  • Skills integradas nuevas para planificar y revisar: product-brief, product-requirements, architecture-spine, brainstorm-session, adversarial-code-review, persona-roundtable, refine-output y diagram-design.

Mejoras

  • La ventana se abre mientras arranca el servidor y el Sandbox y el diseño clásico se cargan cuando se usan: el paquete inicial pesa unos 190 KB menos.
  • El agente del navegador usa referencias que no cambian entre informes, marca lo nuevo, lo tapado y lo que está fuera de vista, y no pulsa lo que el usuario no podría pulsar.
  • La selección de modelo recuerda la variante por modelo y la elección por agente, como en opencode v2.
  • Se incorporan las correcciones de opencode 1.18.33 y 1.18.34.

Correcciones

  • En pantallas de teléfono el buscador de ajustes tiene su propia fila y las páginas se deslizan debajo.
  • El Sandbox conserva la página al pasar del lateral al panel inferior.
  • Los nombres de los plugins se muestran bien en /status en Windows.

La actualización llega sola desde 1.0.1 y conserva claves activas, sesiones, configuración, respaldos y autenticación MCP.

Versión 1.0.1

Anterior23 de septiembre de 2026

Modelos locales y extensiones

  • Modelos locales Llama 3 sin llamadas de herramienta inválidas ni bucles de reintento; se comprueba el modelo cargado antes de reutilizar el motor.
  • Marketplace de Cline con copia local, MCP con OAuth y entradas nuevas desactivadas hasta completarlas.
  • Mascotas con textos breves, permisos del micrófono por ventana y ajustes que caben a 390 px.

Versión 1.0.0

Anterior16 de septiembre de 2026

Un chat más limpio y ajustes sin desplazamiento

  • El razonamiento se elige con un control deslizante de Más rápido a Más inteligente, con Ultracode como último nivel y Rápido dentro del mismo panel. El signo de interrogación explica el esfuerzo.
  • El botón Enviar vive dentro del cuadro, aparece al escribir y muestra Enviar y Enviar y permanecer aquí al pasar el cursor. El menú + incluye Agregar carpeta.
  • Los modos Auto, Manual, Aceptar ediciones, Plan y Omitir permisos sustituyen a Build, Plan y Web App, y pueden cambiarse mientras la IA trabaja.
  • General, Inteligencia, Voces, Skills, Sub-Agentes, MCP y Plugins y Mascotas se organizan con pestañas superiores, como Conexiones, para que cada sección quepa sin desplazamiento.
  • MCP, plugins y especialistas muestran los logotipos oficiales de GitHub, Slack, Notion, Figma, PostgreSQL, Docker, Python y muchos más; las categorías de Skills son iconos con descripción al pasar el cursor.
  • Mascotas con personajes ilustrados de page-mascot que siguen el cursor y reaccionan; el gatito acompaña Pensando y Escribir. La memoria y las habilidades aprendidas se guardan en los datos de Tiancode, no en tus proyectos.
  • General permite ocultar los iconos de terminal, vista previa, voz, captura, estado, búsqueda y árbol de archivos; la captura de pantalla pasa junto a Estado.
  • La mascota elige dónde mostrarse: dentro de la app, flotando en el escritorio de Windows o en ambos. La flotante usa los mismos personajes, sigue el cursor y cambia de ánimo mientras la IA escribe o espera.
  • Modelos locales se organiza en Explorar, En disco, Motores y Ajustes, muestra los logotipos originales de Hugging Face y permite elegir la carpeta donde se descargan los modelos.
  • Ajustes de Modelos locales incorpora los parámetros de carga de LM Studio: contexto, capas en GPU, hilos, lote, Flash Attention, cuantización de caché K/V, mantener en memoria, mmap, semilla, RoPE y peticiones en paralelo.
  • Los respaldos se pueden eliminar por completo desde General, además de restaurarse.
  • La web estrena portada astral con entrada al universo de paneles, navegación superior limpia y una galería 3D con capturas reales de la app.
  • Sub-agentes añade el interruptor Detalle junto a "Rol y especialidad" para leer la descripción completa y las herramientas de cada especialista.
  • Los chats sin carpeta viven en un espacio "Chat" del perfil; la carpeta personal ya no aparece como proyecto.
  • Tiancode CLI para Windows, macOS y Linux: interfaz de terminal, servidor y web con un solo binario, instalable con curl, PowerShell, npm, bun o Homebrew.
  • El interruptor Detalle muestra las instrucciones reales de cada sub-agente y, en MCP y Plugins, transporte, herramientas y origen.

Mejoras

  • La insignia azul CODEX pasa a ser Coding, con el icono de código.
  • Rápido se muestra solo como icono y conserva su nombre al pasar el cursor.
  • Ultracode se ofrece únicamente con modelos de razonamiento de Claude y OpenAI; los demás proveedores conservan sus niveles nativos y ya no quedan en bucle.
  • GitHub pagina los repositorios de cinco en cinco.
  • El gatito ocupa el avatar de cada sub-agente mientras trabaja y la píldora muestra su nombre.
  • Conexiones muestra en su barra superior el estado de cada proveedor; Voces se reduce a Micrófono y dictado, Síntesis y Catálogo.
  • La vista previa reconoce Remix, SvelteKit, SolidStart, Qwik, Expo, Eleventy, Parcel y webpack, y al quedar en blanco adjunta el error de ejecución al pedir la corrección.
  • Cada nivel de esfuerzo tiene su color; el máximo del modelo y Ultracode brillan con animación y Omitir permisos se muestra en naranja.
  • El dictado es una píldora compacta con su propio interruptor, separado de los controles de voz de la barra superior.
  • El modelo conoce su nombre visible y lo dice al preguntarle qué modelo es.
  • La ventana abre ocupando la mayor parte de la pantalla; el asistente de bienvenida usa una ventana del tamaño de su tarjeta.
  • Al grabar, el micrófono es un control rojo de parar como en Claude Code; el menú de permisos y todos los niveles de esfuerzo, incluidos Auto y Bajo, llevan su color.
  • La actualización a 1.0.0 se instala manualmente sobre 1.0.54 y conserva claves, sesiones, configuración y respaldos.

Correcciones

  • El micrófono vuelve a detectar la voz: el contexto de audio se reanuda antes de grabar, el nivel real mueve la onda y la frase se transcribe sola tras una pausa.
  • Los interruptores de General vuelven a tener efecto en la cabecera del chat.
  • Voces agrupa micrófono, dictado, síntesis y catálogo en pestañas, sin filas fuera de su sección.
  • La mascota flotante del escritorio ya no aparece como un cuadrado vacío.
  • Desactivar un plugin ya no desactiva los demás.
  • Una instalación limpia abre una sola ventana con el asistente de bienvenida.
  • La mascota flotante del escritorio ya muestra su personaje: su ventana no llegaba a ejecutar el script.
  • La descarga de GitHub usa un perfil propio y limpio: sin sesiones ni claves de otras instalaciones y con la bienvenida siempre al instalar.
  • La vista previa ya no se abre sola por servidores de otros proyectos; solo cuando la IA arranca una app web en la sesión actual, o a mano.
  • Sub-agentes se ve como tarjetas en ventanas estrechas y su filtro ya no se corta.
  • Eliminar una sesión la quita de la lista de inicio al instante.
  • Cambiar de tema o de esquema de color ya no pinta un fondo opaco en la mascota flotante y se aplica sin esperas.
  • El asistente de bienvenida es una ventana transparente con solo su tarjeta; la ventana principal vuelve a abrir en 1280×800.
  • Los iconos de Windows, la bandeja y los logos se regeneran desde el original sin pixelado.
  • La web tiene una sola cabecera compacta con la marca ZenithAI, la píldora de secciones centrada y un menú de instalación con los comandos curl, PowerShell, npm, bun y Homebrew.
  • Modelos locales: tamaños reales de cada cuantización, pestaña «En disco» con los GGUF reales y configuración de carga automática por modelo (contexto, capas en GPU, hilos, caché KV) según tu VRAM y RAM; la carpeta personalizada se aplica al instante.
  • El chat muestra «Gestionar proveedor» cuando desactivas todos los modelos; el asistente pregunta si empezar en Chat o en Inicio; nuevos atajos y protección del servidor contra DNS rebinding y fuerza bruta.
  • El motor local que arranca desde el chat usa la misma configuración automática que Modelos locales y el límite de contexto real, así las respuestas ya no se convierten en resúmenes de compactación; el asistente de bienvenida abre siempre en su propia ventana con Chat, Code o Inicio; barras de desplazamiento finas en toda la app.
  • Modo ligero para modelos locales: prompt compacto y herramientas básicas para que el chat quepa en el contexto del modelo; el motor se descarga tras unos minutos sin uso y la configuración automática admite límites de VRAM, RAM y CPU con reparto GPU / RAM.
  • Cada cuantización muestra la VRAM y RAM reales que necesita en tu equipo antes de descargarla (se lee la cabecera GGUF remota); el asistente de bienvenida sin marco oscuro y el modo Chat / Code / Inicio aplicado en cada arranque.

La versión 1.0.0 es inferior a 1.0.54 y el actualizador automático no la ofrece: instala Tiancode.exe o sustituye Tiancode-portable.exe. Claves activas, sesiones, configuración, respaldos y autenticación MCP se conservan.

Versión 1.0.54

Anterior15 de septiembre de 2026

Una fila para trabajar, decisiones de diseño claras

  • Los controles del chat comparten una sola fila, incluso con Ultracode. En paneles estrechos, captura, micrófono y mejora del prompt quedan accesibles desde Más.
  • Sub-Agentes muestra los 14 especialistas integrados, con búsqueda, estado y configuración por proyecto o global. El selector principal mantiene Build, Plan y Web App.
  • Web App permite elegir seis direcciones visuales con una vista de ejemplo o dejar que la IA proponga opciones. La elección se guarda y se envía con el siguiente mensaje.
  • Respuestas directas es una preferencia opcional para empezar por la acción y presentar instrucciones breves sin omitir errores ni verificaciones.
  • El navegador permite elegir el integrado, el predeterminado del sistema o Google Chrome para abrir enlaces. Las herramientas de navegación y DOM de la IA siguen usando el navegador integrado.
  • Uso de la PC puede restaurar ventanas minimizadas de aplicaciones autorizadas al terminar el control. La opción de cookies Hasta salir limpia los datos del navegador al cerrar normalmente.
  • El especialista de investigación incorpora hipótesis, presupuesto, prueba piloto y decisiones de continuar o detenerse basadas en evidencia, inspiradas en AutoResearch.

Un proveedor desconectado, como xKiro, permanece bloqueado aunque una configuración de proyecto o un catálogo desactualizado intente volver a mostrarlo.

Los avisos de conexión, desconexión y cambio de especialista esperan a que el servidor confirme el guardado; los fallos se muestran y permiten reintentar.

Consulta la evaluación de los diez repositorios y los límites de cada integración.

Versión 1.0.53

Anterior15 de septiembre de 2026

Chat adaptable y especialistas recuperados

  • El chat reorganiza sus controles según el ancho del panel. Las descripciones del menú de permisos tienen espacio propio y no se superponen.
  • El selector principal muestra exactamente Build, Plan y Web App; tus definiciones de agentes personalizados se conservan.
  • Rápido se puede activar en todos los modelos. Reduce preámbulos y trabajo repetido sin cambiar el esfuerzo elegido ni omitir verificaciones.
  • El panel de subagentes consulta el catálogo correcto en servidores V1 y V2. Los 14 especialistas vuelven a estar disponibles en el escritorio.
  • Una consulta fallida muestra Reintentar y conserva el último catálogo cargado; ya no se presenta como si no hubiera agentes.
  • El tema inicial se aplica correctamente al compilar en Windows; la cabecera móvil de la web mantiene sus controles dentro de la pantalla.

Rápido mantiene el esfuerzo y las comprobaciones. La aceleración nativa de Anthropic se añade cuando el modelo y la cuenta son compatibles, y puede tener un coste mayor; no se promete una velocidad fija.

Esta versión integra correcciones de OpenCode 1.18.31: restauración de modelo, esfuerzo y modo en sesiones ACP; bloques de pensamiento separados; pensamiento resumido adaptable en Copilot; y errores de autenticación remota visibles.

Versión 1.0.52

Anterior14 de septiembre de 2026

Más control, actividad visible y actualizaciones verificadas

  • Modelos locales sin entradas fantasma. El borrado de un GGUF actualiza el catálogo reactivo y elimina las referencias antiguas. Los modelos personalizados y las claves ajenas al archivo eliminado se conservan.
  • Especialistas enfocados. Catálogo depurado para ingeniería, frontend, backend, QA, DevOps, diseño, datos, marketing y seguridad autorizada. Los identificadores anteriores mantienen compatibilidad con sesiones y configuración existentes.
  • Controles del compositor. Selector de micrófono visible y grabación mientras mantienes pulsado; modos Auto, Manual, Aceptar ediciones, Plan y Omitir permisos en el servidor de escritorio. Rápido usa aceleración nativa cuando el proveedor la admite; Ultracode combina instrucciones de planificación y verificación con una variante de esfuerzo compatible.
  • Vista previa con actividad real. El Sandbox sigue las herramientas de la sesión activa, mantiene la carpeta del proyecto y muestra acciones y estados de ejecución. El control de Windows comprueba la ventana y el proceso antes de cada entrada.
  • Actualizaciones verificadas. Una descarga fallida produce un error recuperable. La instalación espera al respaldo. Los cuatro archivos se comparan con sus huellas SHA-256 antes de marcar la versión como estable.
  • Una web más ligera y precisa. El idioma se conserva tras recargar, todos los módulos comparten la misma selección, la animación se pausa fuera de vista y las demos se identifican como ejemplos. Se retiraron comparativas sin mediciones reproducibles.

La última publicación estable de OpenCode consultada es v1.18.30. El núcleo V2 continúa en desarrollo: no se presenta como paridad completa con todos los flujos de escritorio.

Versión 1.0.51

Anterior 13 de septiembre de 2026

Había dos motores de modelos locales, y el chat usaba el roto, en v1.0.51

  • Activar un modelo GGUF y escribir «Hola» devolvía «Cannot use tools with stream» y tres reintentos con espera creciente. La causa no era el modelo: el cargador de proveedores llevaba una segunda copia completa del arranque del motor —181 líneas de búsqueda de binario, descarga, lanzamiento y espera de salud— independiente de la que usa el botón del Models Hub. El botón usaba la copia buena; escribir un mensaje usaba la otra.
  • Y esa otra aceptaba el primer «llama-server.exe» que encontrara en disco, sin comprobar su versión. Comprobado en máquina real: un binario de marzo de 2025 seguía en la caché y le ganaba al que viene dentro del instalador — y es justo el que rechaza herramientas y streaming a la vez. La copia duplicada se elimina, queda un solo motor, y hay un test que impide que el proveedor vuelva a lanzar procesos por su cuenta.
  • El «reintentando en 8s · intento n.º 3» tenía su propia causa: ese error llega como HTTP 500 y la política de reintentos trataba todo 5xx como un fallo pasajero. Un error de configuración que jamás iba a resolverse solo se reintentaba cinco veces. Ahora falla al primer intento y deja ver el mensaje real.
  • El motor dejó de mentir sobre sí mismo: no vuelve a escribir «tengo la build 10679» encima de un binario que no consiguió reemplazar —copiar sobre un «llama-server.exe» en ejecución falla en Windows—, un puerto sano cuyo proceso hijo ya murió deja de adoptarse como propio, y sólo un 503 que de verdad dice «cargando modelo» abre la ventana larga de espera. Antes, cualquier cosa escuchando en el 58282 podía retener la petición quince minutos.
  • El botón de mejorar prompt: el arreglo de 1.0.50 era correcto y aun así se cancelaba. En el registro se ve la petición saliendo bien, con el modelo correcto, y luego silencio. Lo que la mataba era un plazo fijo de 30 segundos en el cliente: los modelos que razonan no emiten texto durante ese rato y el servidor filtra el razonamiento fuera del cuerpo, así que el navegador recibía cero bytes y abortaba un flujo perfectamente sano.
  • Se midió algo que nadie había comprobado: este servidor no vacía las cabeceras antes de llamar al modelo, así que «fetch()» no resuelve hasta el primer byte. El plazo pasa a ser un temporizador de inactividad que se reinicia con cada byte, y el servidor emite una señal de vida cada 5 segundos mientras el modelo piensa. Esa señal se pide explícitamente, de modo que cualquier otro cliente recibe exactamente el mismo cuerpo de antes.
  • Borrar un modelo local y que se vaya de verdad. Dos causas independientes: el borrado limpiaba la configuración del proyecto mientras la activación escribe la global, y aun en el archivo correcto era imposible, porque la actualización de configuración es una fusión profunda — puede añadir y sobrescribir, nunca borrar. Omitir la clave era, por construcción, no hacer nada. Ahora hay un borrado real en el servidor que además limpia el modelo por defecto si apuntaba al que ya no existe.
  • Sub-Agentes: crear uno, y ver los que ya tienes. El panel sólo mostraba una lista fija escrita a mano, así que los agentes que tienes en disco no aparecían en ninguna parte. Ahora se listan, se pueden crear —a mano, o describiendo lo que quieres y dejando que un modelo redacte el identificador, el cuándo usarlo y el prompt, siempre para revisar antes de guardar— y borrar.
  • Los agentes creados desde el panel ya no salen mutilados: el formulario mostraba nueve permisos y el servidor denegaba quince, así que un agente nuevo no podía listar un directorio, preguntar ni delegar. Y la columna de herramientas decía la verdad en muy pocos casos — «plan», que hereda todo menos editar, mostraba «1 tools»; ahora calcula el conjunto efectivo y además concuerda en plural.
  • El «Árbol de Recursión RLM» era una maqueta. Se montaba sin datos, así que siempre dibujaba los mismos cuatro agentes inventados, con estados inventados —«Activo», «Completado»— y resultados inventados —«0 vulnerabilidades detectadas»— sobre trabajo que nunca ocurrió. Se reconstruye con la jerarquía real: agentes primarios y, debajo, los sub-agentes a los que de verdad pueden delegar según sus permisos, incluidas las denegaciones por destino. Sin estados, sin duraciones, sin resultados: el panel no puede saberlos. Empieza plegado y pagina, en vez de volcar 150 filas.
  • Certificados del sistema en Windows (portado de hermes-agent, MIT): ya se mezclaban, pero sin filtrar los caducados y deduplicando por texto en vez de por huella. Ahora filtra por fecha y por huella — y, esto importaba más, la rama de macOS/Linux ya no puede dejar el almacén de confianza vacío si la API no existe.
  • Reparación de argumentos de herramientas con comillas tipográficas y entidades HTML —un fallo conocido de xAI/Grok— portada de openclaw (MIT). Aquí hubo que ir más lejos que el original: un fuzz diferencial encontró 1.268 casos en los que la versión portada devolvía un resultado silenciosamente incorrecto donde antes fallaba de forma ruidosa, incluyendo borrar comas de dentro del contenido de un archivo a punto de escribirse. Tras el arreglo son 0 por la vía de las comillas, y en una prueba de emisión realista pasa de 0/6000 a 6000/6000 correctos.

Versión 1.0.50

Estable 12 de septiembre de 2026

El botón de mejorar prompt fallaba el 100 % de las veces, y ya sabemos por qué, en v1.0.50

  • El optimizador de prompts no funcionó nunca: no era tu modelo, ni la variante «Max», ni el modo 2x — fallaba siempre, con cualquier configuración. La respuesta se entrega como un flujo perezoso y el servidor sólo tira de él después de que el handler haya retornado, momento en el que ya se cerró el ámbito que le inyecta el contexto de la instancia. Moría con «InstanceRef not provided» antes de que un solo byte saliera hacia el proveedor, y el capturador de errores lo disfrazaba de fallo del modelo.
  • Lo interesante es por qué no lo detectó nadie: ese contexto es una referencia con valor por defecto, así que su tipo dice «never» y el comprobador de tipos no ve nada que falte. Compilaba perfecto y fallaba siempre. Ahora el flujo lleva su propio contexto en vez de pedirlo prestado a la petición, sigue llegando palabra a palabra, y va con un test HTTP contra la ruta real que reproducía el fallo exacto —«\0unknown», cero texto— antes del arreglo. No había ninguno.
  • Un modelo que sólo razona ya no se anuncia como un fallo: emitir razonamiento y ningún texto producía el mismo cuerpo vacío que un error, y se contaba como «no dijo nada». Ahora es un caso propio.
  • Iconos del chat que se pisaban, y está medido: el grupo izquierdo —agente, modelo, variante— ocupa 315 px rígidos a cualquier ancho y ninguna etiqueta se recorta nunca, así que a partir de 505 px invade el grupo derecho. Tres cerrojos en serie, y el primero es exactamente el mismo bug que las filas de ajustes de esta misma versión: a los botones se les fijó el ancho pero no el «flex», y además cada control va envuelto en un contenedor de tooltip que lo vuelve a clavar. Ahora hay una escalera por ancho del compositor —no de la ventana, que puede ser ancha con el panel estrecho—, las etiquetas se recortan con puntos suspensivos y el botón de enviar sobrevive a cualquier tamaño.
  • «Crear respaldo» mentía sobre tus propios datos: llamaba a un método que el preload nunca expuso, así que la llamada se tragaba en silencio y te decía «no hay datos que respaldar». Ahora respalda de verdad, y el mensaje vacío sólo aparece cuando de verdad no hay nada.
  • Dos interruptores muertos fuera de Ajustes → General: Terminal y Navegador interno, cuyos únicos lectores viven en una rama de la interfaz vieja que ya es inalcanzable. Y dos descripciones pasan a decir la verdad: el respaldo automático se aplica en el próximo inicio, y «Mostrar agente» no oculta nada en proyectos que definen sus propios agentes.
  • Desbordes: 63 px fuera en «Vetar», 78,6 en «Permitir» y 210,9 en una fila de Conexiones que nadie había reportado. La causa es concreta: el campo de texto lleva «flex: none» y sólo se le sobrescribe el ancho, así que el hueco se dimensiona al tamaño intrínseco del campo y empuja fuera el espacio y el botón entero — que el panel luego recorta. Hay ya una clase compartida para «campo + botón», que era justo lo que faltaba.
  • La tarjeta de GitHub medía 757 px en un hueco de 608: recortar márgenes no bastaba, así que se parte en dos columnas — el formulario a la izquierda, las capacidades al lado. Sin scroll y con margen a cualquier tamaño.
  • Borrado: hacer todo lo posible en vez de rendirse. Cuando le das permiso para borrar y Windows se niega, ahora escala: reintenta, quita el atributo de sólo lectura, identifica qué proceso retiene el archivo mediante el Restart Manager —sin administrador y sin herramientas externas— y te dice su nombre y su PID, programa el borrado para el próximo arranque, y sólo si se lo pides explícitamente ofrece cerrar el proceso que lo bloquea. Un borrado parcial ya no aborta al primer archivo bloqueado: los otros nueve mil se borran igual.
  • Una corrección a la premisa, y por eso no hay interruptor de «sin restricciones»: Tiancode no bloqueaba nada. Se comprobó en tu máquina que con permisos totales Windows sigue rechazando el borrado, porque es un bloqueo obligatorio del sistema — y en tu caso lo sostenía la propia app que lanzaste desde «release\win-unpacked». Un interruptor así habría sido un control conectado a nada. Cuando quien bloquea es Tiancode mismo, ahora te lo dice en vez de fingir.
  • Voces: se buscó de nuevo, más ancho, y midiendo. Se descargó la muestra de cada voz y se calculó su frecuencia fundamental en vez de fiarse del nombre. Resultado: las seis etiquetas de sexo del catálogo eran correctas y los rechazos anteriores también («ald» 138,7 Hz, «carlfm» 117,9 Hz y «davefx» 124,6 Hz son voces masculinas; «sharvard» sólo es femenina en su segundo hablante, que es el que ya se usaba). Piper para español está agotado: existen nueve voces y están todas evaluadas.
  • Fuera de piper sí apareció una mejor: se sustituye la más floja del catálogo —16 kHz, calidad «low», afinada desde una voz inglesa— por Karen Savage (es-MX), de 22 kHz, con el sexo verificado y licencia que permite uso comercial. Daniela (Argentina) se mantiene, como pediste.
  • Y lo que no se puede, dicho claro: DeepSeek nunca ha publicado un modelo de voz. Qwen sí, y es Apache-2.0, pero no tiene ninguna voz en español —sus cuatro timbres femeninos son chino, chino, japonés y coreano— y además el motor de Tiancode no puede ejecutarlo: haría falta un segundo runtime de inferencia de más de 600 MB para sonar peor que los modelos de 63-114 MB actuales.

Versión 1.0.49

Estable 12 de septiembre de 2026

La bienvenida vuelve tras cada actualización, y «Uso de la PC» por fin controla algo en v1.0.49

  • El asistente de bienvenida vuelve a salir cuando actualizas, no sólo en la primera instalación. Pero no te va a volver a preguntar todo: tras una actualización es una sola pantalla de confirmación con tus respuestas anteriores ya marcadas —leídas de los ajustes reales, no de una copia— y un único botón. En una instalación nueva sigue siendo el asistente completo de dos pasos.
  • El portable ya se comportaba como pedías y no hizo falta tocarlo: guarda su estado en «<carpeta del .exe>\data», así que viaja con el pendrive y sale una vez por pendrive.
  • Dos preguntas nuevas, y las dos gratis: mascota de escritorio y leer las respuestas en voz alta. La de voz usa el ajuste que recurre a las voces de Windows cuando no hay modelo descargado, así que no dispara ninguna descarga — habría deshecho justo lo que se quitó en 1.0.45 y 1.0.46.
  • Cuatro ajustes que no guardaban nada: el asistente escribía «tiancode.sound.enabled», «tiancode.autoupdate.enabled», «tiancode-lang» y «tiancode-theme»; ninguna de las cuatro claves se lee en ningún sitio del programa. Fuera.
  • Había DOS asistentes de bienvenida vivos, con dos puertas distintas: este diálogo, gated por «localStorage», y otro flujo completo en el proceso de escritorio, gated por otra clave. El segundo no se veía nunca porque el primero corre antes y marca su clave — salvo que las dos se desincronizaran. Se elimina, con cuidado: hacía dos cosas más en cada arranque que había que conservar, y una de ellas mantenía la pantalla de carga esperando. Todo medido a 1025x560, que es lo que se pidió: el paso 1 ocupa 311 px de alto contra 528 disponibles, y la pantalla de carga deja 138 px de holgura bajo el emblema. Nada se corta ni se desplaza.
  • «Uso de la PC»: la 1.0.47 añadió la herramienta de ratón y teclado sin ninguna interfaz, y ya la tiene — el panel entero se reconstruyó bajo la misma regla de siempre: si no puede hacerlo, no se pone. Empezando por el permiso del navegador, donde había una trampa que conviene explicar: el valor por defecto del sistema de permisos es «"*": "allow"», así que hoy el agente puede leer y manejar el navegador integrado en cualquier sitio sin preguntar nunca. Una lista de «sitios permitidos» encima de eso habría mostrado dos entradas mientras en realidad estaban todos permitidos. Ahora hay un control de tres valores y elegir «preguntar en cada sitio» escribe la regla base de verdad. Es un cambio de comportamiento: a partir de ahí te preguntará donde antes no lo hacía.
  • Sitios permitidos: listar, añadir y revocar, con dos honestidades escritas en el propio panel. Los «Siempre» que aceptas dentro de una sesión no se guardan en disco, así que no aparecen aquí y se pierden al cerrar; y si la regla general está en «permitir», la lista no cambia nada. También eliges dónde se abren los enlaces: navegador integrado o el del sistema.
  • Cookies del navegador integrado: siempre, o hasta que cierres Tiancode. Sólo dos valores, porque Electron no deja cambiar la partición de un webview una vez ha navegado. Y se limpian al arrancar, no al salir: los manejadores de salida son síncronos y el borrado es asíncrono, así que hacerlo al salir a veces no llegaba a ocurrir.
  • Interruptor maestro del control del ordenador, y guardado fuera del archivo de proyecto: «tiancode.json» es un archivo del repositorio que el propio agente puede reescribir con la herramienta de edición, así que un interruptor que viviera ahí sería editable por aquello que restringe. Junto a él, una lista de ejecutables denegados, persistente, aplicada junto al rechazo de gestores de contraseñas que ya existía. Se compara por nombre de ejecutable: dos programas con el mismo nombre de archivo son indistinguibles y renombrarlo lo esquiva. El panel lo dice.
  • Lo que me negué a poner, y por qué: un interruptor único que cubriera «servidores de desarrollo + navegación + capturas» — las herramientas integradas no pasan por el filtro de permisos, así que nada puede impedir que el agente arranque un dev server; un selector de «navegador preferido» con Chrome — nada aquí controla un navegador externo, y Chrome y Edge rechazan el puerto de depuración sobre el perfil por defecto, así que sólo podría manejar un navegador sin tus sesiones; y «mostrar aplicaciones al terminar» — Tiancode nunca oculta una aplicación, porque el proceso auxiliar no tiene ninguna función de manipulación de ventanas, sólo entrada y lectura. Y se borró «browser.tsx» entero: sus tres interruptores estaban fijados en «activado» con un manejador que sólo mostraba un aviso de éxito. Ni leían ni escribían nada, y el archivo además ya estaba huérfano.
  • Vista de transcripción: un ajuste Normal / Pensando / Detallado en Ajustes → Apariencia, con anulación por sesión desde el menú de la conversación. Sustituye a los tres interruptores sueltos que había: mantenerlos al lado habría sido peor, porque escriben lo mismo y el último que tocaras dejaría al otro mostrando un valor falso. «Detallado» abre además las tarjetas de herramienta que antes no podía abrir ninguna combinación de los interruptores viejos.

Versión 1.0.48

Estable 12 de septiembre de 2026

La vista previa por fin te dice qué pasó, y el asistente de bienvenida cabe en la pantalla en v1.0.48

  • Una compilación fallida no mostraba absolutamente nada: el servidor marcaba el fallo y guardaba hasta 20 errores con archivo y línea — y la interfaz no los leía nunca. Ahora salen en un panel, cada uno como «src/App.tsx:12 — mensaje», y la ubicación es pulsable: te lleva al archivo en la pestaña Código. Con botones para reintentar y para mandárselos al agente.
  • Y encima los etiquetaba mal: un error de compilación se mostraba como «No se pudo cargar {url} — ¿está el servidor arrancado?», cuando el servidor estaba perfectamente. Y el punto de estado se ponía verde cuando no había nada corriendo, con la etiqueta «Fit», que es el control de zoom: verde y «Fit» se leen como «tu app está funcionando».
  • «Starting…» era una palabra sola sobre un panel en blanco durante un minuto: el log del servidor ya se estaba descargando y se tiraba a la basura, porque la consola sólo se dibujaba para proyectos de escritorio. Ahora se ve mientras arranca o compila, y con censura de secretos: ese log es el que imprime tu propio proyecto, así que se enmascaran los valores de variables tipo «*_TOKEN», «*_SECRET» y «*_PASSWORD», las cabeceras «Bearer», las URLs con contraseña y los formatos conocidos («sk-…», «ghp_…», JWT). Se enmascara el valor, nunca la línea, y antes de mostrarlo, así que lo que copias al portapapeles ya va limpio.
  • Los avisos de error estaban en 1,24:1 de contraste: sobre el tema claro que la app usa por defecto — el botón «Reparar con IA», el interruptor del inspector, la franja de error de ejecución. El mínimo accesible es 4,5:1. Se midieron uno a uno los reemplazos en vez de confiar en los tokens: de hecho el par de aviso «warning» tampoco pasa (2,35:1), así que no se usó. Ahora van entre 5,2:1 y 17:1. Además, los tres indicadores de estado tienen ya un hueco de ancho fijo, así que el selector de dispositivo y el zoom dejan de deslizarse cada vez que el agente escribe un archivo; y hay guarda de «prefers-reduced-motion», que este archivo era el único sin ella.
  • El resaltador de la pestaña Código estaba hecho a mano y se equivocaba: un simple «// don't» dejaba las cuatro líneas siguientes pintadas de verde —la comilla abría un literal que nunca se cerraba—, ignoraba los comentarios «#» de Python y regeneraba 192 KB de HTML en cada pulsación de tecla; sus 15 colores fijos fallaban todos el contraste sobre fondo claro. Se sustituye por el visor que este repo ya trae, con shiki, tema por variables CSS, virtualización para archivos grandes y modo diff. Las líneas para conectarlo llevaban tiempo ahí, sin usar.
  • «Renombrar» no renombraba: el backend sólo sabe escribir —no hay mover ni borrar—, así que escribía el contenido en la ruta nueva y dejaba el archivo original. Ahora se llama «Guardar en otra ruta», que es lo que hace. La edición tampoco se pierde: pasa a un botón explícito, con un editor sin HTML inyectado, y el autoguardado a los 500 ms sigue igual; el botón «Guardar» era decorativo —el autoguardado limpiaba el estado antes de que a nadie le diera tiempo a pulsarlo— y ahora dice si está guardando. Fuera, además, 125 líneas de insignias de archivo hechas a mano, con 8 emojis teñidos con clases de color que a un emoji no le hacen nada.
  • El asistente de bienvenida es la mitad de alto: de ~500 px a ~250 px. Importa porque la app lo abre en una ventana de 600 px y el primer paso no cabía: salía con barra de desplazamiento. Y pasa de 3 pasos a 2, porque el paso del proveedor preguntaba un sí/no cuyo «no» cuesta una tecla y cuyo «sí» es la única respuesta útil en una instalación nueva, que no tiene ningún proveedor: ahora se abre siempre, y el asistente lo dice en vez de hacerlo por sorpresa. Los controles a mano se sustituyen por los del sistema de diseño, todo con tokens, con progreso legible de un vistazo y adaptable por consulta de contenedor en vez de por ancho de ventana.
  • Un fallo del asistente que llevaba ahí desde siempre: para decidir si pintar en claro u oscuro comparaba el ajuste «system» con «dark», y eso nunca es cierto. En un equipo con tema oscuro, la primerísima pantalla que ve alguien se pintaba entera en claro sobre un fondo negro — y el fondo que la rodea tenía exactamente el mismo error al revés. Los dos usan ya el token del tema. Y otro más: escribía el modo de color en «data-theme», que guarda el identificador del tema y no el modo, lo que desactivaba las reglas de color de sintaxis hasta el siguiente repintado.
  • La tarjeta de GitHub se salía por arriba del panel: al crecer con la sección de capacidades, un contenedor centrado que desborda recorta por igual arriba y abajo, así que el logo y el título quedaban fuera de la zona visible y no había forma de subir hasta ellos. Ahora se centra sólo cuando cabe, y tiene margen garantizado a cualquier tamaño de ventana.

Versión 1.0.47

Estable 12 de septiembre de 2026

Seguridad: el agente ya no puede leer una página que tú no ves, y ahora sí puede usar tu navegador y tu PC — con permiso — en v1.0.47

  • El agente podía leer y pulsar una página que tú no estabas viendo: la única comprobación para decidir sobre qué frame actuar era «¿es http o https?». No se comparaba el origen. Y la Vista en vivo es un navegador completo: barra de direcciones y cookies persistentes. Al arrancar un dev server local, la vista nativa se ocultaba sin cambiar de página. La secuencia real: navegas a un sitio donde tienes la sesión iniciada, arrancas tu proyecto, y el modelo recibía la URL, el título, 4.000 caracteres de texto visible y todos los elementos interactivos de esa página oculta con tu sesión iniciada — y podía pulsarla. Ahora manda el origen esperado: si no coincide, no hay superficie; y una vista oculta se manda a about:blank en vez de quedarse aparcada en tu sitio.
  • Ninguna de las dos tools de vista previa pedía permiso: leer y pulsar una página viva estaba menos vigilado que «glob». Ahora piden permiso nombrando el origen concreto, así que un «sí» para este proyecto no es un «sí» para la siguiente página que se abra.
  • Aceptar una captura inofensiva concedía la pantalla completa para siempre: la tool de captura pasaba «always» con un patrón comodín, y el sistema de permisos apunta una regla por patrón: aprobar una captura de ventana escribía una regla que también valía para la pantalla entera.
  • Un clic del modelo podía abrir tu navegador real en cualquier URL: «navigate» sí estaba bloqueado al origen, pero un clic sobre un enlace no: un enlace con target «_blank» terminaba en shell.openExternal. Ahora se deniega mientras hay una acción del agente en curso.
  • «Uso del navegador», ahora deliberado y por sitio: el navegador integrado ya era alcanzable por el agente — por accidente, como último candidato del árbol de frames y sin permiso. Eso se acabó, y en su lugar hay algo explícito: las tools aceptan la superficie «browser», preguntan al navegador qué página tiene abierta y piden permiso citando ese sitio antes de tocarlo. Sesión tuya, permiso por sitio. Sobre el navegador externo la respuesta honesta es que no se puede como esperarías: Chrome 153 y Edge 153 rechazan los dos «--remote-debugging-port» sobre el perfil por defecto, así que sólo se podría automatizar un perfil desechable y sin tus sesiones, que es justo lo que le quita el sentido. Por eso el objetivo es el navegador integrado.
  • «Uso del computador» — nuevo, y real: una tool «computer» que mueve el ratón y escribe de verdad en Windows: move, click, type, key, scroll, más leer la posición del cursor y la ventana en primer plano. Sin dependencias nuevas y sin addon nativo: un proceso PowerShell persistente con user32, 0,05 ms por acción frente a 310 ms si se lanzara uno por acción.
  • Las protecciones son la función, no un extra, y se aplican en el proceso principal: rechaza las ventanas elevadas, porque Windows descarta la entrada sintética hacia un proceso con más privilegios devolviendo éxito y el agente creería haber hecho clic; rechaza su propia ventana, para que no pueda pulsar los botones de su propio diálogo de permiso; parte de una lista de apps permitidas vacía, y como ese diálogo nativo roba el foco, vuelve a leer la ventana activa después y no ejecuta si cambió; hay un indicador siempre visible con botón de parada y un atajo global, que al parar suelta los modificadores, mata el proceso y olvida la lista; y caduca sola a los 2 minutos de inactividad. El permiso usa un patrón por acción, así que aprobar «scroll» para siempre nunca se convierte en aprobar «type» para siempre. Es sólo Windows en esta v1, y lo dice explícitamente en macOS y Linux en vez de fallar raro.
  • Ajustes de transcripción, al estilo Claude Code: tamaño del texto (pequeño / medio / grande) y ancho de la transcripción (estrecho / medio / ancho), en Ajustes → Apariencia. Dos honestidades en la letra pequeña: el ancho sólo aplica en ventanas de 768 px o más, y lo dice; y para que «grande» no fuera un ajuste roto se escalaron los 30 tamaños de fuente fijos de los mensajes. «Medio» reproduce exactamente lo de hoy, así que quien no toque nada no ve ningún cambio. De paso se recupera un ajuste «fontSize» que existía sin que nadie lo leyera, en vez de dejar dos controles de tamaño.

Versión 1.0.46

Estable 12 de septiembre de 2026

El botón de optimizar usa tu modelo, el micrófono deja de descargar a tus espaldas y GitHub deja de inventarse sus permisos en v1.0.46

  • El botón de mejorar el prompt usa el modelo y el esfuerzo que elegiste: tu nivel de razonamiento se descartaba en tres sitios a la vez. El payload no tenía campo para la variante, el botón no la enviaba y el handler forzaba el modo pequeño, que además de descartar la variante sustituye las opciones del proveedor por las de menor esfuerzo del modelo. Elegir «Max» en la barra del prompt no cambiaba nada aquí. Ahora la variante viaja, y ese modo pequeño sólo se aplica cuando el servidor eligió el modelo por su cuenta: si lo elegiste tú, se respeta tu esfuerzo.
  • Un modelo que no resolvía te daba texto de otro modelo sin avisar: la resolución inicial del modelo estaba envuelta en un catch que se tragaba el error y caía al modelo pequeño de otro proveedor. Ahora, si nombraste un modelo y no está disponible aquí, se te dice, con un atajo para elegir otro.
  • «Tu clave fue rechazada» y «el modelo no dijo nada» eran el mismo mensaje: las cabeceras 200 se envían antes de llamar al modelo, así que un fallo a mitad de stream sólo podía cerrar el cuerpo. El backend añade ahora un centinela con el motivo y el cliente lo lee: credenciales, límite de peticiones, saldo agotado y «no produjo nada» son cuatro mensajes distintos.
  • El micrófono ya transcribía; lo que estaba mal era todo lo de alrededor: el botón no era un adorno. Transcribe en local, sin conexión y en español, con Whisper vía sherpa-onnx. Pero abrir una sesión disparaba una descarga de 146 MB en el montaje, sin consentimiento, sin barra de progreso y sin ajuste que lo impidiera, justo después de que 1.0.45 quitara 644 MB de descargas de voces no pedidas. Ahora se pide en el primer clic, diciendo el tamaño, y el progreso se ve en el botón, usando un canal IPC que ya existía y nadie escuchaba.
  • El tamaño declarado estaba mal: el código decía 100 MB y un comentario 150; en disco son 146. Ahora se calcula a partir de los bytes reales, así que la cifra que aceptas no puede desviarse.
  • Dictar borraba lo que habías escrito y congelaba la app 1–2 segundos: reemplazaba el compositor entero, con las imágenes adjuntas dentro; ahora el dictado se añade al final y los adjuntos se quedan. La decodificación era síncrona en el proceso principal y pasa a un proceso aparte, con el mismo patrón que ya usaban las voces; si ese proceso muere, el micrófono se suelta en vez de quedarse escuchando para siempre.
  • Cortaba en silencio a los 64 segundos y sólo entendía dos idiomas: ahora se detiene a la vista y te lo dice. Y aunque el modelo cubre 99 idiomas, japonés, coreano, ruso y chino se decodificaban como inglés. Además, el campo del diccionario de dictado era ilegible en el tema claro —texto gris sobre gris, con un contraste de 1,1:1— y los dos ajustes de atajo que nadie leía, con el atajo real fijado en el código, se borran.
  • Un texto de privacidad que no era cierto: decía que «tus últimas 20 grabaciones se guardan en este dispositivo». No se guarda ningún audio, sólo el texto. Corregido en los siete idiomas.
  • La cabecera «Vista previa / Código» se cortaba a media palabra: los saltos se disparaban a la vez y contra una caja que no crecía: al llegar a cierto ancho aparecían los atajos, se ensanchaba el chip de carpeta y salía la etiqueta «Sandbox», los tres a la vez. Y la pestaña no se encogía, porque el contenedor central tenía base 0 y nunca entraba en el reparto de espacio, así que la pastilla quedaba partida, sin puntos suspensivos y sin poder pulsar el trozo cortado. Ahora hay una escalera real de cinco pasos, las pestañas se reducen a icono en los anchos pequeños conservando su nombre accesible, y la tira de cuatro emojis de dispositivo pasa a ser un menú: recupera unos 100 px y gana el estado seleccionado que antes se señalaba con un color aplicado a un emoji.
  • GitHub: centrado de verdad, legible en el tema claro y con lo que de verdad te da conectar: la tarjeta se quedaba arriba de un panel alto porque nada la centraba en vertical, y medía 1040 px envolviendo una columna de 480; el logo y el título estaban fijados a blanco sobre un panel blanco, así que en el tema claro eran invisibles. Todo el panel pasa a tokens. Y ahora explica qué te da conectar, con seis capacidades verificadas contra el código, empezando por la más útil: clonar un repositorio privado y abrirlo como proyecto. No se menciona nada de issues, pull requests, forks ni Actions, porque ese token no los usa.
  • Los permisos y los contadores de GitHub dejan de inventarse, y se tapa una fuga de credenciales: la insignia mostraba «repo · read:user» fijo bajo el título «permisos activos del token» mientras nadie leía los permisos reales: ahora se lee la cabecera «x-oauth-scopes» y, cuando no llega —tokens de grano fino—, se dice en vez de inventar un juego. Los contadores eran los de los primeros 30 repositorios presentados como totales; ahora se pagina de verdad y, si se alcanza el tope, se muestra «N+» en lugar de un total falso. Y ante un fallo de arranque de git —git ausente, timeout— la línea de comandos completa acababa pintada en el aviso de error, y ahí viaja el token en base64, que es codificación, no cifrado: se redacta ahora en el único punto por el que pasan todas.

Versión 1.0.45

Estable 12 de septiembre de 2026

Imágenes que llegan al modelo, paneles que dejan de prometer lo que no hacen y seis voces en español en v1.0.45

  • Las imágenes del chat llegan al modelo: tres causas distintas, las tres corregidas. El renderer enviaba una URL «blob:» o un data URL vacío en lugar del archivo real; un único adjunto con error tumbaba el prompt entero; y el redimensionador estaba muerto en todas las builds empaquetadas porque el código escribía el nombre de variable equivocado, así que ninguna imagen se redimensionaba nunca y una captura 4K salía al proveedor a tamaño completo. De paso, el filtro de capacidades ya consulta la bandera «attachment» del catálogo: 175 modelos que sí leen imágenes decían que no.
  • «UnsupportedContentType» al actualizar con un proyecto abierto: el aviso era literalmente el nombre interno del error y ahora se traduce a prosa en los siete idiomas; reintentar funciona porque se mira la causa real y no sólo el texto; la parte REST se reconecta sola cuando el servidor vuelve, en vez de rendirse al primer intento; y el instalador ya no deja una ventana viva apuntando a un puerto muerto si la instalación falla.
  • «Inteligencia», de 14 controles con 4 en funcionamiento a 9 que funcionan: se cablean de verdad el destilador de salida de bash, la reparación de tool-calls, el cortacircuitos de bucles infinitos, la extracción web limpia y la creación de skills. Se borran cuatro que no existían detrás del control: el visor de diffs Monaco, la búsqueda de sesiones FTS5, el presupuesto de razonamiento duplicado y el selector de sandbox host/docker/e2b, que prometía aislar los comandos en un contenedor o una micro-VM mientras siempre se ejecutaban en tu máquina.
  • «Uso de la PC», fuera 11 controles decorativos y dentro dos capacidades reales: se retira «Zona Segura», que venía activada y decía bloquear clics en gestores de contraseñas, banca online y ventanas elevadas de Administrador sin bloquear nada, junto con el OCR, el auto-foco de ventanas ajenas y el resto de conmutadores que sólo escribían en el almacenamiento local. A cambio el panel gana una herramienta de captura de pantalla y otra de portapapeles, cada una con su permiso y la del portapapeles preguntando siempre.
  • El botón de mejorar el prompt deja de borrar tus imágenes: reemplazaba el prompt entero por un único fragmento de texto en cada trozo del stream, así que los adjuntos morían en el primero. También desaparece el «optimizador local» de 1.017 líneas —425 de ellas un diccionario que cambiaba tu vocabulario— que se presentaba con un tecleo falso como si hubiera respondido el modelo: ahora, si el modelo no responde, tu texto se queda como lo escribiste y se te dice. Además se puede cancelar mientras trabaja y el deshacer sobrevive a que sigas escribiendo.
  • Voces: de 27 tarjetas a 6, todas femeninas y en español: fuera las inglesas de Kokoro y las de Fish, que sin clave de API no podían hablar, y cinco de las de Piper cuya licencia, género o cadena de atribución no se pudo verificar. Son unos 644 MB menos de descarga por usuario, más un barrido que borra los modelos ya descargados que salen del catálogo.
  • Mascotas rediseñadas: las 13 en una sola cuadrícula en vez de paginadas de 10 en 10, con la descripción y el rasgo completos en vez de cortados a media frase, especie y rasgo traducidos a los siete idiomas y una tira que muestra el estado real de la mascota del escritorio.
  • Modelos Locales rediseñados: adoptan la cabecera estándar en vez de ser una tarjeta dentro de otra tarjeta y cambian los colores fijos por los tokens del tema, así que el panel ya no se ve oscuro sobre un tema claro; su único punto de ruptura pasa a ser el ancho del panel y no el de la ventana. Fuera una insignia de «modelo verificado» que no verificaba nada y una etiqueta de arquitectura que se la inventaba a partir del nombre del modelo.
  • El panel de Skills vuelve a cargar: llamaba a un método del SDK que no existe, el error se tragaba en silencio y caía a un catálogo de relleno escrito a mano. Ahora usa el endpoint real, con un test que lo respalda, y se incorpora la skill opcional «i-have-adhd», que nunca se autoselecciona: sólo se activa cuando tú la invocas.

Versión 1.0.44

Estable 12 de septiembre de 2026

Un bloqueo real de la base de datos, un lint que vuelve a servir y un Sandbox que se ve en v1.0.44

  • La base de datos congelaba la app cinco segundos y nadie lo sabía: bun:sqlite es síncrono, así que dos inicializaciones del mismo archivo competían por el mismo cerrojo y bloqueaban el bucle de eventos entero durante los cinco segundos de espera antes de fallar. Medido en este repositorio: 5,8 s con dos compilaciones concurrentes, 52 ms con el cerrojo por ruta que se añade ahora. De paso, la suite del backend pasa de no terminar en 40 minutos a terminar en 12,6.
  • Los tests que fallaban desde siempre estaban obsoletos, no rotos: DESIGN.md es un literal del código, la lista de agentes integrados creció en 18 entradas y el coordinador de sesiones conserva a propósito el «wake» pendiente al interrumpir. Cada test afirma ahora lo que hace producción.
  • La vista previa deja de compilar el proyecto entero en cada tecla: la condición era «¿hay script de build?»; ahora es «¿Tiancode sirve esto desde una carpeta de salida?». Una vista JSX transpila por petición y un dev server recarga solo, así que compilar ahí eran segundos de trabajo que nadie consumía; un proyecto Electron servido desde dist/ sí sigue compilando.
  • El vigilante de archivos usa el watcher nativo: poda node_modules y la salida de compilación en el sistema operativo en vez de filtrar después, y vuelve a fs.watch si su binding no está disponible. Además el catch mudo ahora escribe en el log: un ENOSPC de inotify en Linux mataba la recarga en vivo para el resto de la sesión sin dejar rastro.
  • Una carpeta sin git ya no dice que su raíz es «/»: en Windows eso era la raíz del disco, así que la resolución de las @menciones, la carpeta raíz que se le pasa al prompt y el destino .tiancode/agents del CLI apuntaban ahí. Las listas de sesión se acotan además por carpeta para la fila de proyecto «global» compartida.
  • Skills pierde su segundo catálogo: unas 340 líneas de resúmenes en español escritos a mano que tapaban el SKILL.md real del servidor, más diez avisos de conflicto que se mostraban en español a todos los idiomas. Un esqueleto cubre la carga y «no hay skills» sólo se dice cuando de verdad se agotaron los reintentos.
  • El lint vuelve a servir: de 5.145 avisos y 0 errores a 882 y 0, con cinco reglas en nivel error que rompen el gate ante cualquier caso nuevo. Las 15 reglas desactivadas llevan justificación y un sitio real de ejemplo.
  • El Sandbox por fin enseña la app de escritorio en vez de describirla: un espejo de su ventana real de Windows, emparejada recorriendo el árbol de procesos hasta su identificador, con un selector cuando la evidencia es débil. Es un espejo, no un embebido —Electron no puede reparentar ni escribir en una ventana ajena— así que las herramientas de inspección lo dicen en vez de fallar de forma opaca, y ya no informan del valor de un campo de contraseña. 47 tests nuevos; frontend 916 tests, 0 fallos.

Versión 1.0.43

Estable 11 de septiembre de 2026

El agente puede usar el Sandbox, el modo 2x deja de pensar menos y «.tiancode» deja de aparecer en la raíz del disco en v1.0.43

  • El agente maneja la app del Sandbox, no sólo la compila: hasta ahora sus únicas herramientas de vista previa eran arrancar el servidor y leer logs. Dos herramientas nuevas, «preview_inspect» (URL y título reales, texto visible, todos los elementos con los que se puede interactuar y los errores de la consola) y «preview_interact» (clic, rellenar, seleccionar, teclas, scroll y navegación), recorren la pantalla como lo haría el usuario y devuelven el estado después de cada acción. Si la Vista en vivo está cerrada, la herramienta lo dice en vez de quedarse colgada.
  • «Compilando dist…» que no paraba nunca: el vigilante de archivos descartaba «dist/», pero Windows anuncia el cambio del directorio como «dist» a secas, sin barra, así que cada compilación se re-armaba con su propia salida. Los descartes se comparan ahora por segmento de ruta a cualquier profundidad, y la etiqueta muestra el nombre del archivo en vez de una ruta cortada a media palabra.
  • «.tiancode» aparecía en la raíz del disco: una carpeta sin repositorio resolvía su proyecto a la raíz del disco, así que MEMORY.md, la instalación de plugins y las skills de proyecto acababan en lo alto de C:. Una carpeta sin git es ahora su propio proyecto, y ninguna ruta de la app puede escribir en una raíz de sistema.
  • Tras actualizar, los modelos y proveedores ya aparecen sin reiniciar: si el servidor aún se estaba levantando al arrancar, el catálogo vacío se quedaba cacheado para siempre. Ahora se vuelve a pedir a los 0,8 s, 2 s y 5 s y se para en cuanto llega algo; el panel de Skills hace lo mismo y además se refresca al volver a la pestaña.
  • Conectar y desconectar un proveedor es inmediato: conectar esperaba a reescribir la configuración, desechar el runtime y recargar el catálogo antes de cerrar el diálogo. Ahora el diálogo se cierra y la notificación sale en el mismo instante; al desconectar, la fila y todos los modelos de ese proveedor desaparecen en el mismo fotograma.
  • El modo ⚡ 2x ya no baja el nivel de razonamiento: bajaba el modelo a su variante más barata, así que elegir «Max» y activar 2x te daba en silencio un modelo más superficial del que habías pedido. El esfuerzo de razonamiento es del usuario; 2x sólo quita preámbulo y relleno, y la directiva dice explícitamente que mantenga la profundidad de análisis.
  • Ollama y LM Studio salen de Proveedores: conectarlos allí sólo apuntaba a un endpoint HTTP local que había que levantar aparte; el camino real para modelos locales es el motor integrado (Tiancode Native / GGUF) en Modelos Locales.
  • Responsivo de verdad: los paneles de Ajustes (GitHub, MCP, Modelos Locales, Voces, filas de proveedores y ajustes, Skills) consultaban el ancho de la ventana aunque viven dentro del diálogo, así que una ventana ancha con un panel estrecho mantenía la maqueta de escritorio metida a presión. Todos pasan a consultar el ancho de su propio contenedor.
  • Menos ruido de fondo: el sondeo del estado de la vista previa va con lo que ocurre (0,9 s arrancando o compilando, 2 s en marcha, 6 s parado) y los logs sólo se piden cuando la consola del Sandbox está a la vista o hay una compilación en curso, en lugar de traerse 500 líneas cada 2 s para nada. 34 tests nuevos; frontend 899 tests, 0 fallos.

Versión 1.0.42

Estable 11 de septiembre de 2026

Vista previa en vivo: zoom real, recarga sin parpadeo y cabecera del Sandbox en v1.0.42

  • Zoom real en la vista previa: con un preset grande el panel se quedaba al ~54 % y «+» no hacía nada. Ahora «+» y «−» recorren escalones del 25 % al 400 %, el porcentaje fija el 100 %, «Ajustar» vuelve al ajuste automático y, si no cabe, la vista se desplaza en vez de recortarse.
  • Botón «Fluido» de la cabecera: no respondía cuando la preferencia guardada era un preset de escritorio; ahora cada pulsación cuenta y la cabecera refleja el preset real.
  • Ver al agente construir paso a paso: los cambios se agrupan en 250 ms, el documento nuevo carga en un segundo iframe oculto y se intercambia al terminar con el scroll conservado: sin pantalla en blanco ni capa «Iniciando…» entre dos escrituras.
  • Una recarga por cambio: el cliente de recarga de las vistas estáticas y JSX delega en el Sandbox cuando este lo hospeda, en lugar de recargarse por su cuenta además de la recarga del panel.
  • Cabecera del Sandbox: se adapta al ancho del propio panel; atajos y botones de dispositivo se ocultan cuando no caben, el nombre de la carpeta cede espacio y las pestañas «Vista previa / Código» nunca se superponen.

Versión 1.0.41

Estable 11 de septiembre de 2026

Ajustes fluidos, Conexiones reales, base de datos protegida y rediseño de Skills, Sub-agentes y MCP en v1.0.41

  • Servidor local que no conectaba: la copia de seguridad diaria copiaba la base de datos mientras el servidor escribía y la dejaba en modo solo lectura. Ahora se hace con instantáneas VACUUM INTO, el servidor comprueba al arrancar que puede escribir y compacta la base cuando acumula espacio libre.
  • Ajustes fluidos: el diálogo y cada panel forzaban capas de GPU, varias tablas usaban desenfoque de fondo y había animaciones permanentes; con 12 paneles montados, cada cambio de pestaña recomponía todo. Se retiran.
  • Conexiones reales: Telegram, Discord, Slack y Webhooks se configuran y prueban contra el servidor. Los tokens viven en el almacén de credenciales, cada sesión terminada envía un resumen, los webhooks van firmados con HMAC-SHA256 y el bot de Telegram abre sesiones desde el chat. WhatsApp se retira hasta contar con una integración real.
  • Skills, Sub-agentes y MCP rediseñados: barra de acciones y filtros con recuentos, descripciones a dos líneas, selector de alcance como control segmentado, pestañas MCP sin recortes, ruta de los plugins locales una sola vez y 105 traducciones nuevas en los 7 idiomas.
  • Voces: catálogo completo con las descargadas primero, sin doble descarga ni velocidad 120 %, clave de Fish Audio fuera del binario, velocidad natural por defecto en Kokoro y Piper y el probador de micrófono libera el micro al cambiar de pestaña.
  • GitHub: la rama actual se lee del control de versiones, «Sincronizar» espera a todas las peticiones y los fallos de commit, push y pull muestran la salida real de git.
  • Inteligencia: los ajustes de memoria y guardrails llegan por fin al servidor por HTTP; el esquema V1 los descartaba en silencio. Se retira la pestaña «Ecosistema IA», cuyos interruptores no tenían efecto.

Versión 1.0.40

Estable 10 de septiembre de 2026

Auditoría funcional completa: modo 2x real, bienvenida, vista previa en vivo y voces reparadas en v1.0.40

  • Modo ⚡ 2x real: antes sólo añadía una frase al system prompt. Ahora baja el modelo activo a su nivel de razonamiento más barato sólo para esa petición, y tu variante guardada vuelve al desactivarlo.
  • Asistente de Bienvenida completo: anunciaba «Paso 1 de 3» pero sólo existía un paso. Ya están los tres, con Atrás/Omitir, teclado y los 7 idiomas.
  • Vista previa «Compilando» en vivo: verás qué archivo se está recompilando y cuánto tardó la última build, con recarga automática al terminar.
  • Voces reparadas: «Paloma» y «Tania» apuntaban a repositorios de HuggingFace inexistentes y su descarga fallaba siempre. Sustituidas por voces verificadas, con comprobación automática en cada release.
  • Panel Intelligence conectado: sus ajustes se guardaban sólo en el navegador y nunca llegaban al agente. Memoria de usuario/proyecto y guardrails ya gobiernan de verdad el comportamiento.
  • Seguridad: guardar Ajustes ya no reescribe tu configuración con las claves resueltas en texto plano, y Cloudflare AI Gateway ha dejado de reenviar tu token de Cloudflare a OpenAI, Anthropic o Google.
  • Proveedores: inicio de sesión con Microsoft Entra ID en Azure, nuevo plugin de Cerebras, cabecera de residencia de Codex y respaldo HTTP inmediato cuando un WebSocket de OpenAI rechaza el cuerpo.
  • Interfaz: tablas de sub-agentes y MCP reescritas mobile-first: se acabó el desplazamiento horizontal entre 360 y 1300 px. Más 53 traducciones que faltaban en los 7 idiomas.

Versión 1.0.39

Estable 6 de septiembre de 2026

Conexiones Gateway, Resiliencia OpenClaw, Memoria Hermes y OpenDesign UI en v1.0.39

  • Conexiones (Messaging & API Gateway): Panel unificado de mensajería para interactuar con tus agentes en movilidad. Vinculación interactiva de WhatsApp mediante código criptográfico de seguridad (TIAN-XXXX-WAPP), integración nativa de Telegram Bot con emparejamiento por token y test ping en vivo, automatización de canales Discord y Slack mediante webhooks entrantes, y receptor de Webhooks personalizados con verificación criptográfica de firmas HMAC-SHA256.
  • Resiliencia OpenClaw (Zero-Crash Tool Calling): Motor de reparación sintáctica automática de llamadas a herramientas (tool-call-repair) que detecta y rescata JSONs truncados, llaves desbalanceadas o comillas sin escapar producidas por LLMs. Incluye detector de bucles infinitos basado en hashes SHA-256 de argumentos con circuit breaker automático a 25 llamadas repetitivas.
  • Inteligencia y Memoria Hermes Agent: Búsqueda histórica profunda indexada en SQLite (session_search) para que los agentes consulten código, comandos y arquitecturas resueltas en sesiones pasadas; algoritmo de compactación Head/Tail que preserva intactos el objetivo raíz y la conversación reciente podando salidas ruidosas intermedias; estándares de autoría para auto-aprendizaje y scrubber streaming de etiquetas <think> para modelos de razonamiento (DeepSeek R1, Qwen QwQ).
  • OpenDesign & Claude Design UI Engine: Skills anti-clichés de IA que eliminan gradientes genéricos y componentes inflados. Incluye calibrador interactivo de gusto previo con 3 diales (DESIGN_VARIANCE, MOTION_INTENSITY, VISUAL_DENSITY), micro-interacciones táctiles inspiradas en Emil Kowalski (física de resortes y estados activos), disciplina de 3 pesos tipográficos y 4 Presets Canónicos (Linear Dark, Claude Editorial, Vercel Precision, Stripe Modern).
  • Sandbox Keep-Alive & Inspector DOM: Retención al 100% de estado, valores en inputs de formulario y posición de scroll al alternar entre el editor de código y la vista previa sin destruir ni recargar el iframe; Inspector DOM interactivo en tiempo real con cotas en píxeles (Ctrl+Alt+I) y detector automático de pantalla blanca con botón 1-click "Reparar con Tiancode".

Versión 1.0.29

Estable 5 de septiembre de 2026

AgentShield, Sub-Agentes de Élite ECC y Soporte GPT-6 en v1.0.29

  • AgentShield Security Engine: Escudo proactivo contra comandos destructivos en terminal (rm -rf /, formateo o manipulación del registro), filtrado y bloqueo estricto de fuga de secretos (claves privadas SSH, tokens de nube, .env) y ejecución remota no validada (curl | sh).
  • Sub-Agentes de Élite inspirados en ECC: Presets nativos especializados: 🧪 TDD Specialist (ciclo Red-Green-Refactor estricto), 🔍 Code Reviewer (auditoría en contexto fresco), 🛡️ AgentShield Sentinel (seguridad de dependencias y código) y 🔧 Build Repair Specialist (reparación quirúrgica de TypeScript, linters y CI/CD).
  • Soporte para Modelos GPT de Versión Entera y GPT-6 Astra (Paridad OpenCode v1.18.29): Reconocimiento de modelos con versiones enteras (gpt-6, gpt-6-astra) en la integración OAuth de OpenAI/Codex para suscriptores Plus/Pro.

Versión 1.0.23

Rendimiento 5 de septiembre de 2026

Motor Nativo de Reducción Inteligente de Tokens CLI (Estilo RTK)

  • Ahorro del 60% al 90% en Tokens CLI: Arquitectura OutputDistiller inspirada en RTK. Destilación automática de salidas ruidosas en comandos como git status, git diff, npm test, vitest, cargo test y compiladores.
  • Modo Failure Focus & Fail-Safe: Aislamiento automático de fallos en pruebas unitarias ignorando cientos de tests exitosos y tracebacks internos de node_modules/. En comandos con error no reconocidos, se preserva íntegramente la salida para garantizar el diagnóstico del agente.
  • Arquitectura Dual-Output: El modelo de IA recibe una salida limpia y compacta a la máxima velocidad, mientras el usuario conserva el registro de ejecución completo en el panel estructurado.

Versión 1.0.22

Local-First 5 de septiembre de 2026

Jerarquía Swarm RLM, Whisper Offline y Hugging Face Hub Autónomo

  • Árbol de Recursión RLM (Swarm Hierarchy Tree): Visualización jerárquica interactiva de orquestación multi-agente en niveles 0 y 1 con descomposición recursiva de tareas complejas en tiempo real.
  • Dictado por Voz Whisper Nativo: Detección automática de micrófonos conectados en la PC y transcripción por voz local sin bloqueos ni dependencias de red externas.
  • Hugging Face Local Models Hub Autónomo: Motor de inferencia integrado de Tiancode que ejecuta modelos GGUF directamente en GPU/CPU sin requerir herramientas externas como Ollama o LM Studio.

Versión 1.0.1

Estable 3 de septiembre de 2026

Novedades y Correcciones en v1.0.1

  • Sandbox aislado sin ventanas de escritorio: los proyectos híbridos o de escritorio (Electron/Tauri) priorizan scripts web (como dev:vite) y bloquean la apertura de ventanas nativas en el host, ejecutándose de forma aislada y segura dentro de la Vista en vivo de Tiancode.
  • Resiliencia OpenCode v1.18.27: timeouts de streaming de 5 minutos, soporte para opt-out de blockBinding en Anthropic, acotado a Claude 5.1+ y cancelación segura de lectores SSE.
  • Asistente de bienvenida estilo Windows 11: diseño renovado con Mica, Fluent Design, tarjetas de configuración y controles interactivos modernos.
  • Tipografía oficial en el arranque: pantalla de carga con el nuevo logo "T i a n c o d e" Wordmark oficial idéntico al de la vista de chat.
  • Blindaje CSWSH en terminal PTY: validación estricta de tickets y protección ante orígenes cruzados en WebSockets.

Versión 1.0.0

Estable 2 de septiembre de 2026

Seguridad y correcciones en v1.0.0

  • Auditoría de seguridad integral: el panel de vista en vivo ya no es legible desde webs externas, tus claves de API no salen por HTTP en claro y las claves del servidor dejan de filtrarse a procesos de proyectos clonados.
  • MCPs de proyectos bajo aprobación: los servidores MCP declarados por un repositorio clonado arrancan desactivados hasta que los actives tú; además los presets del catálogo usan paquetes npm reales verificados.
  • Terminal blindado: las conexiones del terminal integrado usan tickets de un solo uso; la contraseña del servidor ya no queda registrada en los logs de red.

Novedades

  • GitHub integrado: conecta tu cuenta, clona o crea repositorios y haz commit, push y pull sin salir de la app.
  • Servidores MCP: 8 presets locales y un catálogo Discover con 15 servidores populares, con estado en vivo.
  • Plugins: catálogo de apps npm (@biomejs/biome, @octokit/rest…) y plugins locales (env-guard, commit-helper…).
  • Voces TTS: lee las respuestas en voz alta con el modelo kokoro (voces femeninas primero) y dicta con el micrófono.
  • 120+ skills de ingeniería: frontend-design, interview-me, writing-plans, planning-and-task-breakdown y más, activables una a una.
  • Bandeja del sistema: minimiza Tiancode a la bandeja y vuelve a tu conversación con un clic.
  • Onboarding guiado: disclaimer, tema e idioma en el primer arranque.
  • Identidad renovada: nuevo logo del robot con tres ojos y boca, en blanco y negro.
  • Modelos locales GGUF: pestaña con buscador, quantizaciones Q2_K, Q3_K_L, Q4_K_M, Q6_K, Q8_0, IQ* y F16, con el tamaño exacto de cada archivo.
  • Indicador de compatibilidad verde/azul/rojo según tu RAM, panel de Información del sistema y descargas reanudables.
  • Sub-agentes personalizables: modo primary o subagente, modelo, color, herramientas y system prompt propios.

Mejoras

  • Distribución: instalador NSIS (Tiancode.exe, ~345 MB) y portable (Tiancode-portable.exe, ~345 MB) para Windows 10 y 11.
  • Terminal integrada más rápida, con resaltado de sintaxis.
  • Multi-proveedor: usa OpenAI, Anthropic y modelos locales en paralelo.
  • Atajos de teclado personalizables para las acciones más frecuentes.
  • Suite e2e con 216 escenarios HTTP probados sobre el backend.

Correcciones

  • Corregido un cierre inesperado al cambiar de proveedor con una conversación abierta.
  • Reducido el uso de memoria al trabajar con proyectos grandes.
  • Descargas de modelos reanudables si la conexión se interrumpe.