v0.20.2

Hermes Agent v0.20.2


Visão Geral

v0.20.2 — O Patch das Conexões. Lançada em 16 de agosto de 2026. ~397 PRs mesclados · 967 commits · 1.279 arquivos alterados (+128.522 / −7.622) desde a v0.20.1.

Três dias depois da v0.20.1, o Hermes entrega a mudança estrutural que o app de desktop precisava há anos: o modelo de conexão deixa de ser “uma conexão global com overrides por profile” e vira um registro de verdade. O desktop agora pode conter qualquer número de fontes de agente nomeadas — runtime local, gateways remotos, Hermes Cloud, hosts SSH — enquanto o MCP ganha instalações hermes:// com um clique e verificações de saúde em segundo plano, e o CLI finalmente lembra qual sessão pertence a qual terminal.

Esta é uma release de patch, então as notas oficiais são breves e a documentação completa e curada acompanha a v0.21.0. Esta página cobre as partes mais valiosas desta janela.


Destaques

1. Registro de Multi-Conexões no Desktop

Settings → Connections agora é um verdadeiro registro de fontes de agente nomeadas: locais, gateways remotos (LAN/Tailscale/público), Hermes Cloud e hosts SSH, tudo persistido em um só lugar com rótulos únicos (case-insensitive). O roteamento do pool de backends é chaveado por (connection, profile), e um roster de agentes multi-fonte + SDK aparece no desktop. A descoberta acompanha: uma pill “Connect another Hermes gateway…” na trilha de profiles e uma entrada ⌘K para Settings → Connections.

Fornecedores de MCP e documentações podem oferecer um botão “Add to Hermes” via hermes://mcp/install?name=NAME&config=B64. O link é estritamente validado (nome ^[A-Za-z0-9._-]{1,64}$, config JSON em base64url) e mostra um diálogo de confirmação explícito antes que qualquer coisa seja gravada na configuração.

3. Verificações de Saúde de MCP em Segundo Plano

Ao conectar o gateway e a cada 30 minutos, o desktop varre os servidores MCP HTTP/SSE habilitados do profile ativo. Um servidor que entra em needs-auth (ou erro) dispara um aviso no app — “GitHub MCP needs re-authentication” — com uma ação Sign in que faz deep-link para o painel de configuração do servidor e o faz piscar. Servidores stdio ficam de fora porque cada sondagem é um spawn real.

4. Breadcrumbs de Terminal: -c por Terminal

Um hermes -c / --continue puro agora retoma a sessão pertencente a este terminal (tty, painel tmux, janela kitty, painel wezterm, painel Zellij, Windows Terminal) em vez da sessão globalmente mais recente. Os breadcrumbs ficam em $HERMES_HOME/terminal-sessions/, são gravados atomicamente e expiram após 30 dias.

5. chat -c Falha de Forma Ruidosa + --create-if-missing

hermes chat -c "<título>" sem correspondência agora imprime no stderr e sai com código 1 (chega de no-op silencioso). A nova flag --create-if-missing cria uma sessão nova com título e retoma nela — uma primitiva determinística de “enviar para este thread nomeado, criando-o se necessário” para scripts e plugins.

6. O Upscaling de Imagens É Opt-In

A mudança de 8 de agosto que encadeava o Clarity Upscaler após toda geração FAL/Krea abaixo de 2MP (degradando visivelmente a renderização de texto/CJK do GPT Image 2, a tipografia do Ideogram e rostos fotorrealistas) foi revertida: o upscaling está desligado por padrão e só roda com upscale: true explícito.

7. Toda Ferramenta É Interrompível

O executor sequencial de ferramentas agora consulta a flag de interrupção a cada segundo e abandona uma ferramenta em execução dentro de um período de graça de 3 segundos; o image_generate ainda aborta cooperativamente sua espera FAL em andamento. O Ctrl+C encerra ferramentas em vez de segurar o turno como refém por ~40s.

Melhorias

  • Protocolo de teclado do Kitty restaurado (CSI >1u) com uma tabela completa de aliases de teclas estendidas com 294 entradas — usuários do kitty recuperam o Ctrl+C e as combinações funcionando.
  • /status não emparelha mais um modelo com um provider/base URL de outra rota de fallback; as rotas de modelo persistidas permanecem consistentes.
  • As chaves da API Bedrock são entregues por meio de um provider nomeado (custom:bedrock-mantle + key_env) em vez de caírem como api_key="no-key-required".
  • skills.disabled e agent.disabled_toolsets honram as formas de string de array JSON (["a","b"]) salvas via hermes config set.
  • Turns already_sent transmitidos completam seu tick do /loop (marcador LOOP_COMPLETE + execução do juiz) em vez de serem reagendados indefinidamente.
  • Conexões multi-gateway são desmontadas e recicladas de forma limpa ao remover/editar, com um limite de pool.
  • As chaves de auto-detecção de provider são resolvidas no escopo do profile; os caminhos do Bedrock e de auth honram escopos de segredo por profile.

Correções

  • Windows: sondas de varredura de processos limitadas para que uma varredura WMI lenta não trave o hermes update; caminhos de script de cron com NUL rejeitados antes de qualquer chamada Path; units systemd hermes-serve reiniciam junto com os gateways.
  • Gateways de tarefa agendada do Windows sem pidfiles são poupados pelo reaper de órfãos.
  • O invariante do catálogo image_gen fixa os padrões de upscaling totalmente desligados.
  • Chamadas de ferramenta sequenciais vinculadas a timeouts.tools.sequential_call; o par dedupe/piso-de-raciocínio de chamadas de ferramenta que causava regressões foi revertido e refeito.
  • TUI: Enter modificado e LF puro inserem novas linhas no composer em terminais IDE e macOS.

Atualização

hermes update

Após atualizar, execute hermes doctor para verificar a instalação, reinicie o gateway (hermes gateway) para que as mudanças de plataforma entrem em vigor e abra Settings → Connections para explorar o registro de multi-conexões.

← Hermes Agent Changelog