Hermes Agent v0.21.3
Visão Geral
v0.21.3 — The Sign-In Patch. Lançada em 14 de setembro de 2026. 1.036 commits não-merge · 2.642 arquivos alterados (+131.690 / −37.096) · 338 PRs mesclados desde a v0.21.2, medidos no commit 9b419a2d3c2657c192008e732149d61170b32c01.
Algumas correções só importam para as instalações que nunca rodam hermes update na mão. Esta tag existe exatamente para elas: as imagens Docker, o Hermes Cloud e as implantações hospedadas são construídos a partir da tag de release mais recente, então o trabalho de sign-in do gateway remoto da última janela precisava ser consolidado numa tag estável antes que os usuários de nuvem pudessem recebê-lo. A janela em si é grande — os mesmos ~338 PRs também trazem os wire contracts do gateway, seleção de reasoning effort em todo seletor de modelo, login OpenRouter OAuth PKCE, decodificação HEIF/HEIC/AVIF e uma longa lista de trabalho de plataforma — mas o texto curado de tudo isso chega junto com a v0.22.0, que vai documentar tudo a partir da v0.21.0. Esta página cobre o motivo pelo qual a tag foi cortada.
Destaques
1. Um burst de despertar do Desktop não pode mais revogar a sua sessão
Sessões de dashboard remoto costumavam expirar quando várias requisições chegavam ao mesmo tempo. Os dois caminhos de refresh no gateway — o cookie gate e a rota bearer nativa do Desktop — apresentavam cada um o mesmo refresh token rotativo; o identity provider rotaciona um refresh token a cada uso e trata uma segunda apresentação do valor antigo como roubo de token, o que revoga a sessão inteira. Um despertar do Desktop depois da suspensão é um burst natural, então a falha parecia aleatória e sempre chegava no pior momento possível (#110061, corrige a #55712).
Agora os refreshes concorrentes que carregam o mesmo token rotativo são coalescidos: uma requisição faz a rotação e as demais adotam o resultado. O refresh também roda fora do event loop, então um identity provider lento não congela mais o /api/status enquanto espera.
Do lado do Portal a mudança vem acompanhada (hermes-portal#1209): um horizonte ocioso deslizante de 30 dias e uma janela de tolerância de 5 minutos para um token rotacionado, de modo que uma corrida genuinamente em andamento não seja lida como reúso.
2. Processos de longa duração param de vazar handles de escrita duplicados no state.db
Uma topologia saudável ainda podia imprimir o precursor N live SessionDB handles. O gateway, o backend do dashboard/Desktop, a superfície ACP e os leitores de CLI anexavam cada um o seu próprio writer, então a contagem subia e o diagnóstico acusava a instalação exatamente do problema que deveria detectar (#110934, corrige as #100896 e #103339).
O desenho agora é explícito: os leitores se anexam em modo somente leitura, e os writers no mesmo processo compartilham o handle do registro em vez de cada um abrir o seu. Menos handles significa menos chances de um componente cancelar os locks de outro — que é exatamente a classe de falha que o patch da v0.21.2 passou seis PRs fechando.
Também nesta janela
A tag consolida tudo o que foi mesclado desde a v0.21.2, não apenas os dois itens acima. Agrupado por área, e deixado de propósito para as notas da v0.22.0 documentarem como deve:
- Contrato do gateway: requisições JSON-RPC de servidor→cliente substituem os pares de eventos
*.request/*.respond(#110521), e um registro de wire contract em Pydantic gera os tipos TypeScript e OpenRPC (#110522, #110523). - Modelos e reasoning: seleção de reasoning effort em todo seletor de modelo, um pill no composer e controle de effort por auxiliary no Desktop; login OpenRouter OAuth PKCE.
- MCP: refresh tokens de OAuth vinculados ao issuer que os concedeu, além de um lembrete diário de re-autenticação no Desktop.
- Mídia: decodificação de imagens HEIF, HEIC e AVIF.
- Providers: Wan 3.0, Kling 3.0 / Kling Image v3, MiniMax H3 Max Turbo, Gemini Omni Flash 1.1 e Meta Muse entram nos catálogos FAL; a configuração de peer-model do Honcho foi refeita.
- Plataformas: tabelas coladas no Slack e a Agent Sessions API.
- Armazenamento e profiles: correções de isolamento de profile multiplexado e de liveness do gateway, e uma recusa a rodar o modo de journal WAL em filesystems entre VMs.
Atualização
As instalações existentes se atualizam no lugar:
hermes update
Docker e Hermes Cloud são construídos a partir desta tag:
docker pull nousresearch/hermes-agent:v2026.9.14
O diff completo está em v2026.9.11…v2026.9.14.
← Hermes Agent Changelog