Hermes merged 59 PRs on October 26
The ones worth knowing:
• GLM-5.3 is now the silent default model
• GitHub Copilot moved out of core into its own github-copilot labs plugin, now listed in the plugin catalog
• Hermes starts about 1 second faster from a git checkout, and startup no longer waits on the scratch-dir prune
• optimize-storage now shows progress in every phase and finishes several times faster
• Desktop typing no longer gets slower as your history grows
• Linux Desktop windows are no longer stuck see-through
• Stopping a turn no longer kills background subagents like /review
• Gateway wakes that land during or before a restart drain now still run instead of getting lost
• New opt-in prepared compaction, plus /stop now cleanly closes a summary stream
• Kanban worker turns stop getting saved as the operator's own memories
• The Webapp resolves files and media inside a session's Docker sandbox or SSH workspace, and one down SSH host no longer stalls the others
• New official ElevenLabs Sound Effects plugin in the catalog
Here is the full list:
DESKTOP IMPROVEMENTS (18 PRs)
• fix(desktop): clamp long sticky prompts on touch, with an expand toggle
• Linux Desktop windows are no longer permanently see-through
• perf(desktop): typing cost no longer grows with loaded history; sticky-prompt clip stops restyling turns
• fix(gateway): Desktop's macOS gateway keeps LAN model access after Desktop quits or updates
• fix(webapp): keep reading a host terminal socket behind a waiting write, so keepalive pongs are seen
• fix(webapp): a down SSH host no longer stalls file requests on other SSH profiles
• fix(webapp): do not route or mark reachable a profile the gateway does not serve
• fix(webapp): keep folder prefs with the profile that owns them
• fix(webapp): each prepared-submission journal entry lives under its own storage key
• fix(webapp): give each send its own retry record when Web Locks are missing
• fix(webapp): wait off the serial lane for a profile that is still starting
• fix(webapp): let a download retry redeem its ticket again
• fix(webapp): resolve workspace files and media in the session's Docker sandbox or SSH workspace, and a clear error when the SSH host is down
• fix(webapp): keep router state on a profile pick and ask the picked profile for live status, also after a reconnect
• fix(webapp): browser terminal redraw, `exit`, and terminal-drop quoting for unnamed shells
• fix(webapp): open large HTML previews, explain browser Export profile, preview staged text on SSH profiles
• fix(webapp): report failed composer drops and name the browser's 16 MiB upload limit
• fix(webapp): detach a host terminal whose tab closes behind a full input queue
VOICE & REAL-TIME (1 PR)
• fix(webapp): say what plain HTTP loses on the bot screen, in live voice and in the launcher
DEVELOPER TOOLS & PLUGINS (12 PRs)
• feat(plugin-catalog): list the github-copilot labs plugin
• refactor(providers): GitHub Copilot moves out of core into the github-copilot labs plugin
• catalog: add ElevenLabs Sound Effects (new official plugin)
• plugin-catalog: bump gonogo to v0.3.0 and thomas to v0.1.3
• plugin-catalog: bump loreconvo to 0.10.19
• feat(compression): opt-in prepared compaction
• Route every config.yaml read and write through a ConfigBackend seam
• Hermes starts ~1 s faster from a git checkout: provider plugins and the restart check no longer run the git version walk
• Git version lookups stay fast: Hermes keeps the commit graph fresh and clears stale commit-graph locks
• optimize-storage shows progress in every phase and finishes several times faster
• hermes sessions failures exit 1 instead of 0
• chore(deps): bump brotlicffi to 1.2.1.0
SECURITY & SECRETS (3 PRs)
• fix(dashboard-auth): give every password-provider session its own tokens
• fix(webapp): user-only private launch links, a port of its own for a standalone profile's Web Access
• Plugin-host profile extraction no longer imports code from the launch directory
INTEGRATIONS & CHAT (7 PRs)
• fix(models): make GLM-5.3 the silent default model
• Bot Chat no longer reports a finished reply as failed when the receipt refresh races the settlement
• fix(gateway): a chat's /new or /resume no longer flips back when a Desktop turn on its old conversation finishes
• fix(gateway): a chat handed off with /handoff keeps opening from Desktop and the Webapp
• fix(gateway): wakes admitted before a restart drain still run
• fix(gateway): wakes arriving during a restart drain are retried, not lost
• fix(kanban): worker turns are no longer stored as the operator's memories
STABILITY & FIXES (18 PRs)
• fix(windows): keep a review tree from taking over the home's hermes command
• Stopping a turn no longer kills background subagents like /review
• Startup no longer waits for the scratch-dir prune
• Scratch prune no longer disowns a running gateway after a clock change
• Background compaction never redoes its summary when the tail cut moves
• fix(compression): /stop closes the summary stream; a dead summary endpoint is reported as a fallback
• fix(compression): a handoff row no longer collapses the tail cut onto itself
• fix(agent): persist the turn budget's spill stubs onto the flushed tool rows
• fix(telemetry): graceful os._exit also writes the root profile's deferred host-count update
• fix(telemetry): keep process marks from background work that outlives its turn
• fix(gateway): flush opt-in shared metrics before graceful os._exit paths
• Relay shared-metrics smoke passes on main again, with expectations pinned to the contract
• test(desktop): the signing probe's EIO case can no longer lose its fault to the previous walk
• test(connectors): a failed catalog-row test reports at once instead of hanging its file 10 minutes
• test(gateway): model.options daemon tests stop timing out on a slow runner network
• The killed-update lock test stops failing when the file clock lags
• Host terminal takeover test no longer flakes on a partial PTY read
• Connectors catalog failed-row test no longer flakes on a loaded CI shard
59 new features and fixes