
Fermez le portable et votre /loop meurt : pourquoi les planifications détachées survivent désormais
Un /loop ou /heartbeat défini dans l'application desktop, le dashboard ou la TUI était démonté dès que le client se déconnectait. Hermes exempte désormais une session qui possède encore une planification vivante, si bien que les réveils continuent de se déclencher en arrière-plan.
Lire la suite
Un appel TTS échoué a supprimé le fichier d'un utilisateur : au cœur du correctif P0 du chemin de sortie d'Hermes
Pointez text_to_speech vers un fichier existant : une synthèse échouée emportait ce fichier avec sa propre sortie temporaire. Hermes synthétise désormais vers un fichier frère caché et ne remplace la cible qu'en cas de succès.
Lire la suite
Un serveur MCP a envoyé une capture d'écran et votre modèle n'a vu qu'un chemin de fichier
Configurez un serveur MCP qui capture l'écran, demandez à l'agent de le lire, et il vous dit qu'il ne voit qu'un chemin — l'image était mise en cache, mais le modèle n'a jamais reçu les pixels. Le correctif a fusionné « cette image peut-elle atteindre le modèle » en un seul point de contrôle (vision_tools._native_tool_result_images), partagé par MCP ImageContent, les captures d'écran du navigateur, les captures computer_use et vision_analyze. Voici ce que font réellement auto / native / text, plus deux détails de sécurité faciles à manquer.
Lire la suite
Des plugins qui ne marchaient qu'à moitié : Hermes unifie enfin la résolution des noms de plugins
Installation par nom de catalogue, activation par nom de manifeste, correspondance de la moitié desktop par nom de dossier — le même plugin répondait à trois noms, donc `install` réussissait et `enable` répondait « No plugin named … », et un paquet doté d'une moitié desktop ne s'allumait jamais. La PR #135030 a fusionné cinq résolveurs de noms en un seul et a fait de l'activation d'un paquet un seul interrupteur. Voici le symptôme, la cause et le nouvel ordre de résolution, plus le correctif de dev des plugins desktop (#135017).
Lire la suite
v0.21.6 a changé la façon dont les releases sont découpées — vérifiez ce que vous avez réellement installé
v0.21.6 (publiée le 8 octobre 2026) est le premier tag découpé par le nouveau pipeline de releases stables : une ref de tentative, une image Docker testée, et un tag-reçu à la publication. La fenêtre a rassemblé 8 342 fichiers modifiés (+772 490 / −225 600) et 2 106 PR fusionnées depuis v0.21.5, tandis que les notes complètes et éditorialisées arrivent encore avec v0.22.0. Voici comment vérifier ce que vous avez installé, plus les trois groupes de correctifs de sécurité de cette fenêtre.
Lire la suite
Un tour parlé n'a plus besoin du modèle avec lequel vous tapez
Vous dites quelque chose, et le modèle avec lequel vous tapez dépense son budget de réflexion avant de répondre à voix haute — donc les questions-réponses vocales semblent un demi-temps trop lentes et sont facturées à votre modèle principal. Désormais, les tours parlés ont leur propre slot auxiliary.voice_chat et passent par défaut en raisonnement désactivé ; et si vous voulez remplacer toute la chaîne « transcrire, réfléchir, parler », un seul modèle vocal full-duplex peut prendre le relais (voice.voice_chat_mode: gpt-live). Voici comment les trois réglages s'articulent — et quand ne pas les utiliser.
Lire la suite
Vous pensiez que YOLO était encore actif. Le redémarrage l'a désactivé.
Vous tapez /yolo sur une plateforme de messagerie et vous supposez que les approbations sont désactivées. Puis le gateway redémarre — hermes update, un crash, systemd, une réouverture du Desktop — et ce chat est discrètement revenu aux approbations manuelles pendant que vous croyez encore qu'il les contourne. Le correctif stocke /yolo sur la session elle-même (SessionEntry.yolo dans gateway_routing), tandis que /new, /resume et /branch l'effacent définitivement. Voici les deux directions dans lesquelles cela peut vous surprendre, et comment il survit à un redémarrage sans ressusciter un bypass que vous avez abandonné.
Lire la suite
Un plugin peut désormais demander à Hermes de filtrer son propre serveur MCP
Les paquets Portable Agent Plugins v1 peuvent déclarer trust: untrusted pour leurs propres serveurs MCP dans plugin.json, de sorte que chaque appel d'outil capable d'écrire vous demande d'abord votre accord. Hermes n'accepte qu'un resserrement, jamais un élargissement.
Lire la suite
Nous Research lève 90 M$ — et Hermes part à la conquête des entreprises. Voici ce qui change pour vous.
Nous Research a annoncé le 7 octobre 2026 une levée de 90 M$ sur une valorisation de 1,5 Md$, avec NVIDIA, Microsoft M12 et Samsung parmi les investisseurs, plus une nouvelle orientation « Hermes for Businesses ». Ce qui est déclaré par l'entreprise, ce qui est promis, et les deux interrupteurs à surveiller vraiment.
Lire la suite
Pourquoi 90 Go de votre disque ont disparu : l'état de dépendances laissé derrière par les worktrees supprimés
Chaque worktree `hermes -w` ou clone jetable obtient son propre environnement de dépendances d'environ 200 Mo, et supprimer l'arbre ne l'a jamais retiré. Le chemin de prune récupère désormais l'état dont le checkout a disparu de façon prouvable — 92 Go ramenés à 18 Go sur un hôte mesuré.
Lire la suite
Un job cron en bonne santé déclaré « bloqué » à 2h02 — désormais la borne mesure le silence, pas la durée d'exécution
Toute exécution cron de plus de deux heures était récupérée comme si le propriétaire était mort, même lorsqu'elle appelait activement des outils, puis échouait avec « lost its durable fire claim ownership » et perdait la sortie de cette exécution. Le correctif mesure depuis combien de temps le propriétaire est silencieux plutôt que depuis combien de temps il tourne.
Lire la suite
Un modèle économique dans un channel, un modèle frontier dans un autre : comment fonctionne channel_overrides (et le bug de cache qui le rendait cher)
Une seule gateway peut exécuter un modèle et un persona différents dans chaque channel via platforms.<platform>.channel_overrides. Mais un bug P0 évacuait l'agent mis en cache après chaque tour, précisément dans ces chats, ce qui forçait à relire toute la conversation au tarif plein.
Lire la suite
Faire tourner Hermes Agent sur Kubernetes : pas de Helm chart officiel, un seul replica, et un conteneur qui démarre en root
Trois choses dans l'image officielle entrent en conflit avec les valeurs par défaut de Kubernetes : l'état est en single-writer, s6-overlay a besoin de root à l'init, et il n'existe aucun endpoint de rechargement HTTP. Voici ce qui casse réellement, et ce qu'il faut écrire à la place dans votre manifeste.
Lire la suite
Ce que la télémétrie de Hermes enregistre vraiment : deux interrupteurs, tous deux désactivés par défaut, et rien qui ressemble à votre contenu
Sous telemetry.shared_metrics se trouvent deux opt-ins indépendants — enabled collecte en local, send transmet à Nous — et les deux valent false par défaut. Voici ce que contiennent les compteurs bornés, plus les nouvelles classes de raisons d'échec.
Lire la suite
Hermes vient de vous demander de passer un contrôle navigateur ? Voici ce qu'est le challenge 428 sur le free tier
Quand le service de compte Nous décide qu'une plage d'IP a d'abord besoin d'un contrôle navigateur, l'échange de token anonyme répond 428 challenge_required. Hermes implémente une seule primitive : ouvrir le lien du portal, interroger le statut, échanger à nouveau — tandis que les appelants en arrière-plan ne bloquent jamais.
Lire la suite
Votre limite de connexion au tableau de bord était falsifiable avec un seul en-tête
Trois correctifs de durcissement de l'authentification fusionnés le même jour : un X-Forwarded-For forgé réinitialisait la limite de connexion au tableau de bord, un champ d'audit sans borne pouvait remplir votre disque, et les routes d'authentification publiques n'avaient aucune limite de taille du corps de requête.
Lire la suite