Hermes Agent June 2026 Update: Computer-Use Reliability, Desktop Timeline Rail, Honcho OAuth, CI Overhaul, and /learn Skills
- Commits summarized
- 1,206
- Period
- Jun 01 - Jun 30, 2026
- Published
- Jul 01, 2026
Hermes Agent Monthly Development Update — June 2026
A highlight report covering selected commits from 1–30 June 2026. This month brought major improvements to computer-use reliability, desktop UX (timeline rail, tool previews), memory-provider OAuth, CI efficiency, subagent visibility, Slack/Discord/Telegram fixes, and a new
/learnskill-distillation feature.
🖥️ Computer-Use & Desktop
CUA Driver & Subprocess Hardening
- stdin guard for subprocess calls — set
DEVNULLoncua-driversubprocess calls to prevent TUI gateway fd-inheritance issues (3c1058e). - Windows UIPI limitation documented — added docs explaining that Medium-integrity agents cannot drive High-integrity (admin) windows; the limitation is an OS constraint affecting all Windows automation stacks (#51121).
- Vision capture fix for cua-driver >=0.5.x — ensures screenshots return images correctly (760fd95).
- Whole-screen & desktop target on Windows — merged support for selecting entire-screen capture targets (672ea1f).
Desktop UI
Conversation Timeline Rail
- Timeline rail for long threads — a compact right-edge prompt timeline with hover previews and click-to-jump navigation (3fffecb, merged in #51094).
Tool Previews & Status Stack
- Stop auto-opening tool previews — HTML artifacts from tool results no longer pop open automatically (cb17a9e).
- Manual preview toggle & open-in-browser — status row opens/closes preview pane; external links use a dedicated file bridge (48a8f84).
- Previewable artifacts in composer status — detected tool results feed a session-scoped store with compact rows above the composer (d0af7fc).
Visual Polish
- Stack overflow fix on image replay — replaced a giant embedded-image regex with a bounded scanner to prevent crashes on multi-megabyte data URLs (a6b670d).
- Anthropic-native image shrink — retry image-size rejections by rewriting Anthropic base64 image source blocks (88e1364).
- Styled tooltips — replaced native title tooltips with a styled
Tipcomponent (9fd2b2c). - Softened inline code and expanded tool chrome — dropped inline-code border and halved expanded tool block radius (7daa6d8).
Cross-platform Readiness Preflight
- Computer-use readiness check — added a cross-platform preflight to verify required dependencies before enabling computer-use features (6780cee).
🧠 Agent Core & Skills
/learn — Distill a Reusable Skill
- Open-ended skill learning —
/learn <free text>gathers information using existing tools (read/search files, web extract, conversation context) and auto-authors a standards-compliantSKILL.md. Works on any terminal backend (local, Docker, remote) with no engine overhead (#51506).
One-shot LLM Helper
llm.oneshotgateway RPC — stateless model calls outside any conversation for commit messages, rename suggestions, or summaries. Ships with acommit_messagetemplate; model selection inherits the live session or configured aux backend (#51261).
Coding Context as Structured Data
project.factsRPC — exposes coding-context project facts as structured data (manifest, package manager, test/lint/build commands) for non-prompt consumers like the desktop verify UI, keeping a single source of truth (#51259).
Tool Call Persistence
- Persist tool calls before turn-end flush — ensures tool invocations are saved to the session history even if the turn ends abruptly (190b01c).
- Concurrent tool submit shutdown handling — graceful handling when multiple tool submissions race at shutdown (292a456).
🔗 Relay & Gateway
Relevance Policy Declaration
- Relay relevance policy — projects the agent's mention-gating, free-response, and allow-bots settings into the connector's vocabulary and declares them at boot over
/relay/policyso relay delivery respects the same rules. Self-healing on restart, non-blocking on failure. Completes Phase 6 end-to-end (#51248).
Session Identity & Stale Lock Healing
- Preserve session identity across compression — when compression rotates a session ID, the live-session lease is reliably transferred, preventing forked lineages and cross-session message mixing (#49041).
- Stale session lock healing — reorders cleanup to preserve
_session_tasksentries on guard mismatch so stale locks are detected and healed on the next inbound message (#48300).
Discord Double Dispatch Fix
- Thread-starter dedup — pre-seeds the dedup cache with the new thread ID after
_auto_create_threadsucceeds, preventing Discord's duplicateMESSAGE_CREATEevent from triggering a second agent run and response (#51057).
Model Switch Guard
- Refuse model switch on stale checkout — prevents
env_floatImportErrors when switching models on a stale code checkout (fyzanshaik).
💬 Platform Integrations
Slack
- Voice clip transcription — fixes handling of in-app audio messages (audio/mp4 containers) that were previously cached with the wrong extension, causing STT rejection (#29221).
- Accurate MIME reporting for rerouted voice clips — replaces a dead dict lookup with a proper extension-to-mime map (5ecf3bf).
--no-assistantflag for manifest generation — opt out of Slack's AI Assistant split-pane mode for flat DM manifests (#51168).
Discord
- Reasoning rendering as subtext — new
display.reasoning_stylesetting withsubtextoption for Discord (renders as-#small grey metadata) andcode/blockquotefor other platforms (89e5728).
Telegram
- CLOSE_WAIT fd leak fix — wires keepalive limits into the general HTTPX request pool to prevent file descriptor leaks behind HTTP proxies (#31599).
💾 Memory & OAuth
Honcho OAuth Connect
- End-to-end OAuth support — desktop and CLI flows with token refresh, OS-assigned loopback port fallback, cross-process lock around refresh to prevent grant revocation, and surface-specific client ID support (#44335).
- Session resolution fix — stable identifiers (gateway per-chat key, session ID) always win over titles, preventing mid-stream session remapping (ba9e3a4).
🧰 MCP & Tools
MCP Killpg Guard
- Skip killpg when child shares gateway's process group — prevents
/reload-mcpfrom crashing the gateway by self-signaling when an MCP stdio child happens to share the gateway's process group (#47134).
🖥️ CLI & TUI
Background Subagent Tracking
- CLI status bar — new
⛓ Nindicator showing live background/async subagents fromdelegate_taskbatches (#51441). - TUI status bar parity — same
⛓ Nsegment in the Ink TUI status bar for background subagent visibility (#51485).
⚙️ CI & Installer
CI Overhaul
- Orchestrator-based CI — single
ci.ymlthat classifies PR changes and conditionally runs only relevant lanes (python, frontend, site, scan, deps, mcp_catalog) with a finalall-checks-passgate for branch protection (05c896c). - Docker build gating — image build + smoke test + integration suite now runs on main+release only, not on every PR (2977e74).
- Transient flake resilience — new reusable retry action wraps all network-dependent installs (
npm ci,uv sync) for PR jobs (56b4ef7). - Deprecated Windows installer job removed — dropped unused workflow (c820eb6).
Installer Fix
- Drop system-browser fallback — the installer no longer scans
PATHfor Chrome/Chromium (which resolved to snap/sandboxed binaries on Snap-based systems), and auto-repairs existing stale snap overrides on update (#31234).
☁️ Provider Support
Ollama Cloud Reasoning Effort
- DeepSeek V4 'Max thinking' tier — maps Hermes
xhigh→maxto unlock extended thinking through Ollama Cloud's OpenAI-compatible endpoint. Empirically confirmed ~2.5× more thinking tokens at max vs high (#29221).
🪟 Windows
- Hardened gateway scheduled task — launched via console-less
wscriptfor more reliable background operation (#45610).
🧪 Cron & Housekeeping
- Revert cron storage to per-profile — returns cron job storage to per-profile roots, undoing the earlier change that anchored it at the default root home (#51116).
This post covers a selection of ~200 commit summaries from the 1,206 commits in the June 2026 window. For the complete changelog, see the Hermes Agent repository.