v0.21.3

Hermes Agent v0.21.3


Aperçu

v0.21.3 — The Sign-In Patch. Publiée le 14 septembre 2026. 1 036 commits hors merge · 2 642 fichiers modifiés (+131 690 / −37 096) · 338 PR fusionnées depuis v0.21.2, mesurées au commit 9b419a2d3c2657c192008e732149d61170b32c01.

Certaines corrections ne comptent que pour les installations qui ne lancent jamais hermes update à la main. Ce tag existe exactement pour celles-là : les images Docker, Hermes Cloud et les déploiements hébergés se construisent à partir du tag de release le plus récent, donc le travail sur la connexion au gateway distant de la fenêtre précédente devait être intégré dans un tag stable avant que les utilisateurs du cloud puissent en profiter. La fenêtre elle-même est large — les mêmes ~338 PR portent aussi les contrats de communication du gateway, la sélection de l’effort de raisonnement sur tous les sélecteurs de modèle, la connexion OpenRouter OAuth PKCE, le décodage HEIF/HEIC/AVIF et une longue liste de travail sur les plateformes — mais le compte rendu organisé de tout cela arrive avec v0.22.0, qui documentera tout à partir de v0.21.0. Cette page couvre ce qui a justifié ce tag.


Points forts

1. Une rafale de réveils du Desktop ne peut plus révoquer votre session

Les sessions du dashboard distant expiraient quand plusieurs requêtes arrivaient en même temps. Les deux chemins de refresh du gateway — la porte par cookie et la route bearer native du Desktop — présentaient chacun le même refresh token rotatif ; le provider d’identité fait tourner un refresh token à chaque usage et considère une seconde présentation de l’ancienne valeur comme un vol de token, ce qui révoque toute la session. Un réveil du Desktop après une veille produit une rafale naturelle : la panne semblait donc aléatoire et tombait toujours au pire moment (#110061, corrige #55712).

Désormais, les refresh concurrents qui portent le même token rotatif sont fusionnés : une requête effectue la rotation, les autres adoptent le résultat. Le refresh s’exécute aussi hors de l’event loop, donc un provider d’identité lent ne fige plus /api/status pendant l’attente.

Côté Portal, la contrepartie (hermes-portal#1209) : un horizon d’inactivité glissant de 30 jours et une fenêtre de grâce de 5 minutes pour un token déjà tourné, afin qu’une vraie course en vol ne soit pas lue comme une réutilisation.

2. Les processus de longue durée cessent de fuiter des handles writer state.db en double

Une topologie saine pouvait quand même afficher le précurseur N live SessionDB handles. Le gateway, le backend du dashboard/Desktop, la surface ACP et les lecteurs CLI attachaient chacun leur propre writer, donc le compteur grimpait et le diagnostic accusait l’installation exactement du problème qu’il était censé détecter (#110934, corrige #100896 et #103339).

La forme est désormais explicite : les lecteurs s’attachent en lecture seule, et les writers en cours de processus partagent le handle du registre au lieu d’en ouvrir un chacun. Moins de handles, c’est moins d’occasions pour un composant d’annuler les verrous d’un autre — la classe de panne que le patch v0.21.2 a passé six PR à refermer.

Également dans cette fenêtre

Le tag regroupe tout ce qui a été fusionné depuis v0.21.2, pas seulement les deux éléments ci-dessus. Classé par domaine, et volontairement laissé aux notes de v0.22.0 pour une documentation correcte :

  • Contrat du gateway : des requêtes JSON-RPC serveur→client remplacent les paires d’événements *.request / *.respond (#110521), et un registre de « wire contracts » Pydantic génère les types TypeScript et OpenRPC (#110522, #110523).
  • Modèles et raisonnement : sélection de l’effort de raisonnement sur chaque sélecteur de modèle, une pastille dans le composer et un contrôle d’effort par auxiliaire dans le Desktop ; connexion OpenRouter OAuth PKCE.
  • MCP : les refresh tokens OAuth sont liés à l’émetteur qui les a accordés, plus un rappel de ré-authentification quotidien dans le Desktop.
  • Médias : décodage des images HEIF, HEIC et AVIF.
  • Providers : Wan 3.0, Kling 3.0 / Kling Image v3, MiniMax H3 Max Turbo, Gemini Omni Flash 1.1 et Meta Muse rejoignent les catalogues FAL ; la configuration des modèles pairs Honcho a été retravaillée.
  • Plateformes : les tableaux collés dans Slack et l’API Agent Sessions.
  • Stockage et profiles : isolation des profiles multiplexés et corrections de vivacité du gateway, et un refus d’exécuter le mode journal WAL sur des systèmes de fichiers inter-VM.

Mise à jour

Les installations existantes se mettent à jour sur place :

hermes update

Docker et Hermes Cloud se construisent à partir de ce tag :

docker pull nousresearch/hermes-agent:v2026.9.14

Le diff complet est sur v2026.9.11…v2026.9.14.

← Hermes Agent Changelog