
Renommer un profile Hermes laissait un fantôme
Renommer un profile laissait la state DB sur l'ancien nom. PR #112653 migre l'identité, ajoute une commande de reprise et bloque les profiles supprimés.
Lire la suite
Multiplexage des profils : le gateway activé par défaut
gateway.multiplex_profiles est activé par défaut, mais une garde au démarrage tranche les valeurs non définies : un gateway sert alors tous les profils.
Lire la suite
Pourquoi state.db se corrompt dans les montages Docker Desktop, OrbStack et WSL2
Montez votre répertoire de données en bind mount dans un container et virtiofs ou 9p ne peut plus donner à SQLite WAL le verrou partagé dont il a besoin : deux écrivains corrompent alors state.db en silence, pendant que tous les contrôles d'intégrité passent. Depuis la PR #111433, Hermes le dit au démarrage et dans hermes doctor, avec deux correctifs concrets.
Lire la suite
Vous payez déjà pour de la réflexion dont vous n'avez pas besoin : le reasoning effort dans tous les sélecteurs de modèle Hermes
Facturer un renommage d'une ligne en ultra reasoning effort est le gaspillage le plus courant dans un setup d'agent. La PR #110346 ajoute une étape d'effort sur chaque sélecteur de modèle — hermes model, /model, le TUI Ink, le gateway de messagerie. Voici toute la surface de contrôle : /reasoning, la pastille du composer Desktop, l'effort par tâche dans Settings → Model → Auxiliary, agent.reasoning_overrides, et delegation.reasoning_effort.
Lire la suite
Pourquoi vos outils MCP vous déconnectent sans cesse : dans les coulisses du cycle de vie des tokens OAuth
Figma, Linear et Notion redemandent sans arrêt à Hermes de se reconnecter — et ce n'est généralement pas une erreur de configuration. Voici le cycle de vie des tokens qui se cache derrière : comment des rafraîchissements concurrents déclenchent la détection de réutilisation, pourquoi un refresh token doit rester lié au serveur qui l'a émis, et les quatre correctifs livrés par Hermes.
Lire la suite
hermes profile update supprimait vos skills et vos tâches cron
PR #111344 corrige un bug de perte de données P1 : la mise à jour d'une distribution de profile remplaçait tout le contenu des répertoires skills/ et cron/, effaçant tout ce que l'utilisateur y avait ajouté. Ces répertoires sont désormais fusionnés racine par racine : vos ajouts survivent pendant que les racines livrées par l'auteur continuent de se mettre à jour.
Lire la suite
Hermes v0.21.3 : votre session Desktop ne se déconnecte plus après une veille
v0.21.3 (tag v2026.9.14) est le tag correctif qui transporte les corrections de connexion distante vers les utilisateurs de Docker et du Cloud : des rafales de refresh concurrentes ne révoquent plus toute la session, le refresh s'exécute hors de l'event loop, et les processus de longue durée cessent de fuiter des handles writer state.db en double.
Lire la suite
Vos photos iPhone fonctionnent enfin : le décodage HEIC dans vision_analyze, et les outils de vision qui cessent de disparaître
Envoyer une photo iPhone à Hermes renvoyait une seule ligne : source is not a recognized image. La PR #106408 a ajouté la détection ftyp ISO-BMFF ainsi que la normalisation pillow-heif ; la PR #110136 a corrigé l'empoisonnement de cache qui faisait disparaître les outils de vision dans les processus longue durée.
Lire la suite
Comment terminer un OAuth sur un serveur distant : tunnels SSH, callbacks collés et codes d'appareil
Quand Hermes tourne sur une VM cloud ou derrière un jump box, l'OAuth à redirection loopback (Spotify, serveurs MCP distants) casse sur 127.0.0.1. Trois routes praticables : un forward local SSH, le collage de l'URL de redirection, et les flux device-code ou code à coller.
Lire la suite
169.254.169.254 demande maintenant la permission : Hermes place la récupération des credentials de métadonnées d'instance cloud derrière une approbation
Sur une VM cloud, le service de métadonnées d'instance remet des credentials IAM temporaires à n'importe quel processus local, sans authentification. Depuis la PR #106418, les commandes qui visent 169.254.169.254, fd00:ec2::254, metadata.google.internal ou 100.100.100.200 demandent une approbation au lieu d'être approuvées automatiquement.
Lire la suite
Quand vos doigts frappent Esc : les raccourcis vim pour le composer de la CLI Hermes (et le nom de branche dans votre barre de statut)
Vous tapez un long prompt, repérez une faute de frappe et appuyez par réflexe sur Esc pour la corriger — rien ne se passe. Depuis la PR #106412, display.vim_mode transforme le composer de saisie de la CLI en éditeur de style vi, avec un libellé NORMAL/INSERT/REPLACE en direct sur la barre de statut.
Lire la suite
Hermes v0.21.2 : l'isolation des profils et la fin de la tempête de backends
v0.21.2 ferme sept fuites entre profils, empêche le bureau de lancer un backend par profil et corrige une série de comportements cron, kanban et mémoire qui n'avaient aucun sens.
Lire la suite
Plus besoin de redémarrer : Hermes sert à chaud les profils créés pendant que la passerelle tourne
Il est deux heures du matin, vous venez de créer un troisième profil, vous collez le token du bot, vous écrivez bonjour sur Telegram — et personne ne répond. Le bureau affiche toujours la passerelle de ce profil comme arrêtée. La seule solution documentée était de redémarrer la passerelle, ce qui interrompt les deux autres profils en pleine tâche longue. La PR #109239 change la donne : une passerelle multiplex en cours d'exécution réconcilie désormais son répertoire de profils à chaud. Les nouveaux profils sont servis immédiatement, des identifiants ajoutés plus tard reconstruisent leur adaptateur, les profils supprimés sont démontés et retirés du routage, et un rescan toutes les 30 secondes rattrape les échecs. Fusionnée dans main le 2026-09-12, après la version v0.21.2.
Lire la suite
Hermes demande désormais une approbation avant de désinstaller un paquet
Un paquet npm global ralentit vos builds, vous tapez `npm uninstall -g some-package` et vous appuyez sur Entrée. Deux jours plus tard, il manque dans la CI et tous les projets de cette machine sont touchés. Cette commande passait auparavant sans la moindre demande, car le portail des commandes dangereuses ne connaissait que les primitives shell. Le PR #109170 (déjà fusionné dans main) ajoute une règle package manager uninstall pour npm, pnpm, yarn, pip et brew : les désinstallations demandent maintenant confirmation, alors que les installations et les mises à jour passent toujours. Les règles sont ancrées avec _CMDPOS, donc le texte entre guillemets n'est pas signalé à tort, et une option globale suivie d'un argument ne les contourne pas.
Lire la suite
Hermes MCP include : une liste vide bloque désormais tout, partout
Plusieurs surfaces lisaient tools.include: [] comme *clé non définie*. Depuis la PR #109188, hermes mcp list, hermes mcp configure, hermes tools, la réinstallation du catalogue et le panneau MCP du bureau affichent 0 sélectionné.
Lire la suite
Les tâches cron de Hermes dégradent désormais au lieu d’échouer sur les gateways systemd sans session D-Bus utilisateur
Sur les gateways gérés par systemd qui n’ont pas de session D-Bus utilisateur (conteneurs, LXC allégés, comptes de service sans linger), chaque tâche cron échouait au moment même du dispatch. Le PR #109311 fait dégrader ces tâches : toujours un processus worker externe, simplement sans isolation cgroup, avec un seul avertissement par processus de gateway. Réglez cron.require_restart_safe_scope: true pour retrouver le comportement fail-closed. Fusionné dans main le 2026-09-12 ; pas encore dans une version publiée.
Lire la suite