v0.20.2

Hermes Agent v0.20.2


Overview

v0.20.2 — Der Connections-Patch. Veröffentlicht am 16. August 2026. ~397 gemergte PRs · 967 Commits · 1.279 geänderte Dateien (+128.522 / −7.622) seit v0.20.1.

Drei Tage nach v0.20.1 liefert Hermes die strukturelle Änderung, die die Desktop-App seit Jahren gebraucht hat: Das Connection-Modell ist nicht mehr „eine globale Connection mit Overrides pro Profil“, sondern eine echte Registry. Der Desktop kann jetzt beliebig viele benannte Agent-Quellen aufnehmen — lokale Runtime, Remote-Gateways, Hermes Cloud, SSH-Hosts — während MCP um hermes://-Installationen mit einem Klick und Health-Checks im Hintergrund wächst und das CLI sich endlich merkt, welche Sitzung zu welchem Terminal gehört.

Das ist ein Patch-Release, die offiziellen Notes sind also knapp, und die vollständige, kuratierte Dokumentation folgt mit v0.21.0. Diese Seite deckt die wertvollsten Teile dieses Releases ab.


Highlights

1. Desktop-Multi-Connection-Registry

Settings → Connections ist jetzt eine echte Registry benannter Agent-Quellen: lokal, Remote-Gateways (LAN/Tailscale/öffentlich), Hermes Cloud und SSH-Hosts, alles an einem Ort mit case-insensitive eindeutigen Labels gespeichert. Das Backend-Pool-Routing ist auf (connection, profile) geschlüsselt, und im Desktop erscheinen eine Multi-Source-Agentenliste + SDK. Dazu kommen Entdeckbarkeits-Features: eine „Connect another Hermes gateway…“-Pille in der Profilleiste und ein ⌘K-Eintrag für Settings → Connections.

MCP-Anbieter und Doku-Seiten können über hermes://mcp/install?name=NAME&config=B64 einen „Add to Hermes“-Button anbieten. Der Link wird strikt validiert (Name ^[A-Za-z0-9._-]{1,64}$, base64url-JSON-Config) und zeigt vor jedem Schreibzugriff auf die Config einen expliziten Bestätigungsdialog.

3. MCP-Health-Checks im Hintergrund

Beim Gateway-Connect und alle 30 Minuten durchsucht der Desktop die aktivierten HTTP/SSE-MCP-Server des aktiven Profils. Ein Server, der in den Zustand needs-auth (oder einen Fehlerzustand) wechselt, löst eine In-App-Warnung aus — „GitHub MCP needs re-authentication“ — mit einer Sign-in-Aktion, die per Deep-Link zum Config-Bereich des Servers springt und ihn aufblinken lässt. stdio-Server sind ausgenommen, weil jeder Probe ein echter Spawn ist.

4. Terminal-Breadcrumbs: -c pro Terminal

Ein nacktes hermes -c / --continue setzt jetzt die Sitzung dieses Terminals fort (tty, tmux-Pane, kitty-Fenster, wezterm-Pane, Zellij-Pane, Windows Terminal) statt der global zuletzt genutzten Sitzung. Die Breadcrumbs liegen unter $HERMES_HOME/terminal-sessions/, werden atomar geschrieben und verfallen nach 30 Tagen.

5. chat -c scheitert laut + --create-if-missing

hermes chat -c "<title>" druckt bei fehlendem Treffer jetzt auf stderr und beendet sich mit Exit 1 (kein stiller No-op mehr). Das neue --create-if-missing-Flag legt eine frische, benannte Sitzung an und setzt in sie fort — ein deterministisches „an diesen benannten Thread senden, bei Bedarf anlegen“-Primitiv für Skripte und Plugins.

6. Image-Upscaling ist Opt-in

Die Änderung vom 8. August, die den Clarity Upscaler hinter jede FAL/Krea-Generierung unter 2 MP hängte (und GPT Image 2s Text-/CJK-Rendering, Ideograms Typografie und fotorealistische Gesichter sichtbar verschlechterte), ist rückgängig gemacht: Upscaling ist standardmäßig deaktiviert und läuft nur mit explizitem upscale: true.

7. Jedes Tool ist unterbrechbar

Der sequenzielle Tool-Executor prüft das Interrupt-Flag jetzt jede Sekunde und bricht ein laufendes Tool innerhalb einer 3-Sekunden-Schonfrist ab; image_generate bricht zusätzlich kooperativ seinen laufenden FAL-Wait ab. Ctrl+C beendet Tools, statt den Turn rund 40 Sekunden als Geisel zu halten.

Verbesserungen

  • Kitty-Keyboard-Protocol wiederhergestellt (CSI >1u) mit einer vollständigen, 294 Einträge umfassenden Extended-Key-Alias-Tabelle — kitty-Nutzer bekommen Ctrl+C und funktionierende Kombinationen zurück.
  • /status paart ein Modell nicht mehr mit einem Provider/einer Base-URL aus einer anderen Fallback-Route; persistierte Modell-Routen bleiben konsistent.
  • Bedrock-API-Keys werden über einen benannten Provider (custom:bedrock-mantle + key_env) zugestellt, statt als api_key="no-key-required" fallen gelassen zu werden.
  • skills.disabled und agent.disabled_toolsets respektieren per hermes config set gespeicherte JSON-Array-Stringformen (["a","b"]).
  • Gestreamte already_sent-Turns beenden ihren /loop-Tick (LOOP_COMPLETE-Marker + Judge-Lauf), statt endlos neu eingeplant zu werden.
  • Multi-Gateway-Connections werden beim Entfernen/Bearbeiten sauber abgebaut und recycelt, mit einem Pool-Limit.
  • Provider-Auto-Detection-Keys lösen über den Profil-Scope auf; Bedrock- und Auth-Pfade respektieren Secret-Scopes pro Profil.

Fixes

  • Windows: Prozess-Scan-Probes begrenzt, sodass ein langsamer WMI-Scan hermes update nicht mehr blockieren kann; Cron-Skriptpfade mit NUL-Zeichen werden vor jedem Path-Aufruf abgelehnt; systemd-hermes-serve-Units starten zusammen mit den Gateways neu.
  • Windows-Scheduled-Task-Gateways ohne Pidfiles werden vom Orphan-Reaper verschont.
  • Die image_gen-Katalog-Invariante erzwingt Upscaling-Standardwerte, die alles deaktivieren.
  • Sequenzielle Tool-Calls sind an timeouts.tools.sequential_call gebunden; das Dedupe/Reasoning-Floor-Paar für Tool-Calls, das Regressionen verursachte, wurde zurückgenommen und überarbeitet.
  • TUI: Modifiziertes Enter und nacktes LF fügen in IDEs und macOS-Terminals im Composer Zeilenumbrüche ein.

Upgrade

hermes update

Führe nach dem Upgrade hermes doctor aus, um die Installation zu prüfen, starte das Gateway neu (hermes gateway), damit Plattformänderungen wirksam werden, und öffne Settings → Connections, um die Multi-Connection-Registry zu erkunden.

← Hermes Agent Changelog