v0.20.2

Hermes Agent v0.20.2


Overview

v0.20.2 — The Connections Patch. Publicado el 16 de agosto de 2026. ~397 PR fusionados · 967 commits · 1.279 archivos modificados (+128.522 / −7.622) desde v0.20.1.

Tres días después de v0.20.1, Hermes publica el cambio estructural que la app de escritorio necesitaba desde hace años: el modelo de conexiones deja de ser «una conexión global con overrides por profile» y se convierte en un registro real. El escritorio ahora puede albergar cualquier número de fuentes de agente con nombre — runtime local, gateways remotos, Hermes Cloud, hosts SSH — mientras MCP incorpora instalaciones de un clic vía hermes:// y comprobaciones de salud en segundo plano, y la CLI por fin recuerda qué sesión pertenece a cada terminal.

Es un parche, así que las notas oficiales son breves y la documentación curada completa llega con v0.21.0. Esta página cubre las partes más valiosas de esta ventana.


Destacados

1. Registro multi-conexión en el escritorio

Settings → Connections es ahora un registro real de fuentes de agente con nombre: locales, gateways remotos (LAN/Tailscale/público), Hermes Cloud y hosts SSH, todo persistido en un solo lugar con etiquetas únicas sin distinguir mayúsculas. El enrutamiento del pool de backends se clavea por (connection, profile), y un roster de agentes multi-fuente + SDK aparece en el escritorio. El descubrimiento viene después: una píldora «Connect another Hermes gateway…» en la barra de profiles y una entrada ⌘K para Settings → Connections.

Los proveedores de MCP y su documentación pueden ofrecer un botón «Add to Hermes» vía hermes://mcp/install?name=NAME&config=B64. El enlace se valida estrictamente (nombre ^[A-Za-z0-9._-]{1,64}$, config JSON en base64url) y muestra un diálogo de confirmación explícito antes de escribir nada en la configuración.

3. Comprobaciones de salud MCP en segundo plano

Al conectar el gateway y cada 30 minutos, el escritorio barre los servidores MCP HTTP/SSE habilitados del profile activo. Un servidor que pasa a needs-auth (o error) dispara un aviso dentro de la app — «GitHub MCP needs re-authentication» — con una acción Sign in que hace deep-link al panel de configuración del servidor y lo hace parpadear. Los servidores stdio quedan excluidos porque cada sondeo es un spawn real.

4. Breadcrumbs de terminal: -c por terminal

Un hermes -c / --continue a secas ahora reanuda la sesión que pertenece a esta terminal (tty, panel de tmux, ventana de kitty, panel de wezterm, panel de Zellij, Windows Terminal) en lugar de la sesión más reciente a nivel global. Los breadcrumbs viven en $HERMES_HOME/terminal-sessions/, se escriben de forma atómica y caducan a los 30 días.

5. chat -c falla ruidosamente + --create-if-missing

hermes chat -c "<title>" sin coincidencias ahora imprime en stderr y sale con código 1 (se acabó el no-op silencioso). La nueva bandera --create-if-missing crea una sesión nueva con título y reanuda en ella — una primitiva determinista de «envía a este hilo con nombre, créalo si hace falta» para scripts y plugins.

6. El upscaling de imágenes es opt-in

El cambio del 8 de agosto que encadenaba el Clarity Upscaler tras cada generación FAL/Krea de menos de 2MP (degradando visiblemente el renderizado de texto/CJK de GPT Image 2, la tipografía de Ideogram y los rostros fotorrealistas) queda revertido: el upscaling está desactivado por defecto y solo se ejecuta con un upscale: true explícito.

7. Toda herramienta es interrumpible

El ejecutor secuencial de herramientas ahora consulta la bandera de interrupción cada segundo y abandona una herramienta en marcha en un período de gracia de 3 segundos; image_generate además aborta su espera FAL en curso de forma cooperativa. Ctrl+C termina las herramientas en lugar de retener el turno durante ~40 s.

Mejoras

  • Protocolo de teclado de Kitty restaurado (CSI >1u) con la tabla de alias de teclas extendidas de 294 entradas completada — los usuarios de kitty recuperan Ctrl+C y las combinaciones funcionales.
  • /status ya no empareja un modelo con el provider/URL base de una ruta de fallback distinta; las rutas de modelo persistidas se mantienen coherentes.
  • Las claves de API de Bedrock se entregan a través de un provider con nombre (custom:bedrock-mantle + key_env) en lugar de descartarse como api_key="no-key-required".
  • skills.disabled y agent.disabled_toolsets respetan las formas de cadena de arrays JSON (["a","b"]) guardadas con hermes config set.
  • Los turnos already_sent en streaming completan su tick de /loop (marcador LOOP_COMPLETE + ejecución del judge) en lugar de reprogramarse sin fin.
  • Las conexiones multi-gateway se cierran y reciclan limpiamente al eliminar o editar, con un tope de pool.
  • Las claves de autodetección de providers se resuelven a través del ámbito del profile; Bedrock y las rutas de autenticación respetan los ámbitos de secretos por profile.

Correcciones

  • Windows: sondeos de escaneo de procesos acotados para que un escaneo WMI lento no pueda bloquear hermes update; rutas de scripts cron con NUL rechazadas antes de cualquier llamada a Path; las unidades systemd hermes-serve se reinician junto con los gateways.
  • Los gateways de tareas programadas de Windows sin pidfiles se salvan del reaper de huérfanos.
  • El invariante del catálogo de image_gen fija los valores por defecto de upscaling totalmente desactivado.
  • Las llamadas secuenciales de herramientas se vinculan a timeouts.tools.sequential_call; el par dedupe/suelo de razonamiento de llamadas a herramientas que causaba regresiones fue revertido y rehecho.
  • TUI: Enter modificado y LF simple insertan saltos de línea en el composer en terminales de IDE y macOS.

Actualización

hermes update

Tras actualizar, ejecuta hermes doctor para verificar la instalación, reinicia el gateway (hermes gateway) para que los cambios de plataforma surtan efecto y abre Settings → Connections para explorar el registro multi-conexión.

← Hermes Agent Changelog