changelogs.info
OpenClaw Claude Code Codex Gemini Kilo Code Hermes Models Dispatches

Changelog

Every Hermes Agent release. Bolted straight to the record.

⌕
●
v0.22.5 Oct 23, 2026

v0.22.5

Hermes Agent v0.22.5

Release Date: October 22, 2026

Patch release. This tag rolls up the ~81 PRs merged since v0.22.4 into a stable release for the GitHub release (CLI and installers), the Microsoft Store app, Docker and Hermes Cloud. Full curated notes for this window ship with v0.23.0.

About this release

Measured at commit bf0203a794a, the window since v0.22.4 contains 231 non-merge commits across 804 changed files (+35,212 / −17,885), 81 merged PRs and 30 closed issues.

Also in the window, undocumented here on purpose: Nous sign-in reworked (every sign-in is the plain device login, the free-tier guest hands over to your account, the result shows who signed in, connectors offer sign-in instead of opening a guest), hermes update holding back a stable release it refuses instead of offering it, Windows hermes update no longer stuck on the old launcher after a Python repin, usage-window plan support (plan gauges, limit cards and model-switch recovery for window-based plans), pluggable delegation backends (route subagents by model map or profile, switchable per session), plugin slash commands that can ask you to pick an option, hermes import-agent, OpenClaw migration, hermes mcp serve and the Singularity backend moving out of core into plugins (setup offers the importer when it finds another agent), Desktop drag-to-pin in the sidebar and one-click plugin installs with tier badges, the Electron 44 upgrade, Pillow 13 and a batch of dependency security bumps, a clear message when a chat's working folder is gone, hermes update recovering paused gateways after a damaged .git, long Claude DirectSDK answers no longer cut off by the stall timer, Desktop group chats showing which bot is working again, and the experimental webhook-mode MCP events client.

Full curated release notes for this window ship with v0.23.0, which will document everything from v0.22.0 onward — highlights, feature areas, and complete contributor credits. Nothing in this window is skipped.

Updating

  • Microsoft Store app: updates through the Store.
  • Desktop app installed from the installer (.exe / .dmg): no change in this release; it updates with the next bundled release.
  • CLI: hermes update, or re-run the installer one-liner.
  • CIDocker / Hermes Cloud: nousresearch/hermes-agent:stable (or :latest).

Full Changelog: v0.22.4...v0.22.5

●
v0.22.4 Oct 21, 2026

v0.22.4

Hermes Agent v0.22.4

Release Date: October 21, 2026

Patch release. Desktop stops showing suggestion pills above the composer, plus small plugin and dashboard fixes, for the CLI and installer, the Microsoft Store app, Docker and Hermes Cloud.

Fixes

  • Desktop no longer shows suggestion pills above the composer. The pills appeared for no clear reason, mostly nudging you to set up MCP servers. They and the helpers that only they used are gone. (#142559)
  • Plugins that install nothing skip the dependency consent step. A plugin that declares no dependencies, or whose pyproject.toml installs nothing, now enables without an empty consent prompt. (#142569)
  • Dashboard: WhatsApp can be safely re-paired after logging out. (#142439)
  • Desktop plugin review: the surface lint no longer flags prototype writes; reviewers check them by hand. (#142586)
  • Desktop: the approval-mode chip follows the active profile's mode. (#142565)
  • Release builds: the desktop bundle's pre-build check gets enough time to verify archived build inputs when storage is slow. (#142623)

Also new in the plugin catalog: bubblewrap (bwrap terminal backend on Linux), Singularity/Apptainer, mcp-serve (Hermes as an MCP server), agent-importers (hermes import-agent, now with Cursor), inbox and workflow-record from Hermes Labs. Telegram Business moves to the Hermes Labs community tier.

About this release

Measured at commit 4d04303818b, the window since v0.22.3 contains 14 non-merge commits across 82 changed files (+1,475 / −3,022) and 13 merged PRs.

Updating

  • Microsoft Store app: updates through the Store.
  • Desktop app installed from the installer (.exe / .dmg): no change in this release; it updates with the next bundled release.
  • CLI: hermes update, or re-run the installer one-liner.
  • CIDocker / Hermes Cloud: nousresearch/hermes-agent:stable (or :latest).

Full Changelog: v0.22.3...v0.22.4

●
v0.22.3 Oct 21, 2026

v0.22.3

Hermes Agent v0.22.3

Release Date: October 21, 2026

Patch release. This tag rolls up the ~620 PRs merged since v0.22.2 into a stable release for the CLI and installer, the Microsoft Store app, Docker and Hermes Cloud. Full curated notes for this window ship with v0.23.0.

About this release

Measured at commit 5b147ab036d, the window since v0.22.2 contains 2,911 non-merge commits across 4,206 changed files (+360,278 / −64,308), about 620 merged PRs and 326 closed issues.

Also in the window, undocumented here on purpose: MCP progress notifications streamed as live tool progress, a refreshed classic CLI layout (glyph transcript, status line under the composer, two-line header), OAuth clients that plugins declare and Hermes signs in and refreshes, hermes plugins update offering every available plugin update plus an Update button for git-installed plugins in Desktop, steering and editing a queued prompt from Desktop, a guided subagent model and provider picker in Desktop, a live /loop countdown row in the CLI and TUI, opt-in Telegram DM topic transfer, a post_compaction plugin hook, a capabilities catalog, the Microsoft Store build going live automatically when a release publishes, session auto-prune back to opt-in with a one-time prompt when disk runs low, Nemotron 3.5 Bolt and one-slot DFlash drafts in the local runtime, and dozens of new plugin catalog entries.

Full curated release notes for this window ship with v0.23.0, which will document everything from v0.22.0 onward — highlights, feature areas, and complete contributor credits. Nothing in this window is skipped.

Updating

  • Microsoft Store app: updates through the Store.
  • Desktop app installed from the installer (.exe / .dmg): no change in this release; it updates with the next bundled release.
  • CLI: hermes update, or re-run the installer one-liner.
  • CIDocker / Hermes Cloud: nousresearch/hermes-agent:stable (or :latest).

Full Changelog: v0.22.2...v0.22.3

●
v0.22.2 Oct 15, 2026

v0.22.2

Hermes Agent v0.22.2

Release Date: October 15, 2026

v0.22.1 was built from the wrong commit. It shipped unreleased gateway work, and the Microsoft Store app could stick on "Connecting." 0.22.2 is the release 0.22.1 was meant to be.

Known issue: Sessions that ran under the 0.22.1 gateway can't be deleted in 0.22.2.

Highlights

  • The gateway starts after a reboot again. After a restart, Linux can hand an early PID to an unrelated process, and the gateway could mistake it for a running gateway, so a supervised gateway (systemd, launchd, Docker) refused to start. Hermes now records the boot it started in, and when it can't tell, it asks the host lock, which only a live gateway holds. (#138594, fixes #133744)
  • Long local-model turns survive on laptops. Local requests always stream with prompt-reading progress (shown in the status line), stall timers skip time the machine was asleep, a recovered local server gets another try instead of a breaker that failed every later message, and compression no longer times out while the server is still reading a long conversation. On Windows unified-memory machines, model launch and the prompt cache are sized to free memory. (#138560)

Below is everything in the 0.22 release line since v0.22.0: the fixes 0.22.1 was meant to ship, plus the two above. Work that is only on main ships with v0.23.0.

✨ Features

  • Release: split the Microsoft Store bundle into its own windows-store lane (f9d8a740) — @ethernet8023
  • Agent: add nemotron super 3.5 default parameters (c59d2994) — @elisam0
  • Cli: add nemotron to NVIDIA NIM default model list (cc55270e) — @elisam0
  • Cli: add curated model list at the top in the model picker list (e6835fd3) — @elisam0
  • Release: choose what a stable release builds and tests with lanes (36a8ee18) — @ethernet8023
  • Plugin-catalog: add hermes-lang-ko — Korean Desktop language pack (e5f49b6a) — @dandacompany
  • Plugin-catalog: add hermes-lang-pt-br (Brazilian Portuguese language pack) (0169e80c) — @StudioCodeAI
  • Contributors: add 2867297362mjb-sketch email mapping (9ab40641) — @2867297362mjb-sketch
  • Plugin-catalog: add teamorouter (TeamoRouter model providers) (ef223406) — @2867297362mjb-sketch
  • Plugin-catalog: add author-feed (5f6d6836) — @TakeshiTGAL
  • Plugin-catalog: bump aux-ledger to 1.4.0 (6048066e) — @olric3015
  • Plugin-catalog: add the wait-ledger catalog card (77cb58e5) — @olric3015
  • Plugin-catalog: add wait-ledger (97e65322) — @olric3015
  • Community plugin: lightningai + lightningai-rate-limit (07515466) — @dinosauria123
  • Catalog: add Hermes AAC 0.1.0 at reviewed exact source pin (7c9adda8) — @TREE-Ind
  • Plugin-catalog: add openinvest (b6e86101) — @longsizhuo
  • Catalog: add hermes-agent-mixer (v0.2.0 @ 04c4e13) (2e7e3859) — @Sahil-SS9
  • Plugins: move Kumiho Memory to memory catalog shelf (46f95e08) — @kaveone
  • Release: dispatch Stable Release from the default branch (667e6639) — @ethernet8023

🔧 Improvements

  • Agent: keep the Mistral tool-id rule beside its only consumer (c5fc0958) — @kshitijk4poor
  • Profiles: build the seed routing view once; expand enabled too (311155fa) — @kshitijk4poor
  • Profiles: simplify the model seed and trim its tests (d9dfb124) — @kshitijk4poor
  • Update nemotron super 3.5 name (3224993a) — @elisam0
  • Hermes_cli: update nemotron 3.5 name (108ae4e7) — @elisam0
  • Catalog: re-pin showly to the build without the upstream self-update check (6462f64a) — @slchris
  • Catalog: update Model Router to v0.4.3 native preferences (6a097ee9) — @metamindedu

🐛 Bug Fixes

  • Gateway: a recorded boot epoch that cannot be compared is unprovable (79b3b724) — @ethernet8023
  • Local: keep long local-model turns alive on laptops (518ce272) — @emozilla
  • Gateway: a read-only host-record check never creates the lock file (91e63f84) — @kshitijk4poor
  • Gateway: let the host lock decide a legacy record that looks older than this boot (4d984677) — @ethernet8023
  • Gateway: anchor the legacy host-record check on boot time, not a live create_time (5b416e42) — @ethernet8023
  • Gateway: drop argv identity from host rendezvous liveness (c7fa3cbf) — @sin5ddd
  • Gateway: reject a recycled PID that only matches start ticks (7934442e) — @sin5ddd
  • Tui: keep a ${VAR} bare-custom endpoint as a ref in the new profile (dd2db134) — @kshitijk4poor
  • Tui: a new profile inherits a bare custom launch model with its endpoint (463d4019) — @kshitijk4poor
  • Release: a Store-only Windows build gets no signing vars; Store-plus-macOS smokes record only macOS (a8cc19eb) — @ethernet8023
  • Agent: keep composite tool ids paired on Mistral routes (0c1bfb7d) — @kshitijk4poor
  • Agent: rewrite split tool ids before Mistral sees them (b33ed359) — @xxxigm
  • Release: macOS smoke runs when no receipt was staged (f546ea2f) — @ethernet8023
  • Install-e2e: preserve bundled Windows process arrays (6db1934d) — @Oceanswave
  • Profiles: match env-referenced endpoint names when seeding a profile (7b755ed5) — @kshitijk4poor
  • Profiles: drop every same-identity destination entry when merging (9a9a6e43) — @kshitijk4poor
  • Profiles: match endpoint identity the way runtime does when merging (ef57cbd9) — @kshitijk4poor
  • Profiles: keep URL-less destination entries when merging the endpoint seed (2aa469f7) — @kshitijk4poor
  • Profiles: inherited endpoint is not shadowed by the profile's own entries (ac0b63af) — @kshitijk4poor
  • Profiles: select the seeded endpoint from an env-referenced provider (c85302a2) — @kshitijk4poor
  • Profiles: keep bare custom provider tuning in the model seed (424aa90f) — @kshitijk4poor
  • Profiles: reuse named provider lookup without credential reads (c8a777ff) — @helix4u
  • Profiles: align model seed with provider resolution (5fee8d77) — @helix4u
  • Profiles: inherit canonical and legacy custom endpoints (2d3e75aa) — @helix4u
  • Drop the VPN/proxy advice from the CDN-block message (300228d2)
  • Scope the no-cf-cache-status block signal to our R2 host; keep it on 429s (ec5fa1e4)
  • Name a CDN firewall block instead of a bare HTTP 403 (#128295) (#128295)
  • Release: termux-only claims finish and partial releases keep the shared downloads page (6743ab71) — @ethernet8023
  • Ci: packaged-update acceptance retries a download whose connection resets (db4a6a9e) — @ethernet8023
  • Catalog: re-pin Agent Mixer after maintainer review (4297a692) — @Sahil-SS9
  • Pin Activity v0.2.1 public credential routes (3dac1f07) — @hassan-kamel
  • Plugin-catalog: update jp-egov-law to f1dd47e (c029046d) — @TakeshiTGAL
  • Plugin-catalog: update switchbot-control to d0e6f77 (c4bf61b1) — @TakeshiTGAL
  • Install-e2e: the Windows packaged-app feed serves byte ranges (1f6c02c0)
  • Pm: re-merge the uv cache seed on volumes marked by a seedless image (1226894b) — @ethernet8023
  • Release: publish replaces the stable head instead of create-only (df8c3ca5)
  • Release: keep a stable run on main from using the controller commit or cancelling pushes (0dbd96ab) — @ethernet8023
  • Pm: stage a version for version-less buildable plugin members too (3d8dfc1d) — @ethernet8023
  • Pm: don't stamp project.version on members declaring it dynamic (2a10164c) — @Ieqzya
  • Pm: give generated virtual workspace members a project.version (357986e5) — @Ieqzya
  • Pm: retry sync without bytecode compile when that step fails (10619939) — @smfworks
  • Deps: bump httpx2/httpcore2 2.7.0 -> 2.12.0 for the audit advisories (bc8545bd) — @guthixboss1
  • Doctor: stop mislabeling the root npm audit row as agent-browser (7b1dc974) — @chelsealong
  • Doctor: say recreating the same Docker image does not fix npm findings (dee35e1d) — @ethernet8023
  • Doctor: describe full workspace npm audit scope (b9dda06b) — @dwaxe
  • Doctor: clarify Docker npm audit remediation (e21caa27) — @KoNit-K
  • Deps: bump the WhatsApp bridge lock past its npm-audit findings (231cb757) — @ethernet8023
  • Deps: land source-map-js 1.2.2 and sync the workspace pins to the overrides (f57d12eb) — @ethernet8023
  • Deps: bump pinned npm packages to clear npm audit findings (732f0f17) — @sajidhaleem
  • Windows: packaged-npx install failures degrade to plain npx; payload venv must be real (84e2250b) — @ethernet8023
  • Docker: ship the build's uv cache at the PM seed path (f4e70b9d) — @ethernet8023
  • Release: publish the final vX.Y.Z Docker tag again (c1100232) — @ethernet8023
  • Pm: npm on PATH is the pinned npm, not the copy bundled inside node (8d3b5ab5) — @ethernet8023
  • Windows: an MSIX with no Node to copy runs npx MCP servers on its packaged node (8ef7654b) — @ethernet8023
  • Windows: MSIX terminal and MCP children get node, npm and python copied outside the package (c7abf4fb) — @ethernet8023
  • Terminal: the user's own tools come before Hermes's in the terminal (162b457c) — @ethernet8023
  • Search: local file search runs Hermes's pinned ripgrep, not the first rg on PATH (9b4710b8) — @ethernet8023
  • Terminal: strip a sealed payload's venv from child PYTHONPATH (671996b1) — @ethernet8023

📚 Documentation

  • Agent: use the released model name Nemotron 3.5 Super VL (79651b71) — @j-nolan
  • Agent: name the guidance blocks and drop the unsupported claims (ba498735) — @j-nolan
  • Agent: note that the guidance blocks were tested on Nemotron without effect (2b57b0db) — @j-nolan
  • Providers: rephrased content (4f8df7e1) — @nv-pberard
  • Env: add NVIDIA NIM to .env example (3dd96101) — @elisam0
  • Providers: use a non-cloud example key for local NIM (da463310) — @rroverin
  • Providers: update NVIDIA NIM example to Nemotron 3.5 Super VL (c5bab4af) — @rroverin
  • Local Models is on by default on macOS, Windows and Linux (1e8bf3ee)

🧪 Tests

  • Agent: pin Mistral's 9-character tool id on the wire (9a90a825) — @xxxigm
  • Profiles: pin same-identity eviction of URL-less and disabled entries (0f447876) — @kshitijk4poor
  • Profiles: pin that the model seed copies only the selected endpoint (29db211b) — @kshitijk4poor
  • Agent: add reasoning timeout default test (73a07104) — @elisam0
  • Relay: the OpenAI-stream e2e no longer self-deadlocks when the stream is buffered (6e84ce66)
  • Pm: one streamed-sync test covers the bytecode-compile retry (7f21aad1) — @ethernet8023
  • Deps: fail the build if an httpx2 pin or lock entry drops below 2.12.0 (3ca10d88) — @jarvistwil
  • Doctor: point the root-row label test at the staged-npm seam (40441695) — @ethernet8023
  • Pm: allow-list the packaged-npx node lookups in the resolution ratchet (c4f9a169) — @ethernet8023

🏗️ Infrastructure

  • Release: admit stable releases from release/* branches, not just main (9686d55c) — @ethernet8023
  • Map contributor email for sin5ddd (#133750 salvage) (#133750) — @kshitijk4poor
  • Map Oceanswave noreply email to GitHub login (f343bdff) — @ethernet8023
  • Map contributor email for ashmoonori-afk (6a1ee825)
  • Plugins: pin birkin-mnemosyne to core 0.7.1 (e216cd74) — @ashmoonori-afk
  • Catalog: review disclosure for huddo (85d27a51)
  • Map contributor email for StudioCodeAI (c708b34f)
  • Plugin-catalog: update Telegram Client to 1.3.1 (27aaade9) — @guberm
  • Plugin-catalog: bump Gmail to v1.0.20 (c6ac0565) — @guberm
  • Plugin-catalog: bump Gmail to v1.0.19 (74324f11) — @guberm
  • Plugin-catalog: update Gmail to v1.0.18 (8050d9ea) — @guberm
  • Kiwi: bump pin to kiwi@0.12.5, plugin v1.2.2 (a08f5894) — @harrylabsj
  • Map contributor email for dinosauria123 (06c81873)
  • Lightningai-rate-limit to v1.1.0 (wall-clock aligned window) (e28d64e8) — @dinosauria123
  • Map contributor email for TREE-Ind (71f78b3f)
  • Catalog: review disclosure for hermes-aac (0567d017)
  • Catalog: review disclosure for openinvest (c179b286)
  • Map contributor email for Sahil-SS9 (d8b5bd8a)
  • Catalog: review disclosure for hermes-agent-mixer (a98cc310)
  • Catalog: review disclosure for hermes-activity (e891815c)
  • Update Activity catalog to v0.2.0 (908c525d) — @hassan-kamel
  • Map contributor email for slchris (eaf08400)
  • Catalog: showly reviewed disclosure + requires_hermes >=0.21.6 (2ee820e7)
  • Map contributor email for Neboy72 (d9971f13)
  • Catalog: review disclosure for nexus (1a5f5c7b)
  • Catalog: review disclosure for kumiho-memory (63da5f7b)
  • Catalog: review disclosure for model-router (92790c6d)
  • Catalog: review disclosures for anatomy-museum, agent-janitor (560b2507)
  • Contributors: map ieqzya@gmail.com to Ieqzya (c98162bb) — @ethernet8023
  • Contributors: map Darthvader88@gmail.com to guthixboss1 (8c5c9ac4) — @ethernet8023
  • Release: pass the commit under test through every stable lane (66facf4a) — @ethernet8023

📦 Other Changes

  • Repin hermes-insight to a61cdf6 (1.0.3) (0e427d78) — @BrokeSkill
  • Repin hermes-insight to afb08fb (1.0.2) (51e663da) — @BrokeSkill
  • Plugin-catalog: bump huddo to 0.9.0 (eeacc00a) — @hellohanchen
  • Plugin-catalog: re-pin hermes-lang-pt-br to 7548ff1 (pack verifier + CI) (82fbd41f) — @StudioCodeAI
  • Plugin-catalog: re-pin hermes-lang-pt-br to 69efb2f (credits/timeline README) (2c20d9a3) — @StudioCodeAI
  • Catalog: bump speechify to 0.1.1 (3a5b9e84) — @Lokeshm24
  • Catalog: re-pin qdrant-memory to 0.2.1 (e14adc06) (720552bb) — @cnkang
  • Catalog: repin Hermes AAC 0.1.1 SDK-only reduced features (473e2847) — @TREE-Ind
  • Plugin-catalog: openinvest re-pin to 106e5ba (bounded backend deps, 0.41.6) (6cc9a434) — @longsizhuo
  • Plugin-catalog: openinvest re-pin to 3a0c816 (review fixes, backend 0.41.4) (00c311c8) — @longsizhuo
  • Plugin-catalog: openinvest re-pin to 3e1a9d7 (review fixes) (cb223633) — @longsizhuo
  • Plugin-catalog: bump plan-mode to 0.4.4 (2a5617f8) — @100yenadmin
  • Plugin-catalog: bump plan-mode to 0.4.3 (6fafdd4f) — @100yenadmin
  • Catalog: pin the Showly community plugin (5da3156c) — @slchris
  • Catalog(nexus): repin the sha to 4392e6d — /embed and /mcp demand a per-installation key (64425a06) — @Neboy72
  • Catalog(nexus): repin to v0.22.24 — the embedder comes from the service, not from a shadowed path (0ee11795) — @Neboy72
  • Catalog(nexus): repin to v0.22.23 — the plugin reaches its own venv again (a442c9a5) — @Neboy72
  • Catalog(nexus): pin the engine to the full sha of the reviewed commit (1f295ae0) — @Neboy72
  • Catalog(nexus): repin to v0.22.22 — the engine rev is one resolvable tag, the docs match the code (7f495184) — @Neboy72
  • Catalog(nexus): repin to v0.22.21 — five access-level gaps closed (0f8a2a17) — @Neboy72
  • Catalog(nexus): repin to v0.22.20 — conversation history is private (14aaf8e1) — @Neboy72
  • Catalog(nexus): repin to v0.22.18 (Claude Code writes memory again) (2165eed9) — @Neboy72
  • Catalog(nexus): repin to v0.22.17 (memory provider can embed again) (f60e16fc) — @Neboy72
  • Catalog(nexus): repin to v0.22.16 (named-vector fixes in the root package) (dab47696) — @Neboy72
  • Catalog(nexus): repin to v0.22.15 (review findings: stricter trust matching) (3952f2b5) — @Neboy72
  • Catalog(nexus): repin to 3f77b2a (plugin.yaml version parity) (ca1c2261) — @Neboy72
  • Catalog(nexus): repin to v0.22.13 (named collection model) (c7b035c1) — @Neboy72
  • Plugin-catalog: bump account-pool to 4.0.2 (e5d2cebe) — @roqianjas
  • Plugin-catalog: bump alans-way and alans-way-computer to 0.21.5 (a8d61e30) — @capthvnsen
  • Plugin-catalog: bump tinyfish to 0.2.2 (6ebd92d9) — @Zechereh
  • Plugin-catalog: nvidia pins -> de75692 (Broadcast troubleshooting uses tool_search, not a shell probe) (66cd37c9) — @alt-glitch
  • Plugin-catalog: nvidia-app + nvidia-broadcast pin -> 729e25c (first-run setup when the app side is not ready) (f18948e4) — @alt-glitch
  • Catalog: agent-janitor (from #137875) (#137875) — @ZidoCode
  • Catalog: anatomy-museum (from #138166) (#138166) — @danrudy33
  • Catalog: secure-env-ingress (from #132272) (#132272) — @web3blind

👥 Contributors

Thank you to everyone who contributed to this release!

  • @ethernet8023 (33 commits)
  • @kshitijk4poor (17 commits)
  • @Neboy72 (13 commits)
  • @elisam0 (7 commits)
  • @guberm (4 commits)
  • @longsizhuo (4 commits)
  • @helix4u (3 commits)
  • @j-nolan (3 commits)
  • @StudioCodeAI (3 commits)
  • @TakeshiTGAL (3 commits)
  • @olric3015 (3 commits)
  • @sin5ddd (2 commits)
  • @xxxigm (2 commits)
  • @rroverin (2 commits)
  • @BrokeSkill (2 commits)
  • @2867297362mjb-sketch (2 commits)
  • @dinosauria123 (2 commits)
  • @TREE-Ind (2 commits)
  • @100yenadmin (2 commits)
  • @Sahil-SS9 (2 commits)
  • @hassan-kamel (2 commits)
  • @slchris (2 commits)
  • @alt-glitch (2 commits)
  • @Ieqzya (2 commits)
  • @emozilla (1 commit)
  • @predatorheard-byte (1 commit)
  • @Oceanswave (1 commit)
  • @nv-pberard (1 commit)
  • @dandacompany (1 commit)
  • @ashmoonori-afk (1 commit)
  • @hellohanchen (1 commit)
  • @Lokeshm24 (1 commit)
  • @harrylabsj (1 commit)
  • @cnkang (1 commit)
  • @kaveone (1 commit)
  • @roqianjas (1 commit)
  • @capthvnsen (1 commit)
  • @Zechereh (1 commit)
  • @metamindedu (1 commit)
  • @ZidoCode (1 commit)
  • @danrudy33 (1 commit)
  • @web3blind (1 commit)
  • @smfworks (1 commit)
  • @jarvistwil (1 commit)
  • @guthixboss1 (1 commit)
  • @chelsealong (1 commit)
  • @dwaxe (1 commit)
  • @KoNit-K (1 commit)
  • @sajidhaleem (1 commit)

Updating

  • CLI and installer-script desktop installs: hermes update, or re-run the installer one-liner. This moves installs that took v0.22.1 back onto the release line.
  • Microsoft Store: updates through the Store.
  • CIDocker / Hermes Cloud: nousresearch/hermes-agent:stable (or :latest).

Full Changelog: v0.22.0...v0.22.2 (release line)

●
v0.22.1 Oct 14, 2026

v0.22.1

Hermes Agent v0.22.1 (rc.5-v0.22.1)

Release Date: October 14, 2026

This is a patch release, with a handful of fixes for the Windows Store, plugin updates, and more.

✨ Features

  • Agent): add nemotron super 3.5 default parameters (c59d2994) — @elisam0
  • Cli): add curated model list at the top in the model picker list (e6835fd3) — @elisam0
  • Plugin-catalog): add hermes-lang-ko — Korean Desktop language pack (e5f49b6a) — @dandacompany
  • Plugin-catalog: add hermes-lang-pt-br (Brazilian Portuguese language pack) (0169e80c) — @StudioCodeAI
  • Plugin-catalog: add teamorouter (TeamoRouter model providers) (ef223406) — @2867297362mjb-sketch
  • Plugin-catalog): add author-feed (5f6d6836) — @TakeshiTGAL
  • Plugin-catalog): bump aux-ledger to 1.4.0 (6048066e) — @olric3015
  • Plugin-catalog): add the wait-ledger catalog card (77cb58e5) — @olric3015
  • Plugin-catalog): add wait-ledger (97e65322) — @olric3015
  • Community plugin: lightningai + lightningai-rate-limit (07515466) — @dinosauria123
  • Catalog: add Hermes AAC 0.1.0 at reviewed exact source pin (7c9adda8) — @TREE-Ind
  • Plugin-catalog): add openinvest (b6e86101) — @longsizhuo
  • Catalog: add hermes-agent-mixer (v0.2.0 @ 04c4e13) (2e7e3859) — @Sahil-SS9
  • Plugins): move Kumiho Memory to memory catalog shelf (46f95e08) — @kaveone
  • Add canonical group attachment controls (4673f17c)
  • Consume event-bound hosted files through canonical admissions (e87bd098)
  • Connect Desktop groups to canonical driver controls (3c2c9d47)
  • Transport hosted producers through authenticated owner sockets (51189b05)
  • Retain hosted room work evidence across authority changes (0af2c714)
  • Route hosted room workers through session authority (bd22e0f9)
  • Wire canonical hosted group controls (fa2179bb)
  • Gateway): resolve --resume and -c <title> [--create-if-missing] in the authority (<a href="https://github.com/NousResearch/hermes-agent/commit/11a83ad4d19fab4bd8889c9d04759af168c55b2b"><code>11a83ad4</code></a>)</li> <li>Retain terminal identity tombstones during history retirement (<a href="https://github.com/NousResearch/hermes-agent/commit/ba435291aab7d782e70f1102bd6174d9b6278675"><code>ba435291</code></a>)</li> <li>Route native CLI and ACP actions through prepared controls (<a href="https://github.com/NousResearch/hermes-agent/commit/27b0f7f20a7ba0fdc793fafe732d56adf2dfa54f"><code>27b0f7f2</code></a>)</li> <li>Publish real prepared compression in the mutation receipt transaction (<a href="https://github.com/NousResearch/hermes-agent/commit/b654027693d6c8f92b185e8a3bd2728c5f3e81c5"><code>b6540276</code></a>)</li> <li>Prepare and atomically publish local model changes (<a href="https://github.com/NousResearch/hermes-agent/commit/7e7fa7c61611a858cc0be51f790584b91f1d149c"><code>7e7fa7c6</code></a>)</li> <li>Commit independent local branch policy and route atomically (<a href="https://github.com/NousResearch/hermes-agent/commit/f98eaec108f365da07090495a82d6ca95c2de66a"><code>f98eaec1</code></a>)</li> <li>Project managed tool progress without private arguments or results (<a href="https://github.com/NousResearch/hermes-agent/commit/61ccd894c3674d01a2fb95528217816bc4888d52"><code>61ccd894</code></a>)</li> <li>Bridge managed worker approvals clarification and stop (<a href="https://github.com/NousResearch/hermes-agent/commit/a0b5118f46196190bc244a8f1ecf17d5754fc72c"><code>a0b5118f</code></a>)</li> <li>Launch admission-owned tool workers from the ordinary daemon (<a href="https://github.com/NousResearch/hermes-agent/commit/510e32be9a31a2caae358fc6c95673ffb24c0466"><code>510e32be</code></a>)</li> <li>Enforce safe defaults at bare agent construction (<a href="https://github.com/NousResearch/hermes-agent/commit/1eeac867b187f331b61e1b607d35b1af7f00b2bc"><code>1eeac867</code></a>)</li> <li>Suppress rules skills and memory readers in private safe workers (<a href="https://github.com/NousResearch/hermes-agent/commit/25cda66a8bfff26da5c92bf3170cc724bd7fc5ec"><code>25cda66a</code></a>)</li> <li>Bypass plugin providers and hook execution in safe workers (<a href="https://github.com/NousResearch/hermes-agent/commit/33921e6f97a950b4b74ffa11cdb3004676f1c920"><code>33921e6f</code></a>)</li> <li>Bind immutable private worker config before runtime imports (<a href="https://github.com/NousResearch/hermes-agent/commit/4cc3f42087e61e84a3b6054903e88f3c7e943a56"><code>4cc3f420</code></a>)</li> <li>Expose verified canonical ACP editor MCP attachment (<a href="https://github.com/NousResearch/hermes-agent/commit/1bda56a104e55ebbd21fdefaed860f6488009b57"><code>1bda56a1</code></a>)</li> <li>Rebind exact editor MCP credentials on canonical ACP resume (<a href="https://github.com/NousResearch/hermes-agent/commit/5bfa2f2c2df10d26f24c103079fd9044e69b4df8"><code>5bfa2f2c</code></a>)</li> <li>Borrow editor MCP configurations with frozen session manifests (<a href="https://github.com/NousResearch/hermes-agent/commit/394f00f694cb90c2ea6f502eda0959bc37ab2830"><code>394f00f6</code></a>)</li> <li>Isolate execution-owned MCP registry overlays (<a href="https://github.com/NousResearch/hermes-agent/commit/96e4d2962bfeb56323063f64bad8cca3fd4479ee"><code>96e4d296</code></a>)</li> <li>Commit local reset targets with runtime mutation receipts (<a href="https://github.com/NousResearch/hermes-agent/commit/821137c301ebc5419f86a7069b66036b42100aab"><code>821137c3</code></a>)</li> <li>Expose profile-scoped Bot relay mailbox RPCs on the authority (<a href="https://github.com/NousResearch/hermes-agent/commit/792aa35adc57874c62a6d03a40d512d0bab1cebe"><code>792aa35a</code></a>)</li> <li>Migrate queued Bot mailbox identities without replaying claims (<a href="https://github.com/NousResearch/hermes-agent/commit/af49e2fc05950473e4ee6f9dd431233540f62923"><code>af49e2fc</code></a>)</li> <li>Send local Bot DMs to the discovered canonical authority (<a href="https://github.com/NousResearch/hermes-agent/commit/47ba694e291d0d3233041720d04317f5cd82285f"><code>47ba694e</code></a>)</li> <li>Admit identified Bot Chat relay deliveries through session authority (<a href="https://github.com/NousResearch/hermes-agent/commit/998df8cc0b8028634a6fca15677ab2fc20900b2a"><code>998df8cc</code></a>)</li> <li>Reserve exact owner-started admission worker claims (<a href="https://github.com/NousResearch/hermes-agent/commit/fbdfd46de8303673c908207206a818d98f8d68f4"><code>fbdfd46d</code></a>)</li> <li>Expose authenticated owner mutation snapshots (<a href="https://github.com/NousResearch/hermes-agent/commit/d6331c4813bab5d0d920286b4af5a6b58fd13ced"><code>d6331c48</code></a>)</li> <li>Freeze ACP tool policy and bind execution-owned edit consent (<a href="https://github.com/NousResearch/hermes-agent/commit/e2f5cfc65ea6c38580d3ac38469e71bf31912354"><code>e2f5cfc6</code></a>)</li> <li>Reserve hosted API identities through the authority (<a href="https://github.com/NousResearch/hermes-agent/commit/6b278ca4f015e2a5a5b0a30c5ac1b11825c15384"><code>6b278ca4</code></a>)</li> <li>Admit API runs before acknowledging execution (<a href="https://github.com/NousResearch/hermes-agent/commit/f2d9cea38e97e0356b9b24c07ea5deddfe9de914"><code>f2d9cea3</code></a>)</li> <li>Run bound API turns on the shared cached agent (<a href="https://github.com/NousResearch/hermes-agent/commit/dea4f0c568e6d0e13fd9ea8be73cd4ea81a96f25"><code>dea4f0c5</code></a>)</li> <li>Restore server-bound API session identities (<a href="https://github.com/NousResearch/hermes-agent/commit/76532ae1338cc193f6bdef92c0aa4d616a319150"><code>76532ae1</code></a>)</li> <li>Retain claim-fenced structured admission results (<a href="https://github.com/NousResearch/hermes-agent/commit/262e0ebf5ff0123d675098aaa5c8e03f5e4c5d1b"><code>262e0ebf</code></a>)</li> <li>Compose worker compression lifecycle and delegation persistence (<a href="https://github.com/NousResearch/hermes-agent/commit/6c57ad37c31e643f5692ea5d31ab759b425cf113"><code>6c57ad37</code></a>)</li> <li>Publish committed worker completions through authenticated owner bridge (<a href="https://github.com/NousResearch/hermes-agent/commit/d94ccc2d8182ed1a5da6a11b9d79a1d4b97a96c7"><code>d94ccc2d</code></a>)</li> <li>Fence delegation receipts with shared worker sequence and epoch (<a href="https://github.com/NousResearch/hermes-agent/commit/be85ca249e51ae9975c049604e1ae2ed4194261b"><code>be85ca24</code></a>)</li> <li>Route registered worker delegation writes through durable outbox (<a href="https://github.com/NousResearch/hermes-agent/commit/1ee6545f7a34d4424d7dcae44b7e40c217cb4a0c"><code>1ee6545f</code></a>)</li> <li>Add execution-bound delegation ledger operations (<a href="https://github.com/NousResearch/hermes-agent/commit/8128e88fd2b7f86b16534c0f62b605265aee80af"><code>8128e88f</code></a>)</li> <li>Persist worker titles activity and route sidecars with receipts (<a href="https://github.com/NousResearch/hermes-agent/commit/235e4f12d7d9212c205cf1f98876ea0e6fa0e12c"><code>235e4f12</code></a>)</li> <li>Add assignment-fenced worker constructor and finalization handlers (<a href="https://github.com/NousResearch/hermes-agent/commit/b7de5a8eba9ab7c4851c823f8fd196f2c4ca5da8"><code>b7de5a8e</code></a>)</li> <li>Atomically compact and advance worker transcript assignments (<a href="https://github.com/NousResearch/hermes-agent/commit/c2e77ebaeb77b0f70dce83c105606335a64cd988"><code>c2e77eba</code></a>)</li> <li>Preserve worker history and cache lineage identities (<a href="https://github.com/NousResearch/hermes-agent/commit/e63e1101c02a80e6f3b9f0ca619fae5b6be73e6e"><code>e63e1101</code></a>)</li> <li>Add receipted worker compression guards and leases (<a href="https://github.com/NousResearch/hermes-agent/commit/d51afe4cb92e66e499c6e3f385dfbe18b8d9b88d"><code>d51afe4c</code></a>)</li> <li>Route REST imports and deletion through mutation receipts (<a href="https://github.com/NousResearch/hermes-agent/commit/2cdd103df9f7b1668292c36e791fc5fd084860ff"><code>2cdd103d</code></a>)</li> <li>Route REST sidebar edits through the shared authority (<a href="https://github.com/NousResearch/hermes-agent/commit/eb329d21ba95077eff9764e7531e3364ed3d8362"><code>eb329d21</code></a>)</li> <li>Coordinate shared mutations and publish committed revisions (<a href="https://github.com/NousResearch/hermes-agent/commit/eb42a0021f05befde4159c43e097b652fc9d1cf3"><code>eb42a002</code></a>)</li> <li>Reuse transactional rewind with generation and receipt fences (<a href="https://github.com/NousResearch/hermes-agent/commit/6777ffa4bb67310bc5a7044892cc7cf48bdb685e"><code>6777ffa4</code></a>)</li> <li>Import session histories atomically with retry receipts (<a href="https://github.com/NousResearch/hermes-agent/commit/b919459524e609dd60cf04c5710941db8cce1903"><code>b9194595</code></a>)</li> <li>Fence destructive deletion without erasing runtime obligations (<a href="https://github.com/NousResearch/hermes-agent/commit/e5249c9af4efbcfd9aca39f276c71d938249c3e4"><code>e5249c9a</code></a>)</li> <li>Commit sidebar edits with canonical mutation receipts (<a href="https://github.com/NousResearch/hermes-agent/commit/0b1b8e0f1d845060c84791f9bc45f581b9ed8858"><code>0b1b8e0f</code></a>)</li> <li>Project execution-owned approvals to ACP viewers (<a href="https://github.com/NousResearch/hermes-agent/commit/97a24c10b3b81a8ea1f142d0125b05ffc62098aa"><code>97a24c10</code></a>)</li> <li>Attach ACP transport to canonical session execution (<a href="https://github.com/NousResearch/hermes-agent/commit/8dd92a30b6b53c9b5ae3a27eebcb90f36c9919a3"><code>8dd92a30</code></a>)</li> <li>Persist assigned worker prompt context and usage anchors (<a href="https://github.com/NousResearch/hermes-agent/commit/c6540cb9dd86a08eef0bf597bcb9dae68a955ac3"><code>c6540cb9</code></a>)</li> <li>Admit local automation through owner durable FIFO (<a href="https://github.com/NousResearch/hermes-agent/commit/1642b339918cb74f87b4d03e17593d547e674329"><code>1642b339</code></a>)</li> <li>Queue due gateway heartbeat ticks through canonical admission (<a href="https://github.com/NousResearch/hermes-agent/commit/ab44af2c0732485fb33c7e53bad0a5daa29f8d28"><code>ab44af2c</code></a>)</li> <li>Admit trusted gateway completions to the durable session FIFO (<a href="https://github.com/NousResearch/hermes-agent/commit/7cd1b000daa3526e72a817df70190dd5569e0aec"><code>7cd1b000</code></a>)</li> <li>Fence worker terminal receipt after sequenced durable writes (<a href="https://github.com/NousResearch/hermes-agent/commit/21a48aea09d719b3f2a1f2ebae8053791b6b13d2"><code>21a48aea</code></a>)</li> <li>Authenticate live worker persistence and explicit restart adoption (<a href="https://github.com/NousResearch/hermes-agent/commit/9d7d7e2abdab2a59f7e7e0ff517b85b73de45681"><code>9d7d7e2a</code></a>)</li> <li>Receipt worker main and auxiliary usage in canonical transactions (<a href="https://github.com/NousResearch/hermes-agent/commit/9d896c499b034fcb4e16e58a1865a26feb778ec0"><code>9d896c49</code></a>)</li> <li>Atomically receipt structured worker transcripts and turn leases (<a href="https://github.com/NousResearch/hermes-agent/commit/2abe47de8bd8f2b9f76c024b339244e05e7918b0"><code>2abe47de</code></a>)</li> <li>Dispatch bound local slash commands through gateway handlers (<a href="https://github.com/NousResearch/hermes-agent/commit/b0377e929b48bed68fb13799ad1878d747e128e3"><code>b0377e92</code></a>)</li> <li>Share authenticated canonical slash discovery with legacy catalogs (<a href="https://github.com/NousResearch/hermes-agent/commit/fcf50e03c3b2cdae9c160ee01f23ba576c198965"><code>fcf50e03</code></a>)</li> <li>Authenticate native HTTP through private daemon grants (<a href="https://github.com/NousResearch/hermes-agent/commit/75764b2ad0c8767069da717f68a81977d1165409"><code>75764b2a</code></a>)</li> <li>Commit local creation policy and restore cold authority routes (<a href="https://github.com/NousResearch/hermes-agent/commit/aa2624ba5c200d2e540e538e6bae73754f9f8f15"><code>aa2624ba</code></a>)</li> <li>Attach Desktop local launches to canonical gateway (<a href="https://github.com/NousResearch/hermes-agent/commit/9c40ddcfc2a04fdb3278e8173a85a4b03c24099f"><code>9c40ddcf</code></a>)</li> <li>Bind Ink sessions and controls to canonical authority envelopes (<a href="https://github.com/NousResearch/hermes-agent/commit/a2d9e258daa97b43836821a97f79c5de06d21df5"><code>a2d9e258</code></a>)</li> <li>Attach Ink local transport through canonical gateway bootstrap (<a href="https://github.com/NousResearch/hermes-agent/commit/08f628f9f5b0f5a2ebcaf7ece45e76e3ff71f457"><code>08f628f9</code></a>)</li> <li>Route normal classic and one-shot launch through the gateway (<a href="https://github.com/NousResearch/hermes-agent/commit/3551045907580e25a766d01bc56eb0ee41115d0d"><code>35510459</code></a>)</li> <li>Add transport-only classic gateway client and option validation (<a href="https://github.com/NousResearch/hermes-agent/commit/6ed03be97446425fbf47c64ea4c71a318f4f6ba5"><code>6ed03be9</code></a>)</li> <li>Apply local launch policy through real gateway turns (<a href="https://github.com/NousResearch/hermes-agent/commit/080c5da6f201058cf7dfda6bc0343910dc1f6625"><code>080c5da6</code></a>)</li> <li>Define frozen local session launch policy (<a href="https://github.com/NousResearch/hermes-agent/commit/81ed9712f29cacb8727e2c0cc12960a64201abf0"><code>81ed9712</code></a>)</li> <li>Route revision-checked session metadata through gateway (<a href="https://github.com/NousResearch/hermes-agent/commit/17ddbe4407a60230c2bfb0b743fc44b8a027f1c4"><code>17ddbe44</code></a>)</li> <li>Expose scoped local session metadata and document compatibility (<a href="https://github.com/NousResearch/hermes-agent/commit/52c354ff183ae96e2cbba651acda7e679b795db6"><code>52c354ff</code></a>)</li> <li>Create gateway-owned local sessions through authenticated controls (<a href="https://github.com/NousResearch/hermes-agent/commit/42967cddd73f56da1f62ab91f945c36347bd932c"><code>42967cdd</code></a>)</li> <li>Recheck native Discord membership before durable admission and claim (<a href="https://github.com/NousResearch/hermes-agent/commit/cc0cd5c993e51feaf6be61077e2a2566673847fc"><code>cc0cd5c9</code></a>)</li> <li>Boot authenticated session authority in ordinary gateway (<a href="https://github.com/NousResearch/hermes-agent/commit/c3bf62ebd392e9d2f843b0f5b2f1020561c7baee"><code>c3bf62eb</code></a>)</li> <li>Share live clarification controls across attached viewers (<a href="https://github.com/NousResearch/hermes-agent/commit/9c474378a1f608cb388d50fdd5e3d5b173cbac89"><code>9c474378</code></a>)</li> <li>Stream canonical gateway execution events to shared observers (<a href="https://github.com/NousResearch/hermes-agent/commit/40d9b4c7ea8e755c886588523fa3b659137fe54a"><code>40d9b4c7</code></a>)</li> <li>Reauthorize multiplex native connector provenance (<a href="https://github.com/NousResearch/hermes-agent/commit/244bff73c8cb4430b8041de6b14c87e5861f3c17"><code>244bff73</code></a>)</li> <li>Share generation-fenced approvals across gateway viewers (<a href="https://github.com/NousResearch/hermes-agent/commit/5e2afdaec356a2999de82d67b556f02189516ede"><code>5e2afdae</code></a>)</li> <li>Retain native media and context before durable admission (<a href="https://github.com/NousResearch/hermes-agent/commit/ef447482f23ec3c46c3e0f7dafd52e6693c14117"><code>ef447482</code></a>)</li> <li>Replay authority events from atomic subscription watermarks (<a href="https://github.com/NousResearch/hermes-agent/commit/d24dc3fa6f55afc29eb8e56907c225cbc0288c01"><code>d24dc3fa</code></a>)</li> <li>Recover committed native text without replaying unknown turns (<a href="https://github.com/NousResearch/hermes-agent/commit/78646003aeab0a086b81a580b3fd0eff80808e2a"><code>78646003</code></a>)</li> <li>Execute attached websocket turns on the messaging live agent (<a href="https://github.com/NousResearch/hermes-agent/commit/47fbfd4ca545b84f7413c263cb1aa799d7e34bd3"><code>47fbfd4c</code></a>)</li> <li>Add revision-fenced runtime rename and archive receipts (<a href="https://github.com/NousResearch/hermes-agent/commit/5878e5656ca6907168d957cc08eec8e7862f13b4"><code>5878e565</code></a>)</li> <li>Fence typed worker persistence with atomic replay receipts (<a href="https://github.com/NousResearch/hermes-agent/commit/7cc69d293faa91c24d674886ed7bfbe7ddf71923"><code>7cc69d29</code></a>)</li> <li>Import drained legacy admissions atomically with unknown recovery (<a href="https://github.com/NousResearch/hermes-agent/commit/124dfa7c5791435d3227efe76c378f10e88b0396"><code>124dfa7c</code></a>)</li> <li>Centralize durable session admissions in canonical storage (<a href="https://github.com/NousResearch/hermes-agent/commit/0695b12b4c4b2c672d96229eba464e20617d73a8"><code>0695b12b</code></a>)</li> <li>Keep declined gateway wizard starts unmanaged (<a href="https://github.com/NousResearch/hermes-agent/commit/7500930d9f626ab45ec2a209448ef909a0fc6a1e"><code>7500930d</code></a>)</li> <li>Require explicit consent for gateway service setup (<a href="https://github.com/NousResearch/hermes-agent/commit/16d6b7daa13b51344fdcecc66958f3f876cf017f"><code>16d6b7da</code></a>)</li> <li>Restrict runtime bootstrap peers and bound native pipe I/O (<a href="https://github.com/NousResearch/hermes-agent/commit/d3ccac14e84c5861ab6105b952b370c6a8b0e135"><code>d3ccac14</code></a>)</li> <li>Compose the existing API into the gateway event loop (<a href="https://github.com/NousResearch/hermes-agent/commit/bac47874ec723c1436748061c221a9c06fcdf642"><code>bac47874</code></a>)</li> <li>Distinguish unavailable gateway owners from absent runtimes (<a href="https://github.com/NousResearch/hermes-agent/commit/e903841cb861228bcde86f9840379876eb097b45"><code>e903841c</code></a>)</li> </ul> <h2>🔧 Improvements</h2> <ul> <li>Profiles): build the seed routing view once; expand <code>enabled</code> too (<a href="https://github.com/NousResearch/hermes-agent/commit/311155fade43d1993ea968909a2ad36762345bbc"><code>311155fa</code></a>) — @kshitijk4poor</li> <li>Update nemotron super 3.5 name (<a href="https://github.com/NousResearch/hermes-agent/commit/3224993af1860ffdb587e491560f32bf845c82ad"><code>3224993a</code></a>) — @elisam0</li> <li>Hermes_cli): update nemotron 3.5 name (<a href="https://github.com/NousResearch/hermes-agent/commit/108ae4e7cd4c89a95545b1cdab3e1b72ce220755"><code>108ae4e7</code></a>) — @elisam0</li> <li>Catalog: re-pin showly to the build without the upstream self-update check (<a href="https://github.com/NousResearch/hermes-agent/commit/6462f64aefba9271f9977edcd430d61141d4d760"><code>6462f64a</code></a>) — @slchris</li> <li>Catalog: update Model Router to v0.4.3 native preferences (<a href="https://github.com/NousResearch/hermes-agent/commit/6a097ee98d4c96eafa9ef76c98c3c39d6d65a0da"><code>6a097ee9</code></a>) — @metamindedu</li> <li>Keep native MCP revision scoped to frozen tool settings (<a href="https://github.com/NousResearch/hermes-agent/commit/53d17f1c5b15059d4a44ea30839726371ff3df2e"><code>53d17f1c</code></a>)</li> <li>Cron bot-chat delivery has no local CLI fallback lane (<a href="https://github.com/NousResearch/hermes-agent/commit/5d87060eb8c1445bc53e135fdb79be64fd6179e5"><code>5d87060e</code></a>)</li> <li>Retire bot execution discovery from viewer notification pollers (<a href="https://github.com/NousResearch/hermes-agent/commit/c8ae25cd1122550a13ba22f84e325adab0d8c91a"><code>c8ae25cd</code></a>)</li> <li>Make default ACP construction authority-only (<a href="https://github.com/NousResearch/hermes-agent/commit/c423a431b330c6f9ef110b0eb8c691e37ec400e5"><code>c423a431</code></a>)</li> <li>Remove obsolete updater sidecar deletion path (<a href="https://github.com/NousResearch/hermes-agent/commit/5889565343c9daa08ac64e774d4dda1f8b0ec459"><code>58895653</code></a>)</li> <li>Remove retired local serve launch imports (<a href="https://github.com/NousResearch/hermes-agent/commit/5702f9dfccd1981a722700fb7ce319c3daa58a6a"><code>5702f9df</code></a>)</li> <li>Extract ordinary gateway bootstrap lifecycle (<a href="https://github.com/NousResearch/hermes-agent/commit/3c0f1e01e73ae5f05b3a44153c60b29daf2ff877"><code>3c0f1e01</code></a>)</li> <li>Freeze shared session authority interface contract (<a href="https://github.com/NousResearch/hermes-agent/commit/1af74c27301edc1ce0f48b866d3b645c4d949048"><code>1af74c27</code></a>)</li> <li>Extract TUI session registry and agent factory seams (<a href="https://github.com/NousResearch/hermes-agent/commit/a38ca908e0c33cc96b289e720a09d904072a4af6"><code>a38ca908</code></a>)</li> <li>Separate gateway agent acquisition from native progress (<a href="https://github.com/NousResearch/hermes-agent/commit/0f3a4fb2e7aaa9b2676747bab3ca2656160b259a"><code>0f3a4fb2</code></a>)</li> <li>Extract gateway turn preparation and persistence phases (<a href="https://github.com/NousResearch/hermes-agent/commit/6e8de80a7af35b47fc79ae18f725f3588d8a278a"><code>6e8de80a</code></a>)</li> <li>Move gateway service wizard into setup sibling (<a href="https://github.com/NousResearch/hermes-agent/commit/f0b35a982eceb2a177da7d6545800b80607f233a"><code>f0b35a98</code></a>)</li> <li>Extract gateway setup service orchestration (<a href="https://github.com/NousResearch/hermes-agent/commit/02d0307c24d2fa3541316484693f97a8e3e8723c"><code>02d0307c</code></a>)</li> <li>Remove extracted runner initialization bodies (<a href="https://github.com/NousResearch/hermes-agent/commit/4b1379fb1620e29f8e6c36c2f3660a08fb9f8bdc"><code>4b1379fb</code></a>)</li> <li>Extract gateway bootstrap and writable initialization phases (<a href="https://github.com/NousResearch/hermes-agent/commit/0c2873402d67ed43b59d51c83d83c1f6bf5dbbc4"><code>0c287340</code></a>)</li> <li>Extract standalone web application lifespan (<a href="https://github.com/NousResearch/hermes-agent/commit/f38f2444fdd5be92b340a3f39f5a226efd4db798"><code>f38f2444</code></a>)</li> </ul> <h2>🐛 Bug Fixes</h2> <ul> <li>Compression): fallback summaries, multiline setup notes and parallel loads keep skill markers right (<a href="https://github.com/NousResearch/hermes-agent/commit/297552a9d646119871391d202509822cd86330df"><code>297552a9</code></a>)</li> <li>Compression): a slash-skill body's example paths stay out of the anchor index (<a href="https://github.com/NousResearch/hermes-agent/commit/d602082868bcca0efcfc0dd86723bbfce29fb9e5"><code>d6020828</code></a>)</li> <li>Compression): small and slash-invoked skills keep their reload marker across compaction (<a href="https://github.com/NousResearch/hermes-agent/commit/71e815def843ab4885ba14a9170b546a6df077f9"><code>71e815de</code></a>)</li> <li>Desktop): update notes keep full text, re-read merged PRs per check, respect custom branches (<a href="https://github.com/NousResearch/hermes-agent/commit/f2a93db97c1c8ab7b97ce640764349c1f6a804a3"><code>f2a93db9</code></a>)</li> <li>Mcp): preserve server deadlines through outer tool execution (<a href="https://github.com/NousResearch/hermes-agent/commit/f30020ed5e1fc35551ce0d259ed5086dd6bf9885"><code>f30020ed</code></a>)</li> <li>Plugins): honor portable per-server call deadlines (<a href="https://github.com/NousResearch/hermes-agent/commit/fcc170b7983e3891e02f96d977ecdf219d11be1e"><code>fcc170b7</code></a>)</li> <li>Agent): rewrite split tool ids before Mistral sees them (<a href="https://github.com/NousResearch/hermes-agent/commit/b33ed35968f00896e093fa41735af7c108e6bead"><code>b33ed359</code></a>) — @xxxigm</li> <li>Profiles): align model seed with provider resolution (<a href="https://github.com/NousResearch/hermes-agent/commit/5fee8d77bf91ea2e34817817334f98fe93a5b8f6"><code>5fee8d77</code></a>) — @helix4u</li> <li>Profiles): inherit canonical and legacy custom endpoints (<a href="https://github.com/NousResearch/hermes-agent/commit/2d3e75aab02f044000110137a0503b5fa2114367"><code>2d3e75aa</code></a>) — @helix4u</li> <li>Drop the VPN/proxy advice from the CDN-block message (<a href="https://github.com/NousResearch/hermes-agent/commit/300228d24c593f779055204753921fbe9a2163c5"><code>300228d2</code></a>)</li> <li>Catalog): re-pin Agent Mixer after maintainer review (<a href="https://github.com/NousResearch/hermes-agent/commit/4297a692d9570e039aa8c7bfde900ffca420eaff"><code>4297a692</code></a>) — @Sahil-SS9</li> <li>Pin Activity v0.2.1 public credential routes (<a href="https://github.com/NousResearch/hermes-agent/commit/3dac1f07d59f7f300f6f3433cef1bf8966b763c4"><code>3dac1f07</code></a>) — @hassan-kamel</li> <li>Plugin-catalog): update switchbot-control to d0e6f77 (<a href="https://github.com/NousResearch/hermes-agent/commit/c4bf61b126a60172d2598b923fd08b1d60b1e84f"><code>c4bf61b1</code></a>) — @TakeshiTGAL</li> <li>Doctor): clarify Docker npm audit remediation (<a href="https://github.com/NousResearch/hermes-agent/commit/e21caa27b75a880536ac3429f70c356ece19a330"><code>e21caa27</code></a>) — @KoNit-K</li> <li>Deps): bump the WhatsApp bridge lock past its npm-audit findings (<a href="https://github.com/NousResearch/hermes-agent/commit/231cb757a4607e6b44e13c154696e869fd959102"><code>231cb757</code></a>) — @ethernet8023</li> <li>Tui): retain native legacy history in canonical session picker (<a href="https://github.com/NousResearch/hermes-agent/commit/2171365a3fcbe646bcb21dc26e8391f5588023fe"><code>2171365a</code></a>) — @unsupportedpastels</li> <li>Tui): the banner shows main's 8-character session label for a canonical id (<a href="https://github.com/NousResearch/hermes-agent/commit/2c97990051a6a415ce4baadf4bb6e90262cca482"><code>2c979900</code></a>)</li> <li>Gateway): a local process completion persists as a process_complete card (<a href="https://github.com/NousResearch/hermes-agent/commit/ff770cb769852a776c8788ddaae2f121234eb942"><code>ff770cb7</code></a>)</li> <li>Runtime): persist diagnostic automation category through replay (<a href="https://github.com/NousResearch/hermes-agent/commit/bdac7911d99e5b18793e3fc414ce67d839d1f3f0"><code>bdac7911</code></a>) — David Dudok de Wit</li> <li>Gateway): retire bot receipt tasks with authority (<a href="https://github.com/NousResearch/hermes-agent/commit/d50b2eda3d453eeedf720337f06e743eeb6d7655"><code>d50b2eda</code></a>) — @Lokee86</li> <li>Gateway): persist operator provenance for native recovery (<a href="https://github.com/NousResearch/hermes-agent/commit/c51049aa8f6099b79569d339de895ca0a9301ba5"><code>c51049aa</code></a>) — @Lokee86</li> <li>Cli): preserve blocking controls in finite output (<a href="https://github.com/NousResearch/hermes-agent/commit/954638ede23e1e3ddeca27412992cfa2d636ea31"><code>954638ed</code></a>) — @Lokee86</li> <li>Gateway): isolate malformed bot receipt schemas (<a href="https://github.com/NousResearch/hermes-agent/commit/4be62f9ca68d626760a54742c6308cf38f804f88"><code>4be62f9c</code></a>) — @Lokee86</li> <li>Acp): clean up deferred cancellation lifetime (<a href="https://github.com/NousResearch/hermes-agent/commit/89dac62078c964f5aa8f1a5ff40f3914baecc481"><code>89dac620</code></a>) — @Lokee86</li> <li>Gateway): close remaining unified-runtime review gaps (<a href="https://github.com/NousResearch/hermes-agent/commit/83cdc63a19925827ba0aa78339fb5acea02b06cc"><code>83cdc63a</code></a>) — @Lokee86</li> <li>Gateway): isolate bot receipts and keep headless cron no-spawn (<a href="https://github.com/NousResearch/hermes-agent/commit/cdf36315e95e922970b91401bd1156c00a2d1817"><code>cdf36315</code></a>) — @Lokee86</li> <li>Gateway): recover mixed local queues and retire failed hot serves (<a href="https://github.com/NousResearch/hermes-agent/commit/f4fd982b56920ccf5311943e7d1a8c19f986e87f"><code>f4fd982b</code></a>) — @Lokee86</li> <li>Gateway): terminate replay gaps and retain ACP cancels (<a href="https://github.com/NousResearch/hermes-agent/commit/37662b16ec967452d3fd600db1dab1bc12e68e46"><code>37662b16</code></a>) — @Lokee86</li> <li>Gateway): route local ticket bootstrap through control owner (<a href="https://github.com/NousResearch/hermes-agent/commit/996d9bebd1190fa4e45f9f8106de99ff558dd819"><code>996d9beb</code></a>) — @Lokee86</li> <li>Desktop): a transcript reconcile skips a runtime mid-switch to another session (<a href="https://github.com/NousResearch/hermes-agent/commit/09aafceab4d325ccbed402caf928f7b9ead4371c"><code>09aafcea</code></a>)</li> <li>Gateway/stream): a failed overflow head send no longer spins the event loop (<a href="https://github.com/NousResearch/hermes-agent/commit/f0d9bd2fc4971534f636bbda16c56004116b3d52"><code>f0d9bd2f</code></a>)</li> <li>Gateway): <code>profile</code> on our own home is stripped only for the closed session verbs (<a href="https://github.com/NousResearch/hermes-agent/commit/2c5b0af5e19bf607ffd6f9bbb6cb34a1d4a5c9df"><code>2c5b0af5</code></a>)</li> <li>Gateway): <code>gateway ensure</code> starts on a systemd host whose user bus is unreachable (<a href="https://github.com/NousResearch/hermes-agent/commit/82db702f3fbf5a04db3880df02d6517b27bf3163"><code>82db702f</code></a>)</li> <li>Desktop): a session routed onto a new socket re-attaches before it submits (<a href="https://github.com/NousResearch/hermes-agent/commit/307dac202f0f847632f05de1e91ffae3d3a125a6"><code>307dac20</code></a>)</li> <li>Desktop): a registry-connection hover prewarms that connection's gateway (main #89756 port) (<a href="https://github.com/NousResearch/hermes-agent/pull/89756" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#89756</a>)</li> <li>Bot-relay): a relayed dm targets only live profiles (#99392 on the authority door) (<a href="https://github.com/NousResearch/hermes-agent/pull/99392" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#99392</a>)</li> <li>Gateway_chat): one-shot refuses an unknown-blocked session; stream-json always closes with a result (<a href="https://github.com/NousResearch/hermes-agent/commit/08b6ebd05155adabf8a7162e9755df424f083b6f"><code>08b6ebd0</code></a>)</li> <li>Tui_gateway): projects RPCs answer from the scan cache when a profile's state.db was never initialized (<a href="https://github.com/NousResearch/hermes-agent/commit/372ec7fc1303e4cdc9c74ebf3bc7e2dd2a786914"><code>372ec7fc</code></a>)</li> <li>Cron): Bot Chat delivery creates the missing Bot Chat instead of failing the run (<a href="https://github.com/NousResearch/hermes-agent/commit/364a0e22b9106d94356a962089f1674ebe78c48a"><code>364a0e22</code></a>)</li> <li>Seed-copy compensation discards the row without the retirement fence (<a href="https://github.com/NousResearch/hermes-agent/commit/44212c5a559f11ea9285161ca4372590f09dde73"><code>44212c5a</code></a>)</li> <li>Gateway): exact mutation retries repair the runtime projection (X11, reported by @Xipong) (<a href="https://github.com/NousResearch/hermes-agent/commit/c1ee92860012bffec6128aead77ba1b7fa1fed8d"><code>c1ee9286</code></a>)</li> <li>Desktop): preserve accepted input and clarify persistent-work Quit (<a href="https://github.com/NousResearch/hermes-agent/commit/f8e234ed89dd1b00149699d806783f89e2f5164e"><code>f8e234ed</code></a>) — @dokterdok</li> <li>Desktop): drop pool-limit notification wiring main added after the pool subsystem was removed (<a href="https://github.com/NousResearch/hermes-agent/commit/c3632fcca3639e44f1f16ebfce176c3f2fd6823c"><code>c3632fcc</code></a>)</li> <li>Runtime): owner scope is multiplex-only; foreign LOCAL sources fail closed; primary = launch home (<a href="https://github.com/NousResearch/hermes-agent/commit/a37550b96ff7f5f433990149d1b04f100df2b57c"><code>a37550b9</code></a>)</li> <li>Type session creation identity with merged onboarding options (<a href="https://github.com/NousResearch/hermes-agent/commit/0948ffc98a77426a0f529837e6ebee7b70343a30"><code>0948ffc9</code></a>)</li> <li>Preserve main lifecycle and discovery behavior after extraction (<a href="https://github.com/NousResearch/hermes-agent/commit/b186879a3fe2915077880c71db5ad1a5ea8a79a0"><code>b186879a</code></a>)</li> <li>Preserve webhook delivery profile and snapshot scoped home (<a href="https://github.com/NousResearch/hermes-agent/commit/8fe3d19800cf7ace40c9595fa5183a54d1de3927"><code>8fe3d198</code></a>)</li> <li>Retain per-admission bot and API authors (<a href="https://github.com/NousResearch/hermes-agent/commit/61f75a7752387852eb996eee9c9e081ed7f245dc"><code>61f75a77</code></a>)</li> <li>Recover mixed-clock sessions and compose runtime test listeners (<a href="https://github.com/NousResearch/hermes-agent/commit/9e747d7f1e4374e98b0a8fe0a747fd770c5b6963"><code>9e747d7f</code></a>)</li> <li>Preserve hosted image admission and execution across owners (<a href="https://github.com/NousResearch/hermes-agent/commit/2672b82012162187f8e6b68d8a5cfb39531f8a8a"><code>2672b820</code></a>)</li> <li>Gateway): restore hosted image attachments natively (<a href="https://github.com/NousResearch/hermes-agent/commit/bdfe8a50c30058a712ed6bedeb7bdcc3726312ce"><code>bdfe8a50</code></a>)</li> <li>Desktop): preserve profile target during reconnect (<a href="https://github.com/NousResearch/hermes-agent/commit/ddf8bec7b32bf4677f2f7e493f8f23393de451da"><code>ddf8bec7</code></a>)</li> <li>Restore durable hosted group sends before enabling input (<a href="https://github.com/NousResearch/hermes-agent/commit/d31621559f82646fe0161f2c8ea2408b5c349108"><code>d3162155</code></a>)</li> <li>Translate canonical hosted group controls in all desktop locales (<a href="https://github.com/NousResearch/hermes-agent/commit/29e27af5cf2905202d4992084d229e3b16c08d59"><code>29e27af5</code></a>)</li> <li>Desktop): journal canonical group sends before admission (<a href="https://github.com/NousResearch/hermes-agent/commit/3d1cb4e0e88dc56ae0d603c26991651a4283a0c3"><code>3d1cb4e0</code></a>)</li> <li>Integrate hosted attachment admission hooks (<a href="https://github.com/NousResearch/hermes-agent/commit/c094d91ec29a9854dd9eb481bd3d975a05898772"><code>c094d91e</code></a>)</li> <li>Transfer hosted input bytes through task-scoped owner attestation (<a href="https://github.com/NousResearch/hermes-agent/commit/519e11011d63df04ae8b5381475cbe10db994782"><code>519e1101</code></a>)</li> <li>Bind hosted owner transport to exact destination home (<a href="https://github.com/NousResearch/hermes-agent/commit/9035ef9a9c04b2d00c9e4b0b561180001ec9ea4d"><code>9035ef9a</code></a>)</li> <li>Minimize retained webhook destinations and preserve legacy receipts (<a href="https://github.com/NousResearch/hermes-agent/commit/c6456808af9803127ba8556b75a613f7b1d17502"><code>c6456808</code></a>)</li> <li>Capture peer ACK evidence and trim unused file catalog helpers (<a href="https://github.com/NousResearch/hermes-agent/commit/c86dd71b654e47564eeee62897396f8558428138"><code>c86dd71b</code></a>)</li> <li>Publish hosted file shares with cursor-fenced retries (<a href="https://github.com/NousResearch/hermes-agent/commit/49e27d8b4c9a21f9392cac86ff765090ef32de5f"><code>49e27d8b</code></a>)</li> <li>Run hosted rooms through independently owned profile daemons (<a href="https://github.com/NousResearch/hermes-agent/commit/53a260ac1b09e9d11413bccdb9d7e6e7574311ce"><code>53a260ac</code></a>)</li> <li>Fence hosted discard and prevent unknown retry generations (<a href="https://github.com/NousResearch/hermes-agent/commit/3cde00927487ce70759b4640d857d2ecfebbf9b4"><code>3cde0092</code></a>)</li> <li>Explicitly discard exact hosted unknown executions (<a href="https://github.com/NousResearch/hermes-agent/commit/864c34f3c68213242cbfba9680a599769cc6c56c"><code>864c34f3</code></a>)</li> <li>Preserve hosted room ownership during service shutdown (<a href="https://github.com/NousResearch/hermes-agent/commit/bfa8022d88c47aca2cd020848303928430b7bdaa"><code>bfa8022d</code></a>)</li> <li>Durably recover webhook destinations (<a href="https://github.com/NousResearch/hermes-agent/commit/d207fd64d3b0ab2b1073d048009873565a14abad"><code>d207fd64</code></a>)</li> <li>Recover native admissions after ordinary adapter startup (<a href="https://github.com/NousResearch/hermes-agent/commit/706596765107a52ef20397ce21e92901a7402357"><code>70659676</code></a>)</li> <li>Carry finite execution policy through canonical admission (<a href="https://github.com/NousResearch/hermes-agent/commit/9edd28e6e0ad951f8bf1c6ca0917537bf579051b"><code>9edd28e6</code></a>)</li> <li>Join finite gateway chat delegations in the admitted turn (<a href="https://github.com/NousResearch/hermes-agent/commit/5977ef75fdd74306bdda3da5e2a9bba6df0a720a"><code>5977ef75</code></a>)</li> <li>Resolve managed Node in native ticket probes (<a href="https://github.com/NousResearch/hermes-agent/commit/ee9030bd303da503857f26ecce3c7dd445b9cc8a"><code>ee9030bd</code></a>)</li> <li>Preserve manual compression settings and session identity (<a href="https://github.com/NousResearch/hermes-agent/commit/9fa0b6aa7a42f621172b66bf9d44dc118ca60590"><code>9fa0b6aa</code></a>)</li> <li>Prevent duplicate cron alerts after durable delivery handoff (<a href="https://github.com/NousResearch/hermes-agent/commit/47e3bb25fb5b26e6d38f276f7d8ee30b787c8da3"><code>47e3bb25</code></a>)</li> <li>Preserve cron delivery silence and incident acknowledgements (<a href="https://github.com/NousResearch/hermes-agent/commit/0c7f676ee41564da7d4355c5665523a970d97fe7"><code>0c7f676e</code></a>)</li> <li>Bound canonical cron owner store acquisition (<a href="https://github.com/NousResearch/hermes-agent/commit/61759b573d4626eb4f8598a4abb689c90d0bb03f"><code>61759b57</code></a>)</li> <li>Restore canonical desktop image thumbnails safely (<a href="https://github.com/NousResearch/hermes-agent/commit/4d5db8201b9022c0cd42863bbfdd2282688731a7"><code>4d5db820</code></a>)</li> <li>Restore prepared desktop image drafts after restart (<a href="https://github.com/NousResearch/hermes-agent/commit/5034ee3a4a20ec08fc48c25e7af1155a7d69a62a"><code>5034ee3a</code></a>)</li> <li>Route lost prompt discard to its session owner (<a href="https://github.com/NousResearch/hermes-agent/commit/566872a8190128359f55193eb42222eaca7aa8f1"><code>566872a8</code></a>)</li> <li>Preserve newer replies across delayed redirect receipts (<a href="https://github.com/NousResearch/hermes-agent/commit/ac30b57acbddec343573c2b3488fbda4855e25e5"><code>ac30b57a</code></a>)</li> <li>Retry transient desktop busy policy reads (<a href="https://github.com/NousResearch/hermes-agent/commit/82098e63730d87c63b22ace154e168e791c1cbef"><code>82098e63</code></a>)</li> <li>Keep desktop streams intact when corrections are refused (<a href="https://github.com/NousResearch/hermes-agent/commit/3c88697343eb324a8bcd25929ce65a7d927b7f84"><code>3c886973</code></a>)</li> <li>Connect recovery and owner projection routes (<a href="https://github.com/NousResearch/hermes-agent/commit/cfa5c152214d246e49f3304efa33fe68aa9c27c8"><code>cfa5c152</code></a>)</li> <li>Discover private gateway sockets across native temp roots (<a href="https://github.com/NousResearch/hermes-agent/commit/de66df140032c903f3fae7fefbd441ade7ea0d54"><code>de66df14</code></a>)</li> <li>Expose owner-scoped ancillary session reads (<a href="https://github.com/NousResearch/hermes-agent/commit/61ace21a95a9d78096924fc61b086963ce7e3af7"><code>61ace21a</code></a>)</li> <li>Stage canonical remote images in the authorized owner cache (<a href="https://github.com/NousResearch/hermes-agent/commit/baaa4464a4680dea7eb1fa21d423442cf94c73c6"><code>baaa4464</code></a>)</li> <li>Project native config and model inventory from canonical owner (<a href="https://github.com/NousResearch/hermes-agent/commit/1064971e07d3f95f39a7dc9128b14f7093d416ff"><code>1064971e</code></a>)</li> <li>Preserve Kanban board discovery and unknown owner attempts (<a href="https://github.com/NousResearch/hermes-agent/commit/90e2b2eb3adb1f46638e03817c5519d0cbd7d872"><code>90e2b2eb</code></a>)</li> <li>Reconcile canonical cron receipts into durable delivery (<a href="https://github.com/NousResearch/hermes-agent/commit/c1172b1a8278bcb7f4135317fcba7c9904992a68"><code>c1172b1a</code></a>)</li> <li>Preserve admitted images and async usage in managed workers (<a href="https://github.com/NousResearch/hermes-agent/commit/4abbb3f9788ce374652ff8380f458d7797352b1a"><code>4abbb3f9</code></a>)</li> <li>Share static-token session ownership across HTTP and WebSocket (<a href="https://github.com/NousResearch/hermes-agent/commit/56e344e5a8039caaafddad33ccc415f5b7b8a336"><code>56e344e5</code></a>)</li> <li>Connect canonical cutover repairs across owner and clients (<a href="https://github.com/NousResearch/hermes-agent/commit/c8f8d9ae638447799c1253f6e0d0d3093d87f9cc"><code>c8f8d9ae</code></a>)</li> <li>Restore scoped canonical busy and correction controls (<a href="https://github.com/NousResearch/hermes-agent/commit/daa016976b09cec396c9c421baa34bec83622af0"><code>daa01697</code></a>)</li> <li>Isolate authenticated gateway owners by provider and issuer (<a href="https://github.com/NousResearch/hermes-agent/commit/6b8a6d4c358161b62c621cb7f04a4c901ec701a9"><code>6b8a6d4c</code></a>)</li> <li>Bootstrap Windows desktop tickets through validated Python pipes (<a href="https://github.com/NousResearch/hermes-agent/commit/f8ba25a99b0e9bd75d3f2743f4887d813dacb195"><code>f8ba25a9</code></a>)</li> <li>Submit Desktop images through canonical admissions (<a href="https://github.com/NousResearch/hermes-agent/commit/c93382c0a1dc3abb6a19e84ad89190446673d943"><code>c93382c0</code></a>)</li> <li>Preserve desktop busy correction intent on rejection (<a href="https://github.com/NousResearch/hermes-agent/commit/b3cca0f3caf7cc7fba027af120657458246a152d"><code>b3cca0f3</code></a>)</li> <li>Keep canonical RPC refusals out of Desktop resume recovery (<a href="https://github.com/NousResearch/hermes-agent/commit/9ba2582bbae1f72e5cb37ea00afd5d00ca25c3a1"><code>9ba2582b</code></a>)</li> <li>Keep unbound Ink drafts instead of claiming memory-only admission (<a href="https://github.com/NousResearch/hermes-agent/commit/07588b5e7d13f6cf80be71e4da20311fc58de062"><code>07588b5e</code></a>)</li> <li>Honor non-idempotent canonical busy control acknowledgements (<a href="https://github.com/NousResearch/hermes-agent/commit/01e4829cbaee5cc0d3c860717853abfc9ff8f31b"><code>01e4829c</code></a>)</li> <li>Stage clipboard images on the Ink client host (<a href="https://github.com/NousResearch/hermes-agent/commit/179a84734cdf604604a45d4531c22f4c45e17cbe"><code>179a8473</code></a>)</li> <li>Scope Ink config hydration and prompt model mutations (<a href="https://github.com/NousResearch/hermes-agent/commit/798c3926662aa5aec2f37ec3291b38ecc609d860"><code>798c3926</code></a>)</li> <li>Retain disconnected Ink input and canonical control receipts (<a href="https://github.com/NousResearch/hermes-agent/commit/1a5bae9bd1ab6b99e100067989a2f03f2389f0a6"><code>1a5bae9b</code></a>)</li> <li>Stage and retain canonical Ink image submissions (<a href="https://github.com/NousResearch/hermes-agent/commit/33622c04095805497ebe0fbe5c0e0140178556f6"><code>33622c04</code></a>)</li> <li>Route Ink session controls through canonical authority (<a href="https://github.com/NousResearch/hermes-agent/commit/bf0b25a90f1f554091e8fb516ae5df0addea869a"><code>bf0b25a9</code></a>)</li> <li>Preserve Kanban execution PID and durable worker outcomes (<a href="https://github.com/NousResearch/hermes-agent/commit/d4fd07d21239500dd03d6aac78d5bba8d0397f41"><code>d4fd07d2</code></a>)</li> <li>Route claimed Kanban tasks through trusted owner admission (<a href="https://github.com/NousResearch/hermes-agent/commit/5aeba055f28280bd326f29aa9f8627eaabf4dc05"><code>5aeba055</code></a>)</li> <li>Admit agent cron runs through the canonical owner (<a href="https://github.com/NousResearch/hermes-agent/commit/cdbe8c35adf224de282b47fde3fc297002441485"><code>cdbe8c35</code></a>)</li> <li>Forward A2A profile tasks through session authority (<a href="https://github.com/NousResearch/hermes-agent/commit/4e3a6bdbb732b543f5a3b80f35ea5abbd047b4e8"><code>4e3a6bdb</code></a>)</li> <li>Project ACP cancellation and failed admissions accurately (<a href="https://github.com/NousResearch/hermes-agent/commit/03c0efc84dd66716f0a3c28b1dd94fa7abe63b31"><code>03c0efc8</code></a>)</li> <li>Preserve API content identity history and terminal outcomes (<a href="https://github.com/NousResearch/hermes-agent/commit/f48d09563b37297322a994b42c24f1359ddb7d8c"><code>f48d0956</code></a>)</li> <li>Fence legacy history claims and follow Bot reset targets (<a href="https://github.com/NousResearch/hermes-agent/commit/f88f861567de81ec6828854bffcd0b290ca238c2"><code>f88f8615</code></a>)</li> <li>Adopt legacy local history through trusted session owner (<a href="https://github.com/NousResearch/hermes-agent/commit/cb748e7a193a70ead9e2e50d1b3cdc1163123f27"><code>cb748e7a</code></a>)</li> <li>Record physical admission assignment before later compression (<a href="https://github.com/NousResearch/hermes-agent/commit/7b9dc45444f367f4cffcc43da994350dd0b8830b"><code>7b9dc454</code></a>)</li> <li>Classify managed worker errors and verify compression restart (<a href="https://github.com/NousResearch/hermes-agent/commit/4bbbb90ff2189b3d476182a210c25332d28c4cbf"><code>4bbbb90f</code></a>)</li> <li>Preserve worker compression admission identity (<a href="https://github.com/NousResearch/hermes-agent/commit/588c609c1542f447ccea9fadba536ffa62c63adf"><code>588c609c</code></a>)</li> <li>Refresh worker row identities after compression (<a href="https://github.com/NousResearch/hermes-agent/commit/e19f05ffb9ca0aa59650047406b8a7b9893f2d5b"><code>e19f05ff</code></a>)</li> <li>Preserve managed transcript lineage and settle after worker finish (<a href="https://github.com/NousResearch/hermes-agent/commit/ec0ebf80639d58a3854bb087bb63e3db14163346"><code>ec0ebf80</code></a>)</li> <li>Cli): keep Termux startup hints out of gateway policy (<a href="https://github.com/NousResearch/hermes-agent/commit/31dc5078fa4251d3eef039d2ed88914cb28d0a49"><code>31dc5078</code></a>)</li> <li>Service suffix follows main profile-root rule; drop in-process cli.main tests (<a href="https://github.com/NousResearch/hermes-agent/commit/0ea5a879b957efd52e27c366aca7659479ee20e8"><code>0ea5a879</code></a>)</li> <li>Canonical delivery feeds attachment results to record_delivery; log failed turns (<a href="https://github.com/NousResearch/hermes-agent/commit/19ca1e85c805264bb662684c94a51a56179e67d7"><code>19ca1e85</code></a>)</li> <li>Managed worker outbox directory is a portable spelling of the execution id (<a href="https://github.com/NousResearch/hermes-agent/commit/4a08032d35685a3079a17d48db4112a086a9fb45"><code>4a08032d</code></a>)</li> <li>Owner verifies managed worker identity through interpreter trampolines (<a href="https://github.com/NousResearch/hermes-agent/commit/e8fbefb21e37b5e98ddf73c062e4ffb9eb7a6520"><code>e8fbefb2</code></a>)</li> <li>Refuse /v1/runs on a natively owned session with a bounded 409 (<a href="https://github.com/NousResearch/hermes-agent/commit/809fec1567d3d5eb0fa83c32a81bda49aec93863"><code>809fec15</code></a>)</li> <li>Commit execution results with terminal settlement (<a href="https://github.com/NousResearch/hermes-agent/commit/43348a03b7fd1463a5696567bcc1be59d939f1f0"><code>43348a03</code></a>)</li> <li>Replay canonical relay envelopes until terminal reply acknowledgement (<a href="https://github.com/NousResearch/hermes-agent/commit/8dfd7addcd589a9d4bd876eb930ed6d6b6b0f2fc"><code>8dfd7add</code></a>)</li> <li>Keep bot relay discovery and outbox in sender profile (<a href="https://github.com/NousResearch/hermes-agent/commit/437e3d85d683871e498beb5da4017c2d176d934d"><code>437e3d85</code></a>)</li> <li>Isolate desktop bot relay sender and target profile routes (<a href="https://github.com/NousResearch/hermes-agent/commit/4f75b6aae4c54849dd3d894c3b566fe2ab453d3c"><code>4f75b6aa</code></a>)</li> <li>Recover bot mailbox receipts and migrate queued inputs at owner startup (<a href="https://github.com/NousResearch/hermes-agent/commit/76a6044139c12e6a9ad71987b9e10117c246c186"><code>76a60441</code></a>)</li> <li>Recover bot replies from exact committed admission results (<a href="https://github.com/NousResearch/hermes-agent/commit/a5ea5b21a5252aae945eb901e2912c256d226674"><code>a5ea5b21</code></a>)</li> <li>Retain identified desktop bot deliveries until settlement (<a href="https://github.com/NousResearch/hermes-agent/commit/e1734e7de6165ca246a3218d1df0e64e7a7c2a8d"><code>e1734e7d</code></a>)</li> <li>Pause managed admission followers when the owned worker is lost (<a href="https://github.com/NousResearch/hermes-agent/commit/e6077eccc19e5723ee33f883c14fcf101f4cd355"><code>e6077ecc</code></a>)</li> <li>Prevent scoped secret rehydration in bypass workers (<a href="https://github.com/NousResearch/hermes-agent/commit/1ff3d87770d4f7e9e5201d21b655fcd7eaf20e1d"><code>1ff3d877</code></a>)</li> <li>Preserve hosted API source during peer persistence (<a href="https://github.com/NousResearch/hermes-agent/commit/06a9516c166d38bf908939641c8f519680590094"><code>06a9516c</code></a>)</li> <li>Return explicit unknown execution on API crash retries (<a href="https://github.com/NousResearch/hermes-agent/commit/f26c5c432123de5d7d7bde365d00b9416950c943"><code>f26c5c43</code></a>)</li> <li>Recover committed API queue when its adapter reconnects (<a href="https://github.com/NousResearch/hermes-agent/commit/8ef9fbe8ef066b8405e62740ba803da6f0afb6fe"><code>8ef9fbe8</code></a>)</li> <li>Resolve API prompts through canonical pending controls (<a href="https://github.com/NousResearch/hermes-agent/commit/f35358a60f2240a58019c6c08b4b62eef9f5465b"><code>f35358a6</code></a>)</li> <li>Preserve pre-editor credential identity and native control coverage (<a href="https://github.com/NousResearch/hermes-agent/commit/8e3b3a0c67a97840d0ac70ef44ceffef4c82a129"><code>8e3b3a0c</code></a>)</li> <li>Defer editor MCP schema changes until a new session (<a href="https://github.com/NousResearch/hermes-agent/commit/be748101302dd40bd736292912510c97c9f79230"><code>be748101</code></a>)</li> <li>Bind imported history control in its receipt transaction (<a href="https://github.com/NousResearch/hermes-agent/commit/f40dc17bd6bdbbfe205de03d1d5cb5752a4150a6"><code>f40dc17b</code></a>)</li> <li>Prevent import from reusing retired runtime identities (<a href="https://github.com/NousResearch/hermes-agent/commit/0a55e37320050ad74dbf61921add9ce97b9e263d"><code>0a55e373</code></a>)</li> <li>Retire local physical lineage and cache affinity on deletion (<a href="https://github.com/NousResearch/hermes-agent/commit/a1d47945ad82be38d901a1b31860324114098b95"><code>a1d47945</code></a>)</li> <li>Authorize cold history mutations without execution rebinding (<a href="https://github.com/NousResearch/hermes-agent/commit/529fb127b42ad217ad4a697eaff14c9304b8843b"><code>529fb127</code></a>)</li> <li>Retire native session routes with deletion receipts (<a href="https://github.com/NousResearch/hermes-agent/commit/10b155bfc084ea66c952611070985f3904a00679"><code>10b155bf</code></a>)</li> <li>Retire the legacy Bot mailbox producer and inference drain (<a href="https://github.com/NousResearch/hermes-agent/commit/ee09dad420a1fd49165ae89f6f5ea635c260b7ff"><code>ee09dad4</code></a>)</li> <li>Retain immutable Bot relay reply receipts on exact retry (<a href="https://github.com/NousResearch/hermes-agent/commit/391517b74b3a129befaf54de8cc3bae21954798c"><code>391517b7</code></a>)</li> <li>Refuse Bot delivery instead of starting a competing runtime (<a href="https://github.com/NousResearch/hermes-agent/commit/03f5d8438efaff32e8775d8dcb795611fb3668d0"><code>03f5d843</code></a>)</li> <li>Migrate worker rotation automation inside owner publication (<a href="https://github.com/NousResearch/hermes-agent/commit/6fce9f77c6f5a84c93ecaca90f0497c5c444910b"><code>6fce9f77</code></a>)</li> <li>Bind registered worker ledger before agent discovery (<a href="https://github.com/NousResearch/hermes-agent/commit/56586998e278d3da1a284bfff70bf8a7bc1bed42"><code>56586998</code></a>)</li> <li>Release original worker turn lease after rotation (<a href="https://github.com/NousResearch/hermes-agent/commit/ce8b1171a6617fa162b0f0c51123d5a93c84dc95"><code>ce8b1171</code></a>)</li> <li>Preserve REST mutation success response shape (<a href="https://github.com/NousResearch/hermes-agent/commit/c1882a690ef7f913fe699c17c9f004c5823a9f61"><code>c1882a69</code></a>)</li> <li>Require exclusive maintenance for legacy bulk session writes (<a href="https://github.com/NousResearch/hermes-agent/commit/7323773c0a13dae5ba57328d3ca2aec10fb156d9"><code>7323773c</code></a>)</li> <li>Fence persisted bot visibility without activating profiles (<a href="https://github.com/NousResearch/hermes-agent/commit/7fab399a7cde05e69dc37d14bad56c361060495d"><code>7fab399a</code></a>)</li> <li>Retain dashboard mutation identity across uncertain replies (<a href="https://github.com/NousResearch/hermes-agent/commit/20dd681307dc86ea835af2d7b204d454a756bb3f"><code>20dd6813</code></a>)</li> <li>Prepare desktop session edits from owner snapshots (<a href="https://github.com/NousResearch/hermes-agent/commit/c01a625c6896bbf770a45508a0e505281f51ac68"><code>c01a625c</code></a>)</li> <li>Preserve import validation with real authority fixtures (<a href="https://github.com/NousResearch/hermes-agent/commit/83b87b01a66f4f4f3293b885338192bb70ddbe01"><code>83b87b01</code></a>)</li> <li>Reject coerced session mutation counters and flags (<a href="https://github.com/NousResearch/hermes-agent/commit/927ca9647fa23491ed911d883c4450a16cd091b5"><code>927ca964</code></a>)</li> <li>Anchor V4A editor approval paths to session cwd (<a href="https://github.com/NousResearch/hermes-agent/commit/490453f7b8448be4e7f9839b0f886872a3035919"><code>490453f7</code></a>)</li> <li>List canonical ACP sessions under their frozen workspace (<a href="https://github.com/NousResearch/hermes-agent/commit/3c79ac4e609f339b791f2bef9a7c217d5ca6b641"><code>3c79ac4e</code></a>)</li> <li>Resolve ACP edit previews against execution cwd (<a href="https://github.com/NousResearch/hermes-agent/commit/85ce5418ec748a3325cbda63faacdece56134846"><code>85ce5418</code></a>)</li> <li>Project canonical editor diffs and frozen cwd to ACP (<a href="https://github.com/NousResearch/hermes-agent/commit/45aee7424c2dd934dba955589509b491177e995f"><code>45aee742</code></a>)</li> <li>Release ACP transport without client MCP discovery (<a href="https://github.com/NousResearch/hermes-agent/commit/92d97ba8a4446bcebbf33a7199706fa673a2e6a1"><code>92d97ba8</code></a>)</li> <li>Steer API runs through the current authority claim (<a href="https://github.com/NousResearch/hermes-agent/commit/a69efa90ffe35e88ecbba80c0f28497fa4391018"><code>a69efa90</code></a>)</li> <li>Fence API run cancellation to its durable admission (<a href="https://github.com/NousResearch/hermes-agent/commit/f67f19fb272b3d8ce71645da321b73d5f6bde4ff"><code>f67f19fb</code></a>)</li> <li>Replay durable API results across HTTP delivery modes (<a href="https://github.com/NousResearch/hermes-agent/commit/cbcad6fb554f3cdab9ef9c630fc8f1a1cb3eb2aa"><code>cbcad6fb</code></a>)</li> <li>Retain recoverable worker title conflicts as durable outcomes (<a href="https://github.com/NousResearch/hermes-agent/commit/b7d14c758e04174e97db063db2ed5a32ff99d0e8"><code>b7d14c75</code></a>)</li> <li>Preserve worker compression pre-publication flush annotations (<a href="https://github.com/NousResearch/hermes-agent/commit/dbe089623f71a8ee783955e979910834d8de56d7"><code>dbe08962</code></a>)</li> <li>Retain worker compression cleanup authority after rotation (<a href="https://github.com/NousResearch/hermes-agent/commit/36d5b63906fc0b853ec31db5d48db572c2dfc66b"><code>36d5b639</code></a>)</li> <li>Accept real worker compression handoff markers (<a href="https://github.com/NousResearch/hermes-agent/commit/e98a036a09f3bbf113b211890ae7b5cdbea6a6bc"><code>e98a036a</code></a>)</li> <li>Preserve live delegate tasks during parent deletion (<a href="https://github.com/NousResearch/hermes-agent/commit/b0f792ac49a7e222b5490c6fb37c61613f049c24"><code>b0f792ac</code></a>)</li> <li>Fence ACP controls and expose the read-only catalog (<a href="https://github.com/NousResearch/hermes-agent/commit/d304b025fca20bfdadae7bea9f13c8a93730dc74"><code>d304b025</code></a>)</li> <li>Keep ACP session catalog read-only (<a href="https://github.com/NousResearch/hermes-agent/commit/b117521cbd6ff77c5278f8c7e343d55a0e40d035"><code>b117521c</code></a>)</li> <li>Bind API storage to its selected runtime authority (<a href="https://github.com/NousResearch/hermes-agent/commit/c812ec711b96a0851ecc44329c9399d62cdeabf9"><code>c812ec71</code></a>)</li> <li>Preserve webhook duplicate responses with real route admission fixtures (<a href="https://github.com/NousResearch/hermes-agent/commit/253f9b5e4c5f69460991c0ad7a6cbee403f739db"><code>253f9b5e</code></a>)</li> <li>Fence webhook finalization by admitted session and generation (<a href="https://github.com/NousResearch/hermes-agent/commit/ca2211f0d845da6ec4e723a40293b21c46f52625"><code>ca2211f0</code></a>)</li> <li>Durably admit authenticated Graph notifications before acknowledgement (<a href="https://github.com/NousResearch/hermes-agent/commit/e8e17493bad09a1470107fa0655f47f6b332e478"><code>e8e17493</code></a>)</li> <li>Retain relay deliveries until canonical admission commits (<a href="https://github.com/NousResearch/hermes-agent/commit/e75bc52f50b4af92b0f7ac191cd7135276e264ab"><code>e75bc52f</code></a>)</li> <li>Acknowledge webhooks only after durable native admission (<a href="https://github.com/NousResearch/hermes-agent/commit/9d9e4789dd561afe56f2096f06ed9cd9c5439697"><code>9d9e4789</code></a>)</li> <li>Restore worker compressor guards before agent construction (<a href="https://github.com/NousResearch/hermes-agent/commit/84ccae21417e629132f4a205bd98a588c43a1f41"><code>84ccae21</code></a>)</li> <li>Refuse unregistered child and cron persistence in compute workers (<a href="https://github.com/NousResearch/hermes-agent/commit/2ee0725c324f4549ba65d70209ff1a7cabeeb7a4"><code>2ee0725c</code></a>)</li> <li>Keep registered compute imports out of owner delegation recovery (<a href="https://github.com/NousResearch/hermes-agent/commit/7eecdcf213664c482d1687acfad44c744bd71542"><code>7eecdcf2</code></a>)</li> <li>Retain distinct repeated watch notices in local consumers (<a href="https://github.com/NousResearch/hermes-agent/commit/0c42619c35d1853224c68dbbded3fd5a5dd3aba4"><code>0c42619c</code></a>)</li> <li>Refund legacy notification claims refused by admission (<a href="https://github.com/NousResearch/hermes-agent/commit/d5b332edfefa7ba9ae663f68ef03011ca1b38df2"><code>d5b332ed</code></a>)</li> <li>Give watch events stable owner-bound automation identities (<a href="https://github.com/NousResearch/hermes-agent/commit/135730d1bc3dccefaf98464460b3a97e7d5332b4"><code>135730d1</code></a>)</li> <li>Validate gateway launch options before first-run config checks (<a href="https://github.com/NousResearch/hermes-agent/commit/bec94623041eba5d9847a2a8c51657546645a682"><code>bec94623</code></a>)</li> <li>Restore first-run guidance before gateway admission (<a href="https://github.com/NousResearch/hermes-agent/commit/351b8eb462f5a06de315716e8c677ae6a0e25169"><code>351b8eb4</code></a>)</li> <li>Retain partial-update diagnostics at canonical CLI launch (<a href="https://github.com/NousResearch/hermes-agent/commit/a6376f0eebde0aea12e566a969ff35501478e285"><code>a6376f0e</code></a>)</li> <li>Preserve runtime authority across updater snapshot restores (<a href="https://github.com/NousResearch/hermes-agent/commit/8a8a13723b82ee361a13eac045277e72abfa9583"><code>8a8a1372</code></a>)</li> <li>Refuse unowned automation without spending sibling retry budgets (<a href="https://github.com/NousResearch/hermes-agent/commit/d6635ffe03bc1eb92dbaa56155a5b49c23f271c3"><code>d6635ffe</code></a>)</li> <li>Retain completion batch siblings across durable handoff retries (<a href="https://github.com/NousResearch/hermes-agent/commit/0307a33f82fce50113796498f0a0938107164240"><code>0307a33f</code></a>)</li> <li>Keep named launch keys and endpoints separate from profile defaults (<a href="https://github.com/NousResearch/hermes-agent/commit/219ed58f9c19483792ec866eca8d0ad3bc34966b"><code>219ed58f</code></a>)</li> <li>Redact and recover credential-bearing terminal projections (<a href="https://github.com/NousResearch/hermes-agent/commit/478d9b7379dcc668863adbf11ec2362598b0bb07"><code>478d9b73</code></a>)</li> <li>Resolve configured local routes from frozen provider policy (<a href="https://github.com/NousResearch/hermes-agent/commit/e02cc03a337f3594aa9976553cf711b2de5c720a"><code>e02cc03a</code></a>)</li> <li>Retain startup consent on top-level one-shot launches (<a href="https://github.com/NousResearch/hermes-agent/commit/ecb0afa631b23a44701b7b85b7e39f41e5cc96ae"><code>ecb0afa6</code></a>)</li> <li>Enforce startup cost and data consent before gateway admission (<a href="https://github.com/NousResearch/hermes-agent/commit/4dcf234d0d313283bc8ede7ba4e2384d3d6b11f8"><code>4dcf234d</code></a>)</li> <li>Retry local creation without binding replacement credentials (<a href="https://github.com/NousResearch/hermes-agent/commit/12899b65d51f1ceb4aba7dc3f2695ff24f737a3b"><code>12899b65</code></a>)</li> <li>Recover frozen local config credentials from their profile source (<a href="https://github.com/NousResearch/hermes-agent/commit/f1da7833aad10bbbd0a8a3637b60dd5b880fa4f5"><code>f1da7833</code></a>)</li> <li>Keep configured credentials out of frozen policy receipts (<a href="https://github.com/NousResearch/hermes-agent/commit/2f6fb46bf3016dea2a8bfeb9ee2387791120d748"><code>2f6fb46b</code></a>)</li> <li>Keep explicit local launch keys in authority memory only (<a href="https://github.com/NousResearch/hermes-agent/commit/32d512fb9e3896b82ae80e11bd7e2980d448256d"><code>32d512fb</code></a>)</li> <li>Freeze local CLI reasoning and execution launch options (<a href="https://github.com/NousResearch/hermes-agent/commit/d0954a9ede1d903b860cfc2cef954c0a3f0ffe45"><code>d0954a9e</code></a>)</li> <li>Preflight canonical epoch before restoring profile snapshot files (<a href="https://github.com/NousResearch/hermes-agent/commit/610a97ea48df71f085c7634f6dbd296cc131485f"><code>610a97ea</code></a>)</li> <li>Retain explicit verified deletion after read-only export migration (<a href="https://github.com/NousResearch/hermes-agent/commit/23456236c8f1232d91dbecc8efdcac66e9b8cf5d"><code>23456236</code></a>)</li> <li>Recover fresh and historical session row layouts by identity (<a href="https://github.com/NousResearch/hermes-agent/commit/9c681b2d67025d406ef16158d5ca183d80360072"><code>9c681b2d</code></a>)</li> <li>Explain safe transcript salvage when canonical restore is refused (<a href="https://github.com/NousResearch/hermes-agent/commit/c559236f68248ee6722f9c34ab31d31e84e11657"><code>c559236f</code></a>)</li> <li>Preserve structured Unicode through worker payload and receipt encoding (<a href="https://github.com/NousResearch/hermes-agent/commit/f56e660e018493c530f5e5e6bb94717ff3cf3364"><code>f56e660e</code></a>)</li> <li>Pause workers on outbox I/O failure and preserve local lease waits (<a href="https://github.com/NousResearch/hermes-agent/commit/23b549216de9d16dd0832534d801cb41cc3f33d6"><code>23b54921</code></a>)</li> <li>Freeze retry journals and retain exclusive worker outbox ownership (<a href="https://github.com/NousResearch/hermes-agent/commit/a8c163afbcf5a2f3dafb7ac567864ecb28ff7776"><code>a8c163af</code></a>)</li> <li>Attenuate worker reconnect tickets to execution operations (<a href="https://github.com/NousResearch/hermes-agent/commit/e7cd5f9380b15f7cc31dda55f8520946618e15ad"><code>e7cd5f93</code></a>)</li> <li>Install relay trust only after provenance verification (<a href="https://github.com/NousResearch/hermes-agent/commit/90f107f22f4c8f97c56443d21445444bd7b16794"><code>90f107f2</code></a>)</li> <li>Keep relay reader live during canonical busy delivery (<a href="https://github.com/NousResearch/hermes-agent/commit/4485fb73d5a32d08a3132877789b9128728a0de7"><code>4485fb73</code></a>)</li> <li>Admit relay inputs with verified connector provenance (<a href="https://github.com/NousResearch/hermes-agent/commit/8fe258cc116ba5abac94a962ef5050c35962a437"><code>8fe258cc</code></a>)</li> <li>Keep retained process lineage lookup read-only (<a href="https://github.com/NousResearch/hermes-agent/commit/bf9cf5c217ff0ce68943511cdb795a6e808a220e"><code>bf9cf5c2</code></a>)</li> <li>Retain corruption restore for non-runtime SQLite stores (<a href="https://github.com/NousResearch/hermes-agent/commit/ad354c28ab6f87f8ec1a66ca42fa947638b4fce7"><code>ad354c28</code></a>)</li> <li>Preflight all restore destinations and preserve import warning parity (<a href="https://github.com/NousResearch/hermes-agent/commit/f1b4f6e33badcacd30e40b688310d1cb677aea2a"><code>f1b4f6e3</code></a>)</li> <li>Preserve runtime epoch floors across older backup restores (<a href="https://github.com/NousResearch/hermes-agent/commit/7fd8082e40d664ef325254996fd4211017171121"><code>7fd8082e</code></a>)</li> <li>Fence canonical recovery output and report excluded runtime state (<a href="https://github.com/NousResearch/hermes-agent/commit/43f62e7af9f2520da96378db98218ac9d18673f0"><code>43f62e7a</code></a>)</li> <li>Exclude restore and import with canonical runtime ownership (<a href="https://github.com/NousResearch/hermes-agent/commit/4dce8f7ed24c689935b190a6cf27f52707996239"><code>4dce8f7e</code></a>)</li> <li>Keep dashboard session browsing read-only (<a href="https://github.com/NousResearch/hermes-agent/commit/af4599c10738169e557dcd29f4281f893b196352"><code>af4599c1</code></a>)</li> <li>Preserve loop liveness witnesses for long gateway homes (<a href="https://github.com/NousResearch/hermes-agent/commit/ae92d198b7cc074ad950e799ab073eaa74104a43"><code>ae92d198</code></a>)</li> <li>Retain newer composer scope across delayed queue acknowledgements (<a href="https://github.com/NousResearch/hermes-agent/commit/4b39a5fd64d32436637469ed43f5c4de8ac12a12"><code>4b39a5fd</code></a>)</li> <li>Keep native steer fallback on canonical queue admission (<a href="https://github.com/NousResearch/hermes-agent/commit/35255f5c13435741ac8a8f61b6c99ca0fb172055"><code>35255f5c</code></a>)</li> <li>Admit native busy slash kickoffs through canonical submit (<a href="https://github.com/NousResearch/hermes-agent/commit/6bef46ea53dc15a18ca9104706fe42a596749ca1"><code>6bef46ea</code></a>)</li> <li>Reconcile queue input IDs with canonical admission identities (<a href="https://github.com/NousResearch/hermes-agent/commit/a877aa6e5a11edf39297c376505eaba2556e6306"><code>a877aa6e</code></a>)</li> <li>Preserve active turn ownership during canonical queue admission (<a href="https://github.com/NousResearch/hermes-agent/commit/a131bf4aca37820459c4493f4fe51a8a5757379f"><code>a131bf4a</code></a>)</li> <li>Route native composer Queue through existing admission submit (<a href="https://github.com/NousResearch/hermes-agent/commit/4ce95d5f2eaa0637b6a1607fe1cce2599c3b9fe2"><code>4ce95d5f</code></a>)</li> <li>Authenticate native desktop file downloads per attempt (<a href="https://github.com/NousResearch/hermes-agent/commit/28741ef8809e63d6ce0b5a066cef0797ba612656"><code>28741ef8</code></a>)</li> <li>Scope stable execution identity to canonical local sources (<a href="https://github.com/NousResearch/hermes-agent/commit/c3aa2e5c442486298637459b1f02f8ce161e1d29"><code>c3aa2e5c</code></a>)</li> <li>Reject foreign local receipts inside lineage publication (<a href="https://github.com/NousResearch/hermes-agent/commit/1ffba2ac1fa0a93c07308b94b7a84263370abaea"><code>1ffba2ac</code></a>)</li> <li>Retain local admission ownership across transcript rotation (<a href="https://github.com/NousResearch/hermes-agent/commit/42ee0d341a7745c0ca21e196946f4cadb0a914ef"><code>42ee0d34</code></a>)</li> <li>Publish shared queue changes to attached viewers (<a href="https://github.com/NousResearch/hermes-agent/commit/fb02973f611c3f840db12ac8e60a5d6fe7ca9d52"><code>fb02973f</code></a>)</li> <li>Retain public queued input identity in shared snapshots (<a href="https://github.com/NousResearch/hermes-agent/commit/37332c17b11318483d948035627387c85c2191a6"><code>37332c17</code></a>)</li> <li>Expose profile-bound setup readiness on canonical sessions (<a href="https://github.com/NousResearch/hermes-agent/commit/971c3c95515e7b27555d962c8b6c96ce14c08cc4"><code>971c3c95</code></a>)</li> <li>Normalize canonical prompts before named desktop listeners (<a href="https://github.com/NousResearch/hermes-agent/commit/9a2a30a62d63164ab908842492cd1993e6c1312b"><code>9a2a30a6</code></a>)</li> <li>Fence canonical desktop RPC metadata edits with revision receipts (<a href="https://github.com/NousResearch/hermes-agent/commit/ce3037dc1d407bb6205de93211248d6dc2d081c4"><code>ce3037dc</code></a>)</li> <li>Bind desktop create retries to the explicit draft intent (<a href="https://github.com/NousResearch/hermes-agent/commit/c69bb4db31c52554894ae5cc0ee1b5e323468881"><code>c69bb4db</code></a>)</li> <li>Retain desktop update and profile gates before canonical ensure (<a href="https://github.com/NousResearch/hermes-agent/commit/a7821f635e28d99d0db22903ab1355655e0ea434"><code>a7821f63</code></a>)</li> <li>Adapt desktop native sessions to canonical identities and controls (<a href="https://github.com/NousResearch/hermes-agent/commit/d1546a54c43b850f3afeef56479550e477145e8f"><code>d1546a54</code></a>)</li> <li>Authenticate native desktop HTTP with fresh private tickets (<a href="https://github.com/NousResearch/hermes-agent/commit/dd8b9f38344d27dc24058fa71866defdd598f33f"><code>dd8b9f38</code></a>)</li> <li>Preserve native HTTP profile selectors across JSON contracts (<a href="https://github.com/NousResearch/hermes-agent/commit/eaad737e88a3f5350deb1c992a2d2baf43bbcb66"><code>eaad737e</code></a>)</li> <li>Retain source-free authority control projections (<a href="https://github.com/NousResearch/hermes-agent/commit/3546eb41a933c2aaa93c54b744bd88a34c6cb390"><code>3546eb41</code></a>)</li> <li>Preflight durable local policy before claiming queued work (<a href="https://github.com/NousResearch/hermes-agent/commit/d98dd7435ad12f3693f9247e874fc517b31f0214"><code>d98dd743</code></a>)</li> <li>Publish canonical Ink readiness only after discovery (<a href="https://github.com/NousResearch/hermes-agent/commit/653889ef7f719d7bad0602d1dc6083fd676e016c"><code>653889ef</code></a>)</li> <li>Hydrate canonical Ink history independently of live events (<a href="https://github.com/NousResearch/hermes-agent/commit/971ff7f362b6eaacc72006bea8da4b6a6aa263f2"><code>971ff7f3</code></a>)</li> <li>Carry native ticket through WebSocket subprotocol negotiation (<a href="https://github.com/NousResearch/hermes-agent/commit/7fe8c72c78e42e0dc65ec893e249389ebaee28f5"><code>7fe8c72c</code></a>)</li> <li>Correlate canonical Ink receipts with prepared input identities (<a href="https://github.com/NousResearch/hermes-agent/commit/3dfb7d50a5c8050f8e584942156d787a94ca2d58"><code>3dfb7d50</code></a>)</li> <li>Scope one-shot output to its admitted turn and retain direct query aliases (<a href="https://github.com/NousResearch/hermes-agent/commit/17155e733138b29c8067eb4370838c9e59e6e016"><code>17155e73</code></a>)</li> <li>Preserve gateway toolset policy and reject resume source overrides (<a href="https://github.com/NousResearch/hermes-agent/commit/6feaafcc2960930fb4b2d5eebd43e9dab4a6d3fd"><code>6feaafcc</code></a>)</li> <li>Reject fresh session registration while gateway drains (<a href="https://github.com/NousResearch/hermes-agent/commit/a67637cc973ade7d423cf9551019323d5c207641"><code>a67637cc</code></a>)</li> <li>Separate clarification permission from execution control (<a href="https://github.com/NousResearch/hermes-agent/commit/66bc2861eaeda0f78e29ccfa0804fe60b90250b4"><code>66bc2861</code></a>)</li> <li>Stamp authenticated legacy clients before shared session admission (<a href="https://github.com/NousResearch/hermes-agent/commit/4be08ae58a16611a6384ce426e9e6d5968849b28"><code>4be08ae5</code></a>)</li> <li>Preserve scoped bootstrap grants in shared session connections (<a href="https://github.com/NousResearch/hermes-agent/commit/b699e0e95baee7200fd698a5d6b8230c4ef12f2a"><code>b699e0e9</code></a>)</li> <li>Keep forged local profiles out of messaging authorization fallback (<a href="https://github.com/NousResearch/hermes-agent/commit/d379d6cc1d08aabd78a8404c939fad75fb9dcc8a"><code>d379d6cc</code></a>)</li> <li>Retain queued inputs when shutdown crosses authorization awaits (<a href="https://github.com/NousResearch/hermes-agent/commit/733dde1cc9a8969b0263fac7f84d57d1d1587e0f"><code>733dde1c</code></a>)</li> <li>Reload transport role policy after Discord membership awaits (<a href="https://github.com/NousResearch/hermes-agent/commit/43ae9e9a23129f6b5bdac60c9539fd0db5bc3eba"><code>43ae9e9a</code></a>)</li> <li>Retain native trust fields for validation when freezing ingress (<a href="https://github.com/NousResearch/hermes-agent/commit/53aadf44895e10151f8005a14a2d52c41d2edb96"><code>53aadf44</code></a>)</li> <li>Fence native authorization yields against identity and FIFO changes (<a href="https://github.com/NousResearch/hermes-agent/commit/6ef8b38df56ced2387907f836c07fc02f2daaf1d"><code>6ef8b38d</code></a>)</li> <li>Report malformed installed plists without leaking parser failures (<a href="https://github.com/NousResearch/hermes-agent/commit/1b55d9646aa7e544a2b4ce75897d79c7f5b99d8c"><code>1b55d964</code></a>)</li> <li>Resolve installed names from the requested profile root (<a href="https://github.com/NousResearch/hermes-agent/commit/258049b38f80a2dcee4baf47386c23f860e4bd08"><code>258049b3</code></a>)</li> <li>Reject unbound launch wrappers and nonregular service definitions (<a href="https://github.com/NousResearch/hermes-agent/commit/1dd6268bcd5354632a789c902f49e7a3988e63e4"><code>1dd6268b</code></a>)</li> <li>Preserve task XML encoding and document service binding refusals (<a href="https://github.com/NousResearch/hermes-agent/commit/7b904f95bf3a91f5ef87f291da9cf4cad18593ef"><code>7b904f95</code></a>)</li> <li>Bind loaded launchd jobs and scheduled task XML before start (<a href="https://github.com/NousResearch/hermes-agent/commit/1ce0d11ef3fe0382061c9d672d2537a841449ef5"><code>1ce0d11e</code></a>)</li> <li>Verify effective systemd profile and account before ensure starts (<a href="https://github.com/NousResearch/hermes-agent/commit/efadac8de2e99aee61dbb523786bbcc45302a123"><code>efadac8d</code></a>)</li> <li>Stop bootstrap background workers after listener failure (<a href="https://github.com/NousResearch/hermes-agent/commit/6716636ffc967db0e2103280b0ac967fb54b2990"><code>6716636f</code></a>)</li> <li>Withdraw gateway readiness when the session listener exits (<a href="https://github.com/NousResearch/hermes-agent/commit/57ec27186f84fe508d247cfbf72b68b1d5419ae8"><code>57ec2718</code></a>)</li> <li>Keep readiness and cleanup fenced across runtime shutdown (<a href="https://github.com/NousResearch/hermes-agent/commit/82ff0592d0784533e1b7f0a7b7b1ce90e8ff9aa9"><code>82ff0592</code></a>)</li> <li>Retain browser authentication and withdraw native ingress on drain (<a href="https://github.com/NousResearch/hermes-agent/commit/5da456be802528872bacc208f4508ea26bf3b85f"><code>5da456be</code></a>)</li> <li>Export sessions without mutating canonical storage (<a href="https://github.com/NousResearch/hermes-agent/commit/ae82c1a2d0cca85d17d93a26ee317757bfc38ca7"><code>ae82c1a2</code></a>)</li> <li>Keep native segment sentinels out of canonical text deltas (<a href="https://github.com/NousResearch/hermes-agent/commit/caae4af5717dc8bfcfbba107acbf774b97574286"><code>caae4af5</code></a>)</li> <li>Keep launcher YOLO out of shared gateway policy (<a href="https://github.com/NousResearch/hermes-agent/commit/628d702c0e503cf116eacc4b7521d88db2706ac2"><code>628d702c</code></a>)</li> <li>Align profile reservations with bootstrap permissions (<a href="https://github.com/NousResearch/hermes-agent/commit/87ba34fdf90f2ea7ff80e784a09f0e6dacf84a52"><code>87ba34fd</code></a>)</li> <li>Reject FIFO gateway metadata without blocking discovery (<a href="https://github.com/NousResearch/hermes-agent/commit/5b0f0276eb21c388793aee46fd881f7bd97c1971"><code>5b0f0276</code></a>)</li> <li>Bind fresh ordinary admissions while preserving exact legacy retries (<a href="https://github.com/NousResearch/hermes-agent/commit/e5f39ada9ff21601c3d9ac73a26b1d9e78c99bba"><code>e5f39ada</code></a>)</li> <li>Preserve ordinary native retry fingerprints through callback migration (<a href="https://github.com/NousResearch/hermes-agent/commit/6083e9ed31a15372cde35a052be8407b398e2ddc"><code>6083e9ed</code></a>)</li> <li>Refuse unrouted profile claims in native callback snapshots (<a href="https://github.com/NousResearch/hermes-agent/commit/99c923bc8b6b6c9123781daba4d2832575466803"><code>99c923bc</code></a>)</li> <li>Preserve authority ownership through scoped adapter callbacks (<a href="https://github.com/NousResearch/hermes-agent/commit/42ce26af2e482bcd63d04651bae0928fff184fac"><code>42ce26af</code></a>)</li> <li>Retain trusted ordinary native callback provenance (<a href="https://github.com/NousResearch/hermes-agent/commit/1d4dab77c682f4a0893174fe9eb1e52c5ed7f379"><code>1d4dab77</code></a>)</li> <li>Omit retired approvals from gateway attach snapshots (<a href="https://github.com/NousResearch/hermes-agent/commit/e7ee1d6747960aeb8e522d0fec8a69d0c2b63cd4"><code>e7ee1d67</code></a>)</li> <li>Deny controls after gateway execution settlement (<a href="https://github.com/NousResearch/hermes-agent/commit/a064afdd5ff02aac033667a1441103ce15214be7"><code>a064afdd</code></a>)</li> <li>Reject approval publication from retired gateway workers (<a href="https://github.com/NousResearch/hermes-agent/commit/295bc0f57d9cdd9161e1bd7588943ccb83d3f992"><code>295bc0f5</code></a>)</li> <li>Retain legacy session writers during reader migration (<a href="https://github.com/NousResearch/hermes-agent/commit/82dfb85d6789ab7a4a53f90c1447652db39b8ed2"><code>82dfb85d</code></a>)</li> <li>Keep session lists and statistics read-only (<a href="https://github.com/NousResearch/hermes-agent/commit/1a1ad945981c7ce1c2b56333c0f2cf1a113efb64"><code>1a1ad945</code></a>)</li> <li>Resolve terminal breadcrumbs without opening a session writer (<a href="https://github.com/NousResearch/hermes-agent/commit/73238088e6cc3221dea73317ef0a9548f7d6a3f0"><code>73238088</code></a>)</li> <li>Share read-only insights reporting with interactive CLI (<a href="https://github.com/NousResearch/hermes-agent/commit/9cd5d6dd2108bcb14e749d1fe2c22ad3b81a17ca"><code>9cd5d6dd</code></a>)</li> <li>Generate CLI insights without initializing session storage (<a href="https://github.com/NousResearch/hermes-agent/commit/680937a6e768be7622169308af1970b39442b35a"><code>680937a6</code></a>)</li> <li>Keep resume lookup and TUI exit metadata read-only (<a href="https://github.com/NousResearch/hermes-agent/commit/617be2dabc9cbff4ad4f96711a1f71f0e50f5459"><code>617be2da</code></a>)</li> <li>Keep status session inspection read-only (<a href="https://github.com/NousResearch/hermes-agent/commit/ca77b19711b7723d1b1ef4440d455f1e208aa5cb"><code>ca77b197</code></a>)</li> <li>Bind shared authority when starting gateway API (<a href="https://github.com/NousResearch/hermes-agent/commit/11958d461893961b21e27bd36c5ddf2785b9acd2"><code>11958d46</code></a>)</li> <li>Refuse redirected native media publication (<a href="https://github.com/NousResearch/hermes-agent/commit/e924cf98a39a2d8b53fd133caaa4998e84a43b54"><code>e924cf98</code></a>)</li> <li>Preserve legacy native text admission retries (<a href="https://github.com/NousResearch/hermes-agent/commit/ca226b68230f2cdba430ddd4bf7fe591ba67c2d5"><code>ca226b68</code></a>)</li> <li>Rotate authority replay epoch on concurrent eviction (<a href="https://github.com/NousResearch/hermes-agent/commit/a9de35d29ae81ba999ef89bcf6048f834057a4be"><code>a9de35d2</code></a>)</li> <li>Isolate authority execution from slow observers (<a href="https://github.com/NousResearch/hermes-agent/commit/aab36dc64cc92ba2850c0f5adf91f88a449dfc18"><code>aab36dc6</code></a>)</li> <li>Keep authority subscriptions stable across repeated resume (<a href="https://github.com/NousResearch/hermes-agent/commit/8c88976587e4239fd74126b150c60880589adcc1"><code>8c889765</code></a>)</li> <li>Admit busy messaging text into the canonical durable FIFO (<a href="https://github.com/NousResearch/hermes-agent/commit/eae6194b0aff9416849fac5d83eb4e8952692588"><code>eae6194b</code></a>)</li> <li>Preserve surrogate request identity while sanitizing worker text (<a href="https://github.com/NousResearch/hermes-agent/commit/bb90f4b8972923431d270f94e7357203da199bf1"><code>bb90f4b8</code></a>)</li> <li>Replay committed worker receipts after terminal settlement (<a href="https://github.com/NousResearch/hermes-agent/commit/203b3f4f6d51b7d46fa5684daef2a9980bd00486"><code>203b3f4f</code></a>)</li> <li>Retain transcript closure guard for worker appends (<a href="https://github.com/NousResearch/hermes-agent/commit/71f835b60e937db07e436c96ef875fb3e657e1bf"><code>71f835b6</code></a>)</li> <li>Revoke workers when resolving unknown admissions (<a href="https://github.com/NousResearch/hermes-agent/commit/d7089f7534b47bbee400d008420c7a230931cef4"><code>d7089f75</code></a>)</li> <li>Align runtime mutation receipts with canonical wire contract (<a href="https://github.com/NousResearch/hermes-agent/commit/e6b1dc06d616ed10437bb7c807655ed919c030eb"><code>e6b1dc06</code></a>)</li> <li>Fence ancestor revisions when runtime titles transfer (<a href="https://github.com/NousResearch/hermes-agent/commit/62aef7959e8dbb7bf2d66f5dbc7eea963683767f"><code>62aef795</code></a>)</li> <li>Fence worker persistence when its admission settles (<a href="https://github.com/NousResearch/hermes-agent/commit/e3bfe6408d2147aa013b9b356e8526fd2e28a2c7"><code>e3bfe640</code></a>)</li> <li>Transfer admitted claims atomically during worker adoption (<a href="https://github.com/NousResearch/hermes-agent/commit/341aed4184ee327bf22ead8eaafb15012a6bde2f"><code>341aed41</code></a>)</li> <li>Preserve legacy execution generations through admission import (<a href="https://github.com/NousResearch/hermes-agent/commit/c45d2e5c70ff01ec47a975e9f2c0c0e5970ce380"><code>c45d2e5c</code></a>)</li> <li>Restore Ink pending inputs after cold durable resume (<a href="https://github.com/NousResearch/hermes-agent/commit/34fb13a1a00b0ff6c9a025b004a763bcf4fd5f5b"><code>34fb13a1</code></a>)</li> <li>Preserve Ink slash attachments and reconcile stale images (<a href="https://github.com/NousResearch/hermes-agent/commit/dbc7ffa80c3a0e6c1e58f66f39346c0fe4389940"><code>dbc7ffa8</code></a>)</li> <li>Reconcile Ink replay receipts with current execution (<a href="https://github.com/NousResearch/hermes-agent/commit/8a589010ebeaf39a0987367b08a7187401621b43"><code>8a589010</code></a>)</li> <li>Settle desktop receipts on recovered runtime and tidy composed probes (<a href="https://github.com/NousResearch/hermes-agent/commit/1ad31afa193a2750dba098246c7566390833f466"><code>1ad31afa</code></a>)</li> <li>Retire desktop Stop for newer owner executions and fence old output (<a href="https://github.com/NousResearch/hermes-agent/commit/926d097dee9f1175e81b5e4623a168b953d45a57"><code>926d097d</code></a>)</li> <li>Settle terminal desktop admission receipts without stopping live turns (<a href="https://github.com/NousResearch/hermes-agent/commit/d89a90e11848dddb1eb9b0a6f980b378ba9537f2"><code>d89a90e1</code></a>)</li> <li>Fence same-call desktop legacy admission retries (<a href="https://github.com/NousResearch/hermes-agent/commit/41b017f1e3cc565fdd4dc2e6d733be1056c0233b"><code>41b017f1</code></a>)</li> <li>Never resend ambiguous Ink legacy admissions (<a href="https://github.com/NousResearch/hermes-agent/commit/5681c7d40699b5d111f1fb44b3277c164cea4a92"><code>5681c7d4</code></a>)</li> <li>Emit structured CLI parse failures only once (<a href="https://github.com/NousResearch/hermes-agent/commit/1d4d2b2d09faf2e18acd92cbffeb479ab74bfcc1"><code>1d4d2b2d</code></a>)</li> <li>Bound gateway probes and structure ensure parser errors (<a href="https://github.com/NousResearch/hermes-agent/commit/ad1099d6c531333addcb93d736457b1a4f0bf29d"><code>ad1099d6</code></a>)</li> <li>Discover the gateway private fallback socket directory (<a href="https://github.com/NousResearch/hermes-agent/commit/c804d40b0280c87f65ae91bd64c6c529fd80ba0f"><code>c804d40b</code></a>)</li> <li>Retain runtime locks while scheduler threads survive cleanup (<a href="https://github.com/NousResearch/hermes-agent/commit/954d5e9919ca5b85d8c96eee20fa2772facb35bf"><code>954d5e99</code></a>)</li> <li>Retain gateway ownership through exit-state persistence (<a href="https://github.com/NousResearch/hermes-agent/commit/d465ad0dbf633dca6beab00c8b912f2911cc545f"><code>d465ad0d</code></a>)</li> <li>Reserve all gateway profiles before writable initialization (<a href="https://github.com/NousResearch/hermes-agent/commit/c941b0e674c3b6586cc86cf3349df291014454c6"><code>c941b0e6</code></a>)</li> <li>Keep standalone session search read-only (<a href="https://github.com/NousResearch/hermes-agent/commit/0e7c058897dd0cc5166fcc1293cc75fb893ee33a"><code>0e7c0588</code></a>)</li> </ul> <h2>📚 Documentation</h2> <ul> <li>Agent): use the released model name Nemotron 3.5 Super VL (<a href="https://github.com/NousResearch/hermes-agent/commit/79651b71bd56efd76d06f3de1df64dde09b58ff3"><code>79651b71</code></a>) — @j-nolan</li> <li>Env): add NVIDIA NIM to .env example (<a href="https://github.com/NousResearch/hermes-agent/commit/3dd961013c57398b4ba42d16f5bcc3772baa0701"><code>3dd96101</code></a>) — @elisam0</li> <li>Providers): use a non-cloud example key for local NIM (<a href="https://github.com/NousResearch/hermes-agent/commit/da463310b1e31d8690b1aac6d3701798bb36a06e"><code>da463310</code></a>) — @rroverin</li> <li>Rollback section the downgrade refusals link to; regenerate the command-parity table (<a href="https://github.com/NousResearch/hermes-agent/commit/97ec76fa7eaf5066cb334b98448d1b71118df4e5"><code>97ec76fa</code></a>)</li> <li>Gateway): describe the messaging pause notice and /reset escape (<a href="https://github.com/NousResearch/hermes-agent/commit/6cdf7815defdb94f642a0a2d2d01a0e33558bee9"><code>6cdf7815</code></a>)</li> <li>Explain ambiguous legacy A2A recovery boundary (<a href="https://github.com/NousResearch/hermes-agent/commit/22a8154ff371d9b904bd2017d9d71a5e878ae603"><code>22a8154f</code></a>)</li> <li>Cli): classic chat resolves --resume <title> and -c <title> --create-if-missing at the gateway; bare -c stays refused (<a href="https://github.com/NousResearch/hermes-agent/commit/c6c4161cbf8181b6dd8c357a09ef2baece3c736d"><code>c6c4161c</code></a>)</li> <li>Gateway): document prompt.submit attachments and the ACP media path (<a href="https://github.com/NousResearch/hermes-agent/commit/e3d60eed6528d1aee1b0add480311257df37eb5e"><code>e3d60eed</code></a>)</li> <li>Desktop): gateway-owned queue and the Discard control for a turn lost during restart (<a href="https://github.com/NousResearch/hermes-agent/commit/101be7d78ebb4f819347d2a335277ac6fe6204a6"><code>101be7d7</code></a>)</li> <li>Explicit /model rewrites the system prompt Model line once (single cache-prefix miss) (<a href="https://github.com/NousResearch/hermes-agent/commit/ef813b356786b63685a527a20858bc814a6fe734"><code>ef813b35</code></a>)</li> <li>/new rebinds only the invoking view of a shared session (<a href="https://github.com/NousResearch/hermes-agent/commit/6be1de8d10462ac38e1194a9c6e88a57b0f679fe"><code>6be1de8d</code></a>)</li> <li>API runs and X-Hermes-Session-Id cannot bind a session owned by another surface (409 permission_denied) (<a href="https://github.com/NousResearch/hermes-agent/commit/789caca24f1f8e63aae670bb5ad1a47dff03964d"><code>789caca2</code></a>)</li> <li>Dashboard session delete fences, tombstones, and offline-only bulk maintenance (<a href="https://github.com/NousResearch/hermes-agent/commit/46c50515dcd0ad596dbd4fc7d46b45bb19fb8944"><code>46c50515</code></a>)</li> <li>Explain canonical editor MCP ownership and cold reattachment (<a href="https://github.com/NousResearch/hermes-agent/commit/fcc978bd3c9b0d744695bf5b9dc42cbaf50034bb"><code>fcc978bd</code></a>)</li> <li>Distinguish canonical Bot admission from retired UI ownership (<a href="https://github.com/NousResearch/hermes-agent/commit/2d22a7cd441e945681b83a1d3bf1f69947b014f0"><code>2d22a7cd</code></a>)</li> <li>Record worker lifecycle hooks proofs and remaining integration gates (<a href="https://github.com/NousResearch/hermes-agent/commit/3dae322e642d144f00107aa732dd2ad578942192"><code>3dae322e</code></a>)</li> <li>Record isolated worker inference proof and remaining migration gates (<a href="https://github.com/NousResearch/hermes-agent/commit/b762d80c95bc64f514ddf2f1a6c18e0edfd43715"><code>b762d80c</code></a>)</li> <li>Distinguish admission recovery from producer replay proof (<a href="https://github.com/NousResearch/hermes-agent/commit/bc3bcaff41c4789211a907927ad9bead322a9277"><code>bc3bcaff</code></a>)</li> <li>Delimit verified worker substrate coverage and rollout blockers (<a href="https://github.com/NousResearch/hermes-agent/commit/f22754e86cf9fdad840bb16697166982e76e8e89"><code>f22754e8</code></a>)</li> <li>Inventory exact worker persistence consumers before substrate (<a href="https://github.com/NousResearch/hermes-agent/commit/0e30eb6af5c43ce7fcec11299e3fa23fff3cba2f"><code>0e30eb6a</code></a>)</li> <li>Define stable local lineage and paused fork recovery (<a href="https://github.com/NousResearch/hermes-agent/commit/757f19f4b44ec23c201af59df7bb9b3ac66ae779"><code>757f19f4</code></a>)</li> <li>Define native HTTP trust and primary-profile scope (<a href="https://github.com/NousResearch/hermes-agent/commit/a8a6b02c920fe97a588ed4396e2bb278dc97ca3a"><code>a8a6b02c</code></a>)</li> <li>Document local crash recovery contract and replay limits (<a href="https://github.com/NousResearch/hermes-agent/commit/375fce5548f41d22606fa0461c488ba3249744f3"><code>375fce55</code></a>)</li> <li>Describe settled Ink recovery and native lifecycle probes (<a href="https://github.com/NousResearch/hermes-agent/commit/2dc2e74069c474d23833eeefbccf4956a97d94cf"><code>2dc2e740</code></a>)</li> <li>Define Desktop gateway ownership and private ticket boundary (<a href="https://github.com/NousResearch/hermes-agent/commit/f0ff6c5701098ea4d26eb06647363504e4824349"><code>f0ff6c57</code></a>)</li> <li>Distinguish native policy proof from remaining classic CLI parity (<a href="https://github.com/NousResearch/hermes-agent/commit/256cab2b78ef549183636650f07586f0741b74c9"><code>256cab2b</code></a>)</li> <li>Publish supported local creation policy and recovery boundary (<a href="https://github.com/NousResearch/hermes-agent/commit/0400a5efc141827bdb341df91d960a88dccfeb2f"><code>0400a5ef</code></a>)</li> <li>Explain gateway ensure readiness and service consent (<a href="https://github.com/NousResearch/hermes-agent/commit/a272e8df90f9013386f6bacdccf0e355885a098e"><code>a272e8df</code></a>)</li> </ul> <h2>🧪 Tests</h2> <ul> <li>Relay): the OpenAI-stream e2e no longer self-deadlocks when the stream is buffered (<a href="https://github.com/NousResearch/hermes-agent/commit/6e84ce66fb577ceeaf43a1e2da773e70609953d2"><code>6e84ce66</code></a>)</li> <li>Gateway): the authority stream probe waits for the idle session.info (<a href="https://github.com/NousResearch/hermes-agent/commit/56b9691cc95fc209612a63415257d7f62d31c583"><code>56b9691c</code></a>)</li> <li>Gateway): align SSE prepare cleanup with retained streams (<a href="https://github.com/NousResearch/hermes-agent/commit/c0230ca59555af3be8471cd1cb42a83f5191799d"><code>c0230ca5</code></a>) — @Lokee86</li> <li>Desktop-core): capture the Electron PID before quit for the orphan census message (<a href="https://github.com/NousResearch/hermes-agent/commit/2cf48e0c82122bd23166f5732c8987f82463bb09"><code>2cf48e0c</code></a>)</li> <li>Gateway): the unserve runner stub carries the reservation our release step shrinks (<a href="https://github.com/NousResearch/hermes-agent/commit/5fdb477bd9686eeb369c49ced3b57db6bd136812"><code>5fdb477b</code></a>)</li> <li>Cold-profile archive/unarchive through one multiplexing gateway is an acceptance case (<a href="https://github.com/NousResearch/hermes-agent/commit/dfbb914244812dc2e22894efc45f29e5b958856a"><code>dfbb9142</code></a>)</li> <li>Seed-compensation fake uses discard_unadmitted_session; hosted auth probe waits are load-tolerant (<a href="https://github.com/NousResearch/hermes-agent/commit/cc1eab12c0f784e8c501c6209e07e1513bf57abd"><code>cc1eab12</code></a>)</li> <li>Gateway): managed-worker first-inference wait tolerates a saturated 40-worker runner (<a href="https://github.com/NousResearch/hermes-agent/commit/57c957713d676ac562ac49bd595fe88371644e33"><code>57c95771</code></a>)</li> <li>Tui): slash-attachment composer assertions wait for the journaled clear (<a href="https://github.com/NousResearch/hermes-agent/commit/d5950d725a86ce582ece85cafe663c396b8e5235"><code>d5950d72</code></a>)</li> <li>Patch origin API probe in banner ancestry fixtures (<a href="https://github.com/NousResearch/hermes-agent/commit/cdf4eda7082644712d9f58df8b46e333758032f4"><code>cdf4eda7</code></a>)</li> <li>Migrate authored bot fixtures to canonical transport (<a href="https://github.com/NousResearch/hermes-agent/commit/37d7834e16e21199df7801271db13eb311bda0b7"><code>37d7834e</code></a>)</li> <li>Verify webhook receipt observation and composed HTTP startup (<a href="https://github.com/NousResearch/hermes-agent/commit/a5a0da667c7d62390df84f3a8f842850a6e23255"><code>a5a0da66</code></a>)</li> <li>Exercise authenticated hosted room Stop and approval (<a href="https://github.com/NousResearch/hermes-agent/commit/7a6b2961a4ca6ecdfd2668f1007c456d49b023fd"><code>7a6b2961</code></a>)</li> <li>Use system Python for the stdlib-only ticket bridge (<a href="https://github.com/NousResearch/hermes-agent/commit/3394ef4cbb1cb832f986bc301b006c562570d3b4"><code>3394ef4c</code></a>)</li> <li>Preserve Kanban policy and cron cleanup owner invariants (<a href="https://github.com/NousResearch/hermes-agent/commit/e1b6f10ba19abb8d016b7241f03aa5ab6bd83d74"><code>e1b6f10b</code></a>)</li> <li>Align Kanban scope fixtures with owner worker client (<a href="https://github.com/NousResearch/hermes-agent/commit/ea2342d41c26f8f117d50740dd0eb6b2fa7704d1"><code>ea2342d4</code></a>)</li> <li>Observe relay completion and cron guard at owner seams (<a href="https://github.com/NousResearch/hermes-agent/commit/625bb379b7ebe46ca39e7662a41075956913a0fa"><code>625bb379</code></a>)</li> <li>Drain durable cron failure deliveries before asserting sends (<a href="https://github.com/NousResearch/hermes-agent/commit/9b753d3b3fe7018e504825b48466845243fa53f6"><code>9b753d3b</code></a>)</li> <li>Migrate cron guards and context fixtures through owner execution (<a href="https://github.com/NousResearch/hermes-agent/commit/7080a488630dab0c70ce4084dd94c437f95f1d5a"><code>7080a488</code></a>)</li> <li>Restore cron owner configuration and session invariants (<a href="https://github.com/NousResearch/hermes-agent/commit/c08349cffd1b122b7b4db0852db1d9f06524a6c3"><code>c08349cf</code></a>)</li> <li>Exercise cron provider and workdir paths through owner (<a href="https://github.com/NousResearch/hermes-agent/commit/9fde59d3d103b9c294e6fd09e54f1581ddf99487"><code>9fde59d3</code></a>)</li> <li>Migrate cron lifecycle invariants to canonical owner execution (<a href="https://github.com/NousResearch/hermes-agent/commit/e4a2d476cb49ab5da1d3d62e1a9fa4efac587327"><code>e4a2d476</code></a>)</li> <li>Retain queued input identity after session list loading (<a href="https://github.com/NousResearch/hermes-agent/commit/2671381d20afcd859287e6e5a9b10dacc68e006f"><code>2671381d</code></a>)</li> <li>Exercise native Electron gateway HTTP and WebSocket tickets (<a href="https://github.com/NousResearch/hermes-agent/commit/45c6c8de542e749337c91a80194cc991d13db0f7"><code>45c6c8de</code></a>)</li> <li>Verify busy acknowledgements and document Ink recovery limits (<a href="https://github.com/NousResearch/hermes-agent/commit/59a90b4d46ab9da2885ff75d800d4af0724bbc2a"><code>59a90b4d</code></a>)</li> <li>Cover canonical Ink image composer and startup handoff (<a href="https://github.com/NousResearch/hermes-agent/commit/6563563443ceb6bb05ff79c8c0c473b11f37b291"><code>65635634</code></a>)</li> <li>Verify native legacy resume and compression cutover (<a href="https://github.com/NousResearch/hermes-agent/commit/90052b3351edee51f9de3f1801aef974baa63c54"><code>90052b33</code></a>)</li> <li>Prove admission-backed automatic compression retry (<a href="https://github.com/NousResearch/hermes-agent/commit/3ec0ea59babdbbe6dcf1eb8141a004af890bf419"><code>3ec0ea59</code></a>)</li> <li>Gate the Discord role probe on the real distribution, not the conftest mock (<a href="https://github.com/NousResearch/hermes-agent/commit/19feada077552c535490f4d32f4cc53b46862bec"><code>19feada0</code></a>)</li> <li>Acp): live editor image prompt reaches the loopback model as an image_url part (<a href="https://github.com/NousResearch/hermes-agent/commit/993a63f0517971409e9e55970e8189a97b9f0614"><code>993a63f0</code></a>)</li> <li>Native suite finds the managed worker by owner ancestry, not bare ppid (venv trampoline) (<a href="https://github.com/NousResearch/hermes-agent/commit/9e33573819b531d4925cd883c6ab07e95f2d8604"><code>9e335738</code></a>)</li> <li>Trampoline reap check waits for the owner's bounded close instead of racing the terminal commit (<a href="https://github.com/NousResearch/hermes-agent/commit/cc2cdbe28fc8e6789e6dd0c3928b44d3fbdea565"><code>cc2cdbe2</code></a>)</li> <li>Desktop): move the token download-transport invariant beside the extracted function (<a href="https://github.com/NousResearch/hermes-agent/commit/ff662b6b4324ae5a11f0ae3d77ab27e962c1990d"><code>ff662b6b</code></a>)</li> <li>Exercise safe identity suppression through real prompt assembly (<a href="https://github.com/NousResearch/hermes-agent/commit/cccb516cd7e12717d9652519a4b8f0bbd76c1bb3"><code>cccb516c</code></a>)</li> <li>Verify reserved admission claims through worker handlers (<a href="https://github.com/NousResearch/hermes-agent/commit/107af6fc7a647f4f1a9e3f16d68507e7f3390b3f"><code>107af6fc</code></a>)</li> <li>Isolate and reap owned Kanban systemd scopes (<a href="https://github.com/NousResearch/hermes-agent/commit/3776709d521bb932f24790ba5b8ac9d99f867459"><code>3776709d</code></a>)</li> <li>Prove rotated worker survives owner kill and adoption (<a href="https://github.com/NousResearch/hermes-agent/commit/8459b14094104210cfad432b680ed7397112f2d9"><code>8459b140</code></a>)</li> <li>Prove fresh ACP handoff and cold canonical restoration (<a href="https://github.com/NousResearch/hermes-agent/commit/56f623818839ebe120f25aec658e2ede93776202"><code>56f62381</code></a>)</li> <li>Verify per-admission API usage on the ordinary daemon (<a href="https://github.com/NousResearch/hermes-agent/commit/35d9eb2f7024293dca0d2bda5df9ff6ace69b57e"><code>35d9eb2f</code></a>)</li> <li>Prove shared API FIFO on the ordinary daemon (<a href="https://github.com/NousResearch/hermes-agent/commit/e721121f7beb367a65194986747e46db80af2dc9"><code>e721121f</code></a>)</li> <li>Prove registered worker terminal execution without canonical SQLite opens (<a href="https://github.com/NousResearch/hermes-agent/commit/e31b96bc84572ab685166f3bc45aca4160c72977"><code>e31b96bc</code></a>)</li> <li>Exercise worker lifecycle and stale callbacks through ordinary owner (<a href="https://github.com/NousResearch/hermes-agent/commit/5038cf75c91c0605bb99b5d7ca13fcc7703f3cef"><code>5038cf75</code></a>)</li> <li>Verify worker rotation claim and lost-ack replay over daemon (<a href="https://github.com/NousResearch/hermes-agent/commit/17cf264fc5973301cc69ead17ef89e708d8aaa5a"><code>17cf264f</code></a>)</li> <li>Verify native ACP approval and wrong-profile refusal (<a href="https://github.com/NousResearch/hermes-agent/commit/d157534a4a4eba4cb4ecd5d2db740f68b7ec9f87"><code>d157534a</code></a>)</li> <li>Verify local automation stays nonhuman and cache stable (<a href="https://github.com/NousResearch/hermes-agent/commit/ef071dd371e4c50ff084fe90408bbeb16e2adc70"><code>ef071dd3</code></a>)</li> <li>Prove local completion recovery after owner kill (<a href="https://github.com/NousResearch/hermes-agent/commit/9afff7e9d5b7218ab45af1a95518e854fda70d0d"><code>9afff7e9</code></a>)</li> <li>Follow canonical CLI launch in startup guard fixtures (<a href="https://github.com/NousResearch/hermes-agent/commit/34b9aad158d12a6dad51ffab38253e3a9ba8928b"><code>34b9aad1</code></a>)</li> <li>State): keep FTS migration fixtures on historical versions (<a href="https://github.com/NousResearch/hermes-agent/commit/21baec51bb6e3308cf885ea2a8bcde27eaf0f04b"><code>21baec51</code></a>)</li> <li>Document recovery limits and verify consented gateway launches (<a href="https://github.com/NousResearch/hermes-agent/commit/ddc1b0a1b75065e561e498e236e7cd5336d3fb3f"><code>ddc1b0a1</code></a>)</li> <li>Refuse unauthenticated credential launch over ordinary daemon websocket (<a href="https://github.com/NousResearch/hermes-agent/commit/9b0d7861d40ea2f26d48f14893d3be8ec75ee154"><code>9b0d7861</code></a>)</li> <li>Deny credential-bearing creation to restricted principals (<a href="https://github.com/NousResearch/hermes-agent/commit/2d2fdff90d41a7127cbe44563c5d08a7e774e125"><code>2d2fdff9</code></a>)</li> <li>Verify frozen CLI iteration limits through actual tool rounds (<a href="https://github.com/NousResearch/hermes-agent/commit/cc37de8b8488a7c806c056a049a76161068f07bc"><code>cc37de8b</code></a>)</li> <li>Prove concurrent CLI launch wire and restart credential isolation (<a href="https://github.com/NousResearch/hermes-agent/commit/84e86a87ec8a9e41c168a96a4934a8cc76cb2215"><code>84e86a87</code></a>)</li> <li>Own canonical daemon in completed-process CLI integration (<a href="https://github.com/NousResearch/hermes-agent/commit/6c8f0fd8430cd273eae7e597bd6b9024f89540f4"><code>6c8f0fd8</code></a>)</li> <li>Keep simulated HEAD updates off the live runtime fleet (<a href="https://github.com/NousResearch/hermes-agent/commit/7b8fdfa864bb6dcb6b0fc090a63b94a817ca0f0b"><code>7b8fdfa8</code></a>)</li> <li>Seed owner database for dashboard parameter validation (<a href="https://github.com/NousResearch/hermes-agent/commit/2af3bfd471ba8a00dbd0e9b926c02501054b785b"><code>2af3bfd4</code></a>)</li> <li>Initialize owner store for dashboard refresh success (<a href="https://github.com/NousResearch/hermes-agent/commit/a1811942e41b03cc8ac48537615d236e51522cfa"><code>a1811942</code></a>)</li> <li>Isolate service ordering fixture home (<a href="https://github.com/NousResearch/hermes-agent/commit/3b42e697695f72521e523a0d073158f4df0fd411"><code>3b42e697</code></a>)</li> <li>Seed gateway status through real read-only storage (<a href="https://github.com/NousResearch/hermes-agent/commit/6af1ac81fe978735fdf130602109105484fe3511"><code>6af1ac81</code></a>)</li> <li>Exercise CLI exports against real read-only session storage (<a href="https://github.com/NousResearch/hermes-agent/commit/96782704a006e8bd1d6e38ce693c3e110c2b6730"><code>96782704</code></a>)</li> <li>Prove pending worker usage survives real owner outage and adoption (<a href="https://github.com/NousResearch/hermes-agent/commit/58bcc3ec4d76a5dc85431b82995857cf7af9bdbb"><code>58bcc3ec</code></a>)</li> <li>Verify live relay replacement and websocket revocation fences (<a href="https://github.com/NousResearch/hermes-agent/commit/8956747661cd5a7dd2b3a1c0d2e3dd160489e330"><code>89567476</code></a>)</li> <li>Reject relay trust installation from an invalid seal (<a href="https://github.com/NousResearch/hermes-agent/commit/80d677d2d0ac937d30f06dfa9178cb781fecc163"><code>80d677d2</code></a>)</li> <li>Reproduce relay busy ingress blocking outbound acknowledgements (<a href="https://github.com/NousResearch/hermes-agent/commit/73bf2c66d364cca4d8bbea27ef9fd8d0558739b9"><code>73bf2c66</code></a>)</li> <li>Reproduce authenticated relay native admission rejection (<a href="https://github.com/NousResearch/hermes-agent/commit/0bbe37401b2f66e800bc22d03ba5bff625105764"><code>0bbe3740</code></a>)</li> <li>Preserve destination lock identity after offline import (<a href="https://github.com/NousResearch/hermes-agent/commit/ef1fe3dedc97a2f5bd93ebe11c535382f79f8676"><code>ef1fe3de</code></a>)</li> <li>Verify separate-output recovery against active daemon source (<a href="https://github.com/NousResearch/hermes-agent/commit/cc96119bf57efbf677c1ec9af7e0d3856c4be12e"><code>cc96119b</code></a>)</li> <li>Expose epoch reuse and service revival after refused import (<a href="https://github.com/NousResearch/hermes-agent/commit/dbb1e531e221d6a690d27b50f4c7269a14473a40"><code>dbb1e531</code></a>)</li> <li>Reproduce live restore deleting active authority admissions (<a href="https://github.com/NousResearch/hermes-agent/commit/3a0111ee03029d4c4fb7be02400ce1a9af73b92a"><code>3a0111ee</code></a>)</li> <li>Align search fixture with owner-initialized session stores (<a href="https://github.com/NousResearch/hermes-agent/commit/e2a853ba7f0a8bf1da9cac089cbdab415327c0e2"><code>e2a853ba</code></a>)</li> <li>Cover encoded socket limits with direct control paths (<a href="https://github.com/NousResearch/hermes-agent/commit/34407c9ec6ca0922233dc9c8f7cd4070609b0bf1"><code>34407c9e</code></a>)</li> <li>Reproduce missing loop witnesses in long-home daemons (<a href="https://github.com/NousResearch/hermes-agent/commit/366497955805e9f32a3805d855c97b208cdfed23"><code>36649795</code></a>)</li> <li>Configure a restorable model for token session creation (<a href="https://github.com/NousResearch/hermes-agent/commit/bcf39bfb11986643663da0b78efb57780a61d958"><code>bcf39bfb</code></a>)</li> <li>Verify ordinary daemon replay and release fixture stores (<a href="https://github.com/NousResearch/hermes-agent/commit/e8f57b7fbcfa423c6b39bf4e37fb543bc29f83a1"><code>e8f57b7f</code></a>)</li> <li>Supply real session stores to gateway authority fixtures (<a href="https://github.com/NousResearch/hermes-agent/commit/e3d230875fe505a8ea87d8ddca49e07ab5280810"><code>e3d23087</code></a>)</li> <li>Verify ordinary daemon slash actor isolation and handler scope (<a href="https://github.com/NousResearch/hermes-agent/commit/3cdf25cb2ff57aa05ebf2c5c24130cabb21b5c78"><code>3cdf25cb</code></a>)</li> <li>Verify native download boundaries and document transport scope (<a href="https://github.com/NousResearch/hermes-agent/commit/c86200114096632d460371e3b4ee4d83f6d094ae"><code>c8620011</code></a>)</li> <li>Prove local rotation and reset across cold daemon restarts (<a href="https://github.com/NousResearch/hermes-agent/commit/af3f2dfe1adfb49a00976a1e08a4b0d083e8cb04"><code>af3f2dfe</code></a>)</li> <li>Compare discovery on real legacy serve and canonical daemon sockets (<a href="https://github.com/NousResearch/hermes-agent/commit/5d1d1ee039a140eb9589edc2d9c8489cb45af522"><code>5d1d1ee0</code></a>)</li> <li>Reproduce missing canonical command discovery over ordinary daemon WS (<a href="https://github.com/NousResearch/hermes-agent/commit/659632c390c24d44ee3cbfb4d125faa29710666b"><code>659632c3</code></a>)</li> <li>Scope private Unix ticket fixture to supported native hosts (<a href="https://github.com/NousResearch/hermes-agent/commit/ca3e4b644c70dda72c61193a3853d43de0b6cccb"><code>ca3e4b64</code></a>)</li> <li>Keep native protocol fixtures within their runtime type boundary (<a href="https://github.com/NousResearch/hermes-agent/commit/da98497cdc4be395f43c48c9f8bc65ebe3c7c939"><code>da98497c</code></a>)</li> <li>Verify canonical receipts retire the native private-file journal (<a href="https://github.com/NousResearch/hermes-agent/commit/5bd5a8d63ad6e753da9b5ed005871b6227cf7692"><code>5bd5a8d6</code></a>)</li> <li>Verify native HTTP selectors against real sibling profiles (<a href="https://github.com/NousResearch/hermes-agent/commit/f6ef1ea436991d6d2ac4c3d5af33d99e8245bc7c"><code>f6ef1ea4</code></a>)</li> <li>Prove cold local recovery through separate authenticated daemons (<a href="https://github.com/NousResearch/hermes-agent/commit/041d9ee74e754fc9347d09bdf022fa09a162d36d"><code>041d9ee7</code></a>)</li> <li>Exercise native Stop through the Python Ink launcher (<a href="https://github.com/NousResearch/hermes-agent/commit/c75e0cdd76a117efde713e8dfa16eaf2d2e57c6c"><code>c75e0cdd</code></a>)</li> <li>Verify native Ink Stop acknowledgement and fresh follow-up (<a href="https://github.com/NousResearch/hermes-agent/commit/d0ad8324c8407a8199e02828774d8bb51a4249e7"><code>d0ad8324</code></a>)</li> <li>Exercise fresh Ink launch through the real Python launcher (<a href="https://github.com/NousResearch/hermes-agent/commit/8b727f4aada6b0f40a2278cf7775c33c9253c62d"><code>8b727f4a</code></a>)</li> <li>Verify actual native clarification answer on model wire (<a href="https://github.com/NousResearch/hermes-agent/commit/cc4ad0d1158ea032d5c39023df6205a57225deec"><code>cc4ad0d1</code></a>)</li> <li>Require native Ink reconnect to render settled history (<a href="https://github.com/NousResearch/hermes-agent/commit/eecaba4203c736bfc6e66f4d67b9cf42e28e97d8"><code>eecaba42</code></a>)</li> <li>Initialize replay fixture with explicit runtime admission state (<a href="https://github.com/NousResearch/hermes-agent/commit/014b3ea496297fdacba7522188679ea442687344"><code>014b3ea4</code></a>)</li> <li>Retain native reconnect output for intermittent Ink failure (<a href="https://github.com/NousResearch/hermes-agent/commit/f454485d7cc2a94082f954fc23b6be1a8a9f52e1"><code>f454485d</code></a>)</li> <li>Verify native CLI cwd execution against the policy-enabled daemon (<a href="https://github.com/NousResearch/hermes-agent/commit/db2bdf316367f345ae33957bd645c9e4c6934933"><code>db2bdf31</code></a>)</li> <li>Prove native gateway approvals survive CLI detach and invalid choice (<a href="https://github.com/NousResearch/hermes-agent/commit/a0c361ae387c438f7ceb9bf5c65d8befd85fcac5"><code>a0c361ae</code></a>)</li> <li>Prove concurrent local policy isolation on provider wire (<a href="https://github.com/NousResearch/hermes-agent/commit/1505259991975ad66d45b80c59b9dbfe44c8b19a"><code>15052599</code></a>)</li> <li>Verify metadata retries through ordinary gateway sockets (<a href="https://github.com/NousResearch/hermes-agent/commit/0d5d548f1d5cfb1eb63f549f28de900348f55210"><code>0d5d548f</code></a>)</li> <li>Execute fresh sessions through ordinary gateway startup (<a href="https://github.com/NousResearch/hermes-agent/commit/ae19a6e0354646a6872e4d3222ec08fbd65a80b1"><code>ae19a6e0</code></a>)</li> <li>Prove fresh local clarify survives complete viewer detachment (<a href="https://github.com/NousResearch/hermes-agent/commit/1044867be6a64a85b4a99bc1a99ecfa2f01a4474"><code>1044867b</code></a>)</li> <li>Preserve Discord direct pairing and scoped DM grants (<a href="https://github.com/NousResearch/hermes-agent/commit/144c86c76449ff30fe63354c99ad0dc5929922d9"><code>144c86c7</code></a>)</li> <li>Retain startup exit contracts with real authority stores (<a href="https://github.com/NousResearch/hermes-agent/commit/a126b4cc0a81377ea9177c0679a61f9f90fb4b55"><code>a126b4cc</code></a>)</li> <li>Verify excluded observer prefix against canonical replay (<a href="https://github.com/NousResearch/hermes-agent/commit/cacd4d224f1616dd60b04d3da6dfb35ab0260660"><code>cacd4d22</code></a>)</li> <li>Retain live gateway bootstrap readiness probe (<a href="https://github.com/NousResearch/hermes-agent/commit/29167522421b9ced0590360934ca38717c3e5866"><code>29167522</code></a>)</li> <li>Exercise shared approvals through production API startup (<a href="https://github.com/NousResearch/hermes-agent/commit/118b34ac6c1567b614af47c3abc7939b66e4a790"><code>118b34ac</code></a>)</li> <li>Verify native runtime ownership and execution-time secret refresh (<a href="https://github.com/NousResearch/hermes-agent/commit/234f1278cebce88c54bc247e5b568d7ef40ca9cc"><code>234f1278</code></a>)</li> <li>Exercise approval rendering through initialized turn runners (<a href="https://github.com/NousResearch/hermes-agent/commit/76efc227017e424779299fd3e7474276df728c3c"><code>76efc227</code></a>)</li> <li>Verify CLI readers alongside an active SQLite writer (<a href="https://github.com/NousResearch/hermes-agent/commit/ee23996cff7e55413f2fbe3624562ec0696bb265"><code>ee23996c</code></a>)</li> <li>Retain real CLI reader A/B harness (<a href="https://github.com/NousResearch/hermes-agent/commit/bcc03ee8f7786d07fe6c7ea168a9522b8f253b91"><code>bcc03ee8</code></a>)</li> <li>Preserve insights cleanup coverage with absent-store fast path (<a href="https://github.com/NousResearch/hermes-agent/commit/eae783bc50c89d2737861d160f0c7543613aaa57"><code>eae783bc</code></a>)</li> <li>Exercise shared turns through production API startup (<a href="https://github.com/NousResearch/hermes-agent/commit/0cfe5a2ff436f76739342d26e02724eaa921a46d"><code>0cfe5a2f</code></a>)</li> <li>Retain authority backpressure execution receipt (<a href="https://github.com/NousResearch/hermes-agent/commit/47ce83d6ff882ca01f7f104526486adca26547a4"><code>47ce83d6</code></a>)</li> <li>Retain real-process read-only search A/B probe (<a href="https://github.com/NousResearch/hermes-agent/commit/551ccfcad1496e66a17b165c9cf334d1988d14a4"><code>551ccfca</code></a>)</li> <li>Require complete shared gateway acceptance receipt coverage (<a href="https://github.com/NousResearch/hermes-agent/commit/d853d14574c53869cd408372d4e9807181e674bb"><code>d853d145</code></a>)</li> <li>Retain gateway source invariants across sibling extractions (<a href="https://github.com/NousResearch/hermes-agent/commit/e1df5d12bdd4c555bb25990fd4d33755f4ce27aa"><code>e1df5d12</code></a>)</li> <li>Follow production methods across gateway turn extraction (<a href="https://github.com/NousResearch/hermes-agent/commit/04cef1e9b30b9c6e2d41b69267146ce392f2c5b3"><code>04cef1e9</code></a>)</li> <li>Reap truncation fixture worker before restoring bindings (<a href="https://github.com/NousResearch/hermes-agent/commit/d6d8af931c8d1041404479bc340ecfb626aefcaf"><code>d6d8af93</code></a>)</li> <li>Trace borrowed SQLite readers in search projection invariant (<a href="https://github.com/NousResearch/hermes-agent/commit/fa572cbeab9d04ceb1e70b6bf6c53f4865e62253"><code>fa572cbe</code></a>)</li> <li>Verify runtime schema upgrades and genuine SQLite full rollback (<a href="https://github.com/NousResearch/hermes-agent/commit/1769e803f8413abe51af4a08008918139bf09051"><code>1769e803</code></a>)</li> <li>Reproduce Ink receipt-only retry busy latch (<a href="https://github.com/NousResearch/hermes-agent/commit/1c144c98d76bf42e8b2312241bb398ebef6b95f4"><code>1c144c98</code></a>)</li> <li>Reproduce desktop receipt stop and legacy timeout races (<a href="https://github.com/NousResearch/hermes-agent/commit/02e0ab74da057f683b5837a475c43dfd6d032e64"><code>02e0ab74</code></a>)</li> <li>Verify gateway service consent across import and setup (<a href="https://github.com/NousResearch/hermes-agent/commit/4ecf59755e9c2e2cf6f17ae3d149c2d4b08f5f0d"><code>4ecf5975</code></a>)</li> <li>Make unreserved profile snapshots explicit in multiplex fixtures (<a href="https://github.com/NousResearch/hermes-agent/commit/a72ed0a5e8d16fabcd3fb9d6a6440992f8f2dfd6"><code>a72ed0a5</code></a>)</li> </ul> <h2>🏗️ Infrastructure</h2> <ul> <li>Release): admit stable releases from release/* branches, not just main (<a href="https://github.com/NousResearch/hermes-agent/commit/9686d55ca87ccb22f779f012dd1ced7cdf63e0b9"><code>9686d55c</code></a>) — @ethernet8023</li> <li>Plugins): pin birkin-mnemosyne to core 0.7.1 (<a href="https://github.com/NousResearch/hermes-agent/commit/e216cd746f9e6600cf40ab5622f5ad2119ef91cb"><code>e216cd74</code></a>) — @ashmoonori-afk</li> <li>Catalog): review disclosure for huddo (<a href="https://github.com/NousResearch/hermes-agent/commit/85d27a51cf87327f6ea894a3a78302a207706f34"><code>85d27a51</code></a>)</li> <li>Map contributor email for StudioCodeAI (<a href="https://github.com/NousResearch/hermes-agent/commit/c708b34ff60cacbb2aa2a34d80e46febed1c2a1b"><code>c708b34f</code></a>)</li> <li>Plugin-catalog): update Telegram Client to 1.3.1 (<a href="https://github.com/NousResearch/hermes-agent/commit/27aaade97b75cf8961be8201f167624b46454d8b"><code>27aaade9</code></a>) — @guberm</li> <li>Plugin-catalog): bump Gmail to v1.0.20 (<a href="https://github.com/NousResearch/hermes-agent/commit/c6ac05655ca24c96c87ddd91d444f690ca9e621d"><code>c6ac0565</code></a>) — @guberm</li> <li>Kiwi): bump pin to <a href="mailto:kiwi@0.12.5">kiwi@0.12.5</a>, plugin v1.2.2 (<a href="https://github.com/NousResearch/hermes-agent/commit/a08f5894355ac410a4af46875ff3ac47e8f89f50"><code>a08f5894</code></a>) — @harrylabsj</li> <li>Lightningai-rate-limit to v1.1.0 (wall-clock aligned window) (<a href="https://github.com/NousResearch/hermes-agent/commit/e28d64e8b7b54258eae5c8cdc825f919421ca65a"><code>e28d64e8</code></a>) — @dinosauria123</li> <li>Map contributor email for TREE-Ind (<a href="https://github.com/NousResearch/hermes-agent/commit/71f78b3fe2a5b6be2dc219c999fc64ab44053b47"><code>71f78b3f</code></a>)</li> <li>Catalog): review disclosure for hermes-aac (<a href="https://github.com/NousResearch/hermes-agent/commit/0567d017c46c3fdb9dd66d5468ad2ed96dc3cfc3"><code>0567d017</code></a>)</li> <li>Catalog): review disclosure for openinvest (<a href="https://github.com/NousResearch/hermes-agent/commit/c179b286d448411f500c7318baf183769b6ba885"><code>c179b286</code></a>)</li> <li>Map contributor email for Sahil-SS9 (<a href="https://github.com/NousResearch/hermes-agent/commit/d8b5bd8a497f7f3e8f02acf966b1be6afce2cd91"><code>d8b5bd8a</code></a>)</li> <li>Catalog): review disclosure for hermes-agent-mixer (<a href="https://github.com/NousResearch/hermes-agent/commit/a98cc310f913bb6e7ac27622fa105a433e415138"><code>a98cc310</code></a>)</li> <li>Update Activity catalog to v0.2.0 (<a href="https://github.com/NousResearch/hermes-agent/commit/908c525dee4f28ba96617b4faa5e051bb21da2d7"><code>908c525d</code></a>) — @hassan-kamel</li> <li>Catalog): showly reviewed disclosure + requires_hermes >=0.21.6 (<a href="https://github.com/NousResearch/hermes-agent/commit/2ee820e771033539a5d5eac8356c317af9979245"><code>2ee820e7</code></a>)</li> <li>Catalog): review disclosure for nexus (<a href="https://github.com/NousResearch/hermes-agent/commit/1a5f5c7b484f8ffccaa511ceb1639c3ce652e550"><code>1a5f5c7b</code></a>)</li> <li>Catalog): review disclosure for kumiho-memory (<a href="https://github.com/NousResearch/hermes-agent/commit/63da5f7b2033d3969b825425937143cbc2168851"><code>63da5f7b</code></a>)</li> <li>Catalog): review disclosure for model-router (<a href="https://github.com/NousResearch/hermes-agent/commit/92790c6d79f0d743f532b9bf0c964bde6d893a29"><code>92790c6d</code></a>)</li> <li>Catalog): review disclosures for anatomy-museum, agent-janitor (<a href="https://github.com/NousResearch/hermes-agent/commit/560b250762a707ad355f3cd9019bff48be954d53"><code>560b2507</code></a>)</li> <li>Js): lint after the main merges: drop the unused watchdog import, order a test import, stub gw on the steer ctx (<a href="https://github.com/NousResearch/hermes-agent/commit/1b78a417d4438655736f5d3e6ff0e6dfd5ea3b60"><code>1b78a417</code></a>)</li> <li>Retrigger CI (zero-job dispatch failure, auto-heal) (<a href="https://github.com/NousResearch/hermes-agent/commit/d056a62442dfb655fcb488b580ff292b4844be4a"><code>d056a624</code></a>)</li> <li>Give area detection its sparse checkout and retry budget (<a href="https://github.com/NousResearch/hermes-agent/commit/8824ac9686e67f8b650e685919447f3f15204591"><code>8824ac96</code></a>)</li> <li>Retrigger CI (zero-job dispatch failure, auto-heal) (<a href="https://github.com/NousResearch/hermes-agent/commit/2cbeac1f1c57fa64b963eb0fde075769b6cd3d61"><code>2cbeac1f</code></a>)</li> <li>Retrigger after 0-job workflow startup failure (<a href="https://github.com/NousResearch/hermes-agent/commit/254432b2d40a19ad4693f4c7ee98ab9658fe6dcf"><code>254432b2</code></a>)</li> <li>Retrigger (dispatch window) (<a href="https://github.com/NousResearch/hermes-agent/commit/1e39814039247a602a990c0196be3be054ebc059"><code>1e398140</code></a>)</li> <li>Retrigger (dispatch window) (<a href="https://github.com/NousResearch/hermes-agent/commit/40b17a25f4d5812c597d0062d9b13af8f0e80671"><code>40b17a25</code></a>)</li> <li>Retrigger (dispatch window) (<a href="https://github.com/NousResearch/hermes-agent/commit/5e198b8b2fb72a39887414fdffbe3f2d56e4d96c"><code>5e198b8b</code></a>)</li> <li>Retrigger after 0-job workflow startup failure (<a href="https://github.com/NousResearch/hermes-agent/commit/f6dd9025fd357ccecb8ea8b6713704cdbe497a4e"><code>f6dd9025</code></a>)</li> <li>Retrigger after 0-job workflow startup failure (<a href="https://github.com/NousResearch/hermes-agent/commit/911b559e4a38bfc0e13113276dea824bc1741749"><code>911b559e</code></a>)</li> <li>Retrigger after 0-job workflow startup failure (<a href="https://github.com/NousResearch/hermes-agent/commit/4ff21ecd722f1ddf63614799657e0eedf0c5528c"><code>4ff21ecd</code></a>)</li> <li>Retrigger after 0-job workflow startup failure (<a href="https://github.com/NousResearch/hermes-agent/commit/c37453e7c4e6c51d1726ff54767cfce3518f43ce"><code>c37453e7</code></a>)</li> <li>Retrigger after 0-job workflow startup failure (<a href="https://github.com/NousResearch/hermes-agent/commit/cb29678859be3e7737620a394147193f65d1b5a3"><code>cb296788</code></a>)</li> <li>Retrigger after 0-job workflow startup failure (<a href="https://github.com/NousResearch/hermes-agent/commit/346615f3f911f9f153d54c23fb5e6bcea30321bc"><code>346615f3</code></a>)</li> <li>Retrigger after 0-job workflow startup failure (<a href="https://github.com/NousResearch/hermes-agent/commit/1e4edefa4279b22e711f9c5c99a6b1082d538a46"><code>1e4edefa</code></a>)</li> <li>Retrigger after 0-job workflow startup failure (<a href="https://github.com/NousResearch/hermes-agent/commit/f3d4105f694f71f18ddd215ce25318317a2d350f"><code>f3d4105f</code></a>)</li> <li>Retrigger after 0-job workflow startup failure (<a href="https://github.com/NousResearch/hermes-agent/commit/73d9e41344488956f49bec9ed902a318e85f5c78"><code>73d9e413</code></a>)</li> <li>Retrigger after 0-job workflow startup failure (<a href="https://github.com/NousResearch/hermes-agent/commit/c7fcc65c9b1132622eb6117843c253177cd22851"><code>c7fcc65c</code></a>)</li> <li>Retrigger after 0-job workflow startup failure (<a href="https://github.com/NousResearch/hermes-agent/commit/4892e1d4416772bdaed1131a68d242a2bfa9beae"><code>4892e1d4</code></a>)</li> <li>Retrigger after 0-job workflow startup failure (<a href="https://github.com/NousResearch/hermes-agent/commit/2cb84f4398fb52d24f03dacb02f56cbbeb287b69"><code>2cb84f43</code></a>)</li> <li>Retrigger after lost push event (0 runs on 19ca1e85c80) (<a href="https://github.com/NousResearch/hermes-agent/commit/c86b415df4470cca848d4acbeae683591faae734"><code>c86b415d</code></a>)</li> <li>Trim native HTTP helper imports (<a href="https://github.com/NousResearch/hermes-agent/commit/25fd73b6654125c6a0264aff4fcc8f2b0c0f1224"><code>25fd73b6</code></a>)</li> </ul> <h2>📦 Other Changes</h2> <ul> <li>Repin hermes-insight to afb08fb (1.0.2) (<a href="https://github.com/NousResearch/hermes-agent/commit/51e663da9def59da047d05cd88f8dd300fca75ed"><code>51e663da</code></a>) — @BrokeSkill</li> <li>Plugin-catalog: bump huddo to 0.9.0 (<a href="https://github.com/NousResearch/hermes-agent/commit/eeacc00ac0b6cfd25c7daee9709d428d3cc66213"><code>eeacc00a</code></a>) — @hellohanchen</li> <li>Plugin-catalog: re-pin hermes-lang-pt-br to 7548ff1 (pack verifier + CI) (<a href="https://github.com/NousResearch/hermes-agent/commit/82fbd41fd41998124a0ae15477306aba65ba6e29"><code>82fbd41f</code></a>) — @StudioCodeAI</li> <li>Plugin-catalog: re-pin hermes-lang-pt-br to 69efb2f (credits/timeline README) (<a href="https://github.com/NousResearch/hermes-agent/commit/2c20d9a350a09c3cf36f3109d6fbf0e3431fde82"><code>2c20d9a3</code></a>) — @StudioCodeAI</li> <li>Catalog: bump speechify to 0.1.1 (<a href="https://github.com/NousResearch/hermes-agent/commit/3a5b9e84b15b3f6d878e40045e2b26f170415759"><code>3a5b9e84</code></a>) — @Lokeshm24</li> <li>Catalog: re-pin qdrant-memory to 0.2.1 (e14adc06) (<a href="https://github.com/NousResearch/hermes-agent/commit/720552bb3083aa7a68087ee98b46b52214fbecc9"><code>720552bb</code></a>) — @cnkang</li> <li>Catalog: repin Hermes AAC 0.1.1 SDK-only reduced features (<a href="https://github.com/NousResearch/hermes-agent/commit/473e284730b8047d1623f038bafd94c77da2f124"><code>473e2847</code></a>) — @TREE-Ind</li> <li>Plugin-catalog: openinvest re-pin to 106e5ba (bounded backend deps, 0.41.6) (<a href="https://github.com/NousResearch/hermes-agent/commit/6cc9a4347b351ca6d4f4b084e572322c9d6f824c"><code>6cc9a434</code></a>) — @longsizhuo</li> <li>Plugin-catalog: openinvest re-pin to 3a0c816 (review fixes, backend 0.41.4) (<a href="https://github.com/NousResearch/hermes-agent/commit/00c311c834c0184f5eecc36635e8abc0e665dbf9"><code>00c311c8</code></a>) — @longsizhuo</li> <li>Plugin-catalog: openinvest re-pin to 3e1a9d7 (review fixes) (<a href="https://github.com/NousResearch/hermes-agent/commit/cb223633d2d8dc84782254563d32902d4213a943"><code>cb223633</code></a>) — @longsizhuo</li> <li>Plugin-catalog: bump plan-mode to 0.4.4 (<a href="https://github.com/NousResearch/hermes-agent/commit/2a5617f858a22ab852ee0332460e164af8bbbc3a"><code>2a5617f8</code></a>) — @100yenadmin</li> <li>Plugin-catalog: bump plan-mode to 0.4.3 (<a href="https://github.com/NousResearch/hermes-agent/commit/6fafdd4f06b35ec4e09adccf6769b547a470ac69"><code>6fafdd4f</code></a>) — @100yenadmin</li> <li>Catalog: pin the Showly community plugin (<a href="https://github.com/NousResearch/hermes-agent/commit/5da3156c8607f15206de74b22a69a015c073d09e"><code>5da3156c</code></a>) — @slchris</li> <li>Catalog(nexus): repin the sha to 4392e6d — /embed and /mcp demand a per-installation key (<a href="https://github.com/NousResearch/hermes-agent/commit/64425a0663de5e2d660b498013a9a89a4b68f920"><code>64425a06</code></a>) — @Neboy72</li> <li>Plugin-catalog: bump account-pool to 4.0.2 (<a href="https://github.com/NousResearch/hermes-agent/commit/e5d2cebe17e94a3bba69867a8127d98bdf2cc05b"><code>e5d2cebe</code></a>) — @roqianjas</li> <li>Plugin-catalog: bump alans-way and alans-way-computer to 0.21.5 (<a href="https://github.com/NousResearch/hermes-agent/commit/a8d61e309fc8e7f22e7e4c9e3a48a11fb1f19a47"><code>a8d61e30</code></a>) — @capthvnsen</li> <li>Plugin-catalog: nvidia-app + nvidia-broadcast pin -> 729e25c (first-run setup when the app side is not ready) (<a href="https://github.com/NousResearch/hermes-agent/commit/f18948e4cdc88b38104c0c4572dd8f00269c3eed"><code>f18948e4</code></a>) — @alt-glitch</li> <li>Catalog: agent-janitor (from #137875) (<a href="https://github.com/NousResearch/hermes-agent/pull/137875" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#137875</a>) — @ZidoCode</li> <li>Catalog: anatomy-museum (from #138166) (<a href="https://github.com/NousResearch/hermes-agent/pull/138166" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#138166</a>) — @danrudy33</li> <li>Catalog: secure-env-ingress (from #132272) (<a href="https://github.com/NousResearch/hermes-agent/pull/132272" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#132272</a>) — @web3blind</li> <li><span class="cl-badge cl-badge-perf">PERF</span>Style: align canonical group controls with Desktop lint rules (<a href="https://github.com/NousResearch/hermes-agent/commit/c8d8900dcd17281dd52f52624ac712f2199eaed3"><code>c8d8900d</code></a>)</li> <li><span class="cl-badge cl-badge-perf">PERF</span>Style: normalize verified queue admission imports and spacing (<a href="https://github.com/NousResearch/hermes-agent/commit/d3ad7a90ec585deea401a7c37ec32dbcdcb6c086"><code>d3ad7a90</code></a>)</li> </ul> <h2>👥 Contributors</h2> <p>Thank you to everyone who contributed to this release!</p> <ul> <li>@Lokee86 (11 commits)</li> <li>@dokterdok (6 commits)</li> <li>@elisam0 (5 commits)</li> <li>@longsizhuo (4 commits)</li> <li>@100yenadmin (3 commits)</li> <li>@StudioCodeAI (3 commits)</li> <li>@olric3015 (3 commits)</li> <li>@ethernet8023 (2 commits)</li> <li>@helix4u (2 commits)</li> <li>@guberm (2 commits)</li> <li>@TakeshiTGAL (2 commits)</li> <li>@dinosauria123 (2 commits)</li> <li>@TREE-Ind (2 commits)</li> <li>@Sahil-SS9 (2 commits)</li> <li>@hassan-kamel (2 commits)</li> <li>@slchris (2 commits)</li> <li>David Dudok de Wit (2 commits)</li> <li>@xxxigm (1 commit)</li> <li>@kshitijk4poor (1 commit)</li> <li>@j-nolan (1 commit)</li> <li>@rroverin (1 commit)</li> <li>@BrokeSkill (1 commit)</li> <li>@dandacompany (1 commit)</li> <li>@ashmoonori-afk (1 commit)</li> <li>@hellohanchen (1 commit)</li> <li>@2867297362mjb-sketch (1 commit)</li> <li>@Lokeshm24 (1 commit)</li> <li>@harrylabsj (1 commit)</li> <li>@cnkang (1 commit)</li> <li>@Neboy72 (1 commit)</li> <li>@kaveone (1 commit)</li> <li>@roqianjas (1 commit)</li> <li>@capthvnsen (1 commit)</li> <li>@alt-glitch (1 commit)</li> <li>@metamindedu (1 commit)</li> <li>@ZidoCode (1 commit)</li> <li>@danrudy33 (1 commit)</li> <li>@web3blind (1 commit)</li> <li>@KoNit-K (1 commit)</li> <li>@unsupportedpastels (1 commit)</li> <li>@abundantbeing (1 commit)</li> <li>@utkubakir (1 commit)</li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/NousResearch/hermes-agent/compare/v0.22.0...rc.5-v0.22.1">v0.22.0...rc.5-v0.22.1</a></p> </div> <button class="cl-expand-btn ha-headline">▼ EXPAND FULL CHANGELOG</button> <div class="cl-card__footer"> <a href="https://github.com/NousResearch/hermes-agent/releases/tag/v0.22.1" target="_blank" rel="noopener noreferrer" class="cl-gh-link">↗ GitHub</a> </div> </div> </article><article class="cl-entry cl-entry--breaking" data-version="v0.22.0" data-name="hermes agent v0.22.0 — the threshold release" data-body="# hermes agent v0.22.0 **release date:** october 13, 2026 **since v0.21.0:** ~24,200 commits · ~6,080 merged prs · ~15,600 files changed · ~2,045,000 insertions · ~1,140,000 deletions · **~7,180 issues closed** · ~2,520 contributors > **the threshold release.** hermes was the god of thresholds: the doorway, the crossing, the boundary stone. v0.21.0 assembled the pantheon; v0.22.0 is about getting through the door. a fresh desktop install now opens on a guided setup chat that runs on a free trial model, so a newcomer is talking to hermes before they own an api key. connectors carry the agent across into the apps you already use, with no account needed to start. local models bring it home to your own hardware with a one-click llama.cpp runtime. and the threshold itself got sturdier: tested" data-prerelease="false" data-breaking="true" data-index="5"> <div class="cl-dot cl-dot--breaking"> <span class="cl-dot__icon">⚡</span> </div> <div class="cl-header"> <span class="ha-headline cl-header__version">v0.22.0</span> <span class="ha-headline cl-header__date">Oct 14, 2026</span> <span class="cl-label cl-label--breaking">Breaking</span> </div> <div class="cl-card cl-card--breaking"> <h3 class="ha-headline cl-card__title">v0.22.0 — The Threshold Release</h3> <div class="changelog-body cl-card__body cl-collapsed"><h1>Hermes Agent v0.22.0</h1> <p><strong>Release Date:</strong> October 13, 2026 <strong>Since v0.21.0:</strong> ~24,200 commits · ~6,080 merged PRs · ~15,600 files changed · ~2,045,000 insertions · ~1,140,000 deletions · <strong>~7,180 issues closed</strong> · ~2,520 contributors</p> <blockquote> <p><strong>The Threshold Release.</strong> Hermes was the god of thresholds: the doorway, the crossing, the boundary stone. v0.21.0 assembled the pantheon; v0.22.0 is about getting through the door. A fresh desktop install now opens on a guided setup chat that runs on a free trial model, so a newcomer is talking to Hermes before they own an API key. Connectors carry the agent across into the apps you already use, with no account needed to start. Local models bring it home to your own hardware with a one-click llama.cpp runtime. And the threshold itself got sturdier: tested SemVer stable releases that installs follow by default, signed desktop packages (including the Microsoft Store), and one package manager underneath everything. Around that spine: a 600-plugin catalog, the Claude 5.5 / GPT-6 model wave, password-manager sign-in for the browser, a bot screen you can take over, one backend and one gateway for every profile, and a codebase a third smaller. This is the largest window Hermes has shipped, about 2.5x the v0.21.0 cycle, and it rolls up and fully documents the v0.21.1–v0.21.7 patch releases.</p> </blockquote> <!-- HERMES_BUILDS_TABLE --> <hr> <h2>✨ Highlights</h2> <ul> <li><p><strong>A first launch that sets itself up</strong> — Open the desktop app on a computer where you have never used Hermes and it starts a short setup chat instead of a settings screen. One card at a time it asks your name, an accent color and a layout, which apps to connect, which plugins to install, then gives a quick tour and offers up to four first tasks picked for you. It runs on a free trial model (<code>nous/welcome</code>, once per OS user), so it needs no key; <strong>Skip setup</strong> ends it and <strong>Settings → Run onboarding again</strong> brings it back. The agent also gained <code>set_theme</code>, so "make it violet, dark mode" works in any desktop chat. (<a href="https://github.com/NousResearch/hermes-agent/pull/137429" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#137429</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/137522" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#137522</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/137807" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#137807</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/134209" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#134209</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/105258" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#105258</a> — @alt-glitch, @OutThisLife, @ethernet8023, @rewbs)</p> </li> <li><p><strong>Connectors: Hermes works inside your apps</strong> — The agent can now act in hosted apps such as Linear and Notion through the Nous tool gateway: ask for an app, sign in once in your browser, and the tools are usable in the same turn. You do not need a Nous account to start; the first time you use an app, Hermes creates a free connectors-only identity. The desktop has a new <strong>Connectors</strong> page that puts hosted apps and your MCP servers in one list (it replaces the MCP tab), the same setup card appears in the TUI and CLI, and you can connect several named accounts of one app (a <code>work</code> and a <code>home</code> account) and manage them with <code>/connectors</code> or <code>hermes connectors</code>. (<a href="https://github.com/NousResearch/hermes-agent/pull/106842" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#106842</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/111008" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#111008</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/119074" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#119074</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/135143" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#135143</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/135072" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#135072</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/135097" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#135097</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/135151" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#135151</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/135173" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#135173</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/137426" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#137426</a> — @alt-glitch, @rewbs)</p> </li> <li><p><strong>Local models in one click</strong> — Hermes can now run open models entirely on your machine with nothing leaving it: no account, no API key. It installs and maintains llama.cpp with the right engine for your hardware (CPU, CUDA, Metal, Vulkan or ROCm), rates every catalog model against your GPU and RAM, and picks the highest-quality build that fits. Downloads pause and resume, the server starts and stops with Hermes, and engine updates are one click. Start from <strong>Settings → Providers → Local Models</strong> on Windows, macOS and Linux, or <code>hermes model</code> → <strong>Local models</strong> in a terminal. The catalog includes Qwen3.8 27B, Qwen3.8 Flash Next (with its MTP speculative head), Qwen3.6 35B-A3B and DeepSeek V4 Flash, plus any GGUF from Hugging Face. (<a href="https://github.com/NousResearch/hermes-agent/pull/100667" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#100667</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/101823" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#101823</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/128768" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#128768</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/111423" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#111423</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/133111" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#133111</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/134116" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#134116</a> — @jquesnelle, @ethernet8023)</p> </li> <li><p><strong>Stable release channels</strong> — Hermes now ships tested SemVer releases. Every release passes source CI, Docker, Nix, signed desktop builds and install/upgrade runs on every OS before it is published, and source installs now move from release to release by default instead of tracking every commit on <code>main</code>. Prefer the bleeding edge? <code>hermes update --set-channel main</code>, or the new channel switch in Desktop <strong>Settings → About</strong>. Moving to an older release is labelled a rollback and never happens without asking, and installer reruns keep you on the channel you chose. (<a href="https://github.com/NousResearch/hermes-agent/pull/102765" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#102765</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/135847" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#135847</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/135949" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#135949</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/136313" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#136313</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/137780" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#137780</a> — @ethernet8023, @KoNit-K)</p> </li> <li><p><strong>Signed desktop packages, the Microsoft Store, and one package manager</strong> — The desktop app is now a sealed, signed package that carries its own Python and Node and updates itself, so first launch builds nothing. Windows gets a signed MSIX (x64 and ARM64) through App Installer or the Microsoft Store; macOS gets a signed, notarized build for Apple Silicon. Underneath, a new unified package manager (<code>hermes pm</code>) owns every pinned, hash-checked tool and Python environment: updates build a new environment and switch only once it passes its check, so a failed or killed update can no longer leave you half-applied. (<a href="https://github.com/NousResearch/hermes-agent/pull/102765" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#102765</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/132361" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#132361</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/132386" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#132386</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/120339" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#120339</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/122221" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#122221</a> — @ethernet8023)</p> </li> <li><p><strong>The Plugin Catalog: 600 reviewed plugins</strong> — The plugin catalog launched this cycle and grew to 600 entries, each pinned to a reviewed commit and installable from Hermes Desktop or the CLI. Browse by category and star ranking with a page per plugin and per author; catalog rules keep listed plugins from patching Hermes internals or shipping unscannable binaries. Memory providers now live with their makers (Honcho, Supermemory, Hindsight, Mem0, OpenViking, Holographic), as do Home Assistant, Spotify and Langfuse: existing users are migrated automatically, and the default install got leaner. (<a href="https://github.com/NousResearch/hermes-agent/pull/69446" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#69446</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/111415" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#111415</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/117808" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#117808</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/113381" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#113381</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/114732" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#114732</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/131267" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#131267</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/132476" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#132476</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/136436" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#136436</a> — @itpartypattaya, @happy5318, and 400+ plugin authors)</p> </li> <li><p><strong>The Claude 5.5 and GPT-6 model wave</strong> — Claude Fable 5.1, Opus 5.5, Sonnet 5.5 and Haiku 5.5, GPT-6 Astra, Sol and Luna plus GPT-6.1 Sol, and Gemini 4 Argon are pickable on Nous Portal, OpenRouter and native routes where offered. Prior reasoning is now replayed by default on every provider that can read it, across resume, branches and compaction, so long multi-step work keeps its train of thought. And when a provider has a bad hour, Hermes waits out transient 503/529/timeouts in visible, bounded cycles instead of ending your turn. (<a href="https://github.com/NousResearch/hermes-agent/pull/100577" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#100577</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/119304" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#119304</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/126842" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#126842</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/134759" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#134759</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/128248" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#128248</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/137955" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#137955</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/136358" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#136358</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/116353" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#116353</a> — @kshitijk4poor, @unsupportedpastels, @100yenadmin, @mssteuer, @xxxigm)</p> </li> <li><p><strong>Sign in to websites with your password manager</strong> — The browser agent can log into sites with logins from 1Password, Bitwarden or Hermes's own encrypted vault, and the model never sees the password. If nothing is saved, you get a masked prompt in the CLI, TUI or Desktop to save it, one-time codes are filled without entering the conversation, and card and address fills at checkout need your confirmation. (<a href="https://github.com/NousResearch/hermes-agent/pull/106480" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#106480</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/107585" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#107585</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/137084" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#137084</a>)</p> </li> <li><p><strong>Bot Screen: watch your bot work, take over when it needs you</strong> — A bot running on a Linux gateway can have its own desktop that Hermes Desktop streams live. When it hits a login, a 2FA prompt or a CAPTCHA, you take the screen, finish the step yourself, and hand control back while the bot carries on with your session. With a Docker, SSH or Singularity backend, the bot's screen, computer use and the browser run inside the sandbox, never on your host. (<a href="https://github.com/NousResearch/hermes-agent/pull/108914" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#108914</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/121169" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#121169</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/121110" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#121110</a>)</p> </li> <li><p><strong>One backend and one gateway for every profile</strong> — Hermes now runs a single messaging gateway and a single desktop backend per machine that serve all of your profiles, instead of one process per profile. Creating a profile makes its bots live without a restart, each profile keeps its own credentials, allowlists, cron jobs and sessions, and <code>hermes update</code> migrates existing per-profile setups automatically. Fewer processes, no token clashes, one thing to start and stop. (<a href="https://github.com/NousResearch/hermes-agent/pull/112854" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#112854</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/108928" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#108928</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/118273" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#118273</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/117983" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#117983</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/118246" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#118246</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/118027" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#118027</a>)</p> </li> <li><p><strong>See and steer your subagents live</strong> — Running subagents now stay visible above the composer in the CLI (F6), TUI (Ctrl+T) and Desktop with each child's task, elapsed time and live transcript, plus Steer and Stop buttons. <code>/stop</code> reaches background children and hands back their partial work, and <code>delegate_task</code> can pass screenshots and mocks to vision-capable children. (<a href="https://github.com/NousResearch/hermes-agent/pull/105593" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#105593</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/115616" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#115616</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/97689" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#97689</a>)</p> </li> <li><p><strong>A model picker that knows your plans</strong> — Star your favorite models, see a subscription running low ("17% left · resets 3:00 PM") and when a rate limit lifts right in the picker, and pick reasoning effort as part of choosing a model in <code>hermes model</code>, <code>/model</code> (<code>/model X --reasoning high</code>) and Desktop. You switch before you hit the wall instead of after. (<a href="https://github.com/NousResearch/hermes-agent/pull/126535" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#126535</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/133392" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#133392</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/133408" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#133408</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/110346" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#110346</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/113117" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#113117</a> — @OutThisLife, @anotherchu)</p> </li> <li><p><strong>Hermes in your language, everywhere</strong> — Every user-facing string in the CLI, messaging gateway, TUI and Desktop now goes through one translation catalog with full coverage in all 16 bundled languages. New languages can ship as plugins, and any profile can override individual strings with a small YAML file. (<a href="https://github.com/NousResearch/hermes-agent/pull/126296" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#126296</a>)</p> </li> <li><p><strong>Leaner in every sense</strong> — The whole codebase was simplified with zero behavior change: source went from about 1.06M to 698K lines (−34%) and <code>gateway/run.py</code> shrank from 34,847 lines to 5,512. Prompts got lighter too: about 19 rarely used tools now load only when the agent searches for them, roughly halving the desktop tool schema sent on every call, and another ~2.1k tokens came off the fixed prompt. Local models prefill less on every turn. (<a href="https://github.com/NousResearch/hermes-agent/pull/102117" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#102117</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/97979" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#97979</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/106676" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#106676</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/137084" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#137084</a> — @alt-glitch)</p> </li> <li><p><strong>Small comforts that add up</strong> — Opt-in vim keys in the CLI prompt, a git-branch field in the status bar, a bell and desktop notification when Hermes is waiting on you, Ctrl+C that clears your draft instead of killing the turn, an editable <code>/queue</code>, and <code>hermes --native</code> to let your own terminal handle TUI scrollback and search. On Desktop, a new <strong>Simple</strong> mode turns the app into a plain chat window, and errors now say what went wrong with a one-click fix. (<a href="https://github.com/NousResearch/hermes-agent/pull/106412" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#106412</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/106434" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#106434</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/101284" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#101284</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/101320" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#101320</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/137065" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#137065</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/95999" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#95999</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/121035" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#121035</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/118587" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#118587</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/111601" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#111601</a> — @saforem2, @TurgutKural, @glitchbunny0, @harshmoney123, @pierrenode, @abhinav11082001-stack, @OutThisLife)</p> </li> </ul> <hr> <h2>⚠️ Upgrade notes</h2> <ul> <li><strong>Python 3.14 is the runtime</strong> for managed installs (the package manager installs it for you). KittenTTS is unavailable on 3.14. (<a href="https://github.com/NousResearch/hermes-agent/pull/102765" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#102765</a>)</li> <li><strong>Windows desktop is MSIX-only</strong> and needs Windows 11 22H2 or newer; the NSIS/MSI installers are gone. The macOS app is Apple Silicon only in default builds. (<a href="https://github.com/NousResearch/hermes-agent/pull/102765" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#102765</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/136603" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#136603</a>)</li> <li><strong>One gateway per machine is the default.</strong> <code>hermes update</code> folds per-profile gateways into the multiplexed default when nothing conflicts. (<a href="https://github.com/NousResearch/hermes-agent/pull/112854" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#112854</a>)</li> <li><strong>Chats no longer reset on an idle/daily timer.</strong> <code>session_reset</code> idle/daily modes are retired (configs that still set them log a warning); <code>/new</code> or <code>/reset</code> starts fresh. (<a href="https://github.com/NousResearch/hermes-agent/pull/105021" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#105021</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/126244" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#126244</a>)</li> <li><strong>Old sessions are pruned automatically.</strong> <code>sessions.auto_prune</code> now defaults to on: ended sessions inactive for 90 days are deleted at startup. Pinned and open sessions are never touched; set <code>sessions.auto_prune: false</code> to keep everything.</li> <li><strong>Memory providers moved to catalog plugins</strong> (Honcho, Supermemory, Hindsight, Mem0, OpenViking, Holographic), as did Home Assistant, Spotify and Langfuse. Existing users are migrated on update or first start, with data intact. ByteRover and RetainDB remain bundled.</li> <li><strong>Plugin authors:</strong> the old plugin compatibility import layer is gone (<a href="https://github.com/NousResearch/hermes-agent/pull/126164" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#126164</a>), <code>hermes sync</code> (Skill Sync) was removed (<a href="https://github.com/NousResearch/hermes-agent/pull/132465" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#132465</a>), and the bundled tirith scanner was removed (<a href="https://github.com/NousResearch/hermes-agent/pull/133832" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#133832</a>). Several tools were renamed (<code>todo</code> → <code>todo_list</code>, <code>cronjob</code> → <code>cronjob_manage</code>, <code>process</code> → <code>process_manage</code>); the old names still work. (<a href="https://github.com/NousResearch/hermes-agent/pull/97979" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#97979</a>)</li> </ul> <hr> <h2>🚪 Onboarding, Free Tier, Connectors & Local Models</h2> <h3>First-run onboarding</h3> <ul> <li><strong>Guided setup chat on a fresh desktop install</strong> <em>(see Highlights)</em>. Existing installs and remote (SSH, URL, Cloud) backends don't get it automatically; the old setup-profile flow and <code>/initiate-setup</code> are deleted. (<a href="https://github.com/NousResearch/hermes-agent/pull/137420" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#137420</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/134215" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#134215</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/108292" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#108292</a> — @alt-glitch, @ethernet8023, @OutThisLife)</li> <li><strong>The agent can restyle the app</strong> — The new <code>set_theme</code> tool sets the accent (a swatch or any <code>#rrggbb</code>), light/dark/system mode and layout, or shows a picker; "make it violet" works in any desktop chat. (<a href="https://github.com/NousResearch/hermes-agent/pull/137522" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#137522</a> — @alt-glitch)</li> </ul> <h3>Nous free tier</h3> <ul> <li><strong>A free model for your first desktop launch</strong> — A first desktop install with no provider or Nous account gets the free <code>nous/welcome</code> model as a one-time trial (once per OS user), so onboarding needs no key. The CLI, TUI and gateway get no account or free model. <code>HERMES_GUEST_ONBOARDING</code> is gone. (<a href="https://github.com/NousResearch/hermes-agent/pull/137807" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#137807</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/105258" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#105258</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/105260" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#105260</a> — @alt-glitch)</li> <li><strong>Sign in and keep your apps</strong> — <code>hermes auth upgrade</code>, or <code>/login</code> in any chat or messaging DM, upgrades the free identity to a full Nous account with your connected apps. (<a href="https://github.com/NousResearch/hermes-agent/pull/105259" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#105259</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/105261" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#105261</a> — @alt-glitch)</li> <li><strong>Clear limits</strong> — The free rate limit ends the turn at once with the reset time; every free-tier failure has a code and a plain sentence; the app handles the account service's browser check; free-tier users see a Terms and Privacy notice. Nous accounts without credits can pick models billed to a subscription they hold and get free managed fast web search. (<a href="https://github.com/NousResearch/hermes-agent/pull/134049" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#134049</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/111970" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#111970</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/133824" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#133824</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/117079" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#117079</a> — @alt-glitch, @kshitijk4poor, @rewbs)</li> </ul> <h3>Connectors</h3> <ul> <li><strong>Hosted app connectors, the Connectors page and several accounts per app</strong> <em>(see Highlights)</em>. Connector tools can also send your local files as attachments and save the files they return. <code>nous.guest: false</code> turns guest identities off; <code>tools.connectors.enabled: false</code> turns connectors off. (<a href="https://github.com/NousResearch/hermes-agent/pull/111238" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#111238</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/138014" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#138014</a> — @alt-glitch)</li> <li><strong>One connect flow everywhere</strong> — Hosted apps and local MCP servers share one setup card (desktop dialog, TUI callout or CLI panel), and the agent can use new tools in the same turn. On desktop, <code>manage_connections</code> can show a browsable app directory. (<a href="https://github.com/NousResearch/hermes-agent/pull/111008" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#111008</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/109517" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#109517</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/137426" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#137426</a> — @alt-glitch)</li> </ul> <h3>Local models</h3> <ul> <li><strong>One-click local models</strong> <em>(see Highlights)</em>. Also: Hugging Face GGUF downloads with pause/resume, and a one-time setup offer after onboarding on machines that can run the recommended model. (<a href="https://github.com/NousResearch/hermes-agent/pull/129506" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#129506</a> — @alt-glitch)</li> <li><strong>Engine updates and wider GPU support</strong> — An <strong>Update now</strong> prompt updates the engine in one click. NVIDIA on Linux gets CUDA, AMD and Intel GPUs get Vulkan sized by their own memory, and every backend runs llama.cpp b11370. (<a href="https://github.com/NousResearch/hermes-agent/pull/111423" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#111423</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/133111" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#133111</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/131782" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#131782</a> — @jquesnelle, @skyecon, @mbeattietex1-star, @Belaquaa)</li> <li><strong>Better recommendations</strong> — Only models that fit fully in GPU memory are recommended, and the 27B no longer on hardware that runs it poorly. Qwen3.8 Flash Next with its MTP head fits 128 GB machines; NVIDIA Spark recommendations are tuned. (<a href="https://github.com/NousResearch/hermes-agent/pull/108429" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#108429</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/135438" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#135438</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/134116" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#134116</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/112107" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#112107</a> — @jquesnelle, @RyanUnderhill)</li> <li><strong>Your own local servers</strong> — LM Studio has a provider profile, Ollama pickers no longer flicker, a self-started llama.cpp server shows up in <code>/model</code>, and fallback to the desktop-managed model works. (<a href="https://github.com/NousResearch/hermes-agent/pull/134320" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#134320</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/113129" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#113129</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/116679" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#116679</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/131795" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#131795</a> — @kshitijk4poor, @DaxLee9988, @fangliquanflq, @Finn763, @albeight)</li> </ul> <h2>📦 Stable Releases, Desktop Packages & Package Manager</h2> <h3>Stable releases & update channels</h3> <ul> <li><strong>Tested SemVer stable releases and the channel switch</strong> <em>(see Highlights)</em>. v0.21.6 and v0.21.7 were the first through the new gate; forks stay on <code>main</code>, and an install ahead of the newest release waits for the next.</li> <li><strong>Lighter update checks</strong> — one GitHub API call a day replaces <code>git fetch</code> every 30 minutes. (<a href="https://github.com/NousResearch/hermes-agent/pull/107648" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#107648</a>)</li> </ul> <h3>Desktop bundles & the Microsoft Store</h3> <ul> <li><strong>Sealed, signed desktop packages</strong> <em>(see Highlights)</em>. In a package, <code>hermes update</code> points to the right updater (App Installer, Store or macOS). (<a href="https://github.com/NousResearch/hermes-agent/pull/134911" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#134911</a>)</li> <li><strong>Packaged installs work end to end</strong> — the agent's terminal runs <code>hermes</code>, Uninstall explains OS removal, and Python-dependency plugins install inside MSIX. (<a href="https://github.com/NousResearch/hermes-agent/pull/134051" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#134051</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/135333" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#135333</a> — @alt-glitch)</li> </ul> <h3>Unified package manager</h3> <ul> <li><strong><code>hermes pm</code></strong> <em>(see Highlights)</em>: pinned, hash-checked Python 3.14, uv, Node, ripgrep, FFmpeg, Chromium and Git/Bash on Windows, with <code>hermes pm doctor|status|repair|gc</code>. Contributors use <code>source ./activate</code> (or <code>.ps1</code>/<code>.fish</code>).</li> <li><strong>Dependency environments are generations</strong> — new ones are checked before use, so a failed install keeps the working one; updates and <code>hermes pm gc</code> reclaim old ones (92 GB to 18 GB on one host). (<a href="https://github.com/NousResearch/hermes-agent/pull/124968" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#124968</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/133808" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#133808</a> — @JoaoMarcos44)</li> <li><strong>Optional features install on first use</strong> — opt-in SDKs (Anthropic, Bedrock) load mid-session without a restart; <code>security.allow_lazy_installs: false</code> turns this off. (<a href="https://github.com/NousResearch/hermes-agent/pull/122221" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#122221</a> — @ethernet8023)</li> <li><strong>Plugins declare Python dependencies</strong> — resolved with core across profiles; conflicts are refused, and updates disable a plugin that no longer fits. Hindsight, Honcho, Supermemory, Mem0 and Home Assistant moved to the catalog and auto-install where used. (<a href="https://github.com/NousResearch/hermes-agent/pull/113851" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#113851</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/122103" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#122103</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/114569" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#114569</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/132469" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#132469</a> — @ethernet8023)</li> </ul> <h3>Install & update</h3> <ul> <li><strong>Updates can't half-apply</strong> <em>(see Highlights)</em>. A killed update repairs itself on the next launch. (<a href="https://github.com/NousResearch/hermes-agent/pull/132361" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#132361</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/120339" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#120339</a>)</li> <li><strong>Faster updates, smaller checkouts</strong> — updates rebuild only what changed (16.5 s vs 32.5 s on macOS), clones are blobless, and partial-clone <code>.git</code> growth is fixed. (<a href="https://github.com/NousResearch/hermes-agent/pull/135092" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#135092</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/133016" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#133016</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/131679" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#131679</a> — @kshitijk4poor, @ethernet8023, @liuhao1024, @whyyagswhy)</li> <li><strong>Small, hash-checked installers</strong> — <code>install.sh</code>/<code>install.ps1</code> verify pinned uv and Git, hand off to PM, log to <code>logs/install.log</code>, and now work on musl Linux (Alpine, Void), Windows 10 and Unicode Windows paths. (<a href="https://github.com/NousResearch/hermes-agent/pull/124964" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#124964</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/125598" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#125598</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/132430" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#132430</a> — @JoaoMarcos44, @kshitijk4poor, @Finn763, @OutThisLife)</li> <li><strong>Failures say why</strong> — with opt-in telemetry, install, update, skill and plugin failures record a reason. (<a href="https://github.com/NousResearch/hermes-agent/pull/133809" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#133809</a>)</li> </ul> <h3>Docker / Nix / Termux / Windows</h3> <ul> <li><strong>Docker</strong> — pinned Debian 13 base with full Chromium; <code>stable</code>/<code>latest</code> move only on a published release; baked-in extras return after a restart. (<a href="https://github.com/NousResearch/hermes-agent/pull/135726" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#135726</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/135084" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#135084</a> — @unsupportedpastels)</li> <li><strong>Nix, Termux, Windows</strong> — Nix shares the pins; its desktop app gets Wayland; Termux moves to a signed APT package (<code>pkg upgrade hermes-agent</code>), though its docs still warn it is broken; Windows updates finish while the old runtime is in use. (<a href="https://github.com/NousResearch/hermes-agent/pull/128144" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#128144</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/122146" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#122146</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/131779" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#131779</a> — @ethernet8023, @janviernine)</li> </ul> <h3>CI & release engineering</h3> <ul> <li><strong>Release gates</strong> — E2E suites run on release builds, the full suite on native Windows, and SSH/Docker backends against real daemons. (<a href="https://github.com/NousResearch/hermes-agent/pull/135409" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#135409</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/96458" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#96458</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/136602" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#136602</a> — @ethernet8023)</li> </ul> <h2>🧠 Providers & Models</h2> <h3>New providers</h3> <ul> <li><strong>Providers as plugins</strong> — ACP and CLI-driven providers install out of tree via <code>hermes plugins install</code>; <code>--provider chatgpt</code> picks ChatGPT Codex OAuth. (<a href="https://github.com/NousResearch/hermes-agent/pull/101456" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#101456</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/115761" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#115761</a> — @AlexanderPrendota, @DarRahman)</li> <li><strong>Provider upgrades</strong> — Bedrock serves GPT-6 (1M) and enforces Claude Guardrails; Azure Foundry lists deployments; Gemini takes full JSON Schema tools; OpenCode Go routes Claude via Messages. (<a href="https://github.com/NousResearch/hermes-agent/pull/133573" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#133573</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/107815" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#107815</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/115770" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#115770</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/98928" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#98928</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/134848" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#134848</a> — @victor-kyriazakos, @JoaoMarcos44, @xxxigm, @thejpanganiban, @pandacooming)</li> <li><strong>New knobs</strong> — <code>agent.text_verbosity</code> sets Responses answer length; named custom providers run on the Codex app-server. (<a href="https://github.com/NousResearch/hermes-agent/pull/115880" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#115880</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/115905" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#115905</a> — @Beandon13, @cosin2077)</li> </ul> <h3>Model catalog</h3> <ul> <li><strong>Claude 5.x</strong> — Opus 5.5 also on native Anthropic and Bedrock (1M). (<a href="https://github.com/NousResearch/hermes-agent/pull/122633" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#122633</a> — @kshitijk4poor, @didodim)</li> <li><strong>GPT-6</strong> — Astra/Astra Pro in standard, fast and flex; opt-in Codex <code>-900k</code>; <code>/fast ultrafast</code> for Astra and 6.1 Sol, per plan. (<a href="https://github.com/NousResearch/hermes-agent/pull/103261" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#103261</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/119410" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#119410</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/136950" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#136950</a> — @daniil-grois, @sdalonzo)</li> <li><strong>Gemini 3.8 Flash and Gemini 4 Argon</strong>. (<a href="https://github.com/NousResearch/hermes-agent/pull/101450" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#101450</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/137989" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#137989</a> — @kshitijk4poor, @dgkaaks)</li> <li><strong>More</strong> — DeepSeek V4.1 Flash, Qwen3.8-Max-0902, Grok 4.7, GLM-5.3-FlashX, Muse Spark 1.3, Solar Pro 4/Mini 4. (<a href="https://github.com/NousResearch/hermes-agent/pull/107489" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#107489</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/100966" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#100966</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/118371" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#118371</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/117435" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#117435</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/101948" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#101948</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/131645" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#131645</a> — @rob-maron, @am423)</li> </ul> <h3>Auth & subscriptions</h3> <ul> <li><strong>Profiles share OAuth logins safely</strong> — single-use grants never fork; a profile's own login is kept. (<a href="https://github.com/NousResearch/hermes-agent/pull/100929" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#100929</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/134574" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#134574</a> — @unsupportedpastels)</li> <li><strong>Nous sign-in survives</strong> hourly expiry, concurrent subagents, Portal outages and edge checks. (<a href="https://github.com/NousResearch/hermes-agent/pull/103526" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#103526</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/121488" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#121488</a> — @kshitijk4poor, @zzragida)</li> <li><strong>Dead logins are named once</strong>, with the <code>hermes auth add</code> fix; <code>auth.adopt_external_logins: false</code> stops borrowing Codex CLI/Claude Code logins. (<a href="https://github.com/NousResearch/hermes-agent/pull/113816" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#113816</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/115586" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#115586</a>)</li> <li><strong>Keys stay on their hosts</strong> — configured <code>base_url</code> honored everywhere; Anthropic/OpenAI keys never reach foreign hosts. (<a href="https://github.com/NousResearch/hermes-agent/pull/121614" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#121614</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/120299" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#120299</a> — @austinpickett, @686f6c61, @ahisblessed, @xuezhaolan, @leemove)</li> </ul> <h3>Routing/fallback/caching</h3> <ul> <li><strong>Outage recovery</strong> — <code>agent.auto_recovery_cycles</code> (default 5) bounds the wait; fallback returns to a Codex primary whose quota reopened. (<a href="https://github.com/NousResearch/hermes-agent/pull/116353" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#116353</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/130716" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#130716</a> — @kshitijk4poor, @xxxigm)</li> <li><strong>No surprise billing</strong> — auto-routing never bills a provider you didn't pick; <code>provider_routing.models</code> pins OpenRouter per model. (<a href="https://github.com/NousResearch/hermes-agent/pull/107366" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#107366</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/104159" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#104159</a>)</li> <li><strong>Prompt caching</strong> — opt-in <code>cache_ttl: auto</code> (1h interactive, 5m subagents/cron); big sessions confirm a cache-breaking <code>/model</code>; compaction keeps the prefix. (<a href="https://github.com/NousResearch/hermes-agent/pull/118337" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#118337</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/95267" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#95267</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/104455" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#104455</a> — @kshitijk4poor, @JoaoMarcos44)</li> </ul> <h3>Reasoning</h3> <ul> <li><strong>Replay and effort</strong> — reasoning replays on every provider that reads it; effort on every picker, custom tier names; Anthropic fast mode follows the docs. (<a href="https://github.com/NousResearch/hermes-agent/pull/136358" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#136358</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/110346" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#110346</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/115735" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#115735</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/120517" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#120517</a> — @jquesnelle)</li> </ul> <h2>🏗️ Core Agent, Sessions & Memory</h2> <h3>Agent loop & reliability</h3> <ul> <li><strong>Stalled turns recover</strong> — a watchdog (<code>agent.turn_liveness.timeout_s</code>, default 600 s) interrupts a no-progress turn and frees its session; repeated transcript repairs now raise one error and notice. (<a href="https://github.com/NousResearch/hermes-agent/pull/99758" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#99758</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/99687" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#99687</a> — @kshitijk4poor, @Finn763, @HexLab98)</li> <li><strong>Streams fail less and report honestly</strong> — text-less dead streams retry, repetition loops are cut, and interrupted turns aren't reported as done. (<a href="https://github.com/NousResearch/hermes-agent/pull/113135" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#113135</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/130551" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#130551</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/112272" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#112272</a> — @kshitijk4poor)</li> </ul> <h3>Compression & context</h3> <ul> <li><strong>Compaction triggers on real token counts</strong> — provider-reported usage, not bytes/4; the protected tail is capped at 20% so small-window models compact. (<a href="https://github.com/NousResearch/hermes-agent/pull/104555" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#104555</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/117957" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#117957</a> — @686f6c61)</li> <li><strong>Bad summaries can't wipe context</strong> — refusals and overloaded summary providers leave the transcript alone, and an uncommitted compaction changes nothing. (<a href="https://github.com/NousResearch/hermes-agent/pull/118920" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#118920</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/115906" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#115906</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/136083" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#136083</a> — @kshitijk4poor, @fangliquanflq, @mnajafian-nv)</li> <li><strong>New knobs</strong> — provider-scoped <code>compression.model_thresholds</code> keys and <code>auxiliary.<task>.no_progress_timeout</code>. (<a href="https://github.com/NousResearch/hermes-agent/pull/108061" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#108061</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/115804" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#115804</a> — @chelsealong)</li> </ul> <h3>Sessions & state.db</h3> <ul> <li><strong>state.db reliability</strong> — lock timeouts name the holding process, a busy database no longer kills a turn, and sibling PID namespaces can't steal leases. (<a href="https://github.com/NousResearch/hermes-agent/pull/116967" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#116967</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/134577" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#134577</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/132161" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#132161</a> — @kshitijk4poor, @686f6c61)</li> <li><strong>state.db stops growing</strong> — auto-prune is on by default (ended sessions over 90 days) and closes stale cron/kanban/subagent sessions; VACUUM runs only when 25% is reclaimable. (<a href="https://github.com/NousResearch/hermes-agent/pull/101316" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#101316</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/100903" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#100903</a> — @stepanov1975)</li> <li><strong>Repair commands</strong> — <code>hermes sessions set-journal-mode delete|wal</code>, <code>repair-profiles</code> (crossed profiles) and <code>repair-prompts</code>. (<a href="https://github.com/NousResearch/hermes-agent/pull/117684" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#117684</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/115689" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#115689</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/124200" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#124200</a> — @kshitijk4poor, @JoaoMarcos44)</li> <li><strong>Cleaner session lists</strong> — one-shot runs stay out of pickers, <code>sessions.show_subagents</code> lists titled subagent chats, messages get stable ids for context engines. (<a href="https://github.com/NousResearch/hermes-agent/pull/113826" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#113826</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/122304" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#122304</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/126687" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#126687</a> — @OutThisLife, @kshitijk4poor, @100yenadmin)</li> </ul> <h3>Memory</h3> <ul> <li><strong>Memory providers leave core safely</strong> — OpenViking and Holographic move to the plugin catalog on update or first start, data intact, or say why not. (<a href="https://github.com/NousResearch/hermes-agent/pull/134350" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#134350</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/136436" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#136436</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/131269" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#131269</a>)</li> <li><strong>Built-in memory writes land</strong> — hand-formatted MEMORY.md/USER.md accepted, refusals say what to fix, secrets scrubbed before providers see them. (<a href="https://github.com/NousResearch/hermes-agent/pull/133038" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#133038</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/134429" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#134429</a> — @aniruddhaadak80)</li> </ul> <h3>Profiles & config</h3> <ul> <li><strong>config.yaml survives bad moments</strong> — a broken file falls back to the last good copy; read errors can't wipe it. (<a href="https://github.com/NousResearch/hermes-agent/pull/109463" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#109463</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/120343" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#120343</a> — @Shenrui-Ma, @huklaa)</li> <li><strong>Safer <code>hermes config</code></strong> — <code>get</code> masks secrets (<code>--raw</code> opts out); <code>set</code> refuses typo paths and stores env-style names in <code>.env</code>. (<a href="https://github.com/NousResearch/hermes-agent/pull/111341" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#111341</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/112250" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#112250</a> — @webtecnica)</li> <li><strong>Profiles stay separate</strong> — REST routes act on the profile they name, exports skip <code>.ssh</code>/<code>.aws</code>/<code>.gnupg</code>, and <code>import-agent --sync</code> keeps imports current. (<a href="https://github.com/NousResearch/hermes-agent/pull/118275" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#118275</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/132201" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#132201</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/88855" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#88855</a> — @kshitijk4poor, @JerryLiu369)</li> </ul> <h3>Languages (i18n)</h3> <ul> <li><strong>Language packs</strong> — any language can ship as a plugin (<code>provides_locales</code>) or a per-profile override file. (<a href="https://github.com/NousResearch/hermes-agent/pull/126296" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#126296</a>)</li> </ul> <h2>📱 Messaging Platforms (Gateway)</h2> <h3>Gateway core & multiplexing</h3> <ul> <li><strong>One gateway serves every profile</strong> — <code>hermes gateway status</code> explains any boot-guard refusal, <code>hermes gateway migrate --multiplex</code> migrates by hand, webhook platforms serve each profile at <code>/p/<profile>/</code>, <code>hermes -p X gateway stop|start</code> parks one profile, and <code>gateway.standalone: true</code> is a temporary opt-out. (<a href="https://github.com/NousResearch/hermes-agent/pull/112854" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#112854</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/108952" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#108952</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/119774" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#119774</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/119680" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#119680</a> — @victor-kyriazakos)</li> <li><strong>Profiles stay isolated</strong> — clones skip bot tokens unless <code>--clone-channels</code>; <code>profile_routes</code> can route by sender. (<a href="https://github.com/NousResearch/hermes-agent/pull/109502" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#109502</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/115642" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#115642</a> — @italodsfernandes)</li> <li><strong>Sessions and commands</strong> — <code>/login</code> signs free-tier users in from a DM; idle/daily <code>session_reset</code> is retired, so only <code>/new</code> and <code>/reset</code> start fresh; <code>/branch</code> opens a sibling thread on Discord, Telegram, Slack and Matrix (<code>--here</code> keeps the old behavior); <code>decline</code> mode sends unauthorized DMs one polite refusal; an opt-in <code>served_model</code> footer names the model that answered. (<a href="https://github.com/NousResearch/hermes-agent/pull/105261" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#105261</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/126244" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#126244</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/117450" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#117450</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/88028" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#88028</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/115925" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#115925</a> — @alt-glitch, @kshitijk4poor, @anpicasso)</li> <li><strong>Files and plugins</strong> — <code>MEDIA:</code> files from ssh/Modal/Daytona sandboxes reach the user; plugins can claim messages via <code>post_gateway_admission</code>. (<a href="https://github.com/NousResearch/hermes-agent/pull/103600" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#103600</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/133157" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#133157</a> — @kshitijk4poor, @tokou)</li> </ul> <h3>Messaging platforms</h3> <ul> <li><strong>Telegram</strong> — opt-in <code>bots_require_mention</code> stops bot reply loops, <code>extra.drop_pending_on_cold_boot: false</code> keeps messages sent while offline, CJK can opt in to rich messages. (<a href="https://github.com/NousResearch/hermes-agent/pull/106534" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#106534</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/116134" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#116134</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/111831" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#111831</a> — @kshitijk4poor, @kokhlo, @justcarlosm, @wang2)</li> <li><strong>Discord</strong> — setup verifies the token, links the Message Content Intent and allowlists you; free-response channels can auto-thread. (<a href="https://github.com/NousResearch/hermes-agent/pull/132456" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#132456</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/116168" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#116168</a> — @kshitijk4poor, @FunJim)</li> <li><strong>Slack</strong> — Block Kit <code>/model</code> picker; status/titles use the Agent Sessions API. (<a href="https://github.com/NousResearch/hermes-agent/pull/103436" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#103436</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/101477" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#101477</a> — @kshitijk4poor, @sohomsahaun)</li> <li><strong>WhatsApp</strong> — native mentions via <code>hermes send --mention</code>, no 5 s batching delay, paired sessions on every profile. (<a href="https://github.com/NousResearch/hermes-agent/pull/115253" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#115253</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/117104" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#117104</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/132518" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#132518</a> — @kshitijk4poor, @unsupportedpastels, @Diaspar4u)</li> <li><strong>Signal, Matrix, Email, QQ Bot</strong> — Signal tables render monospace; Matrix LaTeX typesets in Element (Labs math setting); Email refuses spoofed senders and now requires an <code>authserv_id</code> pin (mail drops until set); QQ Bot <code>send_message</code> delivers media. (<a href="https://github.com/NousResearch/hermes-agent/pull/106538" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#106538</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/106515" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#106515</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/132663" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#132663</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/131927" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#131927</a> — @chelsealong, @romanovzky, @kshitijk4poor, @OutThisLife, @cadezhou)</li> </ul> <h3>Webhooks & API server</h3> <ul> <li><strong>Webhooks</strong> — opt-in <code>coalesce</code> folds event bursts into one run, <code>cron_job</code> routes fire cron jobs on events, Standard Webhooks signatures verify, opt-in <code>mirror_to_session</code> gives replies context. (<a href="https://github.com/NousResearch/hermes-agent/pull/92066" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#92066</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/95262" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#95262</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/104183" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#104183</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/120825" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#120825</a> — @HwangJohn, @Potrock)</li> <li><strong>API server</strong> — reasoning streams to OpenAI-compatible clients; stream approvals are answerable. (<a href="https://github.com/NousResearch/hermes-agent/pull/115797" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#115797</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/121769" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#121769</a> — @kshitijk4poor, @liuhao1024)</li> </ul> <h3>Relay & Bot Chat</h3> <ul> <li><strong>Bot Mode rooms</strong> — edit members, Reply to @handle, 200-message history, sender-aware bot DMs with an <code>ALLOW_BOTS</code> loop guard. (<a href="https://github.com/NousResearch/hermes-agent/pull/113384" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#113384</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/107520" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#107520</a> — @erosika, @69k4xmdfm2-blip)</li> <li><strong>Relay</strong> — connector checks <code>send_message</code> targets; NeMo Relay tracing at 0.10.0 tags spans with the working directory. (<a href="https://github.com/NousResearch/hermes-agent/pull/99220" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#99220</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/135787" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#135787</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/108345" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#108345</a> — @benbarclay, @mnajafian-nv, @afourniernv, @KoNit-K)</li> </ul> <h2>🖥️ Desktop App</h2> <h3>Workspace & layout</h3> <ul> <li><strong>Simple / Advanced mode</strong> — Simple hides developer panes; Advanced stays the default. (<a href="https://github.com/NousResearch/hermes-agent/pull/118587" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#118587</a> — @OutThisLife)</li> <li><strong>Windows and tabs</strong> — Titlebar tabs; profiles open in their own window or as startup default. (<a href="https://github.com/NousResearch/hermes-agent/pull/107099" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#107099</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/113176" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#113176</a> — @OutThisLife)</li> <li><strong>Sidebar</strong> — Group by gateway/profile, reuse Cloud instances, drag New session onto a pane. (<a href="https://github.com/NousResearch/hermes-agent/pull/105813" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#105813</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/70571" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#70571</a> — @abundantbeing)</li> <li><strong>Import sessions</strong> — Continue another coding agent's transcript in Hermes. (<a href="https://github.com/NousResearch/hermes-agent/pull/104229" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#104229</a> — @Adolanium)</li> <li><strong>Goal / Loop / Heartbeat cards</strong> — Live pause/resume/stop above the composer. (<a href="https://github.com/NousResearch/hermes-agent/pull/104246" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#104246</a> — @jerrygooch)</li> <li><strong>Launch options</strong> — Start on a fresh chat; opt-in tray minimize and Cmd+Option / Ctrl+Alt HUD tap. (<a href="https://github.com/NousResearch/hermes-agent/pull/101304" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#101304</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/118441" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#118441</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/118446" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#118446</a> — @jinglun010-cpu, @OutThisLife)</li> </ul> <h3>Chat & composer</h3> <ul> <li><strong>Pickers and input</strong> — Reasoning-effort pill; add a model by slug; 3,000+ char pastes attach as .txt; opt-in macOS window-screenshot shortcut. (<a href="https://github.com/NousResearch/hermes-agent/pull/109907" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#109907</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/120693" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#120693</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/108901" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#108901</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/113349" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#113349</a> — @OutThisLife)</li> <li><strong>Actionable errors</strong> — Cards name the problem and fix; usage-limit cards show reset time and can schedule a retry. (<a href="https://github.com/NousResearch/hermes-agent/pull/111601" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#111601</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/116288" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#116288</a>)</li> <li><strong>Transcript</strong> — Stable approval queue; hideable code diffs. (<a href="https://github.com/NousResearch/hermes-agent/pull/107073" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#107073</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/116569" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#116569</a> — @OutThisLife)</li> <li><strong>Browser comment mode</strong> — Pin page elements with notes; crops, selectors and styles go to the composer. (<a href="https://github.com/NousResearch/hermes-agent/pull/100083" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#100083</a> — @Adolanium)</li> </ul> <h3>Settings & plugins</h3> <ul> <li><strong>Settings</strong> — Ordered subpages searchable from ⌘K; Chat Font (e.g. OpenDyslexic); Russian, French, German, Spanish. (<a href="https://github.com/NousResearch/hermes-agent/pull/117127" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#117127</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/111226" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#111226</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/100429" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#100429</a> — @OutThisLife, @warment, @FASTCHIP)</li> <li><strong>Models</strong> — Per-task auxiliary reasoning effort; Custom Endpoints pick an API mode. (<a href="https://github.com/NousResearch/hermes-agent/pull/110435" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#110435</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/115851" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#115851</a> — @higgs1729, @SacrEllfarch)</li> <li><strong>Plugins</strong> — One row per plugin; composer and settings APIs. (<a href="https://github.com/NousResearch/hermes-agent/pull/107314" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#107314</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/120907" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#120907</a> — @OutThisLife, @Heybinshao)</li> </ul> <h3>Bot Mode</h3> <ul> <li><strong>Bot Screen</strong> — Linux-gateway bots stream a desktop you can take over for logins or 2FA. Off by default; needs host packages. (<a href="https://github.com/NousResearch/hermes-agent/pull/108914" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#108914</a>)</li> <li><strong>Group chats</strong> — Reorder rooms; compress a member's hidden history. (<a href="https://github.com/NousResearch/hermes-agent/pull/105909" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#105909</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/117015" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#117015</a>)</li> </ul> <h3>Performance & platforms</h3> <ul> <li><strong>One backend</strong> — Desktop attaches to the running backend, which serves every profile. (<a href="https://github.com/NousResearch/hermes-agent/pull/118246" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#118246</a>)</li> <li><strong>Platforms</strong> — Faster Windows startup; Linux runs without sudo and under WSLg/Wayland. (<a href="https://github.com/NousResearch/hermes-agent/pull/111002" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#111002</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/100136" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#100136</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/113247" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#113247</a> — @codeJRV, @kvnloo, @austinpickett)</li> </ul> <h3>Models, chat & workspace</h3> <ul> <li><strong>Model picker knows your plans</strong> — Star Favorites; provider rows show when a rate limit lifts and a "17% left · resets 3:00 PM" chip before you hit it. Also opt-in per-model pricing with cached-read rates, an Ultrafast speed tier and keys to step reasoning effort. (<a href="https://github.com/NousResearch/hermes-agent/pull/126535" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#126535</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/133392" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#133392</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/133408" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#133408</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/126651" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#126651</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/132445" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#132445</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/125800" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#125800</a> — @OutThisLife, @kshitijk4poor, @anotherchu)</li> <li><strong>Safer rewinds and honest stops</strong> — Regenerate or edit asks before archiving more than one later turn; Stop shows the partial reply the session saves. (<a href="https://github.com/NousResearch/hermes-agent/pull/133748" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#133748</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/121597" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#121597</a> — @kshitijk4poor)</li> <li><strong>Reading and layout</strong> — Chat Text Size separate from UI Scale; theme typography; lightbox zoom/pan; compression count in the context meter; context-aware right-click. (<a href="https://github.com/NousResearch/hermes-agent/pull/128975" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#128975</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/125904" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#125904</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/127247" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#127247</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/126653" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#126653</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/131215" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#131215</a> — @OutThisLife, @unsupportedpastels, @dskwe)</li> <li><strong>Workspace and sessions</strong> — Sessions follow the agent's git worktree and branch; Review pane scopes work. Browse SSH workspaces, drag sessions onto projects, search logs, see and clear Kanban blocks. (<a href="https://github.com/NousResearch/hermes-agent/pull/128428" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#128428</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/127200" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#127200</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/99538" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#99538</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/126543" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#126543</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/126658" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#126658</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/125647" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#125647</a> — @ethernet8023, @OutThisLife, @nateEc)</li> <li><strong>Preview and voice</strong> — Preview opens public web pages; YouTube plays via a local player. Non-streaming TTS speaks from the first sentence; quiet-audio STT hallucinations are filtered. (<a href="https://github.com/NousResearch/hermes-agent/pull/130393" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#130393</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/130975" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#130975</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/121685" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#121685</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/127275" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#127275</a> — @xxxigm, @OutThisLife, @kshitijk4poor, @embwl0x)</li> </ul> <h3>Plugins, updates & the app</h3> <ul> <li><strong>Settings ▸ Plugins and a bigger SDK</strong> — Every plugin gets a settings page (agent plugins from their config schema). Desktop plugins can run app actions by id, speak via the pet, add Appearance controls and reorder sidebar nav. (<a href="https://github.com/NousResearch/hermes-agent/pull/133182" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#133182</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/136417" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#136417</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/135504" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#135504</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/120912" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#120912</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/120922" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#120922</a> — @tobenwarrior)</li> <li><strong>Updates you can steer</strong> — Source installs pick Stable or Every commit in Settings › About; the updates dialog names the channel. The app warns when older than its backend. (<a href="https://github.com/NousResearch/hermes-agent/pull/135949" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#135949</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/136313" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#136313</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/122911" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#122911</a> — @OutThisLife)</li> <li><strong>App polish</strong> — "While working" keep-awake mode, macOS 26 layered icon, sharper MSIX icons, opt-in shared-metrics consent strip. (<a href="https://github.com/NousResearch/hermes-agent/pull/128984" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#128984</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/122976" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#122976</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/131669" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#131669</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/125074" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#125074</a> — @kshitijk4poor, @jonpol01, @ethernet8023)</li> </ul> <h2>⌨️ CLI, TUI & Dashboard</h2> <h3>CLI</h3> <ul> <li><strong>Vim keys, git branch and bell</strong> — <code>display.vim_mode</code>, <code>git_branch</code> status field, <code>display.bell_on_prompt</code> (bell plus OSC 9 notification); all off by default. (<a href="https://github.com/NousResearch/hermes-agent/pull/106412" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#106412</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/106434" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#106434</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/101284" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#101284</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/101320" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#101320</a> — @saforem2, @TurgutKural, @glitchbunny0, @harshmoney123)</li> <li><strong>Friendlier keys</strong> — Ctrl+T opens the subagent monitor; a mid-turn multi-line paste is one message. (<a href="https://github.com/NousResearch/hermes-agent/pull/105879" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#105879</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/109146" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#109146</a>)</li> <li><strong>Scriptable commands</strong> — <code>hermes usage --json</code> (quota, no session); <code>hermes worktree --json/--older-than</code>; <code>kanban edit --title/--body/--priority</code>; <code>-t</code> picks MCP servers to start. (<a href="https://github.com/NousResearch/hermes-agent/pull/115899" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#115899</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/95257" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#95257</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/117632" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#117632</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/101634" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#101634</a> — @himanusia, @kshitijk4poor, @SelfParody)</li> <li><strong>Also</strong> — <code>hermes -z</code> exits non-zero on failure; <code>-m custom:<name>:<model></code> reaches that provider; the footer no longer collapses to "Window too small". (<a href="https://github.com/NousResearch/hermes-agent/pull/113234" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#113234</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/115293" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#115293</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/117439" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#117439</a> — @kshitijk4poor)</li> </ul> <h3>TUI</h3> <ul> <li><strong>Native terminal mode</strong> — <code>--native</code> or <code>display.tui_native</code> (opt-in). (<a href="https://github.com/NousResearch/hermes-agent/pull/121035" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#121035</a> — @OutThisLife)</li> <li><strong>Running-turn control</strong> — double-Esc interrupts, push-to-talk cuts speech, the live dock (CLI too) shows <code>/goal</code> and queued prompts. (<a href="https://github.com/NousResearch/hermes-agent/pull/125803" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#125803</a> — @OutThisLife)</li> <li><strong>Typing fixes</strong> — Shift+letter on extended-key terminals, macOS Ctrl+D, Wayland image paste, steady idle redraws. (<a href="https://github.com/NousResearch/hermes-agent/pull/90674" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#90674</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/116851" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#116851</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/116824" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#116824</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/87907" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#87907</a> — @francip, @fangliquanflq)</li> <li><strong>Reconnects and attachments</strong> — attached TUIs rejoin their session; <code>attachments.storage: workspace</code> stages files a sandboxed agent can read. (<a href="https://github.com/NousResearch/hermes-agent/pull/112227" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#112227</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/125816" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#125816</a> — @OutThisLife)</li> </ul> <h3>Dashboard</h3> <ul> <li><strong>Chat on more devices</strong> — screen readers, iPad touch-scroll, no doubled mobile-keyboard characters; a second tab gets its own terminal. (<a href="https://github.com/NousResearch/hermes-agent/pull/133960" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#133960</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/134181" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#134181</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/116978" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#116978</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/117061" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#117061</a> — @austinpickett)</li> <li><strong>Errors, sessions, analytics</strong> — errors are a sentence and fix button, not raw JSON; title search, a live switcher, per-API-call analytics. (<a href="https://github.com/NousResearch/hermes-agent/pull/111602" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#111602</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/133981" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#133981</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/134100" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#134100</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/133991" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#133991</a> — @austinpickett)</li> <li><strong>Self-hosting</strong> — reverse-proxy subpaths, password sign-in beside OAuth, non-expiring remote sessions. (<a href="https://github.com/NousResearch/hermes-agent/pull/133903" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#133903</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/107018" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#107018</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/110061" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#110061</a> — @austinpickett, @Doud-FR)</li> </ul> <h3>Slash commands</h3> <ul> <li><strong>Reasoning effort in every picker</strong> — <code>hermes model</code>, aux models and <code>/model</code> add an effort step; <code>/model X --reasoning high</code> works too. (<a href="https://github.com/NousResearch/hermes-agent/pull/110346" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#110346</a>)</li> <li><strong>Editable <code>/queue</code></strong> — list, edit, move or remove prompts; <code>/s</code> = <code>/steer</code>. (<a href="https://github.com/NousResearch/hermes-agent/pull/95999" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#95999</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/125803" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#125803</a> — @abhinav11082001-stack, @OutThisLife)</li> <li><strong><code>/context</code> per file</strong> — shows each instruction file as loaded, truncated or shadowed. (<a href="https://github.com/NousResearch/hermes-agent/pull/91272" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#91272</a>)</li> </ul> <h2>🔧 Tools, MCP & Browser</h2> <h3>Tools & tool search</h3> <ul> <li><strong>Rare tools load on demand</strong> — computer_use, session_search, image_generate, cron and Desktop GUI tools sit behind <code>tool_search</code> by default (desktop schemas 13,367→6,883 tokens; <code>defer: []</code> opts out); <code>todo</code>/<code>cronjob</code>/<code>process</code> become <code>todo_list</code>/<code>cronjob_manage</code>/<code>process_manage</code> (aliases kept). (<a href="https://github.com/NousResearch/hermes-agent/pull/97979" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#97979</a> — @alt-glitch)</li> <li><strong>Prompt cache holds all session</strong> — the tool list is frozen per session across TUI, <code>-q --resume</code> and gateway hops. (<a href="https://github.com/NousResearch/hermes-agent/pull/120289" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#120289</a>)</li> <li><strong>Loop guardrails</strong> — unattended gateway/cron sessions hard-stop tool loops; 5 identical replays halt any tool. (<a href="https://github.com/NousResearch/hermes-agent/pull/100967" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#100967</a> — @plcunha, @benbenlijie)</li> <li><strong>Smarter file and web tools</strong> — <code>read_file</code> shows SQLite schemas and flags merge conflicts, <code>search_files</code> runs ripgrep directly (5–6x faster), keyless <code>web_search</code> fails over between free vendors. (<a href="https://github.com/NousResearch/hermes-agent/pull/115974" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#115974</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/104502" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#104502</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/134048" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#134048</a> — @kshitijk4poor, @alt-glitch)</li> </ul> <h3>MCP</h3> <ul> <li><strong>Device-code login</strong> — <code>hermes mcp login <server> --flow device</code> for headless terminals. (<a href="https://github.com/NousResearch/hermes-agent/pull/104891" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#104891</a> — @wjorgensen)</li> <li><strong>Sturdier OAuth</strong> — refresh tokens are never erased, double-spent or sent to another issuer; RFC 9207, Google-hosted and WAF-fronted servers log in; gateways never open browser tabs. (<a href="https://github.com/NousResearch/hermes-agent/pull/106185" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#106185</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/111186" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#111186</a> — @kshitijk4poor, @anhtahaylove)</li> <li><strong>More servers connect</strong> — SSE-only servers fall back, strict servers connect (<code>sampling.tools</code> opt-in), and the catalog adds official n8n and Asana V2. (<a href="https://github.com/NousResearch/hermes-agent/pull/106432" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#106432</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/131891" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#131891</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/116048" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#116048</a> — @aieng-abdullah, @OutThisLife, @nikkoxgonzales, @alt-glitch)</li> <li><strong>Startup and results</strong> — boot connects ≤ <code>mcp.discovery_concurrency</code> (4) servers at once; vision models see MCP images; dead stdio servers respawn without replaying a call. (<a href="https://github.com/NousResearch/hermes-agent/pull/117956" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#117956</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/133815" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#133815</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/106546" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#106546</a> — @Halldrix, @sarahwu185, @100yenadmin)</li> </ul> <h3>Browser & computer use</h3> <ul> <li><strong>Vault and sandboxed screen</strong> — password-manager sign-in also fills cards and addresses after you confirm; <code>hermes-sandbox:desktop</code> is the new default image (existing sandboxes kept). (<a href="https://github.com/NousResearch/hermes-agent/pull/106480" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#106480</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/121169" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#121169</a>)</li> <li><strong><code>browser_exec</code> works out of the box</strong> — drives bundled Chromium (also the cloud fallback) and opens localhost via a sidecar. (<a href="https://github.com/NousResearch/hermes-agent/pull/102986" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#102986</a> — @shadus)</li> <li>Also: a CDP seam for plugins; unchanged <code>computer_use</code> screens are not resent. (<a href="https://github.com/NousResearch/hermes-agent/pull/133552" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#133552</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/98954" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#98954</a> — @web3blind)</li> </ul> <h3>Terminal & code execution</h3> <ul> <li><strong>Long commands stop blocking</strong> — foreground timeouts over 600 s become background jobs, <code>heartbeat=N</code> sends progress, and the live-work dock lists them. (<a href="https://github.com/NousResearch/hermes-agent/pull/103529" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#103529</a>)</li> <li><strong>Sandboxes</strong> — results flag a recreated environment; SSH paths resolve remotely. (<a href="https://github.com/NousResearch/hermes-agent/pull/107093" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#107093</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/122657" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#122657</a> — @kshitijk4poor, @xxxigm)</li> <li><strong>LSP</strong> — custom servers via <code>lsp.servers</code> and <code>lsp.package_manager</code>; never runs a cloned repo's own interpreter or SDK. (<a href="https://github.com/NousResearch/hermes-agent/pull/115714" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#115714</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/126239" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#126239</a> — @ZHCHJ888, @kshitijk4poor, @jonpol01)</li> </ul> <h3>Media (image/video/voice)</h3> <ul> <li><strong>New models</strong> — GPT Image 2.5, Kling Image v3; video: Kling 3.0, Kling O3, LTX 2.5, Wan 3.0, MiniMax H3 Max Turbo, Gemini Omni Flash 1.1. (<a href="https://github.com/NousResearch/hermes-agent/pull/105988" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#105988</a>)</li> <li><strong>Live dictation</strong> — opt-in <code>stt.streaming</code> shows words as you speak (CLI, TUI, Desktop); long recordings transcribe on all cloud providers. (<a href="https://github.com/NousResearch/hermes-agent/pull/133853" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#133853</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/133825" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#133825</a> — @TimeLord2010, @Julientalbot, @kokhlo)</li> <li><strong>Voice conversations</strong> — opt-in <code>voice.voice_chat_mode: gpt-live</code> gives Desktop full-duplex voice; <code>auxiliary.voice_chat</code> runs spoken turns on a faster model; TTS starts sooner. (<a href="https://github.com/NousResearch/hermes-agent/pull/108137" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#108137</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/133986" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#133986</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/115846" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#115846</a> — @liuhao1024)</li> </ul> <h2>🧩 Plugins, Skills & the Plugin Catalog</h2> <h3>Plugin Catalog</h3> <ul> <li><strong>Plugin and author pages</strong> — <a href="https://hermes-agent.nousresearch.com/docs/plugins">/docs/plugins</a> shelves plugins under Memory, Desktop, Platforms, Web, Tools, Voice, Automation and Models. Pages show the description, a disclosure callout, screenshots, the README from the pinned commit, an Open in Hermes Desktop button and a copyable install command. (<a href="https://github.com/NousResearch/hermes-agent/pull/111415" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#111415</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/111547" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#111547</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/117808" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#117808</a>)</li> <li><strong>Easier-to-read cards</strong> — a version label sits next to the pinned commit (<code>1.2.0 @ ad3f352b</code>) on the website, CLI and Desktop; cards gained banner images, a uniform size and light mode. (<a href="https://github.com/NousResearch/hermes-agent/pull/113381" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#113381</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/125065" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#125065</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/124001" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#124001</a> — @kshitijk4poor, @xxxigm)</li> <li><strong>Known-issue warnings</strong> — listings can declare known issues, which <code>hermes plugins install</code> and the dashboard show on install. (<a href="https://github.com/NousResearch/hermes-agent/pull/124058" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#124058</a> — @happy5318)</li> <li><strong>Listing rules</strong> — Desktop plugins must stay within SDK slots, 11 plugins that patched internals were delisted (installed copies keep working), and the submission guide matches what CI enforces. (<a href="https://github.com/NousResearch/hermes-agent/pull/115579" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#115579</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/130860" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#130860</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/131048" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#131048</a>)</li> </ul> <h3>New in the Catalog</h3> <p>All 600 listings are new this cycle.</p> <ul> <li><strong>Moved out of core</strong> — besides the five memory providers, Holographic has a new community maintainer; Home Assistant, Spotify, Langfuse and TouchDesigner are now official catalog plugins. (<a href="https://github.com/NousResearch/hermes-agent/pull/114732" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#114732</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/136196" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#136196</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/132476" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#132476</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/137130" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#137130</a> — @itpartypattaya)</li> <li><strong>Official</strong> — Blender Lab, Snyk, NVIDIA App and NVIDIA Broadcast (Windows only), Telegram Business, Memory Wiki. (<a href="https://github.com/NousResearch/hermes-agent/pull/119365" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#119365</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/109084" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#109084</a> — @alt-glitch)</li> <li><strong>Memory (65)</strong> — Cognee, LanceDB, ReMe, Memoria, HydraDB, Mnemosyne, YantrikDB, BetterDB. <strong>Web and search (34)</strong> — Apify, Parallel, Linkup, SerpApi, You.com, TinyFish, Oxylabs. <strong>Model providers (48)</strong> — JetBrains Junie, Telnyx, NetMind, Groq, Chutes, Kiro, Opper, AIHubMix. <strong>Platforms (32)</strong> — Inline, Microsoft 365, Rocket.Chat, VK, Zalo, iMessage, Sendblue. <strong>Voice (18)</strong> — Speechify, Deepgram, Fish Audio, Gemini Live. <strong>Desktop panes (140)</strong> — Telegram Client, Quota, Orbit, Kanban Gantt, Monitoring Dashboard. <strong>Tools (180)</strong> — GitHub App, Coder, Devin, NetBox, Financial Datasets, MetaMask, Tempo MPP, DaVinci Resolve, vidIQ, Govee, SwitchBot, Japanese e-Gov data. (<a href="https://github.com/NousResearch/hermes-agent/pull/112292" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#112292</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/118231" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#118231</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/118512" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#118512</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/114202" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#114202</a> — @siillee, @georgeatparallel, @AlexanderPrendota and many more)</li> </ul> <h3>Plugin system</h3> <ul> <li><strong>Model providers as plugins</strong> — out-of-tree providers show in model pickers, log in via <code>hermes auth</code> (built-in OAuth PKCE) and refresh tokens. (<a href="https://github.com/NousResearch/hermes-agent/pull/116552" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#116552</a> — @ericmaddox, @ZenMux-1)</li> <li><strong>Per-profile plugin host (opt-in)</strong> — <code>plugins.isolation: host</code> runs third-party plugins in a per-profile process with only that profile's secrets. (<a href="https://github.com/NousResearch/hermes-agent/pull/126911" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#126911</a>)</li> <li><strong>New plugin APIs</strong> — hooks for interrupted turns, auxiliary LLM calls and human-input prompts; plugins can start gateway sessions, add Automation Blueprints and aux model slots, ship the computer-use driver and make Codex-signed requests. (<a href="https://github.com/NousResearch/hermes-agent/pull/118909" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#118909</a> — @zrmnelson, @JonZal, @hsy5571615, @webtecnica)</li> <li><strong>Desktop plugin SDK</strong> — <code>config_schema</code> settings render as a form in Capabilities → Plugins; plugins get a skills/toolsets/profiles bridge and model-pill/menu slots. (<a href="https://github.com/NousResearch/hermes-agent/pull/118917" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#118917</a> — @LeonSGP43, @tobenwarrior)</li> <li><strong>Install, pin, update</strong> — private repos install with your git credentials, Desktop pins a plugin to a commit, updates keep user data, and plugin skills run as <code>/plugin:skill</code>. (<a href="https://github.com/NousResearch/hermes-agent/pull/106981" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#106981</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/107321" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#107321</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/133175" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#133175</a> — @JoaoMarcos44, @pnpwin, @ctaylor86)</li> <li><strong>Sturdier loader and scanner</strong> — hung imports are skipped after <code>plugins.load_timeout_seconds</code> (10s), guard hooks fail closed, and prose, fixtures and regex literals no longer block installs; plugin deps follow the plugin's security policy. (<a href="https://github.com/NousResearch/hermes-agent/pull/118915" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#118915</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/115954" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#115954</a>)</li> <li><strong>Moved out of core</strong> — Spotify and Langfuse became official plugins (auto-migrated); tirith was removed, its key checks built in. (<a href="https://github.com/NousResearch/hermes-agent/pull/135389" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#135389</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/133832" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#133832</a>)</li> <li><strong>New plugins</strong> — reMarkable, hermes-pii, hermes-stt-enhance (catalog); Meta muse-image (bundled). (<a href="https://github.com/NousResearch/hermes-agent/pull/117191" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#117191</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/132154" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#132154</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/134418" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#134418</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/100959" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#100959</a> — @cygnostik, @lukefx, @dmmeteo, @mreso)</li> </ul> <h3>Skills</h3> <ul> <li><strong>New optional skills</strong> — pr-lens (animated PR diagrams), system-atlas, anatomy (isometric explainers), mono-color (ink-print images), dream-loop (3D concept-art loops), scrollcraft (scroll pages), auteur (cinematic web), ip-as-logo (mascots), ai-presenter-video, live-dashboard (self-updating pages), dynamic-workflow (fan-out campaigns), reddit-reading, rss-feeds. (<a href="https://github.com/NousResearch/hermes-agent/pull/109306" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#109306</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/103821" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#103821</a>)</li> <li><strong>Skills Hub</strong> — the index builds again with about 480 science skills; search also finds unindexed skills. (<a href="https://github.com/NousResearch/hermes-agent/pull/109178" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#109178</a>)</li> <li><strong><code>skills.auto_load</code> and <code>skills.create_dir</code></strong> — pin skills into every session; choose where agent-made skills go. (<a href="https://github.com/NousResearch/hermes-agent/pull/92048" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#92048</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/100377" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#100377</a> — @ctaylor86, @ArcherQAQ, @giwaov, @Frosti7)</li> <li><strong>Better self-improvement</strong> — learnings and corrections go into the task's skill; background review can improve any skill; skills added mid-chat reach the next message. (<a href="https://github.com/NousResearch/hermes-agent/pull/102107" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#102107</a>)</li> <li><strong>Lighter curator</strong> — no longer blocks the CLI prompt; one install fell from 1.9 GB to about 200 MB; unused skills archive at 30 days (was 90). (<a href="https://github.com/NousResearch/hermes-agent/pull/115862" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#115862</a>)</li> <li><strong>Skills Guard</strong> — blocked installs in a 421-skill sample fell from 83 to 68; inline shell is limited to non-community skills. (<a href="https://github.com/NousResearch/hermes-agent/pull/135595" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#135595</a> — @Awshesh12, @liuhao1024, @FlashWayne)</li> </ul> <h2>⏰ Cron, Kanban & Delegation</h2> <h3>Cron</h3> <ul> <li><strong>Jobs follow your main model</strong> — Unpinned jobs use the model configured at fire time; <code>pinned</code> locks one. (<a href="https://github.com/NousResearch/hermes-agent/pull/113679" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#113679</a>)</li> <li><strong>Self-healing schedules</strong> — A fire that never reached the model (e.g. after wake) re-runs after 5, 15 and 30 minutes, a provider "retry after" window parks the job quietly, and a slot missed during a restart fires once. (<a href="https://github.com/NousResearch/hermes-agent/pull/108731" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#108731</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/115843" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#115843</a>)</li> <li><strong>Quieter alerts</strong> — One alert per incident plus a reminder every <code>cron.failure_repeat_alert_hours</code>; <code>failure_deliver</code> reroutes or mutes failure notices; an agent can fail its run with <code>[CRON_FAILURE]</code>. (<a href="https://github.com/NousResearch/hermes-agent/pull/114807" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#114807</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/101373" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#101373</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/113155" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#113155</a>) — @victor-kyriazakos</li> <li><strong>New job options</strong> — <code>--paused</code> creates a job unarmed; <code>--interpreter</code> runs scripts on your own venv. (<a href="https://github.com/NousResearch/hermes-agent/pull/104984" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#104984</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/125392" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#125392</a>) — @M1racleShih</li> <li><strong>Profiles and delivery</strong> — A multiplexed gateway runs each profile's jobs with that profile's env and secrets; delivery needs positive evidence, output is secret-redacted everywhere, and late or satellite runs are labelled. (<a href="https://github.com/NousResearch/hermes-agent/pull/118027" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#118027</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/100908" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#100908</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/112830" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#112830</a>) — @yoniebans</li> </ul> <h3>Kanban</h3> <ul> <li><strong>Workers ride out provider trouble</strong> — Failed turns retry in place with context; rate limits or 5xx requeue instead of burning retries. (<a href="https://github.com/NousResearch/hermes-agent/pull/112318" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#112318</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/112500" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#112500</a>) — @EvgenyMettsler, @dmelkk-secondbrain</li> <li><strong>A board that explains itself</strong> — Cards show the worker's last output on failure; dispatch says why a card is held. (<a href="https://github.com/NousResearch/hermes-agent/pull/112618" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#112618</a>) — @chelsealong</li> <li><strong>Workflow and tooling</strong> — One workflow definition drives columns; workers get <code>kanban_schedule</code>; <code>kanban create --body-file</code>; Desktop follows gateway switches. (<a href="https://github.com/NousResearch/hermes-agent/pull/134340" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#134340</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/130455" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#130455</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/116791" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#116791</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/119054" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#119054</a>) — @benbarclay, @unsupportedpastels, @fangliquanflq</li> </ul> <h3>Delegation & multi-agent</h3> <ul> <li><strong>Live subagents, images and /stop</strong> <em>(see Highlights)</em>. (<a href="https://github.com/NousResearch/hermes-agent/pull/105593" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#105593</a>)</li> <li><strong>Fan-outs lose less</strong> — Failed children surface at once, an owner crash keeps finished work, children can hand processes to the parent, and per-task completions are opt-in. (<a href="https://github.com/NousResearch/hermes-agent/pull/103549" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#103549</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/116707" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#116707</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/105125" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#105125</a>)</li> <li><strong>Child routing</strong> — <code>delegation.fallback_providers</code> gives children their own chain; <code>child_timeout_seconds</code> measures inactivity. (<a href="https://github.com/NousResearch/hermes-agent/pull/105347" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#105347</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/117606" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#117606</a>) — @ayushnangia</li> <li><strong>/goal</strong> — Consistent on CLI, Desktop and messaging; the judge waits on subagents; <code>/goal pause for now</code> no longer overwrites the goal; gates run in the session workspace. (<a href="https://github.com/NousResearch/hermes-agent/pull/104833" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#104833</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/132251" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#132251</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/125453" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#125453</a>) — @jayzhou2309</li> </ul> <h2>🔒 Security, Privacy & Codebase</h2> <h3>Security & privacy</h3> <ul> <li><strong>v0.21.6 security fixes</strong> — dashboard sign-in hardening (spoofed <code>X-Forwarded-For</code>, size caps, loopback-only login codes); automatic git skips repo filter programs; the email allowlist resists display-name spoofing. (<a href="https://github.com/NousResearch/hermes-agent/pull/133367" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#133367</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/130685" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#130685</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/130661" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#130661</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/125212" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#125212</a>) — @unsupportedpastels, @kshitijk4poor, @Froraut, @jonpol01, @keeltrace</li> <li><strong>Secrets stay put</strong> — child processes don't inherit adapter/dashboard secrets; remote <code>execute_code</code> keeps its token out of argv; profile exports skip credential stores; keys never reach foreign hosts on refresh/fallback. (<a href="https://github.com/NousResearch/hermes-agent/pull/125755" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#125755</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/124262" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#124262</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/130525" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#130525</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/120299" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#120299</a>) — @kshitijk4poor, @jonpol01, @beardthelion, @leemove</li> <li><strong>Sharper redaction</strong> — debug share redacts before truncating; file reads and terminal output mask <code>.env</code>/config secrets; <code>hermes config get</code> masks unless <code>--raw</code>; memory hand-offs are scrubbed; plain <code>token=</code> lines stay visible. (<a href="https://github.com/NousResearch/hermes-agent/pull/132270" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#132270</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/111422" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#111422</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/111341" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#111341</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/134429" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#134429</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/100564" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#100564</a>) — @kshitijk4poor, @Froraut, @shehjaddev, @webtecnica, @aniruddhaadak80, @fangliquanflq</li> <li><strong>Owner-only files at rest</strong> — credentials, <code>state.db</code>, snapshots, browser profiles, media caches, any umask. (<a href="https://github.com/NousResearch/hermes-agent/pull/109509" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#109509</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/127229" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#127229</a>) — @JoaoMarcos44, @rohitsabu, @OutThisLife</li> <li><strong>Wider guards</strong> — more fetches pass the SSRF guard (<code>security.fake_ip_ranges</code> for fake-ip proxies); cloud-metadata fetches, zsh/dash pipe-to-shell and <code>deno eval</code> need approval; <code>approvals.deny</code> works in sandboxes; built-in rules replace bundled tirith. (<a href="https://github.com/NousResearch/hermes-agent/pull/114887" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#114887</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/113156" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#113156</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/116726" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#116726</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/103649" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#103649</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/133832" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#133832</a>) — @beardthelion, @AYin-Z, @fangliquanflq</li> <li><strong>Holes closed</strong> — the MCP OAuth callback stops reflecting HTML; webhook, SMS and WhatsApp Cloud inbound reject blank signing secrets. (<a href="https://github.com/NousResearch/hermes-agent/pull/92612" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#92612</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/133257" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#133257</a>) — @memosr, @ahadvice</li> <li><strong>Opt-in shared metrics</strong> — daily usage stats reach Nous only with consent; both <code>telemetry.shared_metrics</code> switches default off, each profile asks once, Enter = "No thanks". (<a href="https://github.com/NousResearch/hermes-agent/pull/95278" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#95278</a>) — @benbarclay</li> </ul> <h3>Codebase & performance</h3> <ul> <li><strong>Leaner prompts and tools</strong> — ~2.1k fewer prompt tokens a request, on-demand vault tools, one-round-trip file probes, <code>hermes -w</code> no longer repacks each launch. (<a href="https://github.com/NousResearch/hermes-agent/pull/137084" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#137084</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/101599" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#101599</a>) — @yaojiejia</li> </ul> <h3>Other</h3> <ul> <li><strong>Safer backups</strong> — <code>hermes backup</code> keeps the newest 3, flags incomplete archives; <code>hermes import</code> refuses damaged ones. (<a href="https://github.com/NousResearch/hermes-agent/pull/106455" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#106455</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/121498" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#121498</a>) — @buihongduc132, @kshitijk4poor</li> <li><strong>Also</strong> — <code>KEY_2</code>… env vars join credential pools; one-screen <code>hermes status</code>; opt-in <code>display.suppress_warning_notifications</code>; Desktop Bots roster sections; only Hermes' own node/npm/uv are used; Xiaomi MiMo v2.6. (<a href="https://github.com/NousResearch/hermes-agent/pull/112390" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#112390</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/131034" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#131034</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/114370" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#114370</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/101290" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#101290</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/125589" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#125589</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/118502" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#118502</a>) — @PhoeniXAbhisheK, @victor-kyriazakos, @fortun8te, @rob-maron</li> <li><strong>For contributors</strong> — CODEOWNERS replaces the label gate; E2E (incl. native Windows) runs only on release builds; stable releases skip macOS Intel/Termux by default. (<a href="https://github.com/NousResearch/hermes-agent/pull/131726" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#131726</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/136603" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#136603</a>) — @ethernet8023</li> </ul> <h2>🐛 Notable Bug Fixes</h2> <p><strong>Onboarding, connectors & local models</strong></p> <ul> <li>Managed llama-server no longer crashes on Windows with 0xC0000374 and no longer inherits your credentials (<a href="https://github.com/NousResearch/hermes-agent/pull/116923" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#116923</a>)</li> <li>Windows local-model servers are contained and orphans recovered safely; two backends booting together start one router (<a href="https://github.com/NousResearch/hermes-agent/pull/111038" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#111038</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/117600" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#117600</a> — @jquesnelle, @chelsealong)</li> </ul> <p><strong>Install, update & packaging</strong></p> <ul> <li><span class="cl-badge cl-badge-ci">CI</span>Docker agents no longer lose their built-in API server, messaging and MCP dependencies after a restart. (<a href="https://github.com/NousResearch/hermes-agent/pull/135726" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#135726</a> — @unsupportedpastels)</li> <li>A <code>hermes update</code> killed mid-pull no longer breaks every entry point. (<a href="https://github.com/NousResearch/hermes-agent/pull/120339" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#120339</a>)</li> </ul> <p><strong>Providers & models</strong></p> <ul> <li>A rate-limited Claude model no longer benches the whole credential for every other Claude model. (<a href="https://github.com/NousResearch/hermes-agent/pull/113171" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#113171</a> — @KoNit-K)</li> <li>Codex app-server sessions now get SOUL.md and the Hermes system prompt. (<a href="https://github.com/NousResearch/hermes-agent/pull/115759" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#115759</a> — @JonthanaHanh, @ooiuuii, @Momentum96)</li> </ul> <p><strong>Agent loop, sessions & memory</strong></p> <ul> <li>A chat whose session row was deleted recreates it instead of silently dropping every later turn (<a href="https://github.com/NousResearch/hermes-agent/pull/124117" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#124117</a> — @kshitijk4poor, @strzhao)</li> <li>Messages flushed at gateway shutdown are recovered into their session (<a href="https://github.com/NousResearch/hermes-agent/pull/114225" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#114225</a> — @kshitijk4poor, @spfcraze, @yoyodine-industries, @briandevans)</li> </ul> <p><strong>Gateway & platforms</strong></p> <ul> <li>Telegram no longer stalls under flood control or stays connected but deaf on a wedged dispatcher. (<a href="https://github.com/NousResearch/hermes-agent/pull/116987" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#116987</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/132162" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#132162</a> — @kshitijk4poor)</li> <li>Slack native streaming stops posting answers twice. (<a href="https://github.com/NousResearch/hermes-agent/pull/121762" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#121762</a> — @kshitijk4poor, @ms-elbdev)</li> </ul> <p><strong>Desktop</strong></p> <ul> <li>Replies no longer show twice, garble or vanish after resume, steer, a chat switch or reconnect (<a href="https://github.com/NousResearch/hermes-agent/pull/118890" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#118890</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/120290" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#120290</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/121061" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#121061</a> — @BearHuddleston)</li> <li>Pressing Enter answers the clarify card on screen, not a background chat's (<a href="https://github.com/NousResearch/hermes-agent/pull/76472" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#76472</a> — @briandevans)</li> <li>Duplicate or vanishing replies after refresh, session switch or reused tool-call ids (<a href="https://github.com/NousResearch/hermes-agent/pull/131758" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#131758</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/128003" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#128003</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/130553" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#130553</a> — @OutThisLife, @alt-glitch, @kshitijk4poor)</li> <li>"This device" backends no longer idle-killed after an hour; new chats run on the gateway you picked (<a href="https://github.com/NousResearch/hermes-agent/pull/134942" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#134942</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/132538" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#132538</a> — @unsupportedpastels)</li> </ul> <p><strong>CLI, TUI & dashboard</strong></p> <ul> <li>Dashboard saves no longer overwrite secrets with their masked preview (<a href="https://github.com/NousResearch/hermes-agent/pull/121250" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#121250</a> — @kshitijk4poor)</li> <li>Resizing the CLI no longer re-appends the conversation to scrollback (<a href="https://github.com/NousResearch/hermes-agent/pull/120321" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#120321</a> — @Jackal991)</li> </ul> <p><strong>Tools, MCP & browser</strong></p> <ul> <li>A parked OAuth MCP server no longer replays its dead refresh token on every new session, a storm that could trip a rate-limit ban (<a href="https://github.com/NousResearch/hermes-agent/pull/137502" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#137502</a>).</li> <li><code>computer_use</code> element clicks work again on cua-driver 0.21+; only pixel clicks worked before (<a href="https://github.com/NousResearch/hermes-agent/pull/111313" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#111313</a> — @jeffjhunter).</li> </ul> <p><strong>Plugins & skills</strong></p> <ul> <li><code>hermes plugins list</code> and the dashboard Plugins page make at most one live catalog request instead of waiting through one timeout per installed plugin. (<a href="https://github.com/NousResearch/hermes-agent/pull/114811" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#114811</a>)</li> <li>On treeless source checkouts the plugin inventory no longer takes 40–80 seconds, which was longer than the Desktop request timeout. (<a href="https://github.com/NousResearch/hermes-agent/pull/125716" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#125716</a> — @liuhao1024)</li> <li>Enabling a plugin from Desktop, the TUI or the dashboard no longer strips the core tools. (<a href="https://github.com/NousResearch/hermes-agent/pull/135048" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#135048</a>)</li> <li>A platform whose plugin failed to load at startup is flagged in <code>hermes status</code> and comes back without a restart. (<a href="https://github.com/NousResearch/hermes-agent/pull/130613" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#130613</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/133289" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#133289</a>) — @kshitijk4poor</li> </ul> <p><strong>Cron, Kanban & delegation</strong></p> <ul> <li>Gateway <code>/goal</code> gate add no longer lets a non-admin reach the host shell (<a href="https://github.com/NousResearch/hermes-agent/pull/101499" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#101499</a>)</li> <li>Automatic git in Kanban, worktree cleanup and subagents no longer runs a cloned repo's hooks or filters (<a href="https://github.com/NousResearch/hermes-agent/pull/130661" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#130661</a>)</li> </ul> <p><strong>Security & misc</strong></p> <ul> <li>Qwen models behind Alibaba's content guardrail end the turn with the safety notice instead of retrying for four minutes. (<a href="https://github.com/NousResearch/hermes-agent/pull/136425" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#136425</a>)</li> <li>Detected password managers can be switched on from Settings again; the toggle was a no-op. (<a href="https://github.com/NousResearch/hermes-agent/pull/109558" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#109558</a>) — @kokhlo</li> </ul> <h2>↩️ Reverted in this window (not shipping)</h2> <ul> <li><strong>Collective Wisdom V1</strong> (an in-tree org skill marketplace) was merged and then removed; there is no wisdom code in this release. (<a href="https://github.com/NousResearch/hermes-agent/pull/94266" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#94266</a> — @shannonsands)</li> <li><strong>The Desktop card-style Skills/Plugins catalog browser</strong> and its website "Install in Hermes" links were reverted three times; Desktop browses capabilities as list tabs with the embedded catalog picker. (<a href="https://github.com/NousResearch/hermes-agent/pull/119381" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#119381</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/131252" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#131252</a>)</li> <li><strong>Approval and clarify prompts that wait until answered</strong> were reverted; <code>approvals.timeout</code> still applies. (<a href="https://github.com/NousResearch/hermes-agent/pull/130167" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#130167</a>)</li> <li><strong>Parallel group-chat rounds</strong> in Bot Mode were reverted; rooms run serially. (<a href="https://github.com/NousResearch/hermes-agent/pull/101112" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#101112</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/101139" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#101139</a>)</li> <li><strong>Full isolation of named profiles from the root <code>auth.json</code></strong> was reverted after Desktop bots lost their shared login; profiles keep their own login when they have one. (<a href="https://github.com/NousResearch/hermes-agent/pull/113425" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#113425</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/118373" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#118373</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/134574" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#134574</a>)</li> <li><strong><code>hermes cron resnap</code></strong> and creation-time model snapshots were replaced by cron following your main model (<code>pinned</code> locks a job to one model). (<a href="https://github.com/NousResearch/hermes-agent/pull/106496" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#106496</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/113679" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#113679</a>)</li> <li><strong>The Classic default skin palette</strong> and <strong>a tirith catalog plugin</strong> were reverted. (<a href="https://github.com/NousResearch/hermes-agent/pull/130015" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#130015</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/133838" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#133838</a>)</li> </ul> <h2>👥 Contributors</h2> <h3>Core Team (Nous Research)</h3> <ul> <li><strong>@teknium1</strong> — release direction, salvage campaigns across every subsystem, and ~2,800 merged PRs</li> <li><strong>@kshitijk4poor</strong> (806 PRs) — providers and reasoning replay, compaction, state.db, free tier, multiplex parity, and hundreds of salvages</li> <li><strong>@OutThisLife</strong> (679 PRs) — the desktop app: model picker, Settings ▸ Plugins, workspace, Bot Mode UI, connector cards</li> <li><strong>@alt-glitch</strong> (175 PRs) — first-run onboarding, the Nous free tier, connectors, tool search, machine facts</li> <li><strong>@austinpickett</strong> (160 PRs) — dashboard chat, desktop SSH/remote, Bot Mode and recovery fixes</li> <li><strong>@ethernet8023</strong> (96 PRs) — the unified package manager, signed desktop bundles, stable release pipeline, local-model engines</li> <li><strong>@unsupportedpastels</strong> (60 PRs) — CLI/TUI interrupt and admission handling, cron reliability, Discord voice, Docker extras</li> <li><strong>@jquesnelle</strong> (22 PRs) — local models: the managed llama.cpp runtime, recommendations and engine pins</li> <li><strong>@helix4u</strong> (20 PRs) — desktop interrupt, terminal and session fixes, installer ordering</li> <li><strong>@benbarclay</strong>, <strong>@victor-kyriazakos</strong>, <strong>@rewbs</strong>, <strong>@yoniebans</strong>, <strong>@rob-maron</strong>, <strong>@c2h5oh</strong>, <strong>@notwitcheer</strong>, <strong>@shannonsands</strong> — relay and dashboard auth, Slack and Bedrock, managed search and connector tokens, install E2E, model catalogs, CI and linting, docs</li> </ul> <h3>Top Community Contributors (by merged PR count)</h3> <ul> <li><strong>@Adolanium</strong> (44 PRs) — performance fixes, the in-app browser comment tool, session import, and a run of catalog plugins</li> <li><strong>@apoapostolov</strong> (29), <strong>@TakeshiTGAL</strong> (22), <strong>@100yenadmin</strong> (19), <strong>@olric3015</strong> (18), <strong>@aydnOktay</strong> (12), <strong>@cygnostik</strong> (12), <strong>@anpicasso</strong> (12), <strong>@itpartypattaya</strong> (11), <strong>@jacobhausler</strong> (9) — the plugin catalog's biggest authors: reasoning and composer tools, Japanese government data, plan mode and boardstate, stream-speed and ledgers, desk tools, reMarkable and desktop realms, Kiro and approvals, hermes-dreaming and holographic, workflows and Beads</li> <li><strong>@Finn763</strong> (14), <strong>@liuhao1024</strong> (13), <strong>@xxxigm</strong> (12), <strong>@dskwe</strong> (10), <strong>@KoNit-K</strong> (8), <strong>@chelsealong</strong> (8), <strong>@686f6c61</strong> (7) — desktop, Windows, SSH and Linux reliability, local-runtime memory pricing, Bot Screen paste, model catalog fixes</li> <li><strong>@jonpol01</strong> (13 PRs) — compaction correctness and exact-bytes file patching</li> </ul> <h3>All Contributors</h3> <p>Thank you to every one of the ~2,520 people who contributed code, co-authored fixes, or had their work salvaged into this release:</p> <p>@0301chris @08085 @0bull @0disoft @0genlab @0x7s0lt1 @0xalydev @0xble @0xbyt4 @0xdany @0xDevNinja @0xGr1mm @0xharryriddle @0xmosta @0xNyk @0xWhiteMage @0z1-ghb @100yenadmin @1052326311 @10ishq @122393594-ty @123456hyu @123mikeyd @1960697431 @1RB @2025hcsmile2010-hue @29206394 @333Alden333 @33hodl @3DPrintPioneers @3L0935 @3ssiri @4adwentures @4dlt @52216165 @5uck1ess @686f6c61 @69k4xmdfm2-blip @6ylqq @895252509 @a-yeyang @a1398394385 @a692570 @aadilghani1 @aaronlab @aashizpoudel @Abd0r @abderbj @abhibansal-sg @AbhijatSaxena @Abnertheforeman @abualnassr @Abuarchiv @abundantbeing @acarsondave @acedatacloud-dev @acjsec @acsezen @actualrat1984 @adamcap926 @adamking77 @adamkrawczyk @adammatski1972 @AdamPlatin123 @adanaleycio @adarshdigievo @adavyas @addamsE @addelh @adecubed @adikpb @adleapnet @adolanium @AdrianBinDC @adriansotomora @adurham @adybag14-cyber @aean0x @aeonsong @aerbaser @afifai @afourniernv @afurm @Agantila @agarg21 @agentdynamic @agentlinker @aglowinthefield @agt-user @ahadvice @ahamSel @ahisblessed @ahmed-3li @AhmetArif0 @Ahmett101 @ahrazzle @ahtishamdilawar @ai-ag2026 @AIalliAI @aieng-abdullah @aimable100 @Aio777 @airo7 @AJ @ajaynomics @ajbmachon @ajensenwaud @ajspig @ajzrva-sys @ak2k @AKAZIK-py @akivavh @Akloenx123 @akshan-main @akugone @Al3xand3r1987 @alaamohanad169-ship-it @AlanBurningsuit @alanfwilliams @alanwilhelm @albeight @albert748 @albertodepaola @AlchemistChaos @aldoeliacim @aleesposito85 @alelpoan @alessandrolamberti @alex-heritier @alex107ivanov @AlexanderBFoley @AlexanderPrendota @alexandreroumieu-codeapprentice @AlexFucuson9 @AlexGabbia @alexgunsberg @AlexMnrs @AlexTu2 @alexwill87 @AlexxRussell @alfred-amanda @alfred-smith-0 @aliasocracy @Alicorn-Max-S @aliilhami @alimbaydoun @alireza78a @alissongalindo @AllenRobinHubert @alloevil @AlphaPerseii3000 @alrcatraz @AlsayedHoota @alt-glitch @AltenLi @alvarobiano @alvarosanchez @am423 @aman-merchant @amanning3390 @amansk @ambition0802 @amekala @ameobius @amethystani @AMIK-coorporations @amir-ag @amitcse @aml1973 @an420eth @anablancovicente @analista @anatolijlaptev1991-ctrl @AndreasHiltner @andreausderhood @andrewhomeyer @andrewhosf @andrewkangkr @andrewmadson-pplx @AndrewMoryakov @andrexibiza @Andy @andynguyendk @andyst-dev @andyylin @angel12 @angelos @anhtahaylove @aniruddhaadak80 @ankinow @AnnasMazhar @annguyenNous @anombyte93 @anoopmehendale-cue @anotherchu @anpicasso @anuiit @anuvratrastogi @ap08960695 @AP3X-Dev @apexscaleai @apoapostolov @appletechie @aqilaziz @arasovic @arcabotai @ArcanePivot @arceus77-7 @Archerouyang @ArcherQAQ @ArecaNon @ARegalado1 @Arguably1341 @arimu1 @arlai-mk @armandokun @arminanton @aron-intframe @arrry-hydraDB @arrufat @ascetx @asdlem @asheriif @ashishpatel26 @ashmoonori-afk @AshuJoshi @asimons81 @askclaw-vesper @aslater3 @asorry75 @aspire488 @AsterJisu @astraltrekkin @AStrnbrg @atbrace @atmaksri @atostivint @Atroci @ats3v @atul-trycoral @Aum08Desai @aurel282 @aurorabotticus-svg @auroracapital @austinlaw076 @austinpickett @Automata-intelligentsia @Avery @awizemann @Awshesh12 @AxDSan @axiom-agent-ai @aydnOktay @AYin-Z @ayushmanpadhi @ayushnangia @AzurePii @B0on @b13kjack @b2089766906-droid @baau @baauzi @babatorik @bablobanov @babyblueviper1 @back1992 @Backroads4Me @badiyee85 @badkangaroo @bakhtiersizhaev @baleian @banditburai @baofuen @Baophan00 @Bardioc1977 @barnicskolaci @bartcollet @Bartok9 @basilnas @BatataBF @bayrakdarerdem @BB-light @bb873 @bbasketballer75 @bblicke1 @Beandon13 @bear0328 @beardthelion @BearHuddleston @bedirhancode @beibi9966 @Belaquaa @benawad @benbarclay @benbenlijie @benegessarit @benjamin-rousseau-shift @benjaminbrumbaugh @BenKalsky @bennybuoy @bennyhodl @bennytimz @benperry6 @beplee @Bergmann89 @bergusdz @berkantay @berthelius @bgrablin @BGwill-OUTLOOK @bheji07 @bighamx @BigKelLearns @Bihruze @bill3wits @binhnt92 @bionicbutterfly13 @Biotrioo @bird @bixycler @BkashJEE @BlackishGreen33 @BlakeB254 @blakehermes9 @bloodcarter @BlueBirdBack @bluefateludi @bmcfiv @bmtrnavsky @bo.fu @bobaba76 @bogerman1 @BonesGit @Bonorinoa @BoredSexyJordan @bounce12340 @BowmanStephen @bradestes @Brammiebram @brantzh6 @bravohenry @brendanjryan @BrethofAI @brian717 @briancaffey @briandevans @BrianFranco @briepala @BrierAinz @Brixyy @BROCCOLO1D @BrokeSkill @brucexu-eth @BrunoBza @bryanneva @bsdnn @btorresgil @buddhaholic420 @buihongduc132 @BullishMomentum56 @bwoliveira @byjaps @byungsker @C-Est-Dept @c-pompa @c0d1ngHUB @c0debyeric @c0mrade @c2h5oh @c3115644151 @ca-shrimp @cadezhou @Caelier @caentzminger @callsamik @calvinnwq @cameronbergh @camilb @capthvnsen @carlosapgomes @carlotestor @carrion256 @Carry00 @caseyanthony @catapreta @caya8205-2 @ccbbccbb @ccook1963 @cdanis @cdb-lumen @cdbartholomew @cdepuy @cdnsteve @ce-dric @cedanoagent @certaindaniel @cervantesh @CES4751 @Cesar-Azeredo @cez0060405 @cg2aigc @chadhouser @Chadmc9889 @chaithanyak42 @ChanPark03 @charan-rathore @CharlesMcquade @Charlesmpc @CharlieKerfoot @CharZhou @ChasLui @chelsealong @chenfeijiang95-ui @chengoak @chenhm @chenlichao @chenzeyan54-commits @cherrish333013 @cherryb16 @Chinmayrawat15 @chntllh @choaticpixels @Christopher-Schulze @christopherrobin88 @chrisworksai @chrisyoung2005 @chuenlye @chugiacan @chukirk-svg @Chukwuebuka-2003 @churnast @ciabata-git @CipherFrame @cipry0200 @CIRWEL @cj52973 @Ckarey007 @ckomma @ckorhonen @clarkvines @claudioorjunior @claudiumio @claudlos @clayduncan @ClintonEmok @Clippy @Cloeille @cloim @Clubheader @clyu168 @cmcejas @cmyyy @cnfi @cnkang @codebuff-team @codeJRV @codeshipsingh @codexbt @Cody292 @Codyinked @coe0718 @cola-runner @CoLaOnline @ColdSlither @ColDSnit @ColrWei @ComicBit @Commander @connns @Contentment003111 @convernaticspeter @Cortana @CortonKwok-GGD @cosin2077 @Cossackx @cotghw @Cr4ckMe @CraigRichardsonRMPM @crazyief @crazywriter1 @crdesign8 @creeklava-svg @cresslank @criptogus @cruzanstx @cruzlxyz @CryptoByz @CryptoDombili @cryptoyasenka @cspears32 @csreyes @cswrld-net @ctaylor86 @cucurigoo @CupaJ12 @cuppett @cutepawss @cuuush @cuyua9 @cxxCoolStar @Cyber-Yichen @cybertecla @cygnostik @cypres0099 @cyrkstudios @d31tcjg @d8joseph @Da7-Tech @daailouivan @dacheah @Dadmin88 @daedalus-opus @dafka007 @dagardner-nv @Dagulf795 @dajiaohuang @dalebetz @dalzio @DanBennettUK @dandacompany @DaneelV3 @Danielmuzology @daniil-grois @danilofalcao @dankkush @danrudy33 @danspicytaco @dante32683 @daresan @dariorapisardi @DarRahman @dasgltd @datanerdie @DatTheMaster @David-0x221Eight @david-bowiegxw @davidgut1982 @davidkarban @DavidMetcalfe @davidneyravyr @davidvv @davidxyuan @DaxLee9988 @dborodchuk @dborosev @dchenk @deadczarvc @Deadtrix21 @deankerr @deas @deathxdefeat @DebadityaHait @Decent9967 @DECK6 @decofe @DECRUX9812 @deinte @delacaola @delltrak @deniqlab @DenisAraujo68 @denisqq @derekm @DeseretSaint @despotak @DESXIE @DevAgarwal2 @devarticle @developersdigest @DevEverything01 @devorun @devsart95 @devseunggwan @DevvGwardo @devwdave @Dezooyi @dgkaaks @dgpcboy @dhabibi @DhivinX @dhruv-kejriwal-mccain @Dhruv7201 @dhruvkej9 @Diaspar4u @didida9527 @didodim @diegomarino @dieutx @diffen77 @Digitally-Challenged @dillweed @dimitrysuen @dirtyren @djbclark @djennewe @djmango @djsanchezsuarez @djstunami @dkbjornn @dlcsouza @dlgrv @dlkakbs @dlshumway @dmabry @dmahan93 @dmater01 @dmelkk-secondbrain @dmetcalfe @dmf01614-source @dmspark @dmyou @DoGMaTiiC @DojoGenesis @Dolverin @domenicomassafra @DomGrieco @dominikamann @dominiquevidja @doncazper @dongxu0413 @doniocode @donovan-yohan @donramon77 @DonShelly @doojiang @doresa0 @doryani-ai @dot @Doud-FR @dparikh79 @dpersek @dpiers1 @dplush @DragonLi-Mi @DragonnZhang @draix @dreamfarer-space @DreamyMoonMouse @dredozubov @DresvyanskiyDenis @drew-dot-com @drewTuzson @Drexuxux @drichar @drkpxl @dromai @dschnurbusch @dskwe @dsr-restyn @Dusk1e @dusterbloom @duu261 @dwb1991 @dyiapanis @dynamite-bud @dzianisv @ea-s21 @Eapwrk @eason2026 @easyvibecoding @eazye19 @echo931 @echohn @EdderTalmor @eddiewang @Edizzier @edosulai @edrethardo @eduardo @EdwardIrby @efe-arv @Efistoffeles @egerev @egilewski @ehz0ah @eisene @Eji4h @ekkoitac @el-analista @elashera @elbukott1 @eliasburlison @elisam0 @ellannjohnson @elmatadorgh @eloklam @eloktev @EloquentBrush0x @elphamale @Elshayib @elvin-du @emadalsaba @eman062000 @EmanueleCornaggia @embwl0x @EmelyanenkoK @eminboydak @eminogrande @emirsaffar-collab @emonty @emozilla @EmpireOperating @EMT5320 @Enchanted0911 @ennheng @Enough1122 @entropidelic @entropy-0x @enwaiax @enzo-adami @eranbes @erenkarakus @erhnysr @eric-senyao @ericmaddox @ErnestHysa @erosika @esketids @ether-btc @ethernet8023 @etrisnanto @euisuh @evan @evan-bradford @EvanZhu0721 @eventh0riz0n @everm1nd @Everson-s8 @EvgenyMettsler @EvilDrag0n @EvilRan @Ex8-ca @ExitMaster @Expri-commits @eyeonall @eynaudg @f3rs3n @F4TB0Yz @fabiantax @fabioaito @fabiomotta0311 @fabiosiqueira @fahdad @faikwo @faisfamilytravel @FalconOrtiz @falkoro @fancyboi999 @fangliquanflq @FASTCHIP @fastfinge @Fatmylin @fatwang2 @fazerluga-creator @fcarucci @fcavalcantirj @FeiyouG @felixdae @Felixkw12 @Feranmi10 @ferminquant @fernandezbaptiste @Fernandrewm @FestoneX @FEUAZUR @finn763 @firefly @FirmamentalSpring @FlashWayne @FldBudin @flow-digital-ny @fluxkapacitor @flyer103 @flyingdoubleG @flyinhigh @fmercurio @foma @foma-agent @foras910521-lab @forrestzhang107 @fortona-space @fortun8te @forumevi @forztf @fotedev @foxion37 @francip @franco314 @frankiethull @frankmendes1979 @fred0m @frendo @frizikk @frohsinnllc @Froraut @Frowtek @frozen @fsaad1984 @ft-ioxcs @fujinice @FunJim @funkyotc @Futahua @g3org3yo @GabboAlarcon @gabbyong @gabrielpaesland @gamewocao @Ganesh0690 @gaoanze888 @garadice @gas @Gateton @GauravPatil2515 @gauravsaxena1997 @gavasques @Gavin-Qiao @gbarany @gchablemeneses-web @geniok1980 @geoffreybutler94 @georgeatparallel @georgejieh @gercamjr @gfriesen1 @ggascoigne @ggoldani @gh-dispatch @giggling-ginger @gilfoyle @girayk @Git-on-my-level @gitabtion @gitcommit90 @GitmanIII @giwaov @gkd2323c @glasserai @glaw1300 @glesperance @glitchbunny0 @globalvet2025 @gls774 @Glucksberg @gmoranxyz @gnanam1990 @gnanirahulnutakki @GoBeromsu @godlin-gh @GodsBoy @Goitonthefloor @gokay-ai @gokhanyildirimlar @goku94123 @GoldenLoaf24h @gongyi @gonzoblasco @googio @Gosuj @GottZ @gqwesleywang @Grey0202 @GrgaPalcic @Gridzilla @grimmjoww578 @grinco @GroveMinting @gsy324 @GTHell @guanla-zz @GuardianZ71 @guberm @Guerilla-ops @gumclaw @gustavosmendes @gustbr @gutslabs @gvago @h4ck200711 @haileymarshall @HaisamAbbas @haizaar @Halldrix @Han @hanamizuki @hansnow @hanyu1212 @HanYunChenLuo @hanzckernel @happy5318 @hardwork9047 @hariNEzuMI928 @harjothkhara @harrisonmedmedmetrics @harrylabsj @harryvgiunta @Harshkamdar67 @harshmoney123 @hassan-kamel @hassanhaidry @haydster7 @hbizi @hcnimi @hdy2001 @HearthCore @heathley @hehehe0803 @hejuntt1014 @helingjun @helix4u @HeLLGURD @hellofrommorgan @hellohanchen @hengm3467 @HenkDz @Henry-GGS @Hermes @Hermsi1337 @hernanda-git @het0814 @HexLab98 @Heybinshao @HeyClos @heyf @heyhudson @hhhonzik @HiddenPuppy @higgs1729 @himanusia @Himess @hinablue @Hinotoi-agent @Hiren @holny @HoneyTyagii @honor2030 @Hotragn @houko @hrnbld @hsy5571616 @hteo1337 @huangxun375-stack @huangyoje @huanshan5195 @hueilau @huklaa @HumphreySun98 @huntermonk @HwangJohn @Hygaard @Hypn0sis @i-Hun @iacker @iainlane @iamagenius00 @iamfoz @iamlukethedev @iamwongeeeee @iap @IAvecilla @ibhagwan @ibm2024 @iborazzi @ifastcc @ifrederico @igparkernz-coder @ikelvingo @ildunari @Imagineer99 @imgali @Imgaojp @imgyf @imzacksong @InB4DevOps @inchargeautomation-lab @indigokarasu @indranilbanerjee @infinitycrew39 @injaneity @insecurejezza @intelac @IntrepidBytes @ipriyaaanshu @IRONICBo @iRonin @irresi @isaachuangGMICLOUD @isair @ishangodawatta @ishanparihar @ishardo @isheng-eqi @ishuowang @ismoilh @isoenthusiast @israellot @IT-dreamer @italodsfernandes @itnkr @itpartypattaya @itsflownium @itskaism @iveywest @Ivyleaguelawyer @izumi0uu @Izzy-Gottz @j-nolan @J0hnLawMississippi @Jaaneek @JabberELF @jacdevos @Jack @Jackal991 @jackey8616 @JackHunzicker @jackjin1997 @JackLee992 @JackTheGit @jackulau @jacob3712 @jacobhausler @Jah-yee @jahazielhernandezbaubap @jahfaliabdulrahman-dev @Jaiminp007 @jakewvincent @jakobbjelver @jakobdylanc @james47kjv @jangomango76 @JanHranicky @janviernine @jasm001 @jasonHav @jasonQin6 @jasonwu-ai @jatingodnani @jayzhou2309 @jbbottoms @jcjc81 @jcorrego @jcperdomoybarra @JE4NVRG @jeeves-assistant @Jeffgithub0029 @jeffjhunter @jeffrobodie-glitch @jefuriiij @JeliTron @jerilynzheng @jerrygooch @jerryhjones @JerryLiu369 @jervaise @jethac @jexbow @JezzaHehn @jflemieux @jfuenmayor @JiaDe-Wu @Jiahui-Gu @jiangkoumo @jiangtaoliu-source @jimjsong @JimLiu @jimmyjohansson84 @jinglun010-cpu @jinlingzi-cmd @jinliyl @JinUltimate1995 @JithendraNara @JiuYue0820 @jkobject @jmiguellucas @jmmaloney4 @jnbn @jneeee @JoaoMarcos44 @joe-rodgers @joe050860 @joelbrilliant @JoelJJohnson @JoelMTaylor @Joeywrz @johnkattenhorn @Johnny-xuan @johnnykor82 @johnsonAyo @jollyroger1480 @jon-nielsen @jonameijers @JonathanFeller @jondgilbert @jonh-dev @jonotonfoto @jonpol01 @JonthanaHanh @JonZal @jooray @jordan-thirkle @jordimas @joseph-mccarey-architect @josephsellers @JoshSnider @joshuadow @journeydan @JPeetz @jplew @jrcrittenden @jroest @jslee-gif @jtstothard @JuaniLezcano @JulianCruzet @julio-cloudvisor @juliorobertoalvarez @Junass1 @jupiterx0910 @justascesnauskas @justcarlosm @justinsharpe @JustinUssuri @Justlrnal4 @jwilson411 @jxfjosh @kagura-agent @Kailigithub @kaiomp @kaishi00 @kalice-vi @kallidean @kama-dev @Kame696 @KarateWilly @karmeleon @Kartik @kaveone @kavioavio @kawanoii @KCAYAAI @kchuang1015 @KeaneYan @keanhartling @keeltrace @keenvc @keepcalmqqf @keepConcentration @keiranhaax @kelsia14 @kelvmg @kendrickkester @Kenmege @kentimsit @keppy @kernel-t1 @kerrz2020 @Kerubi-5 @Kesuek @Kev-fs @KevinMeinon @Kewe63 @KeyArgo @keyuyuan @kfchow-ai @KIAgent01 @kidrauhl123 @kilhyeonjun @Kiloris @Kimchi @Kingdomwarrior23 @kingpin44 @kingrubic @Kinkoolino-Hermes @KiraKatana @kirkins @KiruyaMomochi @KIvanow @kiwipaulrob @kiwiwyl @kiyo-e @kleros109 @KnowBotDev @kohjunhao @kohoj @kokhlo @Kolektori @koltyj @Komzpa @KoNit-K @konsisumer @Korkyzer @kosazoltan @kouyichi @krapwoo @kriscolab @kristianvast @krunkosaurus @Kryptonator @kshitijk4poor @kstawiski @ksze @kuangmi-bit @kuehnberger @kufufu9 @kumaxs @kuntao2011 @kvnloo @kweiner @kyan12 @kylecap9 @kyoto-aircon @kyssta-exe @kyzcreig @l37525778-coder @L4XB @labyrinth-analytics @Lakescape @lakshyaag-tavily @lanyusea @LaPhilosophie @LarHope @larrypang @lars-hagen @laulopezreal @LavyaTandel @lawcheck @lawyer112 @lazyants @Lazzdaycod @leakedd @Leathal1 @leavedrop @Lee-Si-Yoon @leegunwoo98 @leemove @leepoweii @leewaiho @Legion-is-life @LehaoLin @Lei-k @lekt9 @leomcamilo @leon7609 @LeonardoLGDS @LeonSGP43 @leoprodz @lepetitprince716-prog @lepkov @lesterlxt @lesterppo @lesyuk @levest28 @lEWFkRAD @lewis4x4 @lexgenius @lfaus @lgy1027 @li-lizhe @liamsmith86 @libre-7 @lidises @lifeFedorovAlexey @LifeJiggy @lightcloud00 @lightx @lihengming @lijinxiao1982 @LikelyLucid @lilShawtty-byte @linfeng961 @LINGJIAKUN @linxule @Lion-Leporidae @LionGateOS @lipebez @LironTTG @LisandroNahuelH @littlewwwhite @liuhao1024 @Liuzikaii @liuzinann @liyoungc @lkevincc0 @llbn @lll @locker95 @lofibrainwav @LoicHmh @Lokee86 @Lokeshm24 @loongfay @loongzhao @loqimean @LordMelkor @lorencato23 @lorenzozanee @lost9999 @Louis-Anson @louiswalsh @loulanyue @LovePlayCode @loveRhythm1990 @Lqg97 @lsshawn @luandiasrj @lubosxyz @Lubrsy706 @lucasfdale @lucaskvasirr @LucidPaths @luckystar2026 @lucvan @luinbytes @lukefx @Luna161 @luojiesi @LuwenOosten @luxiaolu4827 @luxles @luyao618 @lvabarajithan @LVT382009 @ly6751 @lyswty @Lyti4 @lzmuhioin @m1k3s0 @M1racleShih @Mabolla @macd2 @Machbub @MacroAnarchy @Madkyotiger @madpower2000 @Maero47 @Magaav @magicbluesmoke @MaheshBhushan @MaheshtheDev @mahgoub @maksir @malaiwah @manateelazycat @ManniBr @mannnrachman @manny3 @manuelschipper @maoleidiss @mapu-og @Marc @marcolivierlavoie @MarcosAlves90 @Marcus112-CS @marcusds @mario841859784 @mariomondev @Markgatcha @marko-niskala @markoub @MarkTro1969 @MarkVLK @martinp09 @martinramos002-bot @MartyLake @mashenchina-max @Mat-London @matantsevs @matebenyovszky @math0r-be @mathiashuque @MatthewHines @MattMaximo @MaxFreedomPollard @maximalang @MaximCrabbe @maximilliangrand @MaxKerkula @maxmilian @maxpetrusenko @maxpetrusenkoagent @maxshafransky-a11y @maxtrigify @MaxyMoos @maymuneth @MazenMkhinini @mazzanfar @mbeattietex1-star @MBK-fr @MCarlomagno @McClean @McHermes @mcleay @mcpeezy @mdenil @mearls0501 @mechkw @mehmetkr-31 @mekenthompson @memosr @memtomem @Mengchee118 @mengtanx @mengyuyuan @menhguin @MestreY0d4-Uninter @metamindedu @metamon-p @metricano @mettin4 @meviusisback @mfurkanakinci @mfwagner @mha33 @mheals @Mi55ed @miadisabelle @Mibayy @micah-c02 @michaelversluis @michaelzelbel @MicroWearld @miguelchaves997-creator @mijanx @mikeest1972 @MikeGibbsOnyx @MilaArtyNew @milkoor @minchang @minh-alpon @minhngoc25a @Minksgo @mira-solari @miregal89 @MiseHinoha @misschloedupont @misterdas @mjshorty @mkrb84 @MLcogTech @mmcallister8 @mmcclean-aws @mmchuangyt-ai @mmilutinovic371 @mnajafian-nv @mnbf9rca @MNIK-YH @mochamgx @mochiNJ @moeadham @Moep90 @MohamadKanso @mohamedorigami-jpg @moisesvalero @mojomast @moken627-hub @mollusk @Momentum96 @MongLong0214 @MonkeyLeeT @Montbra @Moodtuner997 @moonlight-lupin @mooserini @mor44-AI @Morad37 @morajabi @MorAlekss @mormio @morolab @moxian @mr-3mm3 @mr-magaia @MrAbsaroka @MrAtkeens @mrcharlesiv @mrchen0709 @mreso @MrSimonC @mrwanstudio @ms-alan @ms-elbdev @mssteuer @mudrii @MuhammadUsamaMX @muhifni @Muno459 @murenovich @Mushisushi28 @MustafaKara7 @mwdearing @mxyhi @mykeura @mzkarami @mzyas @n-leezy @n-WN @nabilaameena @Nagisa-3000 @Nami4D @NaMinhyeok @NanamiMio @nankingjing @nanobro @napoleonmm83 @natebransc @nateEc @naterchrdsn @Navlem @nca7777 @Ne0teric @Nea74 @NealZhouPanda @nebneo @Neboy72 @necoweb3 @neerazz @negm17111995 @neil771 @nekwo @nemofq @Neomail2 @neron82 @networthexplained @NexVeridian @nftpoetrist @ngelik @NgThachThanh @nicbj96 @nicecuprani @Nick @nickseelert @nickzhu0977 @nicoechaniz @nicolasdmolina @nicoloboschi @nidhi-singh02 @nightq @nikkoxgonzales @niklaskie @NikolaRHristov @nikolay-bratanov @NikolayGusev-astra @nikshepsvn @NingCiQiu @ningfangbin @Ninja @ninjmnky @Ninso112 @nitishagar @niudakok @nmediaie @NMTZ-z @nnnet @nocoo @nocturnum91 @noestelar @nolanchic @Noor-Sol @Noshkoto @nosleepcassette @nosliwhtes @NotGovernor @NoTimeforInfinity @notkisk @notwitcheer @NousResearch @NPFernando @nrmjeremy @ns-fusion @nthrow @null-runner @nv-cho @nv-kasikritc @nv-pberard @NYTEMODEONLY @nyx573 @o3u6x @obierlaire @obtitus @octo-patch @Octopus @Octopustank @ocuclaw @oferlaor @officialasishkumar @oheckmann74 @ohMyJason @ohmyskyhigh @okaris @oliver-mee @oliverhees @oliviaaaa7788 @olopez25 @olric3015 @oluwadareab12 @olympusbuildz @omar2535 @OmarB97 @omegazheng @omerkaz @omerlefaruk @omert11 @omid-io @OmniaZ1 @OMOX563 @OmX @Only-Code-A @onuraycicek @ooiuuii @OOOOOAO @ooovenenoso @openclawcash @oppih @opriz @orangercat @orcunulutas @original4422 @osadchiis @oswaldb22 @oswaldvalois @ottosulin @ourines @ous50 @ousiaresearch @outdog-hwh @outpoints @outsourc-e @OutThisLife @overtoneblue @oxkenshin @oxngon @OYLFLMH @p-andhika @pandacooming @paoloantinori @Paperclip @paraddox @Paramon @Parker-Fawcett @parsifal295 @pasmud @patrykkopycinski @PaTTeeL @paultaki @pcaruba @pdmartins @pdonizete @PeaceMaker-best @pecalbezyshodnost-hue @peetteerr @pefontana @penginman @penwyp @Per0-1 @perng @perqin @PeterFile @peteromallet @PeterTaras @Petra @petrichor-op @peyton.lu @pgregg88 @phantomthedog @PhilipAD @philmossman @phippsbot-byte @phoebsie @PhoeniXAbhisheK @phpoh @phuongvm @pierrenode @pincente @pinguarmy @PINKIIILQWQ @pintadoai @Pinutss @PIR8-Software @piskooooo @pittosporum-seu @PixelAlchemist4 @pju-hoge @plarche-ux @PLASMA-FR @plcunha @plluviera @Pluviobyte @pmaho @pminervini @pnascimento9596 @pnpwin @poijygfdyy @polkn @polnikale @Polybulle @PolyphonyRequiem @poponline63 @portavales @Potrock @POWERFULMOVES @Poxel2 @ppazosp @pprism13 @pradeep7127 @praggybuilds @Prasanna28Devadiga @PRATHAMESH75 @praxis1244-consulting @predatorheard-byte @PRELVAS94 @preyevates @Prithvi1994 @privacydied @ProDrifterDK @professorpalmer @ProgramCaiCai @promptclickrun @protas-box @psam-717 @psionic73 @ptichalouf @purzbeats @Pusch97 @PuvaanRaaj @pxdsgnco @pxls-kaneko @pyr0ken @qd @qdivan @QDung210 @QifengKuang @qinghuanandejiangshi @qingshan89 @quangphucqp @quocanh261997 @quotumorg @quqi1599 @qWaitCrypto @qwertyuiop97 @Qwinty @r00tedbrain-backup @r266-tech @r3x443 @raaaas @raajkumars @rahlquist @rain-sk @rain610 @rainbowgore @raitoxlol @rajitkhanna @Raleighite @ramarivera @ramseshk @randimt @rapsealk @rarf @rasitakyol @raulbcs @rayblennerhassett-byte @rayjun @raymondyan-zhijie @rayn1314 @rborkow @rc-int @rcarrata @rchcorp @rcktmonk @re-ITRT @Realmagnum @Realtyxxx @Reaper-Forge @red4711 @redhelix @RegardV @reinhold-ph @RelaxJonh @remi-td @RemyFevry @ReqX @rerdi92 @revaraver @rewbs @RFingAdam @RGerrish @Rhaphaello @RHODIZSECURITY @rhushabhvaghela @riandradiva18 @Riccardo-Vecchi @richardcmckinney @ricki-io @RickyYii @RikETS @rikkarth @Ringo6107 @rio-jeong @ritvikgautam @Rival @rivercrab26 @rjshrjndrn @rkfshakti @rlaope @Rmohid @rob-maron @RobbertC5 @robbyczgw-cla @RobbyMo81 @robbyslmt @robchristiansen13 @robertaustinbell @roberttidball @robinradx @Roblmvp @Rockey011 @rockminster @rocks737 @rod-nxtlevel @rodboev @Rodkillah @rodricksz4h5 @rodrigogs @RohiRIK @RohithPariki @rohitsabu @roli-lpci @romanovzky @Rook-CodeVolt @RootZ3n @roqianjas @roraag @royalaid @RoySRose @rpridal @rrevenanttt @rroverin @rs545837 @rsayar @rshi0212 @rtcopenclawgh @ruangraung @rudironsoni @rudrakshchahal @rudycelekli @ruizanthony @runninwithitmarketing @RunzhouLi @ruochu88s @ruslanvasylev @Ruzzgar @rweddle @ryangu00 @ryantuc @RyanUnderhill @ryrenz @RyTsYdUp @s-jag @s905060 @SacrEllfarch @saforem2 @sagitario-jpn @SaguaroDev @sahibzada-allahyar @Sahil-SS9 @Sahilvishnaliya @sahlbergalfred4-lgtm @saiteja-madha @sakhnenkoff @Sakujakira @salch-cred @salehelsayed @SaM13997 @samalone @sambouli @samfoy @samplesabotage @samrusani @Samuek9 @samuelpatro @sanastasiou @SandroHub013 @Sanjays2402 @saotu @sarahwu185 @sarayd @sarbai @sarthak-707 @sarvesh1327 @sasan1200 @Sasni @sasquatch9818 @satirojordi-boop @SayHell0W0rld @sbe27 @ScaleLeanChris @schrodienieur @schwinguin @scottaki @scottgl9 @scottlowry @scroasdale @scross01 @sdalonzo @sdyckjq-lab @sealca @SeashoreShi @season179 @seb-almeida @Sebuska29190 @secsson @see-k @SelfParody @seluvia @semirkabir @Sensie-agents @serefyarar @sergeikabuldzhanov @Sergey0515 @sergioperezcheco @sgaofen @sgarrand @sgtworkman @Sha01in @shaase-ctrl @shadus @shafdev @shagghiesuperstar @shali10 @shane9coy @shannonsands @shashwatgokhe @shaun0927 @shauryajain21 @shawnpana @shehjaddev @shellybotmoyer @Shenrui-Ma @sherman-yang @Shimakaze514 @shivasymbl @shl0ms @shoesroom13 @shorehefei-ship-it @Shotflame @shreyanshj10 @shuanzhi @Shy7777 @SiaoZeng @siillee @silentpr0 @SilverNine @simbam99 @SimoKiihamaki @simpolism @sinh2024 @Sisyphus @sitkarev @sjahlstrom @sjiangtao2024 @sjungwon03 @sk @skappafrost @skyc1e @skyeconcontracting-ctrl @skyer-flyyy @skyeyesec333 @skylarbpayne @slash1andy @Slobaka @sloik @Slopez2023 @sly321-pixel @SmallNew2003 @SmelterLabs @smfworks @smtony @snipecoder @SNooZyy2 @snowdchike @socrates1024 @soddy022 @sohomsahaun @soichiyo @Soju06 @Solitud1nem @solovision24 @someoneexistsontheinternet @somewheresy @sonderhq @songshikang0111 @Sonnenwerk @Sora-bluesky @sorenisanerd @soroush5 @soyami @soyelmismo @soymarketing @soynchux @spanishflu-est1918 @spfcraze @spideystreet @spiky02plateau @spranab @sprmn24 @SquabbyZ @squevo @sroecker @srojk34 @ssep4u @ssiweifnag @SsSs @stablegenius49 @StanleyStetson @stantheman0128 @starship-s @startakovsky @SteelPh0enix @StefanIsMe @stefanpieter @StellarisW @stepanov1975 @stephan @Steve-prog001 @steveafrost @stevehsu0524 @steveonjava @stods21 @StodsEcho5 @Stoltemberg @StreamOfRon @stremtec @strzhao @Studio729 @Subway2023 @successionbio @sudhirpatil @sudoingx @suhas-svg @sujeet111 @SulthanZahran1 @sum117 @sunsakis @sunwz1115 @superafun @superb-cation @supere989 @Superfly73 @superlowburn @superposition @supotato-ipj @supplefrog @Svector-anu @sweetcornna @sxuff @sy0u1ti @sycamoregroupltd @sylvainCDA @sylvesterkaczmarek @Synero @synscott @szcharlesji @szicely @SZWzz @szymonclawd @szzhoujiarui-sketch @t1mdurden @T910317 @tachyon-r @tainguyenphat74 @TakeshiTGAL @TalOrbach @Tamaz-sujashvili @tancou @tangtaizong666 @tank321 @TaoMasterCoder @tarkilhk @TartarusLabs @tauros1983 @taxbax @taylorwtf @tcconnally @teakesdev @teamster22 @teddychenfeiyang-png @Teknium @temalo @ten-ltw @ten82e @tensorbit89-netizen @teo-nex @terminamike666 @Test @teyrebaz33 @TFOjojo @tfournet @th3sull1van @thanhan-a17 @tharanee-bit @thatssoheil @the-cybersapien @the-repeter @The-x-35 @the3asic @TheAirick @TheAngryPit @thebergerking91 @thebizfixer @TheBlueHouse75 @thedavidweng @thefiredev-cloud @TheGardenGallery @thegoodguysla @thegreatesthoneybee @thejpanganiban @TheNeuralVault @theone139344 @thepetenetwork @ThereWasAYang @TheSmokeDev @TheStreamCode @thetasigmaio @thinkingsheep @thomasscottbeck-sudo @ThyFriendlyFox @tian0cai @tianma-if @tianyu-liu @ticketclosed-wontfix @tigercraft4 @Tigrannnnnnn @tim404x @TimeLord2010 @timknip @timmycheng @timoteo7 @timrichardson @timsmykov @tinetwork @tjboudreaux @tjp2021 @tk-pkm111 @tkaufmann @tkwong @tmaarcxs @tmchow @tmielika @to-na @toannhu96 @tobenwarrior @tokou @tomatau @tomekdot @Tomenatore @tomkubik @tommulkins @Tommy00748 @tomqiaozc @tony-simons-aiowa @Tormen28 @Tosko4 @Totoro-qaq @tpte @trac3r726 @Tranquil-Flow @tranquilflow @treatux @trevorgordon981 @trevornk @Treytucker05 @trippyogi @Triquetra @trnorga @Trounaldo @TroyMitchell911 @truenorth-lj @trwpang @tsemana @tsubasakong @tsuk1nose @Tsuki-hash @tt-a1i @tuancookiez-hub @TUARAN @tudorpastorglencore @tugrulguner @tupe12334 @TurgayAcar49 @TurgutKural @turingcat @tutan0558 @TutkuEroglu @tw2818 @twe-cloud @twidtwid @twotnguyen @txhno @tylerbrevard @tylman @tymrtn @tynamite @ubxty @Udjin79 @Ufonik88 @UfukNode @ugoenyioha @UltraInstinct0x @umi008 @UnathiCodex @underthestars-zhy @UniversePeak @unmodeled-tyler @unsupportedpastels @usvimal @uttkarsh-26 @uzairchhapra @uzaylisak @uzunkuyruk @vadimcomanescu @vaibhavarora14 @valda @valentt @valerdoskin @vbcherepanov @vectorcmd @vectorcontext @vectorforge22 @VencentSoliman @Versun @vet402 @vgarlu @VGFreakXBL @victor-kyriazakos @victorftrdba @victorGPT @victorjmilagres @VictorTran1023 @VictorYXL @vikyw89 @vilkasdev @virattt @virtaava @Vissirexa @vitobotta @vjpixel @vKongv @vladzablotski-adaption @Vocllum @vollegrewar @vominh1919 @VrtxOmega @vsd2807 @Vsemagush @vshulcz @vykhovanets @w-up @wa1939 @WadydX @walidboulanouar @wang2 @wangs1203 @wangtaotaotao95 @wanliqin @warabe1122 @warmheartrobot @waroffchange @WAXLYY @wdelarme @wdon @web3blind @webdevfrancisco @webdevtodayjason @webtecnica @webtoolbox @Weidows @weidzhou @weltmaister @Wenfengcheng @wesleysimplicio @westkite1201 @whirmill @WhiteWorld @whoisdhana @whyyagswhy @WideLee @will-lynas @willardgmoore @willfrombr @Willhong @williamtwomey @willy-scr @wilsen0 @wliu-dev @wnuuee1 @woaini30050 @wodesiku @WolframRavenwolf @WolftacDigital @woota @wooyongbin3-cpu @woriwka-ai @worlldz @woshicby @wpengpeng168 @wukangcheng1994 @WuKongAI-CMU @wuli666 @WuTianyi123 @wuwuzhijing @wxy-nlp @Wysie @WYSTAF @wz-heng @wzslr321 @x1am1 @x7peeps @xiajiahang @xiaodu55 @XiaoXiao0221 @xiaoxinova @xiaoyaner0201 @xielevi @xinbenlv @Xingkai98 @Xipong @Xixiartemis @xjsns346 @xkam7ar @xmhuangzhijun-hue @Xowiek @xoy8n @xpk84 @xraysight @xrbs00 @XtremXpert @xuezhaolan @xushibo @Xuxyyy @xuyuann @xxxigm @xy200303 @xy952666680 @xz-dev @y0shua1ee @Yabuku-xD @yagna @yahuo @yaleman @YanSte @yaojiejia @yaozhen @yashiels @yatesjalex @yavarb @ydmw74 @yehuosi @yellowdog01 @ygd58 @Yicheng-Mark @yingliang-zhang @yinkev @YLChen-007 @ymat19 @ymybxx @yoannes @YonganZhang @Yongcheng123 @yongli-abc @yoniebans @yotamleo @youcefcherid @Youssef @youssefea @youtiaowei @yoyodine-industries @ypwcharles @yu-xin-c @YUAN @yuanchenglu @yubingz @yuchenwang3 @yuexiongHNU @yuga-hashimoto @YuhGuan @Yun. @yungchentang @yunke98888-gif @yunze7373 @YuShu @YusukeOshima-5564 @YuYigeng @yuzilongleif-collab @ywatanabe1989 @yy28 @yyovil @yyq4193 @yyzquwu @yzy806806 @z0zero @z23 @zaclanzon @zagiscoming @zakiyys @zakolenko @zanzipanzi @zapabob @zay @zaze-oO @zccyman @zebadee2kk @Zechereh @zeejaytan @zengzheqing @zenplace-system @ZenSchema @Zeraphim @zerone0x @ZeroOttantotto @Zeus-Deus @zhangxicen @zhao0112 @ZHCHJ888 @ZHJay @zhongwater123 @zhongyueming1121 @Zhou-Ruichen @zhouhe-xydt @Zhuzewen2023 @ZidoCode @zihaofeng2001 @zilvinasu @zindar @ZishiW @ziwon @zjc-enigma @zmlgit @zohuyhieuzo03 @zoser69 @zqy1-1 @zrmnelson @zsuroy @ZT-Toolkit @zufeyan @zwcf5200 @zxcasongs @zxdvd @zyz619963502zyz @zzpigpinggai @zzragida @zzz163519</p> <p>Also: @Leanolf (Leanolf+212960991), @ayushnangia (55181294+ayushnangia), @DavidMetcalfe (dmetcalfe+hermes), benoit.lavenier, Adrian Scott, Ahmed Khaled, Alberto Leal, Alex Ferrari, Andrei Ignat, Animesh Mishra, Bosco Barros, Chris DePuy, d4rk pr10r, Daniel van Strien, Dave Bunn, Dogila Developer, Eduardo Christopher López Acevedo, George Shalhoub, Hermes Agent / OpenAI Codex / gpt-6-sol, Isaac Dobson, JP Lew, Konrad Czarski-Bonanaty, Lars van der Zande, leo yang, Lucas Nicolas, Magnus Ahmad, Marco Rutsch, Mark Sheppard, Martin Gontovnikas, Matt McFarland, Michał Dziwisz, namhyuk kim, Nikolas de Hor, Nils (Norya), Paul Bergeron, Paulo Henrique, Robert Montelongo, Sebastian Bochna, Siddharth Balyan, Teo , Timo Karp, Val Alexander, wave-2 worker D, Wes Hermes, Yannick Stephan, Yash Jain, Your Name, Ömer Faruk Okumuş, 史官.</p> <hr> <p><strong>Full Changelog</strong>: <a href="https://github.com/NousResearch/hermes-agent/compare/v2026.8.31...v0.22.0">v2026.8.31...v0.22.0</a></p> <p><em>This release rolls up and fully documents the v0.21.1–v0.21.7 patch releases (Sep 7 – Oct 11), whose notes were deferred to this minor.</em></p> </div> <button class="cl-expand-btn ha-headline">▼ EXPAND FULL CHANGELOG</button> <div class="cl-card__footer"> <a href="https://github.com/NousResearch/hermes-agent/releases/tag/v0.22.0" target="_blank" rel="noopener noreferrer" class="cl-gh-link">↗ GitHub</a> </div> </div> </article><article class="cl-entry" data-version="v0.21.7" data-name="hermes agent v0.21.7" data-body="# hermes agent v0.21.7 **release date:** october 11, 2026 > patch release. this tag rolls up the ~204 prs merged since v0.21.6 into a stable release for the desktop app (macos apple silicon, windows), the microsoft store and msix, the installer, docker and hermes cloud. full curated notes for this window ship with v0.22.0. <!-- hermes_builds_table --> **what this patch ships for source installs (`hermes update` and the desktop app's updater on a git checkout):** - **updates now follow tagged releases.** a source install of the official repository updates to the latest published `vx.y.z` release instead of every commit on `main`. an install already newer than the latest release stays where it is and waits for the next one; nothing is moved back. to keep following every commit: `hermes " data-prerelease="false" data-breaking="false" data-index="6"> <div class="cl-dot"> <span class="cl-dot__icon">●</span> </div> <div class="cl-header"> <span class="ha-headline cl-header__version">v0.21.7</span> <span class="ha-headline cl-header__date">Oct 12, 2026</span> </div> <div class="cl-card"> <h3 class="ha-headline cl-card__title">v0.21.7</h3> <div class="changelog-body cl-card__body cl-collapsed"><h1>Hermes Agent v0.21.7</h1> <p><strong>Release Date:</strong> October 11, 2026</p> <blockquote> <p>Patch release. This tag rolls up the ~204 PRs merged since v0.21.6 into a stable release for the desktop app (macOS Apple silicon, Windows), the Microsoft Store and MSIX, the installer, Docker and Hermes Cloud. Full curated notes for this window ship with v0.22.0.</p> </blockquote> <!-- HERMES_BUILDS_TABLE --> <p><strong>What this patch ships for source installs (<code>hermes update</code> and the desktop app's updater on a git checkout):</strong></p> <ul> <li><strong>Updates now follow tagged releases.</strong> A source install of the official repository updates to the latest published <code>vX.Y.Z</code> release instead of every commit on <code>main</code>. An install already newer than the latest release stays where it is and waits for the next one; nothing is moved back. To keep following every commit: <code>hermes update --set-channel main</code>. Forks and mirrors keep following <code>main</code>. Store, MSIX and bundled desktop installs are unchanged.</li> <li><strong>Choose the channel in the desktop app.</strong> Settings ▸ About ▸ Updates has an <em>Update channel</em> switch (Stable releases / Every commit) for source installs, and the update dialog now shows which channel you are on.</li> <li><strong>Reasoning survives resume.</strong> Signed thinking replays after <code>hermes chat --resume</code> and on the next gateway turn, and Bedrock Converse reasoning models no longer get rejected on resumed sessions.</li> <li><strong>Updates no longer fail behind some firewalls.</strong> Installs on <code>main</code> no longer fetch a release record that regional firewalls could answer with 403. The stable check uses your GitHub token when one is set (<code>GITHUB_TOKEN</code> or <code>gh auth login</code>) and reports a GitHub rate limit as a rate limit.</li> </ul> <h2>About this release</h2> <p>Measured at commit <code>1fd18277267152893a8a24792b79213e7ca3f899</code>, the window since v0.21.6 contains <strong>740 non-merge commits</strong> across <strong>4,156 changed files</strong> (+86,775 / −26,980), <strong>204 merged PRs</strong> and <strong>69 closed issues</strong>.</p> <p>Also in the window, undocumented here on purpose: plugins running built-in Desktop app actions (<code>ctx.runAction</code>) and a plugin SDK pet bubble (<code>ctx.pet.say</code>); core-made Codex requests so plugins never hold the token; skills installed mid-session reaching the model without a prompt rebuild; Krea 2 Medium Turbo as the default image lane for new paid subscribers, with a FAL fallback when managed Krea refuses a request; faster desktop updates (the React Compiler pass cached by content, the compiled renderer reused when only the install stamp changed, unchanged native inputs left in place); pinned installs that check out only the pin; compaction marks emitted to Relay; and new community plugins including memory-shield, command-ledger, Memoria, Model Router, wyoming-voice-bridge, codex-account-switch and redline.</p> <p><strong>Full curated release notes for this window ship with v0.22.0</strong>, which will document everything from v0.21.0 onward — highlights, feature areas, and complete contributor credits. Nothing in this window is skipped.</p> <h2>Updating</h2> <ul> <li>Desktop app: updates itself. Microsoft Store installs update through the Store.</li> <li>CLI: <code>hermes update</code>, or re-run the installer one-liner.</li> <li><span class="cl-badge cl-badge-ci">CI</span>Docker / Hermes Cloud: <code>nousresearch/hermes-agent:stable</code> (or <code>:latest</code>).</li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/NousResearch/hermes-agent/compare/v0.21.6...v0.21.7">v0.21.6...v0.21.7</a></p> </div> <button class="cl-expand-btn ha-headline">▼ EXPAND FULL CHANGELOG</button> <div class="cl-card__footer"> <a href="https://github.com/NousResearch/hermes-agent/releases/tag/v0.21.7" target="_blank" rel="noopener noreferrer" class="cl-gh-link">↗ GitHub</a> </div> </div> </article><article class="cl-entry" data-version="v0.21.6" data-name="hermes agent v0.21.6" data-body="# hermes agent v0.21.6 **release date:** october 8, 2026 > patch release. this tag rolls up the ~2,100 prs merged since v0.21.5 into a stable tagged release for docker and hermes cloud. full curated notes for this window ship with v0.22.0. <!-- hermes_builds_table --> ## about this release this is the first release cut by the new stable release pipeline: one attempt ref, a tested docker image, and a receipt tag at publish. it ships the tag, this github release and the docker image. the desktop app, termux packages and the microsoft store stay on their current build for now and move with the next bundled release. measured at commit `818c13be1dc4fd28987e1e881a9408224afd4535`, the window since v0.21.5 contains **8,867 non-merge commits** across **8,342 changed files** (+772," data-prerelease="false" data-breaking="false" data-index="7"> <div class="cl-dot"> <span class="cl-dot__icon">●</span> </div> <div class="cl-header"> <span class="ha-headline cl-header__version">v0.21.6</span> <span class="ha-headline cl-header__date">Oct 8, 2026</span> </div> <div class="cl-card"> <h3 class="ha-headline cl-card__title">v0.21.6</h3> <div class="changelog-body cl-card__body cl-collapsed"><h1>Hermes Agent v0.21.6</h1> <p><strong>Release Date:</strong> October 8, 2026</p> <blockquote> <p>Patch release. This tag rolls up the ~2,100 PRs merged since v0.21.5 into a stable tagged release for Docker and Hermes Cloud. Full curated notes for this window ship with v0.22.0.</p> </blockquote> <!-- HERMES_BUILDS_TABLE --> <h2>About this release</h2> <p>This is the first release cut by the new stable release pipeline: one attempt ref, a tested Docker image, and a receipt tag at publish. It ships the tag, this GitHub release and the Docker image. The desktop app, Termux packages and the Microsoft Store stay on their current build for now and move with the next bundled release.</p> <p>Measured at commit <code>818c13be1dc4fd28987e1e881a9408224afd4535</code>, the window since v0.21.5 contains <strong>8,867 non-merge commits</strong> across <strong>8,342 changed files</strong> (+772,490 / −225,600), <strong>2,106 merged PRs</strong> and <strong>3,027 closed issues</strong>.</p> <p>Also in the window, undocumented here on purpose: live transcription while you speak on CLI, TUI and Desktop (<code>stt.streaming</code>); spoken voice turns routed to their own model (<code>auxiliary.voice_chat</code>) with reasoning off by default; third-party plugins running in a per-profile plugin host (<code>plugins.isolation: host</code>) and one Settings ▸ Plugins home for their settings pages; favorite and pinned models at the top of the Desktop picker, a usage chip before a subscription hits its wall, and rate-limited providers that say why and until when; local models in <code>hermes model</code> plus llama.cpp CUDA on Linux x64 and arm64; pluggable, layered language packs across core, Desktop and TUI; a summary-first <code>hermes status</code> (<code>--short</code>, <code>--full</code>); a review-pane diff scope selector (Uncommitted / Branch / Last turn) and keep-awake that follows the turn; cron, <code>doctor</code> and home-channel warnings when the cron store goes unwritable; approval flags for credential uploads and invisible Unicode in terminal commands; a Discord setup that checks the bot token and prints the invite link; a unified Kanban workflow definition; <code>activate.fish</code>; GPT-6.1 Sol and Claude Sonnet 5.5 / Haiku 5.5 in the catalogs; and dozens of new community plugins.</p> <p><strong>Full curated release notes for this window ship with v0.22.0</strong>, which will document everything from v0.21.0 onward — highlights, feature areas, and complete contributor credits. Nothing in this window is skipped.</p> <h2>Updating</h2> <ul> <li><span class="cl-badge cl-badge-ci">CI</span>Docker / Hermes Cloud: <code>nousresearch/hermes-agent:stable</code> (or <code>:latest</code>).</li> <li>CLI (git installs): <code>hermes update</code>, or re-run the installer one-liner.</li> <li>Desktop app and Termux: no change in this release; they update with the next bundled release.</li> </ul> <h2>Security Fixes</h2> <p><strong>Dashboard authentication hardening</strong></p> <ul> <li>Spoofed <code>X-Forwarded-For</code> headers could reset the password-login rate limit and get around the per-IP cap on native sign-in (#133367)</li> <li>Unauthenticated login requests could write unbounded values to the auth audit log (#133369)</li> <li>The public <code>/auth/</code> routes had no request-body size limit (#133370)</li> <li>Native sign-in could send login codes to a non-loopback redirect, which allowed session takeover (#130685)</li> </ul> <p>Thanks to Tenable Research for reporting all four issues (TRA-725, TRA-726, TRA-727, TRA-728). The native sign-in redirect issue was also reported independently and fixed by @Froraut. The <code>X-Forwarded-For</code> fix builds on community work by @hinotoi-agent and @BearHuddleston (#40285).</p> <p><strong>Repository git filter hardening</strong></p> <ul> <li>Automatic git calls (session workspace snapshot, subagent worktrees, kanban, worktree cleanup, <code>hermes -w</code>) could run <code>clean</code>/<code>smudge</code>/<code>process</code> filter programs defined by an untrusted repository's own config, before the first prompt (#130661)</li> </ul> <p>Thanks to 燕涛 for reporting this privately. It was also reported and fixed publicly by @jonpol01 (#126017, #126019) and @JoaoMarcos44 (#126075).</p> <p><strong>Email gateway sender hardening</strong></p> <ul> <li>A quoted display name in the <code>From</code> header (e.g. <code>"Victim <victim@example.com>" <attacker@evil.test></code>) could make an attacker's message pass the email allowlist as an allowed sender (#125212)</li> </ul> <p>Thanks to Daniel Steele (@keeltrace) for reporting this and writing the fix (#124322).</p> <p><strong>Full Changelog</strong>: <a href="https://github.com/NousResearch/hermes-agent/compare/v2026.9.24...v0.21.6">v2026.9.24...v0.21.6</a></p> </div> <button class="cl-expand-btn ha-headline">▼ EXPAND FULL CHANGELOG</button> <div class="cl-card__footer"> <a href="https://github.com/NousResearch/hermes-agent/releases/tag/v0.21.6" target="_blank" rel="noopener noreferrer" class="cl-gh-link">↗ GitHub</a> </div> </div> </article><article class="cl-entry" data-version="v2026.9.24" data-name="hermes agent v0.21.5 (v2026.9.24)" data-body="# hermes agent v0.21.5 (v2026.9.24) **release date:** september 24, 2026 > patch release. this tag rolls up the ~460 prs merged since v0.21.4 into a stable tagged release for downstream consumers (docker images, hermes cloud, hosted deployments). full curated notes for this window are deferred to v0.22.0. ## about this release measured at commit `f97608f178d1ffeca59860195ab7da295f7c8e5f`, the window since v0.21.4 contains **1,610 non-merge commits** across **4,828 changed files** (+164,132 / −149,440), **460 merged prs** and **475 closed issues**. also in the window, undocumented here on purpose: a desktop plugin sdk wave (composer draft api, session-list and row-decoration slots, sidebar nav prefs, model-pill label providers, typed settings/skills/toolsets/profiles bridges, a sandbox" data-prerelease="false" data-breaking="false" data-index="8"> <div class="cl-dot"> <span class="cl-dot__icon">●</span> </div> <div class="cl-header"> <span class="ha-headline cl-header__version">v2026.9.24</span> <span class="ha-headline cl-header__date">Sep 24, 2026</span> </div> <div class="cl-card"> <h3 class="ha-headline cl-card__title">v0.21.5 (v2026.9.24)</h3> <div class="changelog-body cl-card__body cl-collapsed"><h1>Hermes Agent v0.21.5 (v2026.9.24)</h1> <p><strong>Release Date:</strong> September 24, 2026</p> <blockquote> <p>Patch release. This tag rolls up the ~460 PRs merged since v0.21.4 into a stable tagged release for downstream consumers (Docker images, Hermes Cloud, hosted deployments). Full curated notes for this window are deferred to v0.22.0.</p> </blockquote> <h2>About this release</h2> <p>Measured at commit <code>f97608f178d1ffeca59860195ab7da295f7c8e5f</code>, the window since v0.21.4 contains <strong>1,610 non-merge commits</strong> across <strong>4,828 changed files</strong> (+164,132 / −149,440), <strong>460 merged PRs</strong> and <strong>475 closed issues</strong>.</p> <p>Also in the window, undocumented here on purpose: a Desktop plugin SDK wave (composer draft API, session-list and row-decoration slots, sidebar nav prefs, model-pill label providers, typed settings/skills/toolsets/profiles bridges, a sandboxed embed primitive, appearance-settings slot, and a public event bridge for plugin backends); a Simple/Advanced interface mode for Desktop; the Connectors page replacing the MCP tab, with "Connect now" for a freshly installed plugin's MCP servers and installed plugins' tools and skills going live in every open chat; onboarding that offers catalog plugins beside connectors; complete French, German and Spanish Desktop catalogs plus an RTL/LTR text direction setting; custom model entry from the composer and Settings pickers; function-key and dictation voice shortcuts; per-profile stop/start/restart under the host multiplexer and <code>gateway.standalone</code> to opt a profile out; the live dock showing the standing <code>/goal</code> and queued prompts in the CLI and TUI; a kanban design pass with a two-column ticket modal and markdown task text; webhook deliveries mirrored into the target chat session; Bot Screen on hosted <code>-desktop</code> images; GPT-6 Sol/Terra/Luna and Claude Opus 5.5 in the Nous and OpenRouter catalogs; an official Blender Lab integration and NVIDIA app/Broadcast plugins; a long run of hot-path performance work across config loading, the tool registry, gateway message handling and the model picker; and dozens of new community plugins in the catalog.</p> <p><strong>Full curated release notes for this window ship with v0.22.0</strong>, which will document everything from v0.21.0 onward — highlights, feature areas, and complete contributor credits. Nothing in this window is skipped.</p> <h2>Updating</h2> <ul> <li><code>hermes update</code> (git installs), or re-run the installer one-liner.</li> <li><span class="cl-badge cl-badge-ci">CI</span>Docker / Hermes Cloud: images build from this tag (<code>nousresearch/hermes-agent:v2026.9.24</code>).</li> </ul> <p><strong>Full changelog:</strong> <a href="https://github.com/NousResearch/hermes-agent/compare/v2026.9.21...v2026.9.24">https://github.com/NousResearch/hermes-agent/compare/v2026.9.21...v2026.9.24</a></p> </div> <button class="cl-expand-btn ha-headline">▼ EXPAND FULL CHANGELOG</button> <div class="cl-card__footer"> <a href="https://github.com/NousResearch/hermes-agent/releases/tag/v2026.9.24" target="_blank" rel="noopener noreferrer" class="cl-gh-link">↗ GitHub</a> </div> </div> </article><article class="cl-entry" data-version="v2026.9.21" data-name="hermes agent v0.21.4 (v2026.9.21)" data-body="# hermes agent v0.21.4 (v2026.9.21) **release date:** september 21, 2026 > patch release. this tag rolls up the ~1,800 prs merged since v0.21.3 into a stable tagged release for downstream consumers (docker images, hermes cloud, hosted deployments). full curated notes for this window are deferred to v0.22.0. ## about this release measured at commit `4b8a8134009a8727a289bcabeb0019fedd353128`, the window since v0.21.3 contains **5,071 non-merge commits** across **5,169 changed files** (+312,961 / −62,855), **1,812 merged prs** and **2,116 closed issues**. also in the window, undocumented here on purpose: a host-wide gateway singleton lock with a rendezvous record, and desktop attaching to the running host backend instead of spawning a second one; one backend-owned connector operation wit" data-prerelease="false" data-breaking="false" data-index="9"> <div class="cl-dot"> <span class="cl-dot__icon">●</span> </div> <div class="cl-header"> <span class="ha-headline cl-header__version">v2026.9.21</span> <span class="ha-headline cl-header__date">Sep 21, 2026</span> </div> <div class="cl-card"> <h3 class="ha-headline cl-card__title">v0.21.4 (v2026.9.21)</h3> <div class="changelog-body cl-card__body cl-collapsed"><h1>Hermes Agent v0.21.4 (v2026.9.21)</h1> <p><strong>Release Date:</strong> September 21, 2026</p> <blockquote> <p>Patch release. This tag rolls up the ~1,800 PRs merged since v0.21.3 into a stable tagged release for downstream consumers (Docker images, Hermes Cloud, hosted deployments). Full curated notes for this window are deferred to v0.22.0.</p> </blockquote> <h2>About this release</h2> <p>Measured at commit <code>4b8a8134009a8727a289bcabeb0019fedd353128</code>, the window since v0.21.3 contains <strong>5,071 non-merge commits</strong> across <strong>5,169 changed files</strong> (+312,961 / −62,855), <strong>1,812 merged PRs</strong> and <strong>2,116 closed issues</strong>.</p> <p>Also in the window, undocumented here on purpose: a host-wide gateway singleton lock with a rendezvous record, and Desktop attaching to the running host backend instead of spawning a second one; one backend-owned connector operation with a setup card on Desktop, TUI and CLI; <code>--format stream-json</code> structured JSONL output for the CLI; <code>skills.auto_load</code> pinning skills into every new session's prompt; a Desktop chat/UI font picker, one-click local engine updates, and plugin uninstall from the Plugins hub; a <code>decline</code> unauthorized-DM behavior for the gateway; a configurable MCP discovery connect cap (<code>mcp.discovery_concurrency</code>); <code>session_search</code> after/before bounds plus OR-relaxed recall retry; <code>hermes sessions set-journal-mode</code>; LTX 2.5 and Kling O3 in the video catalogs; a website page for every catalog plugin and author, with pinned-commit READMEs and added/updated sorting; a dozen new community plugins in the catalog (tailscale, ssh, shodan, terminal, rss, resetwatch, done-bell, kiwi, cognee, Octen); and a large run of profile/multiplex isolation, cron, kanban, Desktop and state.db fixes.</p> <p><strong>Full curated release notes for this window ship with v0.22.0</strong>, which will document everything from v0.21.0 onward — highlights, feature areas, and complete contributor credits. Nothing in this window is skipped.</p> <h2>Updating</h2> <ul> <li><code>hermes update</code> (git installs), or re-run the installer one-liner.</li> <li><span class="cl-badge cl-badge-ci">CI</span>Docker / Hermes Cloud: images build from this tag (<code>nousresearch/hermes-agent:v2026.9.21</code>).</li> </ul> <p><strong>Full changelog:</strong> <a href="https://github.com/NousResearch/hermes-agent/compare/v2026.9.14...v2026.9.21">https://github.com/NousResearch/hermes-agent/compare/v2026.9.14...v2026.9.21</a></p> </div> <button class="cl-expand-btn ha-headline">▼ EXPAND FULL CHANGELOG</button> <div class="cl-card__footer"> <a href="https://github.com/NousResearch/hermes-agent/releases/tag/v2026.9.21" target="_blank" rel="noopener noreferrer" class="cl-gh-link">↗ GitHub</a> </div> </div> </article><article class="cl-entry" data-version="v2026.9.14" data-name="hermes agent v0.21.3 (v2026.9.14)" data-body="# hermes agent v0.21.3 (v2026.9.14) **release date:** september 14, 2026 > patch release. this tag rolls up the ~338 prs merged since v0.21.2 into a stable tagged release for downstream consumers (docker images, hermes cloud, hosted deployments). it exists so the remote-gateway sign-in fixes below reach cloud agents, which auto-update to the newest release tag. ## what this patch ships for remote desktop / cloud users - **remote dashboard sessions no longer expire on refresh bursts** (#110061, fixes #55712; salvage #71548 @doud-fr, #55717 @liuhao1024). both refresh paths on the gateway (cookie gate and the desktop's native bearer route) now coalesce concurrent requests carrying the same rotating refresh token, so a desktop wake burst can no longer replay an already-rotated token into t" data-prerelease="false" data-breaking="false" data-index="10"> <div class="cl-dot"> <span class="cl-dot__icon">●</span> </div> <div class="cl-header"> <span class="ha-headline cl-header__version">v2026.9.14</span> <span class="ha-headline cl-header__date">Sep 14, 2026</span> </div> <div class="cl-card"> <h3 class="ha-headline cl-card__title">v0.21.3 (v2026.9.14)</h3> <div class="changelog-body cl-card__body cl-collapsed"><h1>Hermes Agent v0.21.3 (v2026.9.14)</h1> <p><strong>Release Date:</strong> September 14, 2026</p> <blockquote> <p>Patch release. This tag rolls up the ~338 PRs merged since v0.21.2 into a stable tagged release for downstream consumers (Docker images, Hermes Cloud, hosted deployments). It exists so the remote-gateway sign-in fixes below reach Cloud agents, which auto-update to the newest release tag.</p> </blockquote> <h2>What this patch ships for remote Desktop / Cloud users</h2> <ul> <li><strong>Remote dashboard sessions no longer expire on refresh bursts</strong> (#110061, fixes #55712; salvage #71548 @Doud-FR, #55717 @liuhao1024). Both refresh paths on the gateway (cookie gate and the desktop's native bearer route) now coalesce concurrent requests carrying the same rotating refresh token, so a Desktop wake burst can no longer replay an already-rotated token into the Portal's reuse detection and revoke the whole session. Refresh also runs off the event loop, so a slow identity provider no longer freezes <code>/api/status</code>. Pairs with Portal-side NousResearch/hermes-portal#1209 (sliding 30-day idle horizon, 5-minute rotated-token grace).</li> </ul> <h2>Also requested for this tag</h2> <ul> <li><strong>Long-lived processes stop leaking duplicate state.db writer handles</strong> (#110934, fixes #100896 #103339; salvage #107974 @kshitijk4poor, mapping @Rroven): gateway, dashboard/Desktop backend, ACP and CLI readers attach read-only and in-process writers share the registry handle, so the <code>N live SessionDB handles</code> precursor stops firing on a healthy topology.</li> </ul> <h2>About this release</h2> <p>Measured at commit <code>9b419a2d3c2657c192008e732149d61170b32c01</code>, the window since v0.21.2 contains <strong>1,036 non-merge commits</strong> across <strong>2,642 changed files</strong> (+131,690 / −37,096) and <strong>338 merged PRs</strong>.</p> <p>Also in the window, undocumented here on purpose: server→client JSON-RPC requests and a Pydantic wire-contract registry with generated TS/OpenRPC for the TUI/Desktop gateway (#110521, #110522); reasoning-effort selection on every model picker, a composer pill and per-auxiliary control in Desktop; OpenRouter OAuth PKCE login; HEIF/HEIC/AVIF image decoding; the Honcho peer-model setup rework; MCP OAuth refresh tokens bound to their issuer; a daily MCP re-auth nudge in Desktop; Wan 3.0, Kling 3.0 / Kling Image v3, MiniMax H3 Max Turbo, Gemini Omni Flash 1.1 and Meta Muse in the FAL catalogs; Slack pasted tables and the Agent Sessions API; multiplexed-profile isolation and gateway-liveness fixes; and the state.db WAL refusal on cross-VM filesystems.</p> <p><strong>Full curated release notes for this window ship with v0.22.0</strong>, which will document everything from v0.21.0 onward — highlights, feature areas, and complete contributor credits. Nothing in this window is skipped.</p> <h2>Updating</h2> <ul> <li><code>hermes update</code> (git installs), or re-run the installer one-liner.</li> <li><span class="cl-badge cl-badge-ci">CI</span>Docker / Hermes Cloud: images build from this tag (<code>nousresearch/hermes-agent:v2026.9.14</code>).</li> </ul> <p><strong>Full changelog:</strong> <a href="https://github.com/NousResearch/hermes-agent/compare/v2026.9.11...v2026.9.14">https://github.com/NousResearch/hermes-agent/compare/v2026.9.11...v2026.9.14</a></p> </div> <button class="cl-expand-btn ha-headline">▼ EXPAND FULL CHANGELOG</button> <div class="cl-card__footer"> <a href="https://github.com/NousResearch/hermes-agent/releases/tag/v2026.9.14" target="_blank" rel="noopener noreferrer" class="cl-gh-link">↗ GitHub</a> </div> </div> </article><article class="cl-entry cl-entry--breaking" data-version="v2026.9.11" data-name="hermes agent v0.21.2 (v2026.9.11)" data-body="# hermes agent v0.21.2 (v2026.9.11) — the state.db patch release **release date:** september 11, 2026 > patch release. v0.21.0 shipped a large rewrite of the session store's connection handling, and for some installs it made `state.db` fragile: second writers cancelling each other's locks, healthy databases reported as corrupt, one bad row killing `sessions list`. this release closes that class and rolls up everything else that landed on `main` in the four days since v0.21.1. ## about this release measured at commit `04dd80a977f40b05e5b2054111747af07a61886a`, the window since v0.21.1 contains **947 non-merge commits** across **1,869 changed files** (+182,504 / −15,564) and **312 merged prs**. **140 contributors** appear in commits, co-author trailers, or salvage credits. ## ✨ highligh" data-prerelease="false" data-breaking="true" data-index="11"> <div class="cl-dot cl-dot--breaking"> <span class="cl-dot__icon">⚡</span> </div> <div class="cl-header"> <span class="ha-headline cl-header__version">v2026.9.11</span> <span class="ha-headline cl-header__date">Sep 11, 2026</span> <span class="cl-label cl-label--breaking">Breaking</span> </div> <div class="cl-card cl-card--breaking"> <h3 class="ha-headline cl-card__title">v0.21.2 (v2026.9.11)</h3> <div class="changelog-body cl-card__body cl-collapsed"><h1>Hermes Agent v0.21.2 (v2026.9.11) — The state.db Patch Release</h1> <p><strong>Release Date:</strong> September 11, 2026</p> <blockquote> <p>Patch release. v0.21.0 shipped a large rewrite of the session store's connection handling, and for some installs it made <code>state.db</code> fragile: second writers cancelling each other's locks, healthy databases reported as corrupt, one bad row killing <code>sessions list</code>. This release closes that class and rolls up everything else that landed on <code>main</code> in the four days since v0.21.1.</p> </blockquote> <h2>About this release</h2> <p>Measured at commit <code>04dd80a977f40b05e5b2054111747af07a61886a</code>, the window since v0.21.1 contains <strong>947 non-merge commits</strong> across <strong>1,869 changed files</strong> (+182,504 / −15,564) and <strong>312 merged PRs</strong>. <strong>140 contributors</strong> appear in commits, co-author trailers, or salvage credits.</p> <h2>✨ Highlights</h2> <h3>state.db reliability campaign (six PRs, 44 issues closed)</h3> <p>If your <code>state.db</code> broke after 0.21.0, this is the release for you. Six PRs fix the root causes rather than the symptoms:</p> <ul> <li><strong>No more second writers.</strong> Profile gateways wrote hosted-room state into the <em>root</em> <code>state.db</code> every 5 seconds; the dashboard opened a writable handle on startup; cron's lifecycle guard did a raw <code>open()</code> on a live database (which cancels the gateway's POSIX locks — the classic "how to corrupt SQLite" recipe); <code>doctor --fix</code> would checkpoint under a live holder. All four are gone: hosted rooms live in <code>shared-state.db</code>, the dashboard opens read-only first, the guard goes through the tracked connection registry, and <code>doctor --fix</code> refuses a checkpoint it can't prove is safe. (#108076 — salvage #103489 @RikETS, #102682 @JoaoMarcos44, #108012 @Halldrix, #105428 @TaoMasterCoder)</li> <li><strong>Healthy WAL databases stop wedging.</strong> OpenZFS <code>(deleted)</code> dentries and a <code>close()</code> racing an <code>append_message</code> both produced a sticky <code>DeletedWalGenerationError</code> on a perfectly good store; the read pool was handed out under an unconfirmed journal mode; a transient <code>disk I/O error</code> on WSL2 killed <code>get_session</code> on the first attempt; and a "state.db locked" banner was broadcast after the lock had already cleared. (#108082 — salvage #107411 @chelsealong, #105578 @ca-shrimp, #105711 @gaoanze888, #106958 @nikkoxgonzales; co-authored @QDung210, @fangliquanflq, @Sahilvishnaliya)</li> <li><strong>FTS damage no longer kills your turn.</strong> An error scoped to the full-text-search index was classified as whole-file corruption and fail-closed the conversation. It's now <code>fts_index</code>: search degrades, the index rebuilds later, the transcript store is untouched. Same PR: doctor names structural damage honestly instead of "FTS write corruption", the FTS write probe catches the stale-index shape that passed every check while every write failed, <code>.recover</code> output no longer fails startup on orphan FTS5 shadow tables, header-zeroed databases recover instead of being refused, and the dashboard analytics poller returns a 503 instead of 520K tracebacks a day. (#108130 — salvage #97843 @SulthanZahran1 + #97841 @Finn763, #88604 #56824 #103657 @liuhao1024, #106890 @nftpoetrist, #103321 @jangomango76, #91413 @leegunwoo98, #102808 @TaoMasterCoder)</li> <li><strong>One corrupt row no longer kills <code>sessions list</code>, export, or insights.</strong> A TEXT timestamp or a <code>1e30</code> epoch used to crash the whole listing; malformed marker JSON crashed <code>json_extract</code>; more than 999 ids crashed bulk delete/prune. One <code>coerce_epoch()</code> helper on every reader (bad rows render <code>?</code> with a WARNING naming the session), a <code>json_valid</code> guard, IN-list chunking, and batched export hydration. (#108086 — salvage #106071 @Xipong, #101726 @efe-arv, #94701 @liuhao1024, #102679 @mssteuer, #100658 @Mi55ed)</li> <li><strong>Sessions never bind to or read another profile's database.</strong> The Desktop launch backend could pin itself to the wrong profile's <code>state.db</code> under a HERMES_HOME override race; <code>session_search</code> by bare ID silently scanned every profile and returned someone else's transcript; recovery guidance pointed at the wrong file; profile delete kept a handle open (WinError 32). (#108074 — salvage #102534 @HexLab98, #106975 @Sora-bluesky)</li> <li><strong>Opening state.db no longer takes the write lock when nothing needs writing.</strong> A one-shot <code>hermes</code> process opening the store behind a busy gateway stalled 4–20 s and then failed with "database is locked". Now 0.01 s. (#108067 — salvage #106751 @kshitijk4poor, #101881 @jonpol01)</li> </ul> <p>Also in the window from the same subsystem: a fresh <code>state.db</code> no longer publishes FTS tables before owning the rebuild lock (#106311), a handle that lost its WAL generation no longer checkpoints stale frames at shutdown (#106315, #106840), a clobbered first page is quarantined with its WAL instead of opened destructively (#106587), WAL setup leaves an unverifiable database untouched (#106568), and quarantined handles refuse VACUUM/FTS optimize (#106343, #106349). Most of these salvaged community diagnoses by @kshitijk4poor.</p> <h3>Multi-profile isolation hardening</h3> <p>A cluster of fixes for installs running several profiles under one gateway (multiplex): secondary-profile bots no longer inherit the default profile's allow-lists (#107616), adapters no longer send credentials to the default profile's host (#107617), stdio MCP servers no longer receive the default profile's vault secrets (#107630), <code>MEDIA:</code> delivery can no longer attach another profile's <code>.env</code> / <code>auth.json</code> / <code>state.db</code> (#107609), Feishu drive callbacks and <code>/p/<profile>/</code> webhook replies stay on the routed profile (#107620, #107626), and secondary profiles no longer get a sibling's Nous bearer from per-process memos (#107611).</p> <h3>Desktop backend spawn storms are over</h3> <p>Bot Mode used to spawn or dial one backend per profile on launch and on every roster tick, hovering the Bots roster spawned a backend per row, and profile switches could spawn a duplicate primary. (#108069, #108107, #108118, #108134, #107969, #108112 — salvage #102512, #103634, #103399, #107997 and others by @kshitijk4poor)</p> <h3>Password-blind credential vault</h3> <p>The agent can now sign in, pay, and fill addresses from 1Password, Bitwarden, or the local Hermes vault without ever seeing a secret; two-factor codes come from a saved authenticator key or are asked for in the user's UI (#106480, #107585). Private git plugins install with the user's stored credentials (#106981).</p> <h3>Plugin catalog and one Plugins page</h3> <p>A curated, SHA-pinned plugin index with CLI, admission CI, docs and dashboard (#69446); Desktop gets one Plugins page owning agent + desktop plugins, install, catalog and per-commit pinning (#107212, #107314, #107321); Radio ships as an opt-in SDK plugin (#107072).</p> <h3>Nous free tier and guided first launch</h3> <p>Free inference and connectors out of the box with one command to sign in (#105258, #105260), <code>/login</code> from a chat (#105261), connector tools (Gmail, Linear, Notion, ...) searchable through <code>tool_search</code> (#106842), and a guided first launch behind <code>HERMES_GUEST_ONBOARDING=1</code> (#107697, #107958, #107985, #108211).</p> <h2>🐛 Notable Bug Fixes</h2> <p><strong>Gateway & platforms</strong></p> <ul> <li>A bare <code>display:</code> key in config.yaml no longer crashes every gateway turn (#106305); a queued-lane final refused by the platform is recorded and redelivered (#106316); a stalled WebSocket send no longer blocks every later event (#106581); the first turn no longer waits on the Python toolchain probe (#106556).</li> <li>Telegram bots must @mention when <code>bots_require_mention</code> is on, breaking bot-to-bot loops (#106534); Matrix renders LaTeX (#106515); Signal renders markdown tables (#106538); WhatsApp replies to view-once messages keep their quote (#106541); media-only replies report SUCCESS everywhere (#106557).</li> </ul> <p><strong>Providers & routing</strong></p> <ul> <li><code>/model</code> and auxiliary auto never bill a provider you didn't select (#107366); never auto-switch to a provider you have no credentials for (#107281); Bedrock Claude/Converse/Mantle models survive <code>/model</code>, fallback and restore (#107621, #107658); Bedrock Guardrails enforced (#107815).</li> <li>Codex: patch-budget image 400 shrinks and retries (#106525); unentitled primary + fallback no longer oscillate (#106549); Azure Foundry replayed-reasoning rejection classified and pruned (#106718 @erosika). MCP OAuth refresh no longer erases the refresh token (#106185). Anthropic clients send exactly one credential (#107978).</li> <li>DeepSeek V4.1 Flash on Nous Portal and OpenRouter pickers (#107489); GPT Image 2.5 via OpenAI and FAL (#105988); Opus 5 / Fable 5.1 on the native Anthropic picker (#106636 @xxxigm).</li> </ul> <p><strong>Agent loop & compression</strong></p> <ul> <li>One blocked periodic callback no longer stalls lease refresh (#106308); a mid-turn <code>/steer</code> is persisted as its own user row (#106317, #106344); local-inference memory-ceiling rejections back off instead of compressing history (#106307); context-overflow after partial streaming ends the turn (#106567); length continuation stops when the prompt filled the window (#106571); compression no longer times out silently on aux retries (#106866); <code>model_thresholds</code> keys can be provider-scoped (#108061).</li> <li>Surface switch (Desktop↔TUI) no longer rebuilds the system prompt and busts the prompt cache (#105844); CLI keeps the <code>api_content</code> sidecar so the cache survives an early persist (#105842).</li> </ul> <p><strong>CLI, TUI & Desktop</strong></p> <ul> <li><code>hermes -z --resume</code> continues the session (#106313); Shift+letter and Cmd+Shift+Z work on extended-key terminals (#90674 @francip, #105493); <code>browser_exec</code> timeout kills the whole process tree (#106589); update checks poll the GitHub API once a day instead of git-fetching every 30 min (#107648); <code>hermes update</code> names the real cause and can't hang on a stalled fetch (#108053).</li> <li>Desktop: UI language survives the update relaunch (#106476), expired OAuth grants get a one-click re-sign-in (#106965), HUD mode shows the transcript again and always gives the window back (#107491, #107423), the backend exits when its Desktop parent dies (#107977), Windows updates stop reporting false failures (#106175, #107183), WSLg renders on the Windows GPU (#106528), Telegram quick setup with QR ported from the dashboard (#107242), and ~60 more Desktop fixes largely from @OutThisLife and @kshitijk4poor.</li> </ul> <p><strong>Cron & Kanban</strong></p> <ul> <li>An off-tick "run now" no longer cancels the next scheduled run (#106306); a killed manual run no longer blocks the next one for 5 minutes (#106733); a one-shot changed to recurring keeps firing (#106532); unpinned jobs run on their creation-snapshot model (#106499); <code>--clone-all</code> no longer copies cron jobs (#106478); <code>kanban promote</code> refuses undone parents (#106550); <code>kanban_request_review</code> rejects unknown reviewer profiles (#106547).</li> </ul> <p><strong>Tools & memory</strong></p> <ul> <li>A stdio MCP server dying mid-call no longer replays the tool call (#106546); a skills-only background review can no longer delete memory entries (#106310); mem0 memory no longer drops long turns (#106542); <code>tool_search</code> returns nothing rather than five tools sharing one word (#106676); remote NOPASSWD sudo no longer prompts (#107939); RSS and Reddit reading no longer activate by default (#105873).</li> </ul> <p><strong>Housekeeping</strong></p> <ul> <li><code>config.yaml</code> backups live in one bounded <code>backups/config/</code> dir (#106388); <code>hermes backup</code> keeps the newest 3 zips (#106455); <code>hermes setup --reset</code> backs up the real config (#106453); <code>debug share</code> retention shrunk to 1 day on the dpaste fallback (#106531).</li> </ul> <h2>👥 Contributors</h2> <p>Thank you to the <strong>140 contributors</strong> whose commits, co-author trailers, and salvaged PRs landed in this window.</p> <p><strong>state.db campaign — salvaged PR authors:</strong> @RikETS, @JoaoMarcos44, @Halldrix, @TaoMasterCoder, @chelsealong, @ca-shrimp, @gaoanze888, @nikkoxgonzales, @QDung210, @fangliquanflq, @Sahilvishnaliya, @kshitijk4poor, @jonpol01, @HexLab98, @Sora-bluesky, @Xipong, @efe-arv, @liuhao1024, @mssteuer, @Mi55ed, @SulthanZahran1, @Finn763, @nftpoetrist, @jangomango76, @leegunwoo98, @ggoldani.</p> <p><strong>state.db campaign — issue reporters</strong> (the forensics in these threads were often better than the fixes): @thedigitalcarpenterdad, @Rroven, @aoeman84, @StephanRosin, @rubensandrade-sketch, @wanliqin, @chenzheshushi-commits, @CarlosReyesPena, @revazone, @reservassai-art, @Cuttingwater, @soroush5, @e-shizz, @shobhit-87labs, @shivanathd, @hoelzl, @i8ei, @Ace-Kelly, @YinsenWANG, @zbabiarz, @Sravanjangam, @0gl20shk0sbt36, @RChina, @bronder, @ccwssy, @bottenbenny, and @Hitman117890 whose Discord report kicked the campaign off.</p> <p><strong>Everyone in the window (alphabetical):</strong> @0genlab, @0xalydev, @100yenadmin, @1052326311, @686f6c61, @69k4xmdfm2-blip, @abundantbeing, @Adolanium, @Ahmett101, @albert748, @AlexxRussell, @alt-glitch, @auroracapital, @austinpickett, @babatorik, @Bartok9, @benbarclay, @bennybuoy, @brian717, @briandevans, @buihongduc132, @ca-shrimp, @cervantesh, @Cesar-Azeredo, @ChanPark03, @chelsealong, @ckomma, @ClintonEmok, @crazyief, @ctaylor86, @dalzio, @DavidMetcalfe, @Drexuxux, @edosulai, @efe-arv, @emozilla, @ericmaddox, @erosika, @ethernet8023, @everm1nd, @FalconOrtiz, @fangliquanflq, @Finn763, @FirmamentalSpring, @francip, @g3org3yo, @gaoanze888, @ggoldani, @Halldrix, @haydster7, @hbizi, @helix4u, @HexLab98, @huklaa, @IAvecilla, @infinitycrew39, @jahfaliabdulrahman-dev, @jangomango76, @JoaoMarcos44, @jonpol01, @jwilson411, @KeyArgo, @kokhlo, @KoNit-K, @kshitijk4poor, @kyssta-exe, @leegunwoo98, @lesterlxt, @liuhao1024, @Mabolla, @manuelschipper, @MaxFreedomPollard, @mearls0501, @mengyuyuan, @Mi55ed, @MiseHinoha, @mjshorty, @mkrb84, @moisesvalero, @moken627-hub, @mssteuer, @nateEc, @nftpoetrist, @nickseelert, @nikkoxgonzales, @notwitcheer, @onuraycicek, @outdog-hwh, @OutThisLife, @philmossman, @phuongvm, @pierrenode, @portavales, @PRATHAMESH75, @QDung210, @rewbs, @RikETS, @romanovzky, @ryantuc, @Sahilvishnaliya, @salch-cred, @sgarrand, @shannonsands, @simpolism, @Solitud1nem, @somewheresy, @Sora-bluesky, @sprmn24, @squevo, @StellarisW, @Stoltemberg, @SulthanZahran1, @Svector-anu, @szicely, @TaoMasterCoder, @teknium1, @ten82e, @thedavidweng, @tkaufmann, @Totoro-qaq, @Tranquil-Flow, @tuancookiez-hub, @TurgutKural, @ugoenyioha, @unsupportedpastels, @victor-kyriazakos, @webtecnica, @wliu-dev, @wukangcheng1994, @Xipong, @Xixiartemis, @xkam7ar, @xxxigm, @yavarb, @yoniebans, @Youssef, @yoyodine-industries, @yuanchenglu, @YuhGuan, @Zeus-Deus.</p> <p>Also: Youssef.</p> <h2>Updating</h2> <ul> <li>Existing install: <code>hermes update</code></li> <li>Fresh install: <code>curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash</code></li> <li>Managed deployments should update through their deployment tooling using the new tag.</li> <li>If your <code>state.db</code> was already damaged by 0.21.0/0.21.1: run <code>hermes doctor</code> first; it now names structural vs index damage correctly and points at <code>hermes sessions recover --inspect-only</code> (profile-pinned) when a rebuild isn't enough.</li> </ul> <p><strong>Full Changelog:</strong> <a href="https://github.com/NousResearch/hermes-agent/compare/v2026.9.7...v2026.9.11">v2026.9.7...v2026.9.11</a></p> </div> <button class="cl-expand-btn ha-headline">▼ EXPAND FULL CHANGELOG</button> <div class="cl-card__footer"> <a href="https://github.com/NousResearch/hermes-agent/releases/tag/v2026.9.11" target="_blank" rel="noopener noreferrer" class="cl-gh-link">↗ GitHub</a> </div> </div> </article><article class="cl-entry" data-version="v2026.9.7" data-name="hermes agent v0.21.1 (v2026.9.7)" data-body="# hermes agent v0.21.1 (v2026.9.7) **release date:** september 7, 2026 > patch release. this tag rolls up current main since v0.21.0 for tagged deployments and downstream consumers. ## about this release measured at commit `6178e9f4eed8d99f4fc550add939d58c7bed6206`, the window since v0.21.0 contains **5,139 non-merge commits** across **4,364 changed files** (+601,014 / −768,419). github reports **632 merged prs** in the release window at preparation time. these figures exclude the release-version commit. the rollup includes the codebase modularization, file-operation and startup performance work, provider and model updates, desktop session controls and browser annotations, mcp authorization improvements, cron scheduling and delivery fixes, and delegation reliability improvements. this" data-prerelease="false" data-breaking="false" data-index="12"> <div class="cl-dot"> <span class="cl-dot__icon">●</span> </div> <div class="cl-header"> <span class="ha-headline cl-header__version">v2026.9.7</span> <span class="ha-headline cl-header__date">Sep 7, 2026</span> </div> <div class="cl-card"> <h3 class="ha-headline cl-card__title">v0.21.1 (v2026.9.7)</h3> <div class="changelog-body cl-card__body cl-collapsed"><h1>Hermes Agent v0.21.1 (v2026.9.7)</h1> <p><strong>Release Date:</strong> September 7, 2026</p> <blockquote> <p>Patch release. This tag rolls up current main since v0.21.0 for tagged deployments and downstream consumers.</p> </blockquote> <h2>About this release</h2> <p>Measured at commit <code>6178e9f4eed8d99f4fc550add939d58c7bed6206</code>, the window since v0.21.0 contains <strong>5,139 non-merge commits</strong> across <strong>4,364 changed files</strong> (+601,014 / −768,419). GitHub reports <strong>632 merged PRs</strong> in the release window at preparation time. These figures exclude the release-version commit.</p> <p>The rollup includes the codebase modularization, file-operation and startup performance work, provider and model updates, desktop session controls and browser annotations, MCP authorization improvements, cron scheduling and delivery fixes, and delegation reliability improvements. This patch does not attempt to enumerate or announce every feature in the window.</p> <p><strong>Full curated release notes for this window will ship with v0.22.0</strong>, covering everything since v0.21.0, including the intervening patch releases, feature details, and complete contributor credits.</p> <h2>Updating</h2> <ul> <li>Existing install: <code>hermes update</code></li> <li>Fresh install: <code>curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash</code></li> <li>Managed deployments should update through their deployment tooling using the new tag.</li> </ul> <p><strong>Full Changelog:</strong> <a href="https://github.com/NousResearch/hermes-agent/compare/v2026.8.31...v2026.9.7">v2026.8.31...v2026.9.7</a></p> </div> <button class="cl-expand-btn ha-headline">▼ EXPAND FULL CHANGELOG</button> <div class="cl-card__footer"> <a href="https://github.com/NousResearch/hermes-agent/releases/tag/v2026.9.7" target="_blank" rel="noopener noreferrer" class="cl-gh-link">↗ GitHub</a> </div> </div> </article><article class="cl-entry" data-version="v2026.8.31" data-name="hermes agent v0.21.0 (v2026.8.31)" data-body="# hermes agent v0.21.0 (v2026.8.31) **release date:** august 31, 2026 **since v0.20.0:** ~5,800 commits · ~2,475 merged prs · ~5,680 files changed · ~869,000 insertions · ~135,000 deletions · **~2,100 issues closed** · 760+ contributors > **the pantheon release.** v0.20.0 made hermes the herald — he spoke, and he carried word to other agents. in v0.21.0 the gods assemble. bot mode ships built into the desktop app: a society of named agents with their own faces and group chats, where your bots talk to each other — and to you — like a team, not a toolbox. around that spine: cron jobs gained memory and continuity so scheduled agents actually learn between runs, subagents can be steered live mid-flight, the mcp surface became a real command center, and the agent can now drive the desktop's o" data-prerelease="false" data-breaking="false" data-index="13"> <div class="cl-dot"> <span class="cl-dot__icon">●</span> </div> <div class="cl-header"> <span class="ha-headline cl-header__version">v2026.8.31</span> <span class="ha-headline cl-header__date">Aug 31, 2026</span> </div> <div class="cl-card"> <h3 class="ha-headline cl-card__title">v0.21.0 (v2026.8.31)</h3> <div class="changelog-body cl-card__body cl-collapsed"><h1>Hermes Agent v0.21.0 (v2026.8.31)</h1> <p><strong>Release Date:</strong> August 31, 2026 <strong>Since v0.20.0:</strong> ~5,800 commits · ~2,475 merged PRs · ~5,680 files changed · ~869,000 insertions · ~135,000 deletions · <strong>~2,100 issues closed</strong> · 760+ contributors</p> <blockquote> <p><strong>The Pantheon Release.</strong> v0.20.0 made Hermes the herald — he spoke, and he carried word to other agents. In v0.21.0 the gods assemble. Bot Mode ships built into the desktop app: a society of named agents with their own faces and group chats, where your bots talk to each other — and to you — like a team, not a toolbox. Around that spine: cron jobs gained memory and continuity so scheduled agents actually learn between runs, subagents can be steered live mid-flight, the MCP surface became a real command center, and the agent can now drive the desktop's own browser. This release rolls up everything from the v0.20.1–v0.20.6 infrastructure patch tags — those windows are fully documented here.</p> </blockquote> <hr> <h2>✨ Highlights</h2> <ul> <li><p><strong>Bot Mode — your agents become a society, built in</strong> — Bot Mode is now a bundled, default-on part of the desktop app: every agent profile gets a name, a deterministic avatar face (with randomize/lock controls), and a place in a shared roster. Create Discord-style group chats where multiple bots and you talk in one room, @-mention any bot from the composer, and give rooms names and pictures. Before, "multi-agent" meant plumbing; now it looks like a chat app full of coworkers. (<a href="https://github.com/NousResearch/hermes-agent/pull/87886" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#87886</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/88243" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#88243</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/89386" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#89386</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/96726" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#96726</a> — @teknium1, @OutThisLife, @dokterdok)</p> </li> <li><p><strong><code>hermes peer</code> — bot-to-bot DMs between your agents</strong> — Any Hermes agent can now message any other by handle, across profiles and gateways, from the CLI or from inside a conversation. Ask your research bot to hand findings to your coding bot and get the reply back where you can read it. Replies land in each agent's canonical Bot Chat, so conversations between agents are durable and inspectable, not fire-and-forget. (<a href="https://github.com/NousResearch/hermes-agent/pull/88725" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#88725</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/88178" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#88178</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/91487" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#91487</a> — @teknium1)</p> </li> <li><p><strong>Cron jobs that remember</strong> — Scheduled jobs stopped being goldfish. Cron agents now load and update persistent memory like every other agent, <code>continuity=true</code> carries each run's output into the next (so a monitor can dedupe against what it already reported), every job gets a durable notepad scratchpad, monitor-mode jobs skip the LLM entirely when nothing changed, and cron output can land in a bot's canonical Bot Chat — where the bot actually responds. Your 9am briefing job now knows what it told you yesterday. (<a href="https://github.com/NousResearch/hermes-agent/pull/91447" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#91447</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/80774" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#80774</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/81139" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#81139</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/81138" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#81138</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/91487" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#91487</a> — @teknium1, @smwbev)</p> </li> <li><p><strong>Steer your subagents while they run</strong> — <code>delegate_task</code> gained live orchestration: list running children, steer one mid-flight with a course correction, or stop it early and keep the partial result. Add optional JSON-schema validation on child outputs, per-delegation cost surfaced in results, and raised defaults (250 iterations, 10 concurrent children) — delegation went from fire-and-pray to actually managed parallel work. (<a href="https://github.com/NousResearch/hermes-agent/pull/85232" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#85232</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/81144" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#81144</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/81142" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#81142</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/86506" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#86506</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/86745" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#86745</a> — @teknium1)</p> </li> <li><p><strong>The MCP command center</strong> — MCP servers and the catalog merged into one coherent desktop page with drag-in "paste anything" import, background health checks that nudge you to re-auth before a tool call fails, a fleet cost/usage overlay showing schema token estimates and 30-day usage per server, and <code>hermes://</code> deep links that install an MCP server with explicit confirmation. Managing twenty MCP servers used to be config-file archaeology; now it's a dashboard. (<a href="https://github.com/NousResearch/hermes-agent/pull/87525" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#87525</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/87572" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#87572</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/87576" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#87576</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/87579" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#87579</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/87581" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#87581</a> — @teknium1)</p> </li> <li><p><strong>A CLI power wave</strong> — Ctrl+P opens a fuzzy command palette, the <code>/model</code> picker filters as you type, <code>/status</code> shows reasoning mode, pending approvals, and context usage, and the status bar can display live cache-hit %, latency, and tokens/sec with per-field toggles. Plus: a global emergency stop, session pin/unpin, rotating task-oriented composer placeholders — and Ghostty-level <strong>terminal pets</strong>, because a companion should have a companion. (<a href="https://github.com/NousResearch/hermes-agent/pull/90730" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#90730</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/90717" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#90717</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/90745" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#90745</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/98250" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#98250</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/98282" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#98282</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/97666" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#97666</a> — @teknium1, and salvaged community work)</p> </li> <li><p><strong>The agent drives the desktop's browser</strong> — The in-app browser stopped being a window the agent could only look at: Hermes now navigates, clicks, and reads it directly, and pages can be popped out to your system browser with full link context menus. Ask it to walk a docs site or debug a web app and watch it happen inside your own app. (<a href="https://github.com/NousResearch/hermes-agent/pull/90197" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#90197</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/89366" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#89366</a> — @OutThisLife, @ethernet8023)</p> </li> <li><p><strong>Six new providers and a model catalog wave</strong> — Meta Model API (Muse Spark) arrives as a built-in provider, alongside CommandCode, Tencent TokenPlan, Nebius Token Factory, Ramp Router, and Actual Computer. The catalogs picked up GLM-5.3-Flash, qwen3.8-max/flash, Gemini 3.7 Flash, MiniMax M3 free, and Nemotron 3.5 Lightning — and <code>model_overrides</code> lets you patch any model's context window or pricing yourself without waiting on a release. (<a href="https://github.com/NousResearch/hermes-agent/pull/88565" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#88565</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/88308" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#88308</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/97917" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#97917</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/97916" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#97916</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/97915" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#97915</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/85560" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#85560</a> — @teknium1 and community)</p> </li> <li><p><strong>Security hardening across the board</strong> — Protected agent-instruction files (AGENTS.md, skills, memory stores) now always require write approval so a prompt-injected agent can't quietly rewrite its own standing orders. A deep redaction sweep closed secret-leak gaps across terminal errors, <code>.env</code> file reads, checkpoints, and ACP logs; the approval system learned Windows destructive commands; and macOS permission grants finally survive updates via a stable TCC signing identity. (<a href="https://github.com/NousResearch/hermes-agent/pull/81152" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#81152</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/80965" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#80965</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/84428" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#84428</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/95091" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#95091</a> — @teknium1 and community)</p> </li> </ul> <hr> <h2>🏗️ Core Agent & Architecture</h2> <h3>Providers & Models</h3> <ul> <li><strong>New providers:</strong> Actual Computer inference (<a href="https://github.com/NousResearch/hermes-agent/pull/79644" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#79644</a>, salvage of #26491), CommandCode with GOAT/Pro/Max plans (<a href="https://github.com/NousResearch/hermes-agent/pull/88308" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#88308</a>, salvage of #32909), Meta Model API (Muse Spark) as a built-in provider plugin (<a href="https://github.com/NousResearch/hermes-agent/pull/88565" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#88565</a>), Tencent TokenPlan (<a href="https://github.com/NousResearch/hermes-agent/pull/97917" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#97917</a>), Nebius Token Factory (<a href="https://github.com/NousResearch/hermes-agent/pull/97916" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#97916</a>), and Ramp Router (<a href="https://github.com/NousResearch/hermes-agent/pull/97915" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#97915</a>).</li> <li><strong>Model catalog wave:</strong> qwen3.8-max and qwen3.8-flash (<a href="https://github.com/NousResearch/hermes-agent/pull/78024" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#78024</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/96979" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#96979</a>), Gemini 3.7 Flash (<a href="https://github.com/NousResearch/hermes-agent/pull/85526" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#85526</a>), GLM-5.3-Flash across OpenRouter/Nous/z.ai/OpenCode (<a href="https://github.com/NousResearch/hermes-agent/pull/95621" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#95621</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/96293" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#96293</a>), MiniMax M3 + Inkling free SKUs (<a href="https://github.com/NousResearch/hermes-agent/pull/96264" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#96264</a>), Nemotron 3.5 Lightning (<a href="https://github.com/NousResearch/hermes-agent/pull/84645" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#84645</a>), Meta Muse Spark 1.2 (<a href="https://github.com/NousResearch/hermes-agent/pull/88600" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#88600</a>).</li> <li><strong>Per-model metadata overrides</strong> via <code>model_overrides</code> config — patch context windows, pricing, or capabilities for any model without waiting on a release (<a href="https://github.com/NousResearch/hermes-agent/pull/85560" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#85560</a>).</li> <li><strong>Data-training-tier warnings</strong> — a unified selection-guard registry warns you across every picker surface when a model trains on your data (<a href="https://github.com/NousResearch/hermes-agent/pull/85917" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#85917</a>).</li> <li><strong>Pip-installed model providers</strong> discovered via entry points — third parties can ship providers as packages (<a href="https://github.com/NousResearch/hermes-agent/pull/85504" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#85504</a>, salvage #81419).</li> <li><strong>Prompt caching engaged for LiteLLM Claude</strong> on the OpenAI wire (<a href="https://github.com/NousResearch/hermes-agent/pull/87517" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#87517</a> — @kshitijk4poor) and api.meta.ai routed through the Responses API for caching (<a href="https://github.com/NousResearch/hermes-agent/pull/88601" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#88601</a>).</li> <li><strong>Codex GPT context defaults</strong> back to the verified 272K, with explicit -900k picker variants for the large window (<a href="https://github.com/NousResearch/hermes-agent/pull/92797" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#92797</a>).</li> </ul> <h3>Agent Loop & Reliability</h3> <ul> <li><strong>Stalled-provider recovery</strong> — a stalled stream no longer leaves Desktop silent or burns the retry budget (<a href="https://github.com/NousResearch/hermes-agent/pull/87236" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#87236</a> — @fangliquanflq).</li> <li><strong>MoA hardening cluster</strong> — the Mixture-of-Agents facade now survives client rebuilds, stream retries, provider rotation, and fallback/restore without leaking prepared requests to native clients (<a href="https://github.com/NousResearch/hermes-agent/pull/90212" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#90212</a> and siblings).</li> <li><strong>Structured-output resilience</strong> — auxiliary calls translate <code>response_format</code> for Anthropic wires and retry when a provider rejects structured output (<a href="https://github.com/NousResearch/hermes-agent/pull/89589" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#89589</a> — @ethernet8023).</li> <li><strong>Compression: lean tail mode</strong> + a compaction recall eval harness to measure what compression actually preserves (<a href="https://github.com/NousResearch/hermes-agent/pull/87326" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#87326</a>).</li> <li><strong>Oversized tool results spill to cache</strong> instead of being truncated in sandbox-less sessions (<a href="https://github.com/NousResearch/hermes-agent/pull/89028" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#89028</a>).</li> <li><strong><code>clarify</code> asks multiple independent questions in one call</strong> — one form instead of a chain of round-trips (<a href="https://github.com/NousResearch/hermes-agent/pull/89467" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#89467</a> — @ethernet8023).</li> <li><strong>Verify subsystem</strong> (port from superagent-ai/grok-cli): run-recipe detection + environment manifest so "it works" claims are backed by detected build/test commands (<a href="https://github.com/NousResearch/hermes-agent/pull/80686" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#80686</a>).</li> </ul> <h3>Sessions & State</h3> <ul> <li><strong>Resumed transcripts never re-append</strong> — <code>_db_persisted</code> stamped at row load time (<a href="https://github.com/NousResearch/hermes-agent/pull/92539" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#92539</a> — @kshitijk4poor).</li> <li><strong>SessionDB context-manager protocol</strong> for leak-free DB lifecycles (<a href="https://github.com/NousResearch/hermes-agent/pull/88048" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#88048</a> — @jackulau).</li> <li><strong>Instant session naming</strong> from the opening message, with sticky titles across resume (<a href="https://github.com/NousResearch/hermes-agent/pull/81985" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#81985</a> — @OutThisLife).</li> <li><strong>Session pin/unpin from the CLI</strong> — durable keep flags (<a href="https://github.com/NousResearch/hermes-agent/pull/80761" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#80761</a>).</li> </ul> <h2>📱 Messaging Platforms (Gateway)</h2> <ul> <li><strong>Slack native live cards</strong> — real streaming replies via chat.startStream plus opt-in plan/task cards for tool progress (<a href="https://github.com/NousResearch/hermes-agent/pull/85476" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#85476</a>); outbound link-preview suppression across native and relay planes (<a href="https://github.com/NousResearch/hermes-agent/pull/95142" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#95142</a> — @benbarclay).</li> <li><strong>Telegram inline picker</strong> — every command and skill searchable via @botname, bypassing Telegram's command-menu cap (<a href="https://github.com/NousResearch/hermes-agent/pull/98317" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#98317</a>).</li> <li><strong>Relay matured</strong> — native static/dynamic plugin initialization (<a href="https://github.com/NousResearch/hermes-agent/pull/77915" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#77915</a> — @bbednarski9), live-card ops with draft streaming + task cards (<a href="https://github.com/NousResearch/hermes-agent/pull/85796" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#85796</a> — @victor-kyriazakos), session-span segmentation (<a href="https://github.com/NousResearch/hermes-agent/pull/85467" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#85467</a>), voice-note STT restored over the relay lane (<a href="https://github.com/NousResearch/hermes-agent/pull/95274" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#95274</a> — @benbarclay), transport dedupe/fail-fast fixes (<a href="https://github.com/NousResearch/hermes-agent/pull/89584" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#89584</a>).</li> <li><strong>Gateway control socket</strong> — fleet consumers query the gateway itself (identify/status), and updaters pause gateways gracefully instead of tree-killing them (<a href="https://github.com/NousResearch/hermes-agent/pull/92447" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#92447</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/95695" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#95695</a>).</li> <li><strong>Selective multiplex profile serving</strong> (<a href="https://github.com/NousResearch/hermes-agent/pull/83400" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#83400</a>), per-profile MCP lifecycle RPCs (<a href="https://github.com/NousResearch/hermes-agent/pull/86473" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#86473</a>), roster previews showing the latest message (<a href="https://github.com/NousResearch/hermes-agent/pull/85905" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#85905</a>), concise background-process notifications by default (<a href="https://github.com/NousResearch/hermes-agent/pull/85877" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#85877</a>).</li> <li><strong>Turn-reaper stack dumps</strong> — when the watchdog fires, wedged worker stacks are captured for diagnosis (<a href="https://github.com/NousResearch/hermes-agent/pull/86248" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#86248</a>), with loop-watchdog tuning knobs wired end-to-end (<a href="https://github.com/NousResearch/hermes-agent/pull/92317" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#92317</a>).</li> <li><strong>Split-delivery bug class closed</strong> — swallowed finals and split deliveries fixed as a class (<a href="https://github.com/NousResearch/hermes-agent/pull/79669" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#79669</a> — @kshitijk4poor, salvages #78558).</li> </ul> <h2>🖥️ Desktop App</h2> <ul> <li><strong>Bot Mode built in</strong> — see Highlights. Full sub-catalog: attributed agent-to-agent message cards (<a href="https://github.com/NousResearch/hermes-agent/pull/85855" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#85855</a>), sender-side delivery notices (<a href="https://github.com/NousResearch/hermes-agent/pull/85888" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#85888</a>), paint-first hydration for instant wakes (<a href="https://github.com/NousResearch/hermes-agent/pull/89510" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#89510</a>), editable group names and room pictures (<a href="https://github.com/NousResearch/hermes-agent/pull/89371" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#89371</a>), Routines pane (<a href="https://github.com/NousResearch/hermes-agent/pull/88731" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#88731</a>), rebuilt on the app design system (<a href="https://github.com/NousResearch/hermes-agent/pull/96726" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#96726</a> — @OutThisLife).</li> <li><strong>In-app browser the agent can drive</strong> — the agent uses the desktop's browser tab, not just looks at it (<a href="https://github.com/NousResearch/hermes-agent/pull/90197" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#90197</a> — @OutThisLife), with external-open + link context menus (<a href="https://github.com/NousResearch/hermes-agent/pull/89366" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#89366</a>).</li> <li><strong>Detached update hand-off on every OS</strong> — quit → update → reopen with a single shim window; Windows desktop updates no longer park on "Updating Hermes" (<a href="https://github.com/NousResearch/hermes-agent/pull/83634" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#83634</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/90937" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#90937</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/95897" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#95897</a>).</li> <li><strong>Quality-of-life wave</strong> — HUD snaps to cursor on ⌘⇧G (<a href="https://github.com/NousResearch/hermes-agent/pull/83130" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#83130</a>), paste into the composer without focusing it (<a href="https://github.com/NousResearch/hermes-agent/pull/84955" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#84955</a>), per-turn duration badges (<a href="https://github.com/NousResearch/hermes-agent/pull/87245" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#87245</a>), readable macOS window translucency (<a href="https://github.com/NousResearch/hermes-agent/pull/88744" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#88744</a>), Linux launcher entry (<a href="https://github.com/NousResearch/hermes-agent/pull/76456" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#76456</a>), Linux keychain auto-detection (<a href="https://github.com/NousResearch/hermes-agent/pull/84903" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#84903</a>), cron + blueprint recipes in the sidebar (<a href="https://github.com/NousResearch/hermes-agent/pull/85162" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#85162</a>).</li> <li><strong>Send Diagnostics</strong> — error cards can upload a redacted debug bundle with a support handoff (<a href="https://github.com/NousResearch/hermes-agent/pull/92020" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#92020</a>).</li> <li><strong>Seq-stamped event replay</strong> — lossless desktop reconnect over WebSocket (<a href="https://github.com/NousResearch/hermes-agent/pull/94219" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#94219</a> — @kshitijk4poor).</li> <li><strong>God-file decomposition</strong> — the desktop codebase refactored into atomic modules (<a href="https://github.com/NousResearch/hermes-agent/pull/89611" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#89611</a> — @OutThisLife).</li> </ul> <h2>🖥️ CLI & TUI</h2> <ul> <li>See Highlights for the power wave (command palette, fuzzy /model, richer /status, live status-bar metrics, pets).</li> <li><strong><code>hermes approval-check</code></strong> — dry-run approval verdicts for a command without running it (<a href="https://github.com/NousResearch/hermes-agent/pull/81137" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#81137</a>).</li> <li><strong>Session titles in status bars</strong> (<a href="https://github.com/NousResearch/hermes-agent/pull/81947" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#81947</a>); subagent model exposed in the auxiliary-models picker (<a href="https://github.com/NousResearch/hermes-agent/pull/80463" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#80463</a>).</li> <li><strong>Ctrl+C fixed</strong> — stopped pushing the Kitty keyboard protocol that broke interrupts (<a href="https://github.com/NousResearch/hermes-agent/pull/87074" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#87074</a>).</li> </ul> <h2>🔧 Tool System & MCP</h2> <ul> <li><strong>MCP command center</strong> — see Highlights (<a href="https://github.com/NousResearch/hermes-agent/pull/87525" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#87525</a> et al.).</li> <li><strong>Interrupted commands no longer poison cwd</strong> — the terminal won't adopt a stale working directory after an interrupt (<a href="https://github.com/NousResearch/hermes-agent/pull/85654" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#85654</a> — @ethernet8023).</li> <li><strong>Windows rename contention recovery</strong> (<a href="https://github.com/NousResearch/hermes-agent/pull/84852" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#84852</a> — @OutThisLife); colon-bearing session IDs no longer break sandbox mounts (<a href="https://github.com/NousResearch/hermes-agent/pull/93488" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#93488</a>, consolidated 6 PRs).</li> <li><strong>Vision output uncapped</strong> — aux vision calls stop clamping max_tokens (<a href="https://github.com/NousResearch/hermes-agent/pull/75253" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#75253</a> — @adikpb).</li> <li><strong>Subagent work protected</strong> — delegate no longer deletes a child's uncommitted work when git inspection fails (<a href="https://github.com/NousResearch/hermes-agent/pull/88419" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#88419</a> — @kshitijk4poor).</li> </ul> <h2>🧩 Skills Ecosystem</h2> <ul> <li><strong>Productivity skill wave</strong> (salvaged from @community proposals): document-to-action-items, meeting-action-items, email-inbox-triage, github-issue-to-pr, weekly-review-planning, competitor-news-monitor, product-price-monitor, social-media-content-calendar (<a href="https://github.com/NousResearch/hermes-agent/pull/81185" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#81185</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/81749" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#81749</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/81672" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#81672</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/81708" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#81708</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/81936" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#81936</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/81945" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#81945</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/81906" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#81906</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/81942" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#81942</a>).</li> <li><strong>HAR-derived API clients</strong> — watch a website once, then call its hidden API directly with no browser (<a href="https://github.com/NousResearch/hermes-agent/pull/70823" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#70823</a>).</li> <li><strong>publish-site</strong> — versioned website publishing to GitHub/Cloudflare/Netlify Pages (<a href="https://github.com/NousResearch/hermes-agent/pull/72189" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#72189</a>); <strong>session-librarian</strong> for prompt-driven session management (<a href="https://github.com/NousResearch/hermes-agent/pull/84917" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#84917</a>); <strong>blocked-page-recovery</strong> fallback ladder (<a href="https://github.com/NousResearch/hermes-agent/pull/84906" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#84906</a>); <strong>merge-reconciler</strong> for neutral multi-agent conflict resolution (<a href="https://github.com/NousResearch/hermes-agent/pull/83063" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#83063</a>); Box productivity skill (<a href="https://github.com/NousResearch/hermes-agent/pull/85767" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#85767</a>); ast-grep codemods (<a href="https://github.com/NousResearch/hermes-agent/pull/80892" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#80892</a>); draw-your-font + simple-english optional skills (<a href="https://github.com/NousResearch/hermes-agent/pull/80814" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#80814</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/80811" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#80811</a>); plan-interrogation (evolved grill-me) (<a href="https://github.com/NousResearch/hermes-agent/pull/97831" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#97831</a>).</li> <li><strong>Advisory SKILL.md linter on create</strong> (<a href="https://github.com/NousResearch/hermes-agent/pull/81896" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#81896</a>); skills-hub live-repo fallback for missing optional skills (<a href="https://github.com/NousResearch/hermes-agent/pull/82780" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#82780</a>).</li> </ul> <h2>⏰ Cron, Delegation & Multi-Agent</h2> <ul> <li><strong>Cron memory + continuity</strong> — see Highlights (<a href="https://github.com/NousResearch/hermes-agent/pull/91447" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#91447</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/80774" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#80774</a>).</li> <li><strong>Monitor-mode jobs</strong> with hash-suppressed change detection (<a href="https://github.com/NousResearch/hermes-agent/pull/81138" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#81138</a>); per-job durable notepads (<a href="https://github.com/NousResearch/hermes-agent/pull/81139" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#81139</a>); pre-dispatch config validation (<a href="https://github.com/NousResearch/hermes-agent/pull/81140" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#81140</a>); acked failure signatures stop re-pinging (<a href="https://github.com/NousResearch/hermes-agent/pull/95017" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#95017</a>); per-job reasoning-effort pinning (<a href="https://github.com/NousResearch/hermes-agent/pull/91244" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#91244</a>); "Trigger now" executes immediately and safely (<a href="https://github.com/NousResearch/hermes-agent/pull/70638" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#70638</a> — @smwbev); model-drift impact surfaced in Desktop (<a href="https://github.com/NousResearch/hermes-agent/pull/83266" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#83266</a> — @ctaylor86).</li> <li><strong>Live subagent orchestration</strong> — see Highlights (<a href="https://github.com/NousResearch/hermes-agent/pull/85232" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#85232</a>); structured-output schemas on delegate_task (<a href="https://github.com/NousResearch/hermes-agent/pull/81144" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#81144</a>); batch-quality validation before spawning (<a href="https://github.com/NousResearch/hermes-agent/pull/81141" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#81141</a>); truncation markers on capped children (<a href="https://github.com/NousResearch/hermes-agent/pull/86641" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#86641</a>).</li> <li><strong>Kanban hardening</strong> — collision-hotspot flagging (<a href="https://github.com/NousResearch/hermes-agent/pull/83428" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#83428</a>), split-brain decision-ownership contract (<a href="https://github.com/NousResearch/hermes-agent/pull/83424" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#83424</a>), memory-aware dispatch guard (<a href="https://github.com/NousResearch/hermes-agent/pull/88115" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#88115</a>), notify/wake delivery modes (<a href="https://github.com/NousResearch/hermes-agent/pull/85487" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#85487</a>).</li> </ul> <h2>📊 Observability</h2> <ul> <li><strong>Model/provider usage reporting</strong> and bounded tool-metrics aggregation land as an observability subsystem (<a href="https://github.com/NousResearch/hermes-agent/pull/68881" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#68881</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/68882" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#68882</a> — @afourniernv), with lifecycle ops bounded so a wedged pipeline can never block the agent (<a href="https://github.com/NousResearch/hermes-agent/pull/83514" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#83514</a> — @victor-kyriazakos).</li> </ul> <h2>🔒 Security & Reliability</h2> <ul> <li><strong>Protected instruction files</strong> — writes to AGENTS.md/skills/memory always require approval (<a href="https://github.com/NousResearch/hermes-agent/pull/81152" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#81152</a>).</li> <li><strong>Redaction sweep</strong> — emission gaps closed across env-name variants, control-splits, process(list), checkpoints (<a href="https://github.com/NousResearch/hermes-agent/pull/80965" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#80965</a>); <code>.env</code> reads redacted via file-read detection (<a href="https://github.com/NousResearch/hermes-agent/pull/80964" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#80964</a>); terminal exception results + ACP stderr (<a href="https://github.com/NousResearch/hermes-agent/pull/81675" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#81675</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/81686" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#81686</a>); SSH target logging (<a href="https://github.com/NousResearch/hermes-agent/pull/88232" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#88232</a>).</li> <li><strong>Windows approval coverage</strong> — destructive Windows commands and paths now trip the approval system (<a href="https://github.com/NousResearch/hermes-agent/pull/84428" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#84428</a>).</li> <li><strong>Supply-chain response</strong> — the Blender MCP catalog entry and skill were removed after an upstream compromise (<a href="https://github.com/NousResearch/hermes-agent/pull/83404" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#83404</a>); plugin installs get Tier-1 security scanning (<a href="https://github.com/NousResearch/hermes-agent/pull/80728" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#80728</a>).</li> <li><strong>macOS TCC identity</strong> — permission grants survive every update via <code>hermes desktop --setup-tcc-identity</code> (<a href="https://github.com/NousResearch/hermes-agent/pull/95091" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#95091</a>).</li> <li><strong>PKCE cookie fix</strong> — SameSite=None over HTTPS with a matching clear path (<a href="https://github.com/NousResearch/hermes-agent/pull/83536" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#83536</a> — @benbarclay).</li> </ul> <h2>🏗️ Infrastructure, CI & Packaging</h2> <ul> <li><strong>Real-OS CI</strong> — macOS and Windows CI lanes with tests gated by real host OS (<a href="https://github.com/NousResearch/hermes-agent/pull/77992" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#77992</a> — @ethernet8023); work lanes on 32-core runners (<a href="https://github.com/NousResearch/hermes-agent/pull/92009" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#92009</a>); review comments + image builds moved out of the hot CI path (<a href="https://github.com/NousResearch/hermes-agent/pull/82668" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#82668</a>).</li> <li><strong>Bootstrap installer</strong> no longer waits on pipe EOF (<a href="https://github.com/NousResearch/hermes-agent/pull/90941" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#90941</a> — @OutThisLife).</li> </ul> <h2>🐛 Notable Bug Fixes</h2> <ul> <li>Desktop session races (Stop→edit/resend, submit ownership) fixed as a cluster (<a href="https://github.com/NousResearch/hermes-agent/pull/86594" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#86594</a>); workspace-pane idle flicker (<a href="https://github.com/NousResearch/hermes-agent/pull/97513" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#97513</a>); assistant-ui boundary recovery (<a href="https://github.com/NousResearch/hermes-agent/pull/81232" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#81232</a>).</li> <li>Kanban schema re-creation when a cached DB path loses it (<a href="https://github.com/NousResearch/hermes-agent/pull/83619" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#83619</a> — @JoaoMarcos44).</li> <li>Cron jobs no longer inherit a kanban worker's dispatcher identity (<a href="https://github.com/NousResearch/hermes-agent/pull/79657" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#79657</a> — @kshitijk4poor); relay-fronted Slack cron delivery (<a href="https://github.com/NousResearch/hermes-agent/pull/85340" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#85340</a> — @victor-kyriazakos).</li> <li>Model-picker serves cached custom-provider catalogs on no-probe opens (<a href="https://github.com/NousResearch/hermes-agent/pull/81973" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#81973</a> — @austinpickett).</li> <li><span class="cl-badge cl-badge-ci">CI</span>Docker sandbox MEDIA attachments no longer silently drop (<a href="https://github.com/NousResearch/hermes-agent/pull/94509" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#94509</a>); desktop binary attachments delivered into sandbox backends (<a href="https://github.com/NousResearch/hermes-agent/pull/81717" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#81717</a>).</li> <li>Session-hygiene compaction cooldown escalates on repeat failures (<a href="https://github.com/NousResearch/hermes-agent/pull/79741" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#79741</a> — @kshitijk4poor).</li> <li>Provider-injected parameter 400s retried instead of aborting the turn (<a href="https://github.com/NousResearch/hermes-agent/pull/91643" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#91643</a>).</li> <li>…and roughly two thousand more closed issues' worth — this window averaged ~85 merged PRs per day.</li> </ul> <h2>↩️ Reverted in this window (not shipping)</h2> <ul> <li><strong>Model Council mode (/council)</strong> — landed then reverted; not in this release.</li> <li><strong>DCP context engine</strong> — landed then reverted; not in this release.</li> <li><strong>WS-only gateway server (#94245)</strong> — merged then reverted (#96118); FastAPI remains on the desktop boot path. The seq-stamped event replay (#94219) DID ship.</li> <li>Electron rolled back to 40.10.2; TCC interpreter anchor removed (superseded by the signing-identity approach that shipped).</li> </ul> <h2>👥 Contributors</h2> <h3>Core Team (Nous Research)</h3> <ul> <li><strong>@teknium1</strong> — release direction, Bot Mode, MCP command center, cron memory, and ~1,340 merged PRs</li> <li><strong>@kshitijk4poor</strong> (374 PRs) — gateway delivery classes, session persistence, event replay, MoA/caching fixes</li> <li><strong>@OutThisLife</strong> (209 PRs) — desktop architecture, Bot Mode UI, in-app browser, update hand-off</li> <li><strong>@ethernet8023</strong> (38 PRs) — OS-gated CI lanes, clarify multi-question, tool cwd safety, aux structured-output resilience</li> <li><strong>@benbarclay</strong> (17 PRs) — relay voice STT, Slack link previews, PKCE</li> <li><strong>@victor-kyriazakos</strong> (15 PRs) — relay live cards, observability bounding</li> <li><strong>@rob-maron</strong>, <strong>@austinpickett</strong>, <strong>@jquesnelle</strong>, <strong>@shannonsands</strong> — providers, dashboard, model catalogs, and more</li> </ul> <h3>Top Community Contributors (by merged PR count)</h3> <ul> <li><strong>@helix4u</strong> (31 PRs) — wake-word capture, session UX, fix wave across desktop and gateway</li> <li><strong>@fangliquanflq</strong> (17 PRs) — stalled-provider recovery and agent-loop resilience</li> <li><strong>@bbednarski9</strong> — relay native plugin integration; <strong>@HexLab98</strong>, <strong>@xxxigm</strong>, <strong>@afourniernv</strong> (observability), <strong>@liuhao1024</strong>, <strong>@Christopher-Schulze</strong>, <strong>@Adolanium</strong>, <strong>@webtecnica</strong>, <strong>@smwbev</strong> (cron Trigger-now), <strong>@ctaylor86</strong> (cron drift in Desktop), <strong>@JoaoMarcos44</strong> (kanban schema recovery), <strong>@jackulau</strong> (SessionDB context manager), <strong>@adikpb</strong> (vision output caps), <strong>@dokterdok</strong> (Bot Mode unification), and many more.</li> </ul> <h3>All Contributors</h3> <p>Huge thanks to every one of the 760+ people who contributed code, co-authored fixes, or had their work salvaged into this release:</p> <p>@03farren, @0xarkstar, @0xGr1mm, @0xWhiteMage, @100yenadmin, @1052326311, @29206394, @2ndNatureAI, @3Nya3, @3x3xX3N0N, @404Dealer, @4adwentures, @5Hyeons, @686f6c61, @69k4xmdfm2-blip, @6ylqq, @75day, @a-espinoza, @A-Snegin, @a-yeyang, @a0000001, @A2chitect, @abitme, @abundantbeing, @acewong7, @acgh213, @adamcap926, @addelh, @adikpb, @Adolanium, @adurham, @adybag14-cyber, @afourniernv, @ag9920, @ahmadalzaro1, @Ahmett101, @ai-ag2026, @AIalliAI, @aider4ryder, @Ailirag, @Aintworth, @airo7, @AiwendilInTheWoods, @akivavh, @AL-ZiLLA, @Al3xand3r1987, @albertodepaola, @aldoeliacim, @aleksclark, @AlexanderPrendota, @alexdev03, @AlexFucuson9, @AlexGabbia, @AlexMnrs, @algf, @Allecpu, @allin2, @alt-glitch, @amanning3390, @andrexibiza, @andyst-dev, @angel12, @angeon922-collab, @Angriff36, @aniruddhaadak80, @annguyenNous, @anuvratrastogi, @Aoshi-Dev, @appletechie, @arccat-114, @arcimun, @ArthurFranckPat, @aryaxo, @asdasdadhj, @ashah360, @AshuJoshi, @asimons81, @assimovt, @austinpickett, @AVW7, @Axmr1, @aydnOktay, @ayushnangia, @baihemax, @bananawalnut, @Bartok9, @bashrusakh, @bbednarski9, @BearHuddleston, @benbarclay, @benfrank241, @beplee, @bgrablin, @bka9, @BkashJEE, @BlackishGreen33, @BlakeB254, @blunkjamie-dev, @BobClawblaw, @bradmarshall987, @brian717, @briandevans, @BrianFranco, @BrinShadewater, @brucexu-eth, @BrunoBza, @buffpesos, @burak33bb, @C-EXCITE-STUDIO, @c-pompa, @cadezhou, @calvinnwq, @capt-marbles, @carbongotfound, @carlotestor, @Carry00, @cation98, @ccowan93, @cedricziel, @cervantesh, @cfdude, @Chadmc9889, @CharZhou, @chelsealong, @chesterXalan, @chillerno1, @Christopher-Schulze, @chukirk-svg, @cicav, @citizendev9c, @cj52973, @clarkvines, @ClintonEmok, @clyu168, @cmoiccool, @codexbt, @coe0718, @Cossackx, @coygeek, @crazyhulk, @CrazyWillBear, @criptogus, @cryptoyasenka, @ctaylor86, @cvillarroel2, @cxxCoolStar, @cycorld, @dagbs, @damadorPL, @DanBennettUK, @DanDo385, @DannyFengTianYu, @Dannyzen, @danspicytaco, @dante32683, @darko-mesaros, @daromaj, @david-bartos-phrase, @davidgut1982, @DavidMetcalfe, @davidneyravyr, @daxro, @dcdexhome, @deacon-botdoctor, @deadczarvc, @deaneeth, @DECRUX9812, @deepeet-git, @deniqlab, @DeseretSaint, @dhanesh, @Dhruv7201, @dhruvkej9, @digitalbase, @DmytroVolodymyrson, @dokterdok, @Dolverin, @dombejar, @doncazper, @dougatbuck, @douxy1994, @dpersek, @dplush, @Drexuxux, @drissman, @dromai, @dtownsel, @duclucky, @Dudeman456, @Dusk1e, @dvbaecker, @e-macgregor, @EAbaracus, @eaglezzz0522-cloud, @Eapwrk, @easyvibecoding, @echoes666, @egilewski, @ehz0ah, @ekinnee, @ekzhang, @elbukott1, @elisam0, @elphamale, @ElSnacko, @embwl0x, @emozilla, @EMT5320, @EndeavorYen, @Enough1122, @enwaiax, @epeterpanz, @EpicIsTheOne, @eric-senyao, @ernst-bablick, @Eros-ITA, @erosika, @ethernet8023, @etzelvon, @EvanProgramming, @EvenXieWF, @explainanalyze, @f-trycua, @fanfan343, @fangliquanflq, @fattchris, @felix-windsor, @Finn763, @flaviovargasbrandao, @Fly-onlyone, @flyingdoubleG, @forkercat, @francialisomlimoeiro, @francip, @frankmendes1979, @fred0m, @frendo, @frizikk, @frohsinnllc, @Frowtek, @fukutake1207, @fyzanshaik, @GarlicGo, @Gateton, @georgell-ceo, @gfriesen1, @gigabyte22, @gigashad, @gijoby, @gitong, @gkd2323c, @gnanirahulnutakki, @GodsBoy, @gokay-ai, @goktugvatandas, @golldyck, @goodchang77, @GottZ, @grahfmusic, @gregorustar-maker, @greyvito, @gsy324, @guanla-zz, @guilhermeartileshubsai, @guilhermeraiuga, @h-mascot, @h8hawk, @Haakam21, @Haik-G, @halaprix, @Halldrix, @handnewb, @Hangzian, @hanhvs, @hansai-art, @HAOWANG116, @HarishDarko, @hbentel, @helix4u, @HenryGHJ, @hermias1, @HexLab98, @hillimited, @Hjharris1, @hkfiberlaser-svg, @honor2030, @howdeploy, @hsearcy, @huklaa, @hustwkr, @hutao562, @hxwvaa, @IAvecilla, @icemeng, @infinitycrew39, @infocentr, @InphinitiZ, @insane66613, @Inspired-by-Atmosphere, @intelac, @intellectronica, @isak-ialogics, @ishanparihar, @isheng-eqi, @Ishman82, @iskysun96, @iso2kx, @itsflownium, @izumi0uu, @Jaaneek, @Jackal991, @jackijianxa, @jackoconner45, @jackulau, @jaimedhenriques, @james47kjv, @jbagdonas, @jcjc81, @jdgg777, @jeeves-assistant, @jeff-mettel, @Jefftree, @JElfferich, @jeremyrandria-debug, @JinUltimate1995, @jirathip-k, @jmmaloney4, @JoaoMarcos44, @joe-rodgers, @joe050860, @John-Lussier, @Johnny-xuan, @johnrazmus, @johnsonAyo, @jonpol01, @JonthanaHanh, @JoshPaulie, @Jreevo, @jtstothard, @Julientalbot, @justcarlosm, @justinbowes, @justinjohnson25600, @jwtor7, @k0rnacki, @kadiratesdev, @Kailigithub, @kaishi00, @KarateWilly, @kas-cor, @katie-lpd, @Kavyrocom, @KBANTH, @kchernev, @KeaneYan, @kernel-t1, @KeroZelvin, @kerpopule, @KHALIDagara, @KhanCold, @khanhngoo, @KIAgent01, @kim-miram, @kimyxx, @Kinkoolino-Hermes, @kinsolee, @kitsonk, @klaus765, @koltyj, @konsisumer, @kronexoi, @krunkosaurus, @kshitijk4poor, @kudapara, @kvnloo, @kweiner, @kyssta-exe, @Kyzcreig, @laithrw, @lakshyaag-tavily, @landaun, @laulopezreal, @laviesony, @lazy-idler, @LBeghini, @leeclouddragon, @Leegenux, @LemonSchneid, @LeonardoLGDS, @leonphull, @LeonSGP43, @lepetitprince716-prog, @Lesnak1, @lesterlxt, @lesyuk, @lEWFkRAD, @lextiz, @lgy1027, @Lidang-Jiang, @lilShawtty-byte, @lin-hongkuan, @liuhao1024, @liusencomic-cyber, @lkz-de, @loafoe, @locker95, @LordMelkor, @lorzl, @lost9999, @loulanyue, @LovePlayCode, @luckygreen, @lukeroberts, @luoxiao6645, @luxles, @m1k3s0, @Mabolla, @MagMueller, @magnus919, @magnuslundstedt, @MaheshBhushan, @MarcoFernstaedt, @mariobgsp, @marketing2981, @markmcd, @markmnl, @MarkVLK, @marzukia, @Mat-London, @matsvarn, @mattprusak, @MaximCrabbe, @maxmilian, @mehmetkr-31, @Mengchee118, @menhguin, @metamindedu, @michaelHMK, @michaelsam94, @milnerrad, @MindDragonLabs, @misterdas, @mjolley9, @mmcallister8, @mmcclean-aws, @mmchuangyt-ai, @moisesvalero, @mollusk, @monerostar, @Morad37, @mrkillbob, @mrmixx-max, @mrsucesso, @MrTheSoulz, @MustafaK99, @myk0la-b, @mzkarami, @n-leezy, @n1majne3, @NaMinhyeok, @nanami7777777, @nankingjing, @natebransc, @nateEc, @Navlem, @nbxuhk, @nductien, @Ne0teric, @NealZhouPanda, @necoweb3, @negroni334, @nftpoetrist, @nicochase, @Nicolas-Formenton, @nicolasdmolina, @nikitaBarkov, @NikolaRHristov, @noahingh, @nolanchic, @NorethSea, @notkisk, @notwitcheer, @NousResearch, @null-runner, @ojassharma7, @oliver-mee, @olympusbuildz, @OmarB97, @ooiuuii, @openclaww-xz, @opti-josh-holt, @osgeek90, @ousiaresearch, @OutThisLife, @Owen-narcissus, @paoloantinori, @Parker-Fawcett, @pasevin, @pasmud, @PaulBlackSwan, @paultaki, @peetteerr, @pefontana, @Per0-1, @pierrenode, @PINKIIILQWQ, @pittosporum-seu, @pju-hoge, @plcunha, @Pluviobyte, @pmos69, @pnascimento9596, @poisdahl, @potatosalad, @prashantjain25, @PRATHAMESH75, @professorpalmer, @projetsjsl, @protas-box, @qazasdsdqaza, @QDung210, @qixuancao, @QuarkAssistant, @quocanh261997, @ragingbulld, @rainbowgore, @rapsealk, @Raven26-VooDoo, @RaviTharuma, @RayCharlizard, @razultull, @re-ITRT, @Reksely, @RelaxJonh, @repfigit, @RGerrish, @RibatTRW, @RichardGuan1, @RichardHojunJang, @richardhowes, @RickyYii, @rikkarth, @rille111, @Ringo6107, @rjhilgefort, @rjvandeve, @rkfshakti, @rlaope, @Rmohid, @rob-maron, @rodrigogs, @royalaid, @royzhrxy-glitch, @rroverin, @rshi0212, @rsk-731, @rtcopenclawgh, @ruangraung, @rudrakshchahal, @ruochu88s, @rweddle, @ryankhart, @S-Claw, @Sahil-SS9, @salch-cred, @sam7894604, @samclams, @saralilyb, @sashmatash, @sasquatch9818, @satotakumi, @ScaleLeanChris, @SeashoreShi, @serefyarar, @shaase-ctrl, @shali10, @shannonsands, @shanthans-es, @ShaoRou459, @shaqalaka, @shauneccles, @Shedrackeze002, @SHL0MS, @ShonnQ, @Shotflame, @silence-de, @simonvanlaak, @SiteupAgencia, @sjungwon03, @skip-agent, @SLC-BTC, @Slobaka, @smarzola, @smause, @SmelterLabs, @smfworks, @smwbev, @sohomsahaun, @Soju06, @SolshineCode, @solyanviktor-star, @somewheresy, @SongotenU, @songshikang0111, @Sora-bluesky, @SouthpawIN, @spfcraze, @srojk34, @Starfie1d1272, @starship-s, @StellarisW, @steveonjava, @Stoltemberg, @strnadchristopher, @strzhao, @sujeet111, @suntech-wang, @supotato-ipj, @sweetcornna, @sycamoregroupltd, @sylbae, @tachyon-r, @tauros1983, @terry197913, @texasich, @th3sull1van, @thacid22, @thatssoheil, @TheAngryPit, @thebizfixer, @thejpanganiban, @thelonewander3r, @thenabbu, @TheophilusChinomona, @TheSmokeDev, @TheTom, @thomasbek3, @tigercraft4, @Tigrannnnnnn, @Tilly-YL, @tmchow, @tmielika, @tmingos, @TMShiroiko, @TomAce7, @tomatau, @Tomenatore, @Tommy00748, @TomSpoct, @toprakeker, @Tranquil-Flow, @tranquilflow, @trevornk, @trippyogi, @troyrowe-resource, @tt-a1i, @tuancookiez-hub, @tugrulguner, @TurgutKural, @tyfcontent, @Ufonik88, @UniversePeak, @unsupportedpastels, @uperLu, @uttkarsh-26, @V0v1kkkAssistant, @vadelma-agent, @vanniaxel06, @VBS2004, @verybigdog, @victor-kyriazakos, @victorftrdba, @victoronwuanaku, @victorv2i, @vignesh-oai, @vinayshah1998, @vinsew, @VIVAAN-DHAWAN, @vKongv, @vondelomlo, @vorburger, @wanglufei-567, @wangs1203, @wanquanY, @wdon, @web-wyf, @webdevtodayjason, @webtecnica, @webtoolbox, @weisiwu, @weismanfamily, @Wenfengcheng, @wesleysimplicio, @westkite1201, @whirmill, @whisky0809, @whoislikemiha, @will-lynas, @willfrombr, @wingkwong, @Wintle, @wiseconnex, @wo-o, @WolframRavenwolf, @WolftacDigital, @worlldz, @wz-heng, @x1051445024, @x7peeps, @xaviersudre, @XiaoZAZA, @xkam7ar, @xrwang8, @xthezealot, @xxxigm, @Yanir-R, @YappLeCunt, @yatesjalex, @yflmq001, @ygd58, @Yiipu, @yingliang-zhang, @yinkev, @Yishova, @yoniebans, @youtiaowei, @ypQQ1984, @yu-xin-c, @yukinomon, @yuric, @YusenZhang0601, @YuYigeng, @yuzilongleif-collab, @yy28, @zabih-sudo, @ZachariahChu, @zakame, @zapabob, @zccyman, @zcj1122-rgb, @zengzheqing, @Zeraphim, @Zeus-Deus, @zgqq, @zhangfei1231231-sketch, @zhao0112, @zhaomengfan, @ZHJay, @zhongwater123, @zhuermu, @zoidypuh, @zons-zhaozhy, @zuowen7, @zyz619963502zyz, @zzz163519</p> <p>Also: @mkoistinen, @JoaoMarcos44, @StanleyStetson.</p> <hr> <p><strong>Full Changelog</strong>: <a href="https://github.com/NousResearch/hermes-agent/compare/v2026.8.3...v2026.8.31">v2026.8.3...v2026.8.31</a></p> <p><em>This release rolls up and fully documents the v0.20.1, v0.20.2, v0.20.3, v0.20.5, and v0.20.6 patch-tag windows (Aug 13–27), whose notes were deferred to this minor per the rollup-release policy.</em></p> </div> <button class="cl-expand-btn ha-headline">▼ EXPAND FULL CHANGELOG</button> <div class="cl-card__footer"> <a href="https://github.com/NousResearch/hermes-agent/releases/tag/v2026.8.31" target="_blank" rel="noopener noreferrer" class="cl-gh-link">↗ GitHub</a> </div> </div> </article><article class="cl-entry" data-version="v2026.8.27" data-name="hermes agent v0.20.6 (v2026.8.27)" data-body="# hermes agent v0.20.6 (v2026.8.27) **release date:** august 27, 2026 > patch release. this tag rolls up the ~525 prs merged since v0.20.5 into a stable tagged release for downstream consumers (docker images, hosted deployments, fresh installs). --- ## about this release since v0.20.5 (v2026.8.19, tagged august 21), this window landed **~1,313 commits** across **~1,557 files** (+177,113 / −21,682) — **~525 merged prs** including consent-gated real-profile browsing (use your default chromium profile for local browsing, with windows close-with-approval flow); the desktop browser getting its own os window plus a managed ssh remote-update engine and fleet profile rail; a large remote mcp catalog expansion (50+ live-verified vendor-hosted servers incl. cloudflare, grafana cloud, better sta" data-prerelease="false" data-breaking="false" data-index="14"> <div class="cl-dot"> <span class="cl-dot__icon">●</span> </div> <div class="cl-header"> <span class="ha-headline cl-header__version">v2026.8.27</span> <span class="ha-headline cl-header__date">Aug 27, 2026</span> </div> <div class="cl-card"> <h3 class="ha-headline cl-card__title">v0.20.6 (v2026.8.27)</h3> <div class="changelog-body cl-card__body cl-collapsed"><h1>Hermes Agent v0.20.6 (v2026.8.27)</h1> <p><strong>Release Date:</strong> August 27, 2026</p> <blockquote> <p>Patch release. This tag rolls up the ~525 PRs merged since v0.20.5 into a stable tagged release for downstream consumers (Docker images, hosted deployments, fresh installs).</p> </blockquote> <hr> <h2>About this release</h2> <p>Since v0.20.5 (v2026.8.19, tagged August 21), this window landed <strong>~1,313 commits</strong> across <strong>~1,557 files</strong> (+177,113 / −21,682) — <strong>~525 merged PRs</strong> including consent-gated real-profile browsing (use your default Chromium profile for local browsing, with Windows close-with-approval flow); the desktop Browser getting its own OS window plus a managed SSH remote-update engine and fleet profile rail; a large remote MCP catalog expansion (50+ live-verified vendor-hosted servers incl. Cloudflare, Grafana Cloud, Better Stack, Railway); TTL result caching for web_search/web_extract; lean-tail compression as the default; multi-query tool_search with stemming; opt-in OS-keychain encryption for stored secrets (no more per-launch macOS Keychain prompts); updaters pausing gateways over the control socket instead of tree-killing them; image/package-managed installs refusing unsafe in-place updates (#91277 Phase 3); cron durable-incident acks and clearer code-skew failures; Slack link-unfurl controls; shared Docker container identities; pluggable terminal environment backends; and new models across the pickers (GLM-5.3-Flash, MiniMax M3 free, MiniMax H3 Max video).</p> <p><strong>Full curated release notes for this window will ship with v0.21.0</strong>, which will document everything from v0.20.0 onward — highlights, feature areas, and complete contributor credits. Nothing in this window is skipped.</p> <h2>Updating</h2> <ul> <li><code>hermes update</code> from an existing install</li> <li>Fresh install: <code>curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash</code></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/NousResearch/hermes-agent/compare/v2026.8.19...v2026.8.27">v2026.8.19...v2026.8.27</a></p> </div> <button class="cl-expand-btn ha-headline">▼ EXPAND FULL CHANGELOG</button> <div class="cl-card__footer"> <a href="https://github.com/NousResearch/hermes-agent/releases/tag/v2026.8.27" target="_blank" rel="noopener noreferrer" class="cl-gh-link">↗ GitHub</a> </div> </div> </article><article class="cl-entry" data-version="v2026.8.19" data-name="hermes agent v0.20.5 (v2026.8.19)" data-body="# hermes agent v0.20.5 (v2026.8.19) **release date:** august 19, 2026 > patch release. this tag rolls up the ~323 prs merged since v0.20.4 into a stable tagged release for downstream consumers (docker images, hosted deployments, fresh installs). --- ## about this release since v0.20.4 (v2026.8.18, tagged august 18), this window landed **~746 commits** across **~1,250 files** (+111,500 / −20,701) — **~323 merged prs** including bot mode group-room threads, foldable conversation summaries, blob-face avatars, and pdf/file attachments with drag & drop; the keyless web tier (5-vendor free rotation with ring failover, web search on fresh installs with zero keys); a cli polish wave (fuzzy /model picker, ctrl+p command palette, richer /status); execution-discipline and runtime stall guards fr" data-prerelease="false" data-breaking="false" data-index="15"> <div class="cl-dot"> <span class="cl-dot__icon">●</span> </div> <div class="cl-header"> <span class="ha-headline cl-header__version">v2026.8.19</span> <span class="ha-headline cl-header__date">Aug 21, 2026</span> </div> <div class="cl-card"> <h3 class="ha-headline cl-card__title">v0.20.5 (v2026.8.19)</h3> <div class="changelog-body cl-card__body cl-collapsed"><h1>Hermes Agent v0.20.5 (v2026.8.19)</h1> <p><strong>Release Date:</strong> August 19, 2026</p> <blockquote> <p>Patch release. This tag rolls up the ~323 PRs merged since v0.20.4 into a stable tagged release for downstream consumers (Docker images, hosted deployments, fresh installs).</p> </blockquote> <hr> <h2>About this release</h2> <p>Since v0.20.4 (v2026.8.18, tagged August 18), this window landed <strong>~746 commits</strong> across <strong>~1,250 files</strong> (+111,500 / −20,701) — <strong>~323 merged PRs</strong> including Bot Mode group-room threads, foldable conversation summaries, blob-face avatars, and PDF/file attachments with drag & drop; the keyless web tier (5-vendor free rotation with ring failover, web search on fresh installs with zero keys); a CLI polish wave (fuzzy /model picker, Ctrl+P command palette, richer /status); execution-discipline and runtime stall guards from the Composio eval findings; <code>hermes update</code> receipts and fleet <code>--plan</code> verification; <code>hermes worktree list/prune</code>; the opencode-free zero-auth provider; multi-question clarify; desktop perf work (paint-first Bot Mode hydration, compositor spinners, React Compiler in both renderers); and cron jobs gaining persistent memory and per-job reasoning effort.</p> <p><strong>Full curated release notes for this window will ship with v0.21.0</strong>, which will document everything from v0.20.0 onward — highlights, feature areas, and complete contributor credits. Nothing in this window is skipped.</p> <h2>Updating</h2> <ul> <li><code>hermes update</code> from an existing install</li> <li>Fresh install: <code>curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash</code></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/NousResearch/hermes-agent/compare/v2026.8.18...v2026.8.19">https://github.com/NousResearch/hermes-agent/compare/v2026.8.18...v2026.8.19</a></p> </div> <button class="cl-expand-btn ha-headline">▼ EXPAND FULL CHANGELOG</button> <div class="cl-card__footer"> <a href="https://github.com/NousResearch/hermes-agent/releases/tag/v2026.8.19" target="_blank" rel="noopener noreferrer" class="cl-gh-link">↗ GitHub</a> </div> </div> </article><article class="cl-entry" data-version="v2026.8.18" data-name="hermes agent v0.20.4 (2026.8.18)" data-body="# hermes agent v0.20.4 (v2026.8.18) **release date:** august 18, 2026 > patch release. this tag rolls up the ~74 prs merged since v0.20.3 into a stable tagged release for downstream consumers (docker images, hosted deployments, fresh installs). --- ## about this release since v0.20.3 (v2026.8.16.2, tagged august 17), this window landed **~146 commits** across **~265 files** (+21,697 / −2,217) — **~74 merged prs** including the desktop glass/translucency surface work (matte glass, frost picker, macos pre-select), the tabbed sessions|bots sidebar with per-bot hide/unhide, bot mode group-chat fixes (long-running member turns, markdown rendering, cross-machine routing), nvidia skillevaluator tier 1 advisory scanning on skill installs (license + security checks), cron media-send hardening " data-prerelease="false" data-breaking="false" data-index="16"> <div class="cl-dot"> <span class="cl-dot__icon">●</span> </div> <div class="cl-header"> <span class="ha-headline cl-header__version">v2026.8.18</span> <span class="ha-headline cl-header__date">Aug 18, 2026</span> </div> <div class="cl-card"> <h3 class="ha-headline cl-card__title">v0.20.4 (2026.8.18)</h3> <div class="changelog-body cl-card__body cl-collapsed"><h1>Hermes Agent v0.20.4 (v2026.8.18)</h1> <p><strong>Release Date:</strong> August 18, 2026</p> <blockquote> <p>Patch release. This tag rolls up the ~74 PRs merged since v0.20.3 into a stable tagged release for downstream consumers (Docker images, hosted deployments, fresh installs).</p> </blockquote> <hr> <h2>About this release</h2> <p>Since v0.20.3 (v2026.8.16.2, tagged August 17), this window landed <strong>~146 commits</strong> across <strong>~265 files</strong> (+21,697 / −2,217) — <strong>~74 merged PRs</strong> including the desktop glass/translucency surface work (matte glass, frost picker, macOS pre-select), the tabbed SESSIONS|BOTS sidebar with per-bot hide/unhide, Bot Mode group-chat fixes (long-running member turns, Markdown rendering, cross-machine routing), NVIDIA SkillEvaluator Tier 1 advisory scanning on skill installs (license + security checks), cron media-send hardening (configurable timeout, manual-run attachments, missed-fire surfacing), SessionDB event-loop-thread and contention fixes, <code>hermes update</code> parked-branch honesty, and kanban native OS notifications.</p> <p><strong>Full curated release notes for this window will ship with v0.21.0</strong>, which will document everything from v0.20.0 onward — highlights, feature areas, and complete contributor credits. Nothing in this window is skipped.</p> <h2>Updating</h2> <ul> <li><code>hermes update</code> from an existing install</li> <li>Fresh install: <code>curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash</code></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/NousResearch/hermes-agent/compare/v2026.8.16.2...v2026.8.18">https://github.com/NousResearch/hermes-agent/compare/v2026.8.16.2...v2026.8.18</a></p> </div> <button class="cl-expand-btn ha-headline">▼ EXPAND FULL CHANGELOG</button> <div class="cl-card__footer"> <a href="https://github.com/NousResearch/hermes-agent/releases/tag/v2026.8.18" target="_blank" rel="noopener noreferrer" class="cl-gh-link">↗ GitHub</a> </div> </div> </article><article class="cl-entry" data-version="v2026.8.16.2" data-name="hermes agent v0.20.3 (2026.8.16.2)" data-body="# hermes agent v0.20.3 (v2026.8.16.2) **release date:** august 16, 2026 > patch release. this tag rolls up the ~125 prs merged since v0.20.2 into a stable tagged release for downstream consumers (docker images, hosted deployments, fresh installs). --- ## about this release since v0.20.2 (v2026.8.16, tagged earlier today), this window landed **~250 commits** across **~461 files** (+42,613 / −1,641) — **~125 merged prs** including the mcp 2.x sdk migration and 2026-07-28 stateless protocol support, the bundled bot mode (hermes-bots) plugin with the core teammate protocol, the commandcode provider plugin, subprocess python runtime ownership hardening (pythonhome/pythonpath isolation), cua driver 0.20 runtime contracts for computer use, kanban worktree/dispatch fixes, cron continuity flag" data-prerelease="false" data-breaking="false" data-index="17"> <div class="cl-dot"> <span class="cl-dot__icon">●</span> </div> <div class="cl-header"> <span class="ha-headline cl-header__version">v2026.8.16.2</span> <span class="ha-headline cl-header__date">Aug 17, 2026</span> </div> <div class="cl-card"> <h3 class="ha-headline cl-card__title">v0.20.3 (2026.8.16.2)</h3> <div class="changelog-body cl-card__body cl-collapsed"><h1>Hermes Agent v0.20.3 (v2026.8.16.2)</h1> <p><strong>Release Date:</strong> August 16, 2026</p> <blockquote> <p>Patch release. This tag rolls up the ~125 PRs merged since v0.20.2 into a stable tagged release for downstream consumers (Docker images, hosted deployments, fresh installs).</p> </blockquote> <hr> <h2>About this release</h2> <p>Since v0.20.2 (v2026.8.16, tagged earlier today), this window landed <strong>~250 commits</strong> across <strong>~461 files</strong> (+42,613 / −1,641) — <strong>~125 merged PRs</strong> including the MCP 2.x SDK migration and 2026-07-28 stateless protocol support, the bundled Bot Mode (hermes-bots) plugin with the core teammate protocol, the CommandCode provider plugin, subprocess Python runtime ownership hardening (PYTHONHOME/PYTHONPATH isolation), Cua Driver 0.20 runtime contracts for computer use, kanban worktree/dispatch fixes, cron continuity flags, desktop remote-gateway headers and connection self-healing, cron scheduler self-heal (EMFILE recovery, stale-claim reconciliation, wedged-job re-arm), session handoff data-loss fixes, plus a wave of ports from the ecosystem scout slate (plugin install security scanning, /worktree, /rollback hand-edit preservation, UTF-16 file reads, Gemini 3 tool-call ID preservation, and more).</p> <p><strong>Full curated release notes for this window will ship with v0.21.0</strong>, which will document everything from v0.20.0 onward — highlights, feature areas, and complete contributor credits. Nothing in this window is skipped.</p> <h2>Updating</h2> <ul> <li><code>hermes update</code> from an existing install</li> <li>Fresh install: <code>curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash</code></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/NousResearch/hermes-agent/compare/v2026.8.16...v2026.8.16.2">https://github.com/NousResearch/hermes-agent/compare/v2026.8.16...v2026.8.16.2</a></p> </div> <button class="cl-expand-btn ha-headline">▼ EXPAND FULL CHANGELOG</button> <div class="cl-card__footer"> <a href="https://github.com/NousResearch/hermes-agent/releases/tag/v2026.8.16.2" target="_blank" rel="noopener noreferrer" class="cl-gh-link">↗ GitHub</a> </div> </div> </article><article class="cl-entry" data-version="v2026.8.16" data-name="hermes agent v0.20.2 (2026.8.16)" data-body="# hermes agent v0.20.2 (v2026.8.16) **release date:** august 16, 2026 > patch release. this tag rolls up the ~397 prs merged since v0.20.1 into a stable tagged release for downstream consumers (docker images, hosted deployments, fresh installs). --- ## about this release since v0.20.1 (v2026.8.13, tagged august 13), this window landed **~967 commits** across **~1,279 files** (+128,522 / −7,622) — **~397 merged prs** of fixes and improvements spanning the desktop app (multi-gateway connections registry, profile-scoped refreshes, mcp health checks and deep links), the cli (windows update probes, kitty keyboard protocol, chat `-c` hardening), the gateway (persisted model routes, /loop completion, telegram dm topics), prompt caching for litellm claude on the openai wire, cron hardening, a" data-prerelease="false" data-breaking="false" data-index="18"> <div class="cl-dot"> <span class="cl-dot__icon">●</span> </div> <div class="cl-header"> <span class="ha-headline cl-header__version">v2026.8.16</span> <span class="ha-headline cl-header__date">Aug 16, 2026</span> </div> <div class="cl-card"> <h3 class="ha-headline cl-card__title">v0.20.2 (2026.8.16)</h3> <div class="changelog-body cl-card__body cl-collapsed"><h1>Hermes Agent v0.20.2 (v2026.8.16)</h1> <p><strong>Release Date:</strong> August 16, 2026</p> <blockquote> <p>Patch release. This tag rolls up the ~397 PRs merged since v0.20.1 into a stable tagged release for downstream consumers (Docker images, hosted deployments, fresh installs).</p> </blockquote> <hr> <h2>About this release</h2> <p>Since v0.20.1 (v2026.8.13, tagged August 13), this window landed <strong>~967 commits</strong> across <strong>~1,279 files</strong> (+128,522 / −7,622) — <strong>~397 merged PRs</strong> of fixes and improvements spanning the desktop app (multi-gateway Connections registry, profile-scoped refreshes, MCP health checks and deep links), the CLI (Windows update probes, Kitty keyboard protocol, chat <code>-c</code> hardening), the gateway (persisted model routes, /loop completion, Telegram DM topics), prompt caching for LiteLLM Claude on the OpenAI wire, cron hardening, auth resolution through profile scopes, and installer robustness on both Linux and Windows.</p> <p><strong>Full curated release notes for this window will ship with v0.21.0</strong>, which will document everything from v0.20.0 onward — highlights, feature areas, and complete contributor credits. Nothing in this window is skipped.</p> <h2>Updating</h2> <ul> <li><code>hermes update</code> from an existing install</li> <li>Fresh install: <code>curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash</code></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/NousResearch/hermes-agent/compare/v2026.8.13...v2026.8.16">https://github.com/NousResearch/hermes-agent/compare/v2026.8.13...v2026.8.16</a></p> </div> <button class="cl-expand-btn ha-headline">▼ EXPAND FULL CHANGELOG</button> <div class="cl-card__footer"> <a href="https://github.com/NousResearch/hermes-agent/releases/tag/v2026.8.16" target="_blank" rel="noopener noreferrer" class="cl-gh-link">↗ GitHub</a> </div> </div> </article><article class="cl-entry" data-version="v2026.8.13" data-name="hermes agent v0.20.1 (2026.8.13)" data-body="# hermes agent v0.20.1 (v2026.8.13) **release date:** august 13, 2026 > patch release. this tag rolls up the ~656 prs merged since v0.20.0 into a stable tagged release for downstream consumers (docker images, hosted deployments, and anyone installing from the latest tag). --- ## about this release since v0.20.0 (august 3), this window landed **1,444 commits** across **~656 merged prs**, touching **2,172 files** (+233,872 / −75,244), and closed **~481 issues**. it is a broad stabilization-and-fixes rollup spanning the desktop app, gateway platforms, installers, tool system, and provider catalogs. **full curated release notes for this window will ship with v0.21.0**, which will document everything from v0.20.0 onward — highlights, feature areas, and complete contributor credits. nothin" data-prerelease="false" data-breaking="false" data-index="19"> <div class="cl-dot"> <span class="cl-dot__icon">●</span> </div> <div class="cl-header"> <span class="ha-headline cl-header__version">v2026.8.13</span> <span class="ha-headline cl-header__date">Aug 13, 2026</span> </div> <div class="cl-card"> <h3 class="ha-headline cl-card__title">v0.20.1 (2026.8.13)</h3> <div class="changelog-body cl-card__body cl-collapsed"><h1>Hermes Agent v0.20.1 (v2026.8.13)</h1> <p><strong>Release Date:</strong> August 13, 2026</p> <blockquote> <p>Patch release. This tag rolls up the ~656 PRs merged since v0.20.0 into a stable tagged release for downstream consumers (Docker images, hosted deployments, and anyone installing from the latest tag).</p> </blockquote> <hr> <h2>About this release</h2> <p>Since v0.20.0 (August 3), this window landed <strong>1,444 commits</strong> across <strong>~656 merged PRs</strong>, touching <strong>2,172 files</strong> (+233,872 / −75,244), and closed <strong>~481 issues</strong>. It is a broad stabilization-and-fixes rollup spanning the desktop app, gateway platforms, installers, tool system, and provider catalogs.</p> <p><strong>Full curated release notes for this window will ship with v0.21.0</strong>, which will document everything from v0.20.0 onward — highlights, feature areas, and complete contributor credits. Nothing in this window is skipped.</p> <h2>Updating</h2> <ul> <li>Existing installs: <code>hermes update</code></li> <li>Fresh install: see the installer one-liner in the <a href="https://github.com/NousResearch/hermes-agent#readme">README</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/NousResearch/hermes-agent/compare/v2026.8.3...v2026.8.13">v2026.8.3...v2026.8.13</a></p> </div> <button class="cl-expand-btn ha-headline">▼ EXPAND FULL CHANGELOG</button> <div class="cl-card__footer"> <a href="https://github.com/NousResearch/hermes-agent/releases/tag/v2026.8.13" target="_blank" rel="noopener noreferrer" class="cl-gh-link">↗ GitHub</a> </div> </div> </article><article class="cl-entry" data-version="v2026.8.3" data-name="hermes agent v0.20.0 (2026.8.3)" data-body="# hermes agent v0.20.0 (v2026.8.3) **release date:** august 3, 2026 **since v0.19.0:** ~3,650 commits · ~1,400 merged prs · ~5,200 files changed · ~559,000 insertions · ~405,000 deletions · **~1,200 issues closed** · 650+ contributors > **the herald release.** hermes is the herald of the gods, and this release makes him one in earnest: he **speaks** (real-time conversational voice with streaming tts, barge-in, on-device wake words, and hands-free control across the cli, desktop, and every audio-capable gateway platform), he **carries word to other agents** (a2a v1.0), he **announces events to your systems** (signed outbound webhooks), and he **cites his sources** (grounded research with verifiable citations and fact-checking). around that spine: the desktop app became a platform (artifa" data-prerelease="false" data-breaking="false" data-index="20"> <div class="cl-dot"> <span class="cl-dot__icon">●</span> </div> <div class="cl-header"> <span class="ha-headline cl-header__version">v2026.8.3</span> <span class="ha-headline cl-header__date">Aug 3, 2026</span> </div> <div class="cl-card"> <h3 class="ha-headline cl-card__title">v0.20.0 (2026.8.3)</h3> <div class="changelog-body cl-card__body cl-collapsed"><h1>Hermes Agent v0.20.0 (v2026.8.3)</h1> <p><strong>Release Date:</strong> August 3, 2026 <strong>Since v0.19.0:</strong> ~3,650 commits · ~1,400 merged PRs · ~5,200 files changed · ~559,000 insertions · ~405,000 deletions · <strong>~1,200 issues closed</strong> · 650+ contributors</p> <blockquote> <p><strong>The Herald Release.</strong> Hermes is the herald of the gods, and this release makes him one in earnest: he <strong>speaks</strong> (real-time conversational voice with streaming TTS, barge-in, on-device wake words, and hands-free control across the CLI, desktop, and every audio-capable gateway platform), he <strong>carries word to other agents</strong> (A2A v1.0), he <strong>announces events to your systems</strong> (signed outbound webhooks), and he <strong>cites his sources</strong> (grounded research with verifiable citations and fact-checking). Around that spine: the desktop app became a platform (artifacts with live preview, a plugin SDK, quick-entry from anywhere, multiple windows), the CLI got a wave of power commands (<code>!</code> shell mode, <code>/init</code>, <code>/diff</code>, <code>/context</code>, <code>/focus</code>), compression got smarter and gentler, and the tools themselves now recover from their own failures instead of making the model guess. This release rolls up everything from the v0.19.1 infrastructure patch tag — that window is fully documented here.</p> </blockquote> <hr> <h2>✨ Highlights</h2> <ul> <li><p><strong>Talk to Hermes — streaming, conversational voice with barge-in</strong> — Voice mode used to mean: speak, wait for the whole reply to generate, then listen to one long audio file. Now Hermes speaks clause-by-clause as the response streams, you can interrupt it mid-sentence by just talking (it stops, listens, and the model is told you cut in), and busy-aware silence detection means it doesn't talk over you. This works in CLI voice mode, on the desktop, and through gateway adapters. Talking to Hermes finally feels like a conversation, not a voicemail exchange. (<a href="https://github.com/NousResearch/hermes-agent/pull/69511" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#69511</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/73862" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#73862</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/74223" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#74223</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/74000" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#74000</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/69602" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#69602</a> — @teknium1, @OutThisLife)</p> </li> <li><p><strong>Wake words and hands-free control</strong> — Say your own open-vocabulary wake phrase ("hey Hermes", or anything you pick) and Hermes starts listening — detection runs on-device, so no audio leaves your machine while it waits. Multi-profile voice routing means different wake words can reach different profiles, and saying "stop" ends the voice chat on every surface without touching the keyboard. Your terminal is now something you can talk to from across the room. (<a href="https://github.com/NousResearch/hermes-agent/pull/70509" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#70509</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/73106" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#73106</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/73933" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#73933</a> — @teknium1)</p> </li> <li><p><strong>Voice on every platform</strong> — Send a voice note to Hermes on WhatsApp, Feishu, DingTalk, LINE, QQ, Photon, or Weixin and it's transcribed and answered; auto-TTS replies are delivered platform-aware (opus where platforms want opus, captions attached correctly). STT is now fully configurable — its own <code>hermes tools</code> category, GUI toggles, dashboard dropdowns, unified language resolution so transcripts stop coming back in the wrong language, and OpenAI's gpt-transcribe support. One unified spoken-text preprocessor cleans markdown, code, and URLs out of speech across all TTS providers. (<a href="https://github.com/NousResearch/hermes-agent/pull/73515" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#73515</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/73508" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#73508</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/73910" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#73910</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/73513" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#73513</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/73067" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#73067</a> — @teknium1)</p> </li> <li><p><strong>Research you can trust — grounded citations with fact-checking</strong> — The new <code>grounded-citations</code> skill makes Hermes produce research where every claim is backed by a verifiable source: quotes are matched against the actual page text (not hallucinated), citations link to the exact evidence, and a fact-checking mode turns the same machinery on any document or claim you hand it — it tells you what checks out, what doesn't, and what couldn't be verified. If you use Hermes for research, this is the difference between "sounds right" and "provably sourced." (<a href="https://github.com/NousResearch/hermes-agent/pull/71698" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#71698</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/77104" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#77104</a> — @teknium1)</p> </li> <li><p><strong>Outbound webhooks — Hermes pushes events to your systems</strong> — Until now, integrating with Hermes meant polling or listening on a platform. Now Hermes pushes <strong>signed lifecycle events</strong> (session activity, turn completions, tool events) to any HTTP endpoint you register — with HMAC signatures so your receiver can verify authenticity. Wire Hermes into your CI, your home automation, your dashboards, or any service that speaks HTTP, with no polling loop. (<a href="https://github.com/NousResearch/hermes-agent/pull/69406" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#69406</a> — @teknium1)</p> </li> <li><p><strong>The desktop app becomes a platform — artifacts, plugin SDK, quick entry</strong> — Hermes desktop now renders <strong>artifacts</strong>: versioned cards with sandboxed live preview in a right-rail viewer, so generated HTML/apps run safely next to the chat. A real <strong>plugin SDK</strong> landed with Kanban as its founding plugin, <code>ctx.download</code> for handing users files, floating pane placement, and multiple GUI windows. A global-hotkey <strong>quick-entry window</strong> captures a thought into any session from anywhere in your OS. The desktop stopped being a chat client and started being a workbench. (<a href="https://github.com/NousResearch/hermes-agent/pull/72345" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#72345</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/61173" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#61173</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/74413" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#74413</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/72315" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#72315</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/68259" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#68259</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/73143" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#73143</a> — @OutThisLife, @teknium1)</p> </li> <li><p><strong>Hermes speaks Agent-to-Agent — A2A v1.0</strong> — A new bundled plugin implements the Agent-to-Agent protocol, so Hermes can discover, talk to, and be driven by other A2A-compatible agents. This closes issue #514 — one of the oldest open feature requests in the repo. If you're building multi-agent systems with heterogeneous stacks, Hermes now has a standard wire protocol for joining them. (<a href="https://github.com/NousResearch/hermes-agent/pull/77109" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#77109</a> — @teknium1)</p> </li> <li><p><strong>CLI power-user wave</strong> — <code>!command</code> runs a shell command instantly without spending a model turn. <code>/init</code> scans your project and generates (or updates) an <code>AGENTS.md</code>. <code>/diff</code> shows staged/all/session changes from any surface, <code>/context</code> breaks down exactly what's filling your context window, <code>/focus</code> gives you a reduced-output view with hidden-line recovery, and Ctrl+S stashes a half-written prompt into a browsable panel. Plus <code>hermes import-agent</code> migrates your Claude Code or Codex CLI setup into Hermes in one command. (<a href="https://github.com/NousResearch/hermes-agent/pull/72257" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#72257</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/72178" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#72178</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/72240" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#72240</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/72242" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#72242</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/72302" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#72302</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/72262" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#72262</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/72190" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#72190</a> — @teknium1, several salvaging long-standing community PRs)</p> </li> <li><p><strong>Correct the agent mid-turn — redirects</strong> — If Hermes is heading the wrong way, you no longer have to <code>/stop</code> and re-explain. Type a correction while it works and the active turn is redirected: work in flight is preserved, the original prompt is kept, and the agent course-corrects with your new guidance. Paired with double-ESC draft discard and a composer undo stack, steering feels like editing, not restarting. (<a href="https://github.com/NousResearch/hermes-agent/pull/63104" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#63104</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/72339" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#72339</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/74736" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#74736</a> — @OutThisLife)</p> </li> <li><p><strong>Tools that fix themselves</strong> — A sweep of self-recovery upgrades means the agent wastes far fewer turns on tool friction: truncated terminal output spills to a file the agent can read back, <code>patch</code> detects already-applied edits and diagnoses whitespace mismatches, <code>write_file</code> verifies content on disk, searches that match nothing probe for near-misses and recover, and common failure classes come back with actionable hints. The default tool-calling iteration limit also jumped 90 → 500 — long autonomous runs stopped hitting an artificial wall. (<a href="https://github.com/NousResearch/hermes-agent/pull/77041" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#77041</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/76998" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#76998</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/77024" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#77024</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/77055" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#77055</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/77011" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#77011</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/76992" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#76992</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/72176" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#72176</a> — @teknium1)</p> </li> <li><p><strong>Compression that respects your conversation</strong> — Context compression got a deep overhaul: proactive tool-result pruning for large-window models, per-turn micro-compaction that amortizes the cost instead of one giant pause, a guaranteed N-user-message tail so recent conversation always survives, progress-aware timeouts that stop punishing slow summary models, and ghost-skill defense so a pruned skill can never silently haunt a session. Thresholds are now configurable per-model and in absolute tokens. Long sessions stay coherent and stop stalling. (<a href="https://github.com/NousResearch/hermes-agent/pull/70254" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#70254</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/75345" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#75345</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/70250" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#70250</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/71508" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#71508</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/70275" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#70275</a> — @teknium1, @kshitijk4poor, salvaging multiple community PRs)</p> </li> <li><p><strong>Smart approvals grow up</strong> — <code>hermes approvals suggest</code> mines your approval history into allowlist proposals, operators can customize the smart-approval policy, a consecutive-denial circuit breaker stops a misbehaving loop cold, and desktop pairing approvals are profile-correct with a proper surface to answer them from. Plus a new approval gate for docker/podman daemon-redirect commands. Less clicking "approve", without giving an inch of control. (<a href="https://github.com/NousResearch/hermes-agent/pull/72259" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#72259</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/72186" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#72186</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/72203" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#72203</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/74446" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#74446</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/71092" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#71092</a> — @teknium1, @OutThisLife)</p> </li> <li><p><strong>Faster everywhere, again</strong> — Prompt caching now covers tool schemas on native Anthropic without history loss. <code>hermes -w</code> cold start dropped ~14s → ~1.8s, <code>hermes update</code> no-ops got 2–6s faster, heavy SDKs lazy-load off the import path, config reads stopped deep-copying (54× faster on the telemetry gate), and the desktop shipped a second 60fps wave — streaming cost independent of transcript length, drag at 60fps with five streaming tabs, idle CPU near zero in the background. (<a href="https://github.com/NousResearch/hermes-agent/pull/76032" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#76032</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/71637" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#71637</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/74218" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#74218</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/74204" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#74204</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/71835" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#71835</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/72346" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#72346</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/75218" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#75218</a> — @kshitijk4poor, @teknium1, @OutThisLife)</p> </li> <li><p><strong>New places to run and be reached</strong> — Buzz lands as a bundled gateway platform (Block's Nostr-based messenger, with native WebSocket transport and NIP-42 auth), the Vercel AI Gateway provider and Vercel Sandbox terminal backend return modernized, desktop gains an SSH remote-backend connection mode, and the Relay shipped four phases of parity — media, interactive prompts, thread lifecycle, typing indicators — plus HSP personal + org skill sync. (<a href="https://github.com/NousResearch/hermes-agent/pull/73610" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#73610</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/73761" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#73761</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/74518" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#74518</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/68130" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#68130</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/71300" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#71300</a>–<a href="https://github.com/NousResearch/hermes-agent/pull/71624" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#71624</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/66730" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#66730</a> — @teknium1, @yoniebans, @benbarclay)</p> </li> </ul> <hr> <h2>🎙️ Voice & Speech</h2> <h3>Conversational voice</h3> <ul> <li>Streaming, conversational TTS with barge-in across all surfaces; clause-by-clause synthesis for CLI voice mode + gateway adapters (<a href="https://github.com/NousResearch/hermes-agent/pull/69511" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#69511</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/73862" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#73862</a> — @OutThisLife, @teknium1)</li> <li>Voice chat UX polish — busy-aware silence, stop hint, thinking sounds, barge-in fix; full-duplex turn listener (interrupt by voice during generation AND playback) (<a href="https://github.com/NousResearch/hermes-agent/pull/74000" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#74000</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/74223" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#74223</a> — @teknium1)</li> <li>On-device wake words with open-vocabulary phrases + multi-profile voice routing; say "stop" to end voice chat hands-free on every surface (<a href="https://github.com/NousResearch/hermes-agent/pull/70509" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#70509</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/73106" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#73106</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/73933" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#73933</a> — @teknium1)</li> <li>The model is told when the user interrupts its spoken reply; desktop speaks the whole turn and idle-flushes held narration (<a href="https://github.com/NousResearch/hermes-agent/pull/69602" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#69602</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/69936" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#69936</a> — @OutThisLife, @teknium1)</li> <li>15-item CLI/TUI voice-mode UX and environment fix wave (<a href="https://github.com/NousResearch/hermes-agent/pull/73520" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#73520</a> — @teknium1)</li> </ul> <h3>TTS / STT infrastructure</h3> <ul> <li>Unified spoken-text preprocessing + speed/instructions/provider tool params; unified STT language resolution (fixes the wrong-language transcription class); global <code>stt.language</code> defaults to <code>en</code> (<a href="https://github.com/NousResearch/hermes-agent/pull/73513" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#73513</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/73067" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#73067</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/73100" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#73100</a> — @teknium1)</li> <li>Fully configurable STT — <code>hermes tools</code> category, GUI toggle/matrix, dashboard dropdowns, setup status; OpenAI gpt-transcribe support (<a href="https://github.com/NousResearch/hermes-agent/pull/73910" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#73910</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/73853" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#73853</a> — @teknium1)</li> <li>Platform-aware auto-TTS voice delivery (opus platforms, streamed/global gap, captions); inbound voice classification/routing for Feishu, DingTalk, LINE, QQ, Photon, WhatsApp, Weixin (<a href="https://github.com/NousResearch/hermes-agent/pull/73508" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#73508</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/73515" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#73515</a> — @teknium1)</li> <li>Command TTS/STT provider hardening — idle timeouts, env scrubbing, no-shell, path guards (<a href="https://github.com/NousResearch/hermes-agent/pull/73514" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#73514</a> — @teknium1)</li> <li>Sync per-sentence TTS synthesis pipelined with playback — the next sentence renders while the current one speaks (<a href="https://github.com/NousResearch/hermes-agent/pull/77355" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#77355</a> — @kshitijk4poor)</li> <li>Discord voice PCM streams to ffmpeg stdin instead of a temp file (<a href="https://github.com/NousResearch/hermes-agent/pull/76970" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#76970</a> — @kshitijk4poor)</li> </ul> <h2>🏗️ Core Agent & Architecture</h2> <h3>Compression & context</h3> <ul> <li>Proactive tool-result pruning for large-window models; per-turn micro-compaction; N-user tail guarantee (<code>compression.min_tail_user_messages</code>); bounded summarizer input with head+tail retention (<a href="https://github.com/NousResearch/hermes-agent/pull/70254" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#70254</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/75345" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#75345</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/70250" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#70250</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/70249" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#70249</a> — @teknium1, @kshitijk4poor)</li> <li>Ghost-skill defense — <code>[SKILL_PRUNED]</code> markers, protected prune, deterministic survival; progress-aware timeouts; lock-contended compression soft-defers instead of exhausting (<a href="https://github.com/NousResearch/hermes-agent/pull/70275" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#70275</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/71508" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#71508</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/70285" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#70285</a> — @teknium1)</li> <li>Per-model threshold overrides; absolute token threshold (<code>compression.threshold_tokens</code>); opt-in idle-triggered compaction; opt-in progress notices; structured local logging for compression attempts (<a href="https://github.com/NousResearch/hermes-agent/pull/69339" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#69339</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/69335" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#69335</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/69360" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#69360</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/70457" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#70457</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/69338" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#69338</a> — @teknium1)</li> <li>Context-engine ABC grows <code>select_context()</code> + <code>on_turn_complete()</code> verbs (salvage of @chaos-xxl's RFC work); engines can suppress or customize compaction status (<a href="https://github.com/NousResearch/hermes-agent/pull/70458" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#70458</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/69859" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#69859</a> — @teknium1)</li> <li>Strict redaction applied at every compaction text boundary (<a href="https://github.com/NousResearch/hermes-agent/pull/69294" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#69294</a> — @teknium1)</li> </ul> <h3>Prompt caching & hot-path performance</h3> <ul> <li>Tool schemas cached on native Anthropic without history loss + consolidated cache-plan internals (<a href="https://github.com/NousResearch/hermes-agent/pull/76032" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#76032</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/76067" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#76067</a> — @kshitijk4poor)</li> <li>DeepSeek prompt caching on OpenCode gateways; per-API-call token accounting off the turn thread; OpenAI wire client reused across sequential LLM calls; send-path tool-call canonicalization memoized (<a href="https://github.com/NousResearch/hermes-agent/pull/75886" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#75886</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/73359" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#73359</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/73375" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#73375</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/76880" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#76880</a> — @teknium1, @kshitijk4poor)</li> <li>Readonly config loader at 29 call sites (28× cheaper reads); per-turn config deepcopies killed (telemetry gate 54×); one raw config.yaml parse per process; inter-tool delay removed (<a href="https://github.com/NousResearch/hermes-agent/pull/74322" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#74322</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/74211" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#74211</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/74228" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#74228</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/64172" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#64172</a> — @teknium1, @Soju06)</li> <li>Lazy heavy-SDK imports (−8-10% import cost on top of the mcp/tool-discovery diet); streaming hot loop drops per-chunk repr() (~3× cheaper accounting); cursor/memo optimizations for per-iteration history walks (<a href="https://github.com/NousResearch/hermes-agent/pull/74204" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#74204</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/74194" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#74194</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/74221" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#74221</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/74231" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#74231</a> — @teknium1)</li> <li>Cold-start ~14s GIL stall during backend init mitigated; turn flush batched into one SQLite transaction; provider-capability-gated prompt cache keys (implied for api.openai.com) (<a href="https://github.com/NousResearch/hermes-agent/pull/77814" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#77814</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/77619" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#77619</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/77609" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#77609</a> — @kshitijk4poor)</li> <li>AIAgent hot-path salvage — prompt-cache copy, reasoning-timeout precompute, lazy compressor init (<a href="https://github.com/NousResearch/hermes-agent/pull/57229" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#57229</a> — @kshitijk4poor)</li> </ul> <h3>Approvals & the agent loop</h3> <ul> <li><code>hermes approvals suggest</code> mines approval history into allowlist proposals; operator-customizable <code>approvals.smart_policy</code>; consecutive-denial circuit breaker; cross-surface approvals mode command (<a href="https://github.com/NousResearch/hermes-agent/pull/72259" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#72259</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/72186" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#72186</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/72203" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#72203</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/63517" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#63517</a> — @teknium1)</li> <li>Docker/podman daemon-redirect commands require approval; session-wide runaway-loop caps for web_search + delegate_task (Claude Code-inspired) (<a href="https://github.com/NousResearch/hermes-agent/pull/71092" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#71092</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/66600" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#66600</a> — @teknium1)</li> <li>Mid-turn redirects — user corrections steer the active turn, preserving in-flight work and the original prompt (<a href="https://github.com/NousResearch/hermes-agent/pull/63104" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#63104</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/72339" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#72339</a> — @OutThisLife)</li> <li>Delegation: structured timeout/stall metadata + live per-child status in <code>/agents</code>; subagents can use <code>execute_code</code>; redacted child tool history exposed in <code>subagent_stop</code>; public subagent lifecycle API for plugins (<a href="https://github.com/NousResearch/hermes-agent/pull/72300" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#72300</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/69325" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#69325</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/72403" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#72403</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/72501" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#72501</a> — @teknium1)</li> <li>Single-owner refactors for backend identity + failure-scoped skips, empty-content wire repair, call_id/reasoning sanitization, model-switch parsing (<a href="https://github.com/NousResearch/hermes-agent/pull/72505" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#72505</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/73071" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#73071</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/74319" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#74319</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/74229" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#74229</a> — @teknium1)</li> <li>Labeled reasoning excerpt surfaced at the empty-response terminal; tool_search probe-validates blind tool_call args (<a href="https://github.com/NousResearch/hermes-agent/pull/65144" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#65144</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/59267" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#59267</a> — @teknium1)</li> </ul> <h3>Tool self-recovery wave</h3> <ul> <li>Terminal: recoverable truncation (full output spilled + pre-truncation size), cwd echoed when a command changes directory, output-pattern failure hints (<a href="https://github.com/NousResearch/hermes-agent/pull/77041" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#77041</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/77004" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#77004</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/76992" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#76992</a> — @teknium1)</li> <li>Patch: already-applied edits return success no-op, whitespace-visualized no-match diagnosis, ambiguous-match locations listed (<a href="https://github.com/NousResearch/hermes-agent/pull/76998" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#76998</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/77024" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#77024</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/77001" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#77001</a> — @teknium1)</li> <li>Search: zero-match probes + multi-path recovery, auto-multiline for newline patterns; read_file default limit 500 → 2000 lines; negative-result cache for read/search misses; write_file verifies on-disk content (<a href="https://github.com/NousResearch/hermes-agent/pull/77011" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#77011</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/77102" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#77102</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/76996" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#76996</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/76945" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#76945</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/77055" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#77055</a> — @teknium1, @kshitijk4poor)</li> <li>execute_code recovery hints; skill_view dedup stub for unchanged re-reads; terminal/execute_code schema prose trimmed ~40%; tiered tool disclosure scales with catalog size; default iteration limit 90 → 500 (<a href="https://github.com/NousResearch/hermes-agent/pull/77106" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#77106</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/77095" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#77095</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/77023" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#77023</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/67034" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#67034</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/72176" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#72176</a> — @teknium1)</li> </ul> <h3>Providers & models</h3> <ul> <li>Vercel AI Gateway provider + Vercel Sandbox terminal backend return, modernized (SDK 0.7.2, telemetry off) (<a href="https://github.com/NousResearch/hermes-agent/pull/74518" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#74518</a> — @teknium1)</li> <li>Gemini 3.1 Pro + 3.6 Flash in catalogs; Gemini salvage cluster (3.6-flash aux default, Vertex catalog, direct cost tracking); claude-opus-5 in OpenRouter + Nous Portal; deepseek-v4-flash-0731 (<a href="https://github.com/NousResearch/hermes-agent/pull/73479" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#73479</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/73516" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#73516</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/70946" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#70946</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/75501" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#75501</a> — @teknium1)</li> <li>Bedrock Converse API prompt caching (cachePoint) (<a href="https://github.com/NousResearch/hermes-agent/pull/70231" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#70231</a> — @JoaoMarcos44)</li> <li>OpenAI data-residency endpoints get declared transport + correct catalog; provider-aware API-server request routing; backend-acknowledged session model lock; Nous sticky routing via top-level session_id (<a href="https://github.com/NousResearch/hermes-agent/pull/74958" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#74958</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/70853" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#70853</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/70950" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#70950</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/69253" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#69253</a> — @victor-kyriazakos, @teknium1)</li> <li>Model picker: curated defaults + collapsible providers + select-all; stale caches served instantly with background refresh; custom-endpoint probe capped at 1.5s; honcho OAuth device-code login (<a href="https://github.com/NousResearch/hermes-agent/pull/73172" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#73172</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/76430" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#76430</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/76922" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#76922</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/61608" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#61608</a> — @OutThisLife, @teknium1, @kshitijk4poor, @akattelu)</li> <li>ACP: named custom providers in the model selector; authenticated cross-provider model choices; non-blocking startup via background MCP discovery (<a href="https://github.com/NousResearch/hermes-agent/pull/70082" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#70082</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/70404" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#70404</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/75985" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#75985</a> — @israellot, @amanning3390, @kshitijk4poor)</li> </ul> <h3>Secrets & config</h3> <ul> <li>Command-helper secret source (composes with all vaults); one-command token rotation + actionable startup errors; opt-in encrypted break-glass cache for Bitwarden; vault-injected keys scoped per profile home; orchestrator preserve_existing + profile aliasing (<a href="https://github.com/NousResearch/hermes-agent/pull/69266" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#69266</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/68605" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#68605</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/69251" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#69251</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/69250" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#69250</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/69058" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#69058</a> — @teknium1)</li> <li><code>${env:VAR}</code> SecretRef parity between config.yaml and MCP config; secret-source env vars reach stdio MCP servers (<a href="https://github.com/NousResearch/hermes-agent/pull/69267" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#69267</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/69053" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#69053</a> — @teknium1)</li> <li>Canonical config loaders for behavioral reads; table-driven config migration registry; DEFAULT_CONFIG extracted to config_defaults.py; auto-migration support floor at v12 (<a href="https://github.com/NousResearch/hermes-agent/pull/74237" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#74237</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/74200" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#74200</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/74182" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#74182</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/74433" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#74433</a> — @teknium1)</li> </ul> <h2>🌐 Gateway, Relay & Fleet</h2> <ul> <li>Session activity heartbeats, stall watchdog, and bounded compression waits — re-landed hardened after an in-window revert cycle (originally #72424 by @fangliquanflq) (<a href="https://github.com/NousResearch/hermes-agent/pull/76354" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#76354</a> — @teknium1)</li> <li>SessionState consolidation (19 session-keyed dicts → one turn/conversation/persistent-scoped object); TurnContext/TurnRunner seam extraction; declarative busy_policy on CommandDef (<a href="https://github.com/NousResearch/hermes-agent/pull/74289" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#74289</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/74353" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#74353</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/74197" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#74197</a> — @teknium1)</li> <li>Relay parity waves: Phase 1 (supported_ops discovery, identity fields, /handoff aliasing), Phase 2 media, Phase 3 interactive prompts, Phase 4 thread lifecycle; egress typing indicators (<a href="https://github.com/NousResearch/hermes-agent/pull/71300" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#71300</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/71363" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#71363</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/71404" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#71404</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/71624" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#71624</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/69721" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#69721</a> — @benbarclay)</li> <li>HSP skill sync: personal client (M1) + org-skills client (M2) + org-skill namespace with token-gated discovery (<a href="https://github.com/NousResearch/hermes-agent/pull/66730" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#66730</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/70024" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#70024</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/70459" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#70459</a> — @benbarclay)</li> <li>Buzz (Block/Nostr) platform adapter with native WebSocket inbound transport + NIP-42 auth (<a href="https://github.com/NousResearch/hermes-agent/pull/73610" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#73610</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/73761" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#73761</a> — @teknium1)</li> <li>Photon: native polls, effects, clarify-as-poll, rich links (4-PR salvage) (<a href="https://github.com/NousResearch/hermes-agent/pull/73614" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#73614</a> — @teknium1)</li> <li>Slack: native Block Kit clarify buttons; opt-in reaction triggers; outbound payload sanitization; thread-context lifecycle fixes (<a href="https://github.com/NousResearch/hermes-agent/pull/69318" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#69318</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/70195" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#70195</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/69317" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#69317</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/69320" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#69320</a> — @teknium1)</li> <li>Discord auto-thread sessions keyed on prospective_thread_id; reply references built from ids (no fetch_message); WhatsApp configurable inbound read receipts (<a href="https://github.com/NousResearch/hermes-agent/pull/76513" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#76513</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/76875" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#76875</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/73322" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#73322</a> — @benbarclay, @kshitijk4poor)</li> <li>Kanban wakes resume the creator's DM/thread session; kanban/delegate wake-ups reach api_server sessions; per-task model + thinking-depth from the board (<a href="https://github.com/NousResearch/hermes-agent/pull/72191" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#72191</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/70171" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#70171</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/69876" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#69876</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/76417" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#76417</a> — @teknium1, @OutThisLife)</li> <li>Relay: Discord tool-progress routed into the auto-thread instead of the parent channel (<a href="https://github.com/NousResearch/hermes-agent/pull/77830" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#77830</a> — @benbarclay)</li> <li>Outbound webhooks — push signed lifecycle events to external endpoints; simplex channel enumeration in <code>hermes send --list</code> (<a href="https://github.com/NousResearch/hermes-agent/pull/69406" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#69406</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/77110" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#77110</a> — @teknium1)</li> </ul> <h2>🖥️ Hermes Desktop App</h2> <h3>The platform wave</h3> <ul> <li><strong>Artifacts</strong> — versioned cards, sandboxed live preview, right-rail viewer (<a href="https://github.com/NousResearch/hermes-agent/pull/72345" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#72345</a> — @teknium1)</li> <li><strong>Plugin SDK</strong> — Kanban as the founding desktop plugin; <code>ctx.download</code> hands the user a file; widget-app SDK (apps as state+reducer+render) with three reference apps; widget-grid layout engine + background-aware theme engine (<a href="https://github.com/NousResearch/hermes-agent/pull/61173" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#61173</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/74413" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#74413</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/68306" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#68306</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/20379" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#20379</a> — @OutThisLife)</li> <li>Quick-entry window (global hotkey → any session); multiple GUI windows; floating pane placement; pane toggles anywhere + hidden header; ⌘O open-folder-as-project (<a href="https://github.com/NousResearch/hermes-agent/pull/72315" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#72315</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/68259" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#68259</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/73143" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#73143</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/75848" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#75848</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/74623" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#74623</a> — @teknium1, @OutThisLife)</li> <li>SSH remote-backend connection mode; event-driven live sync replaces always-on polls; remote profile routing/sessions/pool lifecycle repaired (<a href="https://github.com/NousResearch/hermes-agent/pull/68130" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#68130</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/73673" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#73673</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/72835" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#72835</a> — @yoniebans, @OutThisLife)</li> <li>Let the agent drive the shell (preview pane + pane focus) AND inspect the desktop app it's developing; find-in-page (Ctrl+F); GUI terminal copy/paste + font picker (<a href="https://github.com/NousResearch/hermes-agent/pull/69519" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#69519</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/73121" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#73121</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/72235" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#72235</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/73705" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#73705</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/76395" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#76395</a> — @OutThisLife, @teknium1)</li> </ul> <h3>Composer & UX</h3> <ul> <li>Attach files/folders/links via picker; composer chips for @ paths and pasted links; composer undo stack; double-ESC discards draft; double-Enter sends the queued turn; type-to-focus (<a href="https://github.com/NousResearch/hermes-agent/pull/74668" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#74668</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/73110" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#73110</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/72201" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#72201</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/72288" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#72288</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/74736" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#74736</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/73101" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#73101</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/68918" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#68918</a> — @OutThisLife)</li> <li>2-keypress model switching (⌘⇧M); YOLO in ⌘K with live toggle state; keyboard-first pickers; keyboard navigation for clarify choices; server-owned pins that follow you between apps (<a href="https://github.com/NousResearch/hermes-agent/pull/74545" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#74545</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/74674" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#74674</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/74602" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#74602</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/69799" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#69799</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/74234" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#74234</a> — @OutThisLife)</li> <li>Grouped, live-ticking tool-activity line; improved tool call detail views; @session links resolve to clickable titles; brand icons on known-domain links; iMessage-style emoji reactions (opt-in, two-way); double-click to heart (<a href="https://github.com/NousResearch/hermes-agent/pull/72893" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#72893</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/69868" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#69868</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/71162" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#71162</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/73047" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#73047</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/74533" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#74533</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/74644" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#74644</a> — @OutThisLife, @teknium1)</li> <li>Sidebar date dividers + pinned section + opt-in stale-session auto-archive; sessions stop lying about running state; credit-usage toasts; configurable attachment size limit; Cron Blueprints + Webhooks pages; searchable timezone picker (<a href="https://github.com/NousResearch/hermes-agent/pull/70822" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#70822</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/72303" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#72303</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/69828" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#69828</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/73221" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#73221</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/70066" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#70066</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/69687" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#69687</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/73505" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#73505</a> — @OutThisLife, @austinpickett, @Adolanium, @teknium1)</li> <li>RFC 8252 native desktop sign-in (system browser + PKCE, no webview cookies); "Connect to existing Hermes" in first-run onboarding; profile-correct pairing approvals with a desktop surface (<a href="https://github.com/NousResearch/hermes-agent/pull/67920" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#67920</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/70907" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#70907</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/74446" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#74446</a> — @benbarclay, @OutThisLife)</li> <li>Keep-computer-awake toggle + notch wake indicator; /battery status-bar toggle; UI zoom 90% default preset; status bar hideable (<a href="https://github.com/NousResearch/hermes-agent/pull/68140" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#68140</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/76396" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#76396</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/68860" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#68860</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/73161" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#73161</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/72960" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#72960</a> — @OutThisLife, @teknium1)</li> </ul> <h3>Desktop performance (60fps wave 2)</h3> <ul> <li>Streaming cost independent of transcript length; 60fps on real sessions (reflow-gated pins, adaptive flush); drag at 60fps with five streaming tabs; multitab streaming made fast (<a href="https://github.com/NousResearch/hermes-agent/pull/71835" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#71835</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/72504" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#72504</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/72346" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#72346</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/71780" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#71780</a> — @OutThisLife)</li> <li>Hidden-pane timers paused (agents view, cron sidebar, floating pet), scroll/status loops stopped in busy sessions (<a href="https://github.com/NousResearch/hermes-agent/pull/77651" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#77651</a> — @kshitijk4poor); idle CPU near zero in the background; sidebar/overlay render churn killed; statusbar + transcript stop re-rendering per token/sash-drag/session-switch; ⌘K opens instantly; renderer cold start keeps shiki/mermaid off the boot path (<a href="https://github.com/NousResearch/hermes-agent/pull/75218" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#75218</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/73698" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#73698</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/72163" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#72163</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/72245" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#72245</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/72524" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#72524</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/74665" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#74665</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/73024" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#73024</a> — @OutThisLife)</li> <li>State diagnostics (render + store churn counters) + a lint rule banning atom-mirrored refs so the stale-read bug class cannot return; Playwright E2E suite with visual regression diffs (<a href="https://github.com/NousResearch/hermes-agent/pull/71925" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#71925</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/71560" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#71560</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/65805" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#65805</a> — @OutThisLife, @teknium1, @ethernet8023)</li> </ul> <h2>🖥️ CLI, TUI & Dashboard</h2> <ul> <li><code>!</code> shell mode; <code>/init</code> AGENTS.md generation; <code>/diff</code> (staged/all/session, cross-surface); <code>/context</code> breakdown; <code>/focus</code> reduced-output view; Ctrl+S prompt stash; persistent <code>/goal</code> indicator; multi-select clarify (checkboxes) across CLI/gateway/TUI (<a href="https://github.com/NousResearch/hermes-agent/pull/72257" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#72257</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/72178" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#72178</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/72240" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#72240</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/72242" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#72242</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/72302" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#72302</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/72262" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#72262</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/72244" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#72244</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/72188" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#72188</a> — @teknium1, salvaging @SHL0MS, @iRonin, @gigi206 + more)</li> <li><code>hermes import-agent</code> — one-command migration from Claude Code / Codex CLI setups (<a href="https://github.com/NousResearch/hermes-agent/pull/72190" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#72190</a> — @teknium1)</li> <li>Per-turn summary line + live token flow in the spinner; cross-surface theme SDK (one skin themes CLI, TUI, and desktop, live) (<a href="https://github.com/NousResearch/hermes-agent/pull/72246" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#72246</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/68857" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#68857</a> — @teknium1, @OutThisLife)</li> <li>TUI: reach the model picker without wrecking your draft + mid-turn switching; slash menu leads with your most-used skills; attachments live in the composer; Arabic (ar) locale with RTL across desktop/dashboard/agent (<a href="https://github.com/NousResearch/hermes-agent/pull/74756" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#74756</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/75931" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#75931</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/75210" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#75210</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/70870" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#70870</a> — @OutThisLife)</li> <li><code>hermes -w</code> startup ~14s → ~1.8s; global <code>--version</code> fast path; banner update-check 6× faster; dashboard lazy-loads routes + GROUP BY session stats; session filtering tabs (Chats/Automation/All) (<a href="https://github.com/NousResearch/hermes-agent/pull/71637" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#71637</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/62096" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#62096</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/74188" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#74188</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/72294" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#72294</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/73362" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#73362</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/73865" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#73865</a> — @teknium1, @kshitijk4poor)</li> <li>Runtime: Node 26 required across installers/heal/upgrade, managed Node/uv resolve before bare PATH, outdated managed trees heal to target major; brew + pip/PyPI wheel channels retired (shell installer / Docker / Nix are the supported channels) (<a href="https://github.com/NousResearch/hermes-agent/pull/76459" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#76459</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/68217" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#68217</a> — @ethernet8023)</li> </ul> <h2>🧩 Skills, Plugins & MCP</h2> <ul> <li><strong>A2A v1.0</strong> — Agent-to-Agent protocol plugin (closes #514) (<a href="https://github.com/NousResearch/hermes-agent/pull/77109" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#77109</a> — @teknium1)</li> <li>Curator: surface unmanaged skills + <code>curator adopt</code>; skill-description truncation surfaced to authors; grounded-citations skill (+ fact-checking mode); simplify-code v1.1; tldraw-offline scripting skill (<a href="https://github.com/NousResearch/hermes-agent/pull/71648" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#71648</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/70519" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#70519</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/71698" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#71698</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/77104" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#77104</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/70440" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#70440</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/66896" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#66896</a> — @teknium1)</li> <li>Office skills bundled: docx, xlsx, pdf + refreshed powerpoint; skills-tree debloat continues (yuanbao, segment-anything, jupyter, heartmula, audiocraft → optional-skills; claude-marketplace source removed; hub restructure absorbing themes/desktop-plugins/tui-widgets) (<a href="https://github.com/NousResearch/hermes-agent/pull/68595" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#68595</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/70452" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#70452</a>–<a href="https://github.com/NousResearch/hermes-agent/pull/70456" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#70456</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/73903" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#73903</a> — @teknium1)</li> <li>MCP: Comfy Cloud catalog entry with curated 20-tool default; hidden-whitespace warnings in MCP config; pinecone-research optional skill (<a href="https://github.com/NousResearch/hermes-agent/pull/66112" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#66112</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/75736" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#75736</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/70512" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#70512</a> — @teknium1)</li> <li>MCP lazy server startup from a fingerprint-keyed on-disk tool-schema cache — configured servers no longer all boot at session start (design from #56832) (<a href="https://github.com/NousResearch/hermes-agent/pull/77511" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#77511</a> — @kshitijk4poor)</li> <li>NeMo Relay observability integration — re-landed after an in-window revert, on stable NeMo Relay 0.6 (<a href="https://github.com/NousResearch/hermes-agent/pull/67607" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#67607</a> — @afourniernv)</li> <li>Gateway health & diagnostics OTLP export (<a href="https://github.com/NousResearch/hermes-agent/pull/64536" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#64536</a> — @victor-kyriazakos)</li> </ul> <h2>🔒 Security & Reliability</h2> <ul> <li>Iron-proxy credential-injection egress firewall re-landed (<a href="https://github.com/NousResearch/hermes-agent/pull/70848" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#70848</a> — @teknium1)</li> <li>DNS-pinned SSRF-safe fetches + Slack CDN allowlist; strict redaction at compaction boundaries; ReDoS eliminated in config-key redaction patterns; prose words embedding a secret keyword no longer masked (<a href="https://github.com/NousResearch/hermes-agent/pull/70193" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#70193</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/69294" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#69294</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/76083" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#76083</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/67776" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#67776</a> — @teknium1)</li> <li>Tier-3 credential reads scoped (FAL/XAI/VERCEL/DAYTONA/GITHUB presence checks etc.); CVE dependency pins refreshed (cryptography, starlette, python-multipart); hindsight env file 0600; /model moved off the gateway event loop (<a href="https://github.com/NousResearch/hermes-agent/pull/75888" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#75888</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/72362" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#72362</a> — @teknium1)</li> <li>Windows hardening wave: text-mode subprocess decode bug class closed repo-wide, console flashes hidden across daemons/env probes/LSP/installer paths, residual encoding gaps (MCP stdio, gateway update I/O, STT/TTS, desktop spawn) (<a href="https://github.com/NousResearch/hermes-agent/pull/70875" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#70875</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/70205" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#70205</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/70264" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#70264</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/71014" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#71014</a> — @teknium1, salvaging several community PRs)</li> <li>State/session integrity: four session-state fixes (safe close tracking, flush-cursor class fix, row-retry, usage-PK healer); compact v23 FTS layout + <code>hermes sessions optimize</code> + CJK-bigram FTS; read-path split with per-thread read-only connections (<a href="https://github.com/NousResearch/hermes-agent/pull/75883" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#75883</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/65798" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#65798</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/69423" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#69423</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/73344" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#73344</a> — @teknium1, @kshitijk4poor)</li> <li>OpenViking memory-provider hardening — fail closed on blocked endpoints, server verification before credentials are sent, config.yaml-first settings (<a href="https://github.com/NousResearch/hermes-agent/pull/77747" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#77747</a> — @kshitijk4poor)</li> <li>Credential pool: reset-aware primary restore (stay on fallback until the rate-limit window resets) + deferred-refresh locking fixes; FTS UPDATE triggers narrowed with fail-closed CJK migration (<a href="https://github.com/NousResearch/hermes-agent/pull/77631" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#77631</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/77628" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#77628</a> — @kshitijk4poor)</li> <li>Config-driven memory allocator trim with telemetry; holographic memory vectors stored float32; loop-invariant HRR encodes hoisted (<a href="https://github.com/NousResearch/hermes-agent/pull/76905" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#76905</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/76917" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#76917</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/76881" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#76881</a> — @kshitijk4poor)</li> </ul> <h2>🐛 Notable Bug Fixes</h2> <ul> <li>Voice: full-duplex interruption during generation AND playback; whole-turn desktop speech; auto-TTS delivery gaps (<a href="https://github.com/NousResearch/hermes-agent/pull/74223" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#74223</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/69936" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#69936</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/73508" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#73508</a> — @teknium1)</li> <li>Desktop: Stop parks the queue instead of firing the next queued prompt; branch-in-new-chat restart loss; false remote-gateway reauthentication; cross-session composer leaks (<a href="https://github.com/NousResearch/hermes-agent/pull/68725" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#68725</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/71960" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#71960</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/68250" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#68250</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/70986" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#70986</a> — @SHL0MS, @alelpoan, @helix4u, @OutThisLife)</li> <li>Gateway: session lists scoped before limiting; relay-backed home delivery after restart; timeline display events persisted (<a href="https://github.com/NousResearch/hermes-agent/pull/65509" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#65509</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/70102" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#70102</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/69771" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#69771</a> — @GodsBoy, @victor-kyriazakos, @ethernet8023)</li> <li>Agent: context-length fallback logging + batch trajectory durability; Codex OAuth context windows revalidated against the live catalog (<a href="https://github.com/NousResearch/hermes-agent/pull/76027" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#76027</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/68554" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#68554</a> — @kshitijk4poor, @teknium1)</li> <li>...plus roughly 770 more <code>fix:</code> PRs across every subsystem this window.</li> </ul> <h2>👥 Contributors</h2> <p><strong>647 contributors</strong> shipped this release (commit authors, co-authors, and salvaged-PR credits).</p> <h3>Core</h3> <p>@teknium1, @OutThisLife (desktop, voice, perf), @kshitijk4poor (perf, caching, salvage), @ethernet8023 (runtime, E2E, desktop), @benbarclay (relay, HSP, auth)</p> <h3>All Contributors (alphabetical)</h3> <p>@02356abc, @0301chris, @0xAlcibiades, @0xDevNinja, @0xLeathery, @0xprincess, @0xr00tf3rr3t, @100yenadmin, @2001Y, @3ssiri, @55nx954gn6-debug, @686f6c61, @87degrees, @aaronlab, @abundantbeing, @Adolanium, @adriansotomora, @adurham, @afourniernv, @afurm, @AgenticSpark, @ahmadashfq, @AhmetArif0, @ai-ag2026, @AIalliAI, @aider4ryder, @airclear, @ajzrva-sys, @akattelu, @AKAZIK-py, @akb4q, @akshan-main, @AlanBurningsuit, @alelpoan, @AlexFucuson9, @AlexxRussell, @AllardQuek, @alt-glitch, @aman-merchant, @amanning3390, @amathxbt, @aml1973, @amoreno16003, @AndrewMoryakov, @andrexibiza, @andynguyendk, @andyylin, @aneym, @angelos, @aniruddhaadak80, @AnnasMazhar, @annguyenNous, @anoopmehendale-cue, @AnthonyFrancis, @arcabotai, @ArcherQAQ, @Ares4Tech, @arimu1, @arnoldfrancisca, @asimons81, @asorry75, @AtakanGs, @ATran28, @austinpickett, @Automata-intelligentsia, @awain7, @aweiker, @aydnOktay, @ayushere, @b, @baau, @baauzi, @baenregod, @bakhtiersizhaev, @Baophan00, @baoyu0, @Bartok9, @basilalshukaili, @BB-light, @bbopen, @Beandon13, @beardedeagle, @bedirhancode, @benbarclay, @benegessarit, @benjamin2026-dot, @bennybuoy, @BenSheridanEdwards, @BKStock, @BlackishGreen33, @bnikanjam, @bounce12340, @Bounty13, @bpross, @briandevans, @bricelb, @brunopirz, @bryanneva, @byshubham, @camaleonidas, @canorionen, @carbongotfound, @carljborg, @carlotestor, @carrion256, @caseyanthony, @cat-thats-fat, @Cdddo, @ceverson70, @chancelu, @chaos-xxl, @CharlesMcquade, @chazmaniandinkle, @chefboyrdave21, @chelsealong, @Christopher-Schulze, @chuenchen309, @ciabata-git, @cifangyiquan, @cipry0200, @ckaznocha, @ckorhonen, @CleanDev-Fix, @CocaKova, @coffee-the-dev, @colingreig, @Commander, @connorblack, @CoreyNoDream, @Cossackx, @crayfish-ai, @criptogus, @ctaylor86, @cucurigoo, @cypres0099, @d31tcjg, @Da7-Tech, @damiankluk, @danielblankhh, @DanielMaly, @Dannou, @davesecops, @davidgut1982, @DavidMetcalfe, @davidrobertson, @ddifa86, @ddy4633, @deacon-botdoctor, @deaneeth, @deepjia, @deltaahead, @DESXIE, @devsart95, @dhruvkej9, @dhruvraajeev, @DI404N, @diegomarino, @diffen77, @dirtyren, @dnth, @DocAwk, @dolphin-creator, @Dolverin, @dombejar, @doncazper, @dongjiang1989, @DonutsDelivery, @dorukardahan, @Doud-FR, @drafish, @Drexuxux, @drleadflow, @dsitmilis, @dskwe, @dso2ng, @dstkwll, @Dusk1e, @dyreckt, @eagle-nyp, @Eapwrk, @eason2026, @eazye19, @egilewski, @ehz0ah, @elcocoel, @eliemada, @eloklam, @elphamale, @embwl0x, @emozilla, @Enough1122, @enzo2, @erick713006, @ErnestHysa, @Esther-Zhu023, @ethernet8023, @evgyur, @f-trycua, @faikwo, @falkoro, @fangliquanflq, @fazerluga-creator, @fcavalcantirj, @ferminquant, @fesalfayed, @FixItFoundry, @flag0x369, @floatingrain, @FlorianVal, @flyingdoubleG, @FraserHum, @frizikk, @frohsinnllc, @Frowtek, @FvanW, @fyzanshaik, @ganzziani, @gercamjr, @giggling-ginger, @gigi206, @giladbau, @glesperance, @gnanam1990, @GodsBoy, @golldyck, @gonzalofrancoceballos, @gshall, @gumclaw, @Guoen0, @Gurud25, @gvago, @HaisamAbbas, @hansai-art, @hanyu1212, @happy5318, @haran2001, @hariNEzuMI928, @harjothkhara, @harrisonmedmedmetrics, @Harshkamdar67, @hdd69, @heathley, @helix4u, @HeLLGURD, @hellofrommorgan, @hereicq, @hermz580, @HexLab98, @hinablue, @HOYALIM, @hrnbld, @huntsyea, @iamwongeeeee, @ianks, @ibaldr89, @Icather, @ijevin, @ildunari, @Imgaojp, @imgyf, @immuhammadfurqan, @iniak, @iRonin, @isheng-eqi, @iso2kx, @israellot, @itsflownium, @IvanMiao, @iveywest, @izumi0uu, @Jaaneek, @JabberELF, @jackjin1997, @jakelongvu-bot, @Janig88, @jasoisjaso, @jbbottoms, @jeeaay, @jeeves-assistant, @jeff-mettel, @JeffStone69, @JeliTron, @jethac, @jfmusa2024-cyber, @Jiahui-Gu, @jinglun010-cpu, @JoaoMarcos44, @joelbrilliant, @John-Lussier, @johnkattenhorn, @Johnny-xuan, @johnnykor82, @joncaldwell90, @JonthanaHanh, @jordanhubbard, @JorkeyLiu, @jquesnelle, @jrfbch, @juanmartitegui, @Julientalbot, @juniperbevensee, @justemu, @kael-odin, @kaishi00, @kaiyisg, @kamonspecial, @kandotrun, @KCAYAAI, @keepConcentration, @kelsia14, @Kenmege, @kerpopule, @Kev-fs, @Kewe63, @kharitonov-ivan, @Kingdomwarrior23, @kingrubic, @Kinkoolino-Hermes, @kjames2001, @knoal, @kohoj, @Kolektori, @konsisumer, @koshaji, @kronexoi, @kshitijk4poor, @kuangmi-bit, @kudi88, @kylezh, @kyssta-exe, @Kyzcreig, @lanyusea, @LauraGPT, @LavyaTandel, @LeonSGP43, @leoprodz, @LevSky22, @lEWFkRAD, @lewis4x4, @lexgenius, @LFDMcore, @LiangYang666, @lidises, @light-merlin-dark, @lihengming, @Linux2010, @LionGateOS, @liuhao1024, @liusencomic-cyber, @ljsdut, @lkevincc0, @LLQWQ, @locker95, @logical-and, @LordNikon1983, @lost9999, @Love-JourneY, @LunarNexus, @luxiaolu4827, @lxman, @m4r13y, @MaartenDMT, @MacroAnarchy, @maff-t2b, @MahdiHedhli, @mahdiwafy, @malaiwah, @mannnrachman, @mapu-og, @markoub, @matarbot, @materemias, @matt-strawbridge, @mattezell, @MattMaximo, @mattmillerai, @mattshapsss, @MaxFreedomPollard, @maxmilian, @McHermes, @mehmetkr-31, @menhguin, @metamon-p, @mijanx, @MLcogTech, @moeadham, @mollusk, @monerostar, @MorAlekss, @morolab, @motoblurr, @MrAbsaroka, @mrzlab630, @ms-alan, @muctobi, @MustafaK99, @mwbrooks, @myk0la-b, @mzkarami, @namredips, @nanami7777777, @nanckh, @natebransc, @nateEc, @navahc09, @Ne0teric, @necoweb3, @nftpoetrist, @nickkarhan, @Ninso112, @nkreadly07, @nnnet, @NPFernando, @nrmjeremy, @nu476, @null-runner, @nullptr0807, @NYTEMODEONLY, @obelisk-complex, @OfficialDelta, @okalentiev, @oliviaaaa7788, @OmarB97, @omid3098, @ooiuuii, @oppenheimor, @oreoluwa, @ousiaresearch, @OutThisLife, @panDing19, @paralegalia, @patp, @PavelTajdus, @peacockesq, @Pebrd, @peterw, @phantom-instruction-set, @pierrenode, @PINKIIILQWQ, @piyushbag, @plainOldCode, @pnascimento9596, @pooyan6, @pprism13, @praneshnikhar, @PRATHAMESH75, @Prontsevich, @quantumbyte1617, @QuarkAssistant, @Que0x, @Qwinty, @rayjerrywoo, @rayjun, @Reaper-Forge, @RedClaus, @redsol-llc, @reinbeumer, @RelaxJonh, @RemyFevry, @replygirl, @rerdi92, @rhylryan21, @RichardHojunJang, @richkapp, @rkfshakti, @rlaope, @rob-coco, @rob-maron, @robbyczgw-cla, @robgfl45, @robzolkos, @rod-nxtlevel, @rodboev, @Roger--Han, @rsayar, @rudironsoni, @ruizanthony, @rungmc357, @s00rz, @s905060, @Sahil-SS9, @sakhnenkoff, @salimhamed, @samrusani, @sbe27, @ScaleLeanChris, @schattenan, @sealca, @seamusmore, @sebaorrego-koronet, @seppegadeyne, @sergioperezcheco, @sethmills21, @sg-shag, @sgtworkman, @shady2k, @shannonsands, @shellybotmoyer, @sherman-yang, @shivasymbl, @Shizoqua, @SHL0MS, @simonmmafs, @skyer-flyyy, @Skywind5487, @sl4m3, @Slopez2023, @SmallNew2003, @smfworks, @Soju06, @Solitud1nem, @solyanviktor-star, @somewheresy, @Sora-bluesky, @sowork-skills, @soynchux, @sparkeros, @spfcraze, @spiky02plateau, @spro-work, @SquabbyZ, @srojk34, @StanleyStetson, @StartupBros-com, @StellarisW, @stephenschoettler, @Stoltemberg, @stremtec, @Studio729, @stwith, @subhoya, @sunwz1115, @suparious, @supplefrog, @sycamoregroupltd, @szzhoujiarui, @tachyon-r, @Tamaz-sujashvili, @tandixit95, @tank321, @tavva, @tcconnally, @temalo, @th3wingman, @the3asic, @TheAngryPit, @TheEpTic, @theone139344, @TheSmokeDev, @thirstycrow, @tianma-if, @Tianworld, @tinetwork, @to-na, @tom-channel, @tomqiaozc, @toomij99, @trac3r00, @Tranquil-Flow, @Trantor-develops, @trevorgordon981, @trevornk, @trippyogi, @trymhaak, @tsuk1nose, @tusharui, @TutkuEroglu, @tw0316, @twe-cloud, @tymrtn, @UltraInstinct0x, @umi008, @unixwzrd, @upicat, @vaibhavjnf, @valda, @Vansh5632, @Variable85, @vb3, @VerbalChainsaw, @vexclawx31, @victor-kyriazakos, @vigilancetech-com, @virtuadex, @Vissirexa, @VittoriaLanzo, @VIVAAN-DHAWAN, @wangyunyou, @waroffchange, @wayne1992127, @web3blind, @webtecnica, @WeiYusc, @wen0531, @wernerhp, @wesleysimplicio, @westkite1201, @wgd753, @wgu9, @wjj1872744570-source, @wjq990112, @WojtekMR3, @WOLIKIMCHENG, @Wpnx330, @wreed4, @wuli666, @WXBR, @wz-heng, @x7peeps, @xcompass, @xd-Neji, @xenodmc, @Xipong, @xrazai, @Xue-1997, @xxxigm, @y0shua1ee, @yaleman, @yemi-lagosinternationalmarket, @ygd58, @yingliang-zhang, @yinkev, @yitang, @YLChen-007, @yoniebans, @youzi-1122, @ypwcharles, @yuexiongHNU, @yungchentang, @yuzilongleif-collab, @yyzquwu, @z23, @ZachariahChu, @zakhounet, @zapabob, @Zavianx, @zehuaw1, @zengzheqing, @Zeraphim, @zgzczzw, @zhangyang-crazy-one, @Zhekinmaksim, @Zioywishing, @zmlgit, @zombopanda, @ZundamonnoVRChatkaisetu Also: @kyssta-exe 25470058+kyssta-exe.</p> <p>Thank you to every one of the 647 people who contributed code, co-authored fixes, filed the ~1,200 issues this release closes, and had their PRs salvaged into main. Hermes ships this fast because of you.</p> <hr> <p><strong>Full Changelog</strong>: <a href="https://github.com/NousResearch/hermes-agent/compare/v2026.7.20...v2026.8.3">v2026.7.20...v2026.8.3</a></p> </div> <button class="cl-expand-btn ha-headline">▼ EXPAND FULL CHANGELOG</button> <div class="cl-card__footer"> <a href="https://github.com/NousResearch/hermes-agent/releases/tag/v2026.8.3" target="_blank" rel="noopener noreferrer" class="cl-gh-link">↗ GitHub</a> </div> </div> </article><article class="cl-entry" data-version="v2026.7.30" data-name="hermes agent v0.19.1 (v2026.7.30)" data-body="# hermes agent v0.19.1 (v2026.7.30) **release date:** july 30, 2026 > patch release. this tag rolls up the ~1,000+ prs merged since v0.19.0 into a stable tagged release for downstream consumers (docker images, hosted deployments, fresh installs). --- ## about this release since v2026.7.20 (v0.19.0, july 20): **~2,789 commits · ~4,748 files changed · ~442,000 insertions · ~392,300 deletions** on `main`. this window is dominated by bug-fix and salvage waves across the gateway, voice subsystem, desktop app, and installer, plus continued platform work (buzz/nostr channel, flux3 video generation and delivery, telegram media reliability, voice-mode regressions). **full curated release notes for this window will ship with v0.20.0**, which will document everything from v0.19.0 onward — highl" data-prerelease="false" data-breaking="false" data-index="21"> <div class="cl-dot"> <span class="cl-dot__icon">●</span> </div> <div class="cl-header"> <span class="ha-headline cl-header__version">v2026.7.30</span> <span class="ha-headline cl-header__date">Jul 30, 2026</span> </div> <div class="cl-card"> <h3 class="ha-headline cl-card__title">v0.19.1 (v2026.7.30)</h3> <div class="changelog-body cl-card__body cl-collapsed"><h1>Hermes Agent v0.19.1 (v2026.7.30)</h1> <p><strong>Release Date:</strong> July 30, 2026</p> <blockquote> <p>Patch release. This tag rolls up the ~1,000+ PRs merged since v0.19.0 into a stable tagged release for downstream consumers (Docker images, hosted deployments, fresh installs).</p> </blockquote> <hr> <h2>About this release</h2> <p>Since v2026.7.20 (v0.19.0, July 20): <strong>~2,789 commits · ~4,748 files changed · ~442,000 insertions · ~392,300 deletions</strong> on <code>main</code>. This window is dominated by bug-fix and salvage waves across the gateway, voice subsystem, desktop app, and installer, plus continued platform work (Buzz/Nostr channel, FLUX3 video generation and delivery, Telegram media reliability, voice-mode regressions).</p> <p><strong>Full curated release notes for this window will ship with v0.20.0</strong>, which will document everything from v0.19.0 onward — highlights, feature areas, and complete contributor credits. Nothing in this window is skipped.</p> <h2>Updating</h2> <pre><code class="language-bash">hermes update # or fresh install: curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash </code></pre> <p><strong>Full Changelog</strong>: <a href="https://github.com/NousResearch/hermes-agent/compare/v2026.7.20...v2026.7.30">v2026.7.20...v2026.7.30</a></p> </div> <button class="cl-expand-btn ha-headline">▼ EXPAND FULL CHANGELOG</button> <div class="cl-card__footer"> <a href="https://github.com/NousResearch/hermes-agent/releases/tag/v2026.7.30" target="_blank" rel="noopener noreferrer" class="cl-gh-link">↗ GitHub</a> </div> </div> </article><article class="cl-entry" data-version="v2026.7.20" data-name="hermes agent v0.19.0 (2026.7.20) — the quicksilver release" data-body="# hermes agent v0.19.0 (v2026.7.20) **release date:** july 20, 2026 **since v0.18.0:** ~2,245 commits · ~1,065 merged prs · ~2,465 files changed · ~300,000 insertions · ~36,000 deletions · **~3,300 issues closed** · **450+ community contributors** > **the quicksilver release.** hermes is the messenger god, and this window we made him move like it. first-turn time-to-first-token dropped **~80% on every platform**, reasoning streams live by default, the desktop app got a ~20-pr speed overhaul (14× faster streaming markdown, virtualized diffs, snappy session switching), and the tui renders markdown incrementally. around that speed spine: you can now **manage your nous subscription without leaving the terminal**, plug **bitwarden and 1password** straight into hermes, let **smart approvals**" data-prerelease="false" data-breaking="false" data-index="22"> <div class="cl-dot"> <span class="cl-dot__icon">●</span> </div> <div class="cl-header"> <span class="ha-headline cl-header__version">v2026.7.20</span> <span class="ha-headline cl-header__date">Jul 20, 2026</span> </div> <div class="cl-card"> <h3 class="ha-headline cl-card__title">v0.19.0 (2026.7.20) — The Quicksilver Release</h3> <div class="changelog-body cl-card__body cl-collapsed"><h1>Hermes Agent v0.19.0 (v2026.7.20)</h1> <p><strong>Release Date:</strong> July 20, 2026 <strong>Since v0.18.0:</strong> ~2,245 commits · ~1,065 merged PRs · ~2,465 files changed · ~300,000 insertions · ~36,000 deletions · <strong>~3,300 issues closed</strong> · <strong>450+ community contributors</strong></p> <blockquote> <p><strong>The Quicksilver Release.</strong> Hermes is the messenger god, and this window we made him move like it. First-turn time-to-first-token dropped <strong>~80% on every platform</strong>, reasoning streams live by default, the desktop app got a ~20-PR speed overhaul (14× faster streaming markdown, virtualized diffs, snappy session switching), and the TUI renders markdown incrementally. Around that speed spine: you can now <strong>manage your Nous subscription without leaving the terminal</strong>, plug <strong>Bitwarden and 1Password</strong> straight into Hermes, let <strong>smart approvals</strong> judge flagged commands for you by default, <strong>watch your subagents work live</strong>, and trust that a finished response <strong>survives a gateway crash</strong> thanks to a durable delivery ledger. This release also rolls up everything from the v0.18.1 and v0.18.2 infrastructure patch tags — those windows are fully documented here.</p> </blockquote> <hr> <h2>✨ Highlights</h2> <ul> <li><p><strong>Hermes got dramatically faster — first token in a fraction of the time</strong> — Cold-start "Initializing agent..." used to eat ~4.3 seconds before your first turn even reached the model; it's now ~0.9s, an ~80% cut that applies to the CLI, gateway, TUI, desktop, and cron alike. Round 2 attacked what you <em>see</em> while waiting: reasoning models now stream their thinking live by default (no more staring at a spinner for 30 seconds), and the response box paints per token instead of per line. If Hermes ever felt like it took a deep breath before answering, that breath is gone. (<a href="https://github.com/NousResearch/hermes-agent/pull/59332" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#59332</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/59389" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#59389</a> — @teknium1)</p> </li> <li><p><strong>The desktop app speed wave — 20+ targeted perf PRs</strong> — Long replies used to cost 14× more CPU in the markdown splitter than they do now; giant diffs froze the review pane until we virtualized it; switching sessions thrashes layout no more. Streaming no longer re-renders the sidebar and every tool row per token, profile backends pre-warm on hover intent, and boot-hidden panes mount at idle instead of on the cold-start critical path. The net effect: the desktop app feels like a native app under load, even with huge transcripts and busy agents. (<a href="https://github.com/NousResearch/hermes-agent/pull/67154" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#67154</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/67818" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#67818</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/65898" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#65898</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/66033" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#66033</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/66747" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#66747</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/67742" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#67742</a> and more — @OutThisLife)</p> </li> <li><p><strong>Manage your Nous plan from the terminal — <code>/subscription</code> and <code>/topup</code></strong> — Changing your subscription used to mean a trip to the billing website. Now <code>/subscription</code> opens a full flow right in the TUI or classic CLI: see your plan and remaining allowance, preview exactly what an upgrade costs ("Pay $46.30 & upgrade now") or when a downgrade takes effect, and apply it — with scheduled-change banners and undo. The desktop app got a matching billing settings tab. Your wallet never has to leave the keyboard. (<a href="https://github.com/NousResearch/hermes-agent/pull/51639" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#51639</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/61054" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#61054</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/61067" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#61067</a> — @alt-glitch)</p> </li> <li><p><strong>Smart approvals are now the default</strong> — When Hermes wants to run a flagged command, an LLM reviewer now assesses it independently instead of asking you to approve every single one — and each verdict covers only that exact command, so a later command matching the same pattern gets its own review. Combined with the new <strong>user-defined deny rules</strong> (which block commands even under yolo mode) and <code>/deny <reason></code> (which tells the agent <em>why</em> you refused so it course-corrects), day-to-day approval fatigue drops sharply without giving up control. (<a href="https://github.com/NousResearch/hermes-agent/pull/62661" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#62661</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/59164" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#59164</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/54518" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#54518</a> — @teknium1)</p> </li> <li><p><strong>Plug your password manager into Hermes — Bitwarden & 1Password secret sources</strong> — API keys no longer have to live in a plaintext <code>.env</code>. A new pluggable <code>SecretSource</code> interface lets Hermes fetch secrets from Bitwarden and 1Password (<code>op://</code> references) at load time, with multiple vaults enabled simultaneously, deterministic precedence, conflict warnings, and per-variable provenance. This consolidated eleven competing community PRs into one orchestrated interface — future vault providers drop in as plugins. (<a href="https://github.com/NousResearch/hermes-agent/pull/59498" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#59498</a> — @teknium1, 1Password provider salvaged from @hwrdprkns)</p> </li> <li><p><strong>Watch your subagents work — live transcripts + durable background delegation</strong> — <code>delegate_task</code> dispatches now return live transcript files you can <code>tail -f</code> the moment the subagents launch: every tool call, result, and streamed reply, one human-readable log per child. And background delegation completions are now <strong>durable</strong> — if the process restarts mid-run, results are restored and delivered through an ownership-checked ledger instead of vanishing. Fan out a fleet, watch any worker live, and never lose the results. (<a href="https://github.com/NousResearch/hermes-agent/pull/67479" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#67479</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/63494" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#63494</a> — @teknium1)</p> </li> <li><p><strong>A finished answer can no longer be lost — the delivery-obligation ledger</strong> — If the gateway died between generating your response and confirming the platform actually delivered it, that answer used to be silently gone (and you'd paid for the turn). Final responses are now recorded in a durable ledger in <code>state.db</code> around the platform send and <strong>redelivered on the next boot</strong> — closing a P1 silent-loss window for Telegram, Discord, Slack, and every other channel. (<a href="https://github.com/NousResearch/hermes-agent/pull/67181" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#67181</a> — @teknium1)</p> </li> <li><p><strong>One gateway, many profiles — profile-based message routing</strong> — A single multiplexed gateway sharing one bot token can now route specific guilds, channels, or threads to different profiles — each with fully isolated config, skills, memory, and secrets. Point your work Discord server at the <code>work</code> profile and your hobby server at <code>personal</code>, from one bot. A second multiplex hardening wave means one misconfigured profile can no longer take down the whole gateway. (<a href="https://github.com/NousResearch/hermes-agent/pull/64835" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#64835</a> salvaging @Burgunthy, <a href="https://github.com/NousResearch/hermes-agent/pull/65700" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#65700</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/60589" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#60589</a> — @teknium1, @benbarclay + six salvaged contributors)</p> </li> <li><p><strong>New providers and the newest frontier models</strong> — Fireworks AI and DeepInfra land as first-class providers (Fireworks with cost estimation and a #2 slot in the provider picker), Upstage Solar joins via salvage, and the model catalogs picked up <strong>GPT-5.6 (Sol/Terra/Luna + Pro variants, wired end-to-end across every route)</strong>, <strong>grok-4.5 (GA)</strong>, <strong>moonshotai/kimi-k3</strong>, <strong>claude-fable-5 / claude-sonnet-5</strong>, and GA <strong>tencent/hy3</strong> — plus LM Studio JIT model loading for local setups. (<a href="https://github.com/NousResearch/hermes-agent/pull/62593" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#62593</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/63969" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#63969</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/61616" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#61616</a> — @kshitijk4poor completing @rob-maron's #61578, <a href="https://github.com/NousResearch/hermes-agent/pull/60887" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#60887</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/65913" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#65913</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/64541" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#64541</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/65472" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#65472</a>)</p> </li> <li><p><strong>Crank the thinking to max — new reasoning effort tiers and per-model control</strong> — Reasoning effort gained <code>max</code> and <code>ultra</code> levels (GPT-5.6 and Codex's top tiers), selectable everywhere from the CLI to the desktop, with sane clamping on providers with smaller scales. You can now also pin <strong>per-model reasoning-effort overrides</strong> in config, set <strong>per-slot effort in MoA presets</strong> (your advisors think hard, your synthesizer stays fast), and per-task effort for auxiliary models. Thinking depth is now a dial, not a global switch. (<a href="https://github.com/NousResearch/hermes-agent/pull/62650" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#62650</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/64458" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#64458</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/64631" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#64631</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/64597" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#64597</a> — @teknium1)</p> </li> <li><p><strong>Your sessions, your data — export everything</strong> — <code>hermes sessions export</code> now writes Markdown, Quarto, HTML, prompt-only, and even Hugging Face-ready trace formats, with the full filter surface (age, workspace, platform), an opt-in <code>--redact</code> secret-scrubbing pass, and compacted-session lineage stitched into one logical export. Pair with the new prune filters and bulk archive to keep your session store tidy. Your conversation history is a real dataset now, not a black box. (<a href="https://github.com/NousResearch/hermes-agent/pull/60186" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#60186</a> salvaging @web3blind, <a href="https://github.com/NousResearch/hermes-agent/pull/60492" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#60492</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/60507" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#60507</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/59327" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#59327</a> — @teknium1)</p> </li> <li><p><strong>Security hardening round</strong> — This window closed a long list of credential-surface gaps: Vertex credentials scoped away from subprocess env and through profile secret scopes, media/vision/image-gen local-file reads routed through one shared credential-read guard, a webhook body-size-cap sweep across every aiohttp server, bot-token redaction in Telegram transport errors, Fireworks token prefixes added to the redactor, six P1 browser/MEDIA/.env hardening PRs salvaged in one pass, and CI hardened against untrusted-ref interpolation. (<a href="https://github.com/NousResearch/hermes-agent/pull/57660" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#57660</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/58709" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#58709</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/59215" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#59215</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/56582" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#56582</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/57842" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#57842</a> — @teknium1, @srojk34, @kshitijk4poor, @jquesnelle)</p> </li> </ul> <hr> <h2>⚡ Performance — the speed spine</h2> <h3>First-turn latency (all platforms)</h3> <ul> <li><strong>~80% TTFT cut</strong> — Discord capability detection off the critical path (token-keyed 24h disk cache + background refresh), Ollama probe skipped for known non-Ollama providers, agent-init blocking work removed; cold submit→dispatch ~4.3s → ~0.9s (<a href="https://github.com/NousResearch/hermes-agent/pull/59332" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#59332</a> — @teknium1)</li> <li><strong>Perceived-latency round 2</strong> — <code>display.show_reasoning</code> default ON (watch the model think instead of a spinner), per-token response-box painting with width-aware force-flush, prompt-build caching, mtime-cached timezone resolution (<a href="https://github.com/NousResearch/hermes-agent/pull/59389" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#59389</a> — @teknium1)</li> <li>Segment mixed tool batches to recover lost concurrency; drop per-call base64 re-serialization from request-size estimates (<a href="https://github.com/NousResearch/hermes-agent/pull/64460" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#64460</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/67788" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#67788</a> — @teknium1, @OutThisLife)</li> </ul> <h3>Desktop speed wave</h3> <ul> <li>14× less splitter CPU via incremental block lexing for streaming markdown; virtualized review-pane diffs (no more full-Shiki freeze); snappy session switching on large transcripts; killed the layout-thrash cascade on session switch (<a href="https://github.com/NousResearch/hermes-agent/pull/67154" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#67154</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/67818" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#67818</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/65898" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#65898</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/66033" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#66033</a> — @OutThisLife)</li> <li>Cut startup serialization + per-turn REST amplification; pre-warm profile backends and gateway sockets on hover intent; idle-mount boot-hidden panes; fast model picker + dialogs (<a href="https://github.com/NousResearch/hermes-agent/pull/66747" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#66747</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/66347" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#66347</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/67857" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#67857</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/66470" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#66470</a> — @OutThisLife)</li> <li>Stop per-token sidebar + tool-row re-renders during streaming; stop eager JSON.stringify of every tool's args/result; scope tool-diff subscriptions; batch sidebar session slices into one profile-DB pass; targeted file-tree revalidation; rAF-coalesced sash resizes (<a href="https://github.com/NousResearch/hermes-agent/pull/67742" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#67742</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/67842" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#67842</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/67195" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#67195</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/67245" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#67245</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/67824" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#67824</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/67838" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#67838</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/67844" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#67844</a> — @OutThisLife)</li> <li>Systematized perf benchmark harness with trustworthy cold-start + first-token measurement, replacing 12 one-off scripts (<a href="https://github.com/NousResearch/hermes-agent/pull/67466" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#67466</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/67697" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#67697</a> — @OutThisLife)</li> </ul> <h3>Everywhere else</h3> <ul> <li>TUI renders streamed markdown incrementally per block (<a href="https://github.com/NousResearch/hermes-agent/pull/67236" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#67236</a> — @OutThisLife)</li> <li>Skill discovery cached by scan signature; snapshot manifest builds ~5× faster; text prefilter before AST parse in tool discovery (<a href="https://github.com/NousResearch/hermes-agent/pull/61414" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#61414</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/61131" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#61131</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/63941" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#63941</a> — @kshitijk4poor, @ethernet8023)</li> <li>Copy-on-write message prep instead of full deepcopy; model-metadata probe-cache cluster; gateway <code>session.resume</code> model + display history from one SELECT (<a href="https://github.com/NousResearch/hermes-agent/pull/61133" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#61133</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/61368" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#61368</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/67247" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#67247</a> — @kshitijk4poor, @OutThisLife)</li> <li><code>hermes update</code> skips npm install when Node manifests are unchanged; dashboard session-list payloads trimmed + messages paginated (<a href="https://github.com/NousResearch/hermes-agent/pull/61580" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#61580</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/60883" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#60883</a> — @kshitijk4poor)</li> <li>Byte-stable gateway system prompts — pinned session-context render keeps the prompt cache alive across turns (<a href="https://github.com/NousResearch/hermes-agent/pull/67403" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#67403</a> — @kshitijk4poor)</li> </ul> <h2>🏗️ Core Agent & Architecture</h2> <h3>Providers & models</h3> <ul> <li><strong>Fireworks AI provider</strong> with cost estimation + cached picker price columns, promoted to #2 in provider pickers (<a href="https://github.com/NousResearch/hermes-agent/pull/62593" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#62593</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/65476" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#65476</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/65214" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#65214</a> — @teknium1)</li> <li><strong>DeepInfra</strong> hardened integration; <strong>Upstage Solar</strong> provider (#42231 salvage) (<a href="https://github.com/NousResearch/hermes-agent/pull/63969" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#63969</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/64541" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#64541</a> — @kshitijk4poor)</li> <li><strong>GPT-5.6 (Sol/Terra/Luna + Pro) end-to-end</strong> — context lengths, native/Codex catalogs, pricing, compaction caps across every route (<a href="https://github.com/NousResearch/hermes-agent/pull/61616" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#61616</a> — @kshitijk4poor, building on @rob-maron)</li> <li>grok-4.5 (GA) catalog + reasoning allowlist; kimi-k3 on Nous Portal + OpenRouter (kimi-k2.x retired) + K3 discovery on the Kimi Coding endpoint; claude-fable-5 / claude-sonnet-5 / fugu-ultra curated; GA tencent/hy3 (<a href="https://github.com/NousResearch/hermes-agent/pull/60887" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#60887</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/65913" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#65913</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/65922" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#65922</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/56617" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#56617</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/60943" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#60943</a> — @teknium1)</li> <li>Catalog-labeled silent default (GLM-5.2) + bare-provider <code>/model</code> cost-safe routing; LM Studio JIT load mode; adaptive thinking for Kimi-family Anthropic endpoints (<a href="https://github.com/NousResearch/hermes-agent/pull/64771" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#64771</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/65472" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#65472</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/67606" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#67606</a> — @teknium1, @kshitijk4poor)</li> <li>GLM-5.2 native reasoning_effort controls; Gemini request-context improvements; extra HTTP headers for LLM API calls; per-client model routing on the API server (<a href="https://github.com/NousResearch/hermes-agent/pull/58884" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#58884</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/61873" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#61873</a> — @vishal-dharm, <a href="https://github.com/NousResearch/hermes-agent/pull/57038" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#57038</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/57028" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#57028</a> — @teknium1)</li> <li><strong>Claude Sonnet 5 fully wired</strong> — curated lists, intro pricing, and metadata across every route (<a href="https://github.com/NousResearch/hermes-agent/pull/67932" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#67932</a> — @teknium1)</li> <li><strong>Hide providers you don't use</strong> — <code>enabled: false</code> per-provider flag + <code>excluded_providers</code> config scrub unwanted providers from <code>/model</code> pickers and built-in resolution (<a href="https://github.com/NousResearch/hermes-agent/pull/67971" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#67971</a> — @teknium1)</li> <li>Bedrock catalog wave: real context-window probing from the live endpoint, 1M-context rows for current-gen Claude + Fable, geo-prefix parity, versioned profile-ID pricing, Opus 4.8/4.7 rows (<a href="https://github.com/NousResearch/hermes-agent/pull/68007" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#68007</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/67977" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#67977</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/68005" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#68005</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/67976" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#67976</a> — @teknium1)</li> <li>kimi-k3 rollout completed across Kimi-direct catalog surfaces with 1M context on canonical Kimi Coding endpoints (<a href="https://github.com/NousResearch/hermes-agent/pull/68108" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#68108</a> — @teknium1)</li> <li>Provider pickers: Qwen providers folded into one group row; collapsible provider groups in the desktop model picker; friendlier TUI model display grouping same-endpoint providers (<a href="https://github.com/NousResearch/hermes-agent/pull/67758" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#67758</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/67904" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#67904</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/67908" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#67908</a> — @teknium1)</li> </ul> <h3>Reasoning & MoA</h3> <ul> <li><code>max</code> + <code>ultra</code> effort levels across every surface and route (<a href="https://github.com/NousResearch/hermes-agent/pull/62650" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#62650</a> — @teknium1)</li> <li>Per-model reasoning_effort overrides via a unified resolution chokepoint; per-task auxiliary effort; per-slot MoA preset effort; session-scoped <code>/reasoning</code> in the CLI (<a href="https://github.com/NousResearch/hermes-agent/pull/64458" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#64458</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/64597" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#64597</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/64631" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#64631</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/67946" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#67946</a> — @teknium1)</li> <li>MoA: <code>reference_max_tokens</code> to cap advisor output and cut latency; per-preset fanout cadence (<code>user_turn</code> runs advisors once per user turn); stale presets surfaced without retries; half-filled preset saves rejected at the API boundary; aggregator resolves reasoning like an acting model (<a href="https://github.com/NousResearch/hermes-agent/pull/56756" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#56756</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/57591" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#57591</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/64756" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#64756</a> — @teknium1)</li> </ul> <h3>Delegation, approvals & the agent loop</h3> <ul> <li>Live subagent transcripts + durable background completions (see Highlights) (<a href="https://github.com/NousResearch/hermes-agent/pull/67479" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#67479</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/63494" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#63494</a> — @teknium1)</li> <li>Smart approvals default; user-defined deny rules (block even under yolo); <code>/deny <reason></code> relays the denial reason; plugin <code>pre_tool_call</code> approve action escalates to a human gate (re-landed with rule keys) (<a href="https://github.com/NousResearch/hermes-agent/pull/62661" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#62661</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/59164" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#59164</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/54518" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#54518</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/60504" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#60504</a> — @teknium1, @kshitijk4poor)</li> <li>Unified delegation concurrency caps (<code>max_async_children</code> deprecated); explain long provider waits on the live status line; deterministic tool-output risk exposure (<a href="https://github.com/NousResearch/hermes-agent/pull/56955" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#56955</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/64775" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#64775</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/61793" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#61793</a> — @teknium1)</li> <li>Codex: live TUI/desktop tool cards for the app-server runtime, commentary streamed as visible interim messages, compaction routed through <code>thread/compact/start</code>, max-output truncation recovery, oversized message ids dropped on replay, banked usage-limit resets via <code>/usage reset</code> (<a href="https://github.com/NousResearch/hermes-agent/pull/66514" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#66514</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/66115" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#66115</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/60114" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#60114</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/58155" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#58155</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/62225" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#62225</a> — @teknium1, @kshitijk4poor, @JoaoMarcos44, <a href="https://github.com/NousResearch/hermes-agent/pull/64280" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#64280</a> — @teknium1)</li> <li>Hooks: oversized hook-injected context spills to disk (<a href="https://github.com/NousResearch/hermes-agent/pull/20468" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#20468</a> — @teknium1)</li> <li>Vibe reactions — floating hearts on affection across CLI/TUI/desktop, token-free core detection (<a href="https://github.com/NousResearch/hermes-agent/pull/62016" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#62016</a> — @OutThisLife)</li> </ul> <h3>Secrets & config</h3> <ul> <li>Pluggable <code>SecretSource</code> interface + Bitwarden & 1Password providers (see Highlights) (<a href="https://github.com/NousResearch/hermes-agent/pull/59498" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#59498</a> — @teknium1, @hwrdprkns)</li> <li><code>hermes config get</code> / <code>unset</code>; warn on unknown root config keys + doctor deprecated-key reporting; <code>display.timestamp_format</code> (<a href="https://github.com/NousResearch/hermes-agent/pull/65540" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#65540</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/67370" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#67370</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/40622" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#40622</a> — @teknium1)</li> <li>Auxiliary model usage recorded per task in session accounting; conversation-scoped Nous Portal usage tags across aux/MoA/delegate calls; <code>--usage-file</code> JSON report for <code>hermes -z</code> (<a href="https://github.com/NousResearch/hermes-agent/pull/65537" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#65537</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/65468" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#65468</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/59615" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#59615</a> — @teknium1)</li> </ul> <h3>Sessions & compression</h3> <ul> <li>Sessions export: Markdown/QMD/HTML/prompt-only/trace formats, HF upload, <code>--redact</code>, unified filters; full prune filter surface + bulk archive; CLI workspace filter + restore-cwd-on-resume (<a href="https://github.com/NousResearch/hermes-agent/pull/60186" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#60186</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/60492" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#60492</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/60507" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#60507</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/59327" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#59327</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/63091" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#63091</a> — @teknium1, @web3blind)</li> <li>Compression: preserve human intent and durable handoffs; retain prompt cache when memory is unchanged; flatten multimodal content for the summarizer keeping image handles; gateway compression routing integrity (<a href="https://github.com/NousResearch/hermes-agent/pull/67275" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#67275</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/67916" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#67916</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/65046" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#65046</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/56868" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#56868</a> — @kshitijk4poor, @teknium1)</li> <li>Gateway session metadata consolidated into state.db; routing index moved to state.db (sessions.json now an optional legacy mirror); exact API bytes persisted in an <code>api_content</code> sidecar (<a href="https://github.com/NousResearch/hermes-agent/pull/58899" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#58899</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/59203" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#59203</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/67274" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#67274</a> — @teknium1, @kshitijk4poor)</li> </ul> <h2>🌐 Gateway, Fleet & Relay</h2> <ul> <li><strong>Durable delivery-obligation ledger</strong> for final responses (see Highlights) (<a href="https://github.com/NousResearch/hermes-agent/pull/67181" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#67181</a> — @teknium1)</li> <li><strong>Profile-based routing for inbound messages</strong> + multiplex hardening wave 2 + <code>GATEWAY_MULTIPLEX_PROFILES</code> override (see Highlights) (<a href="https://github.com/NousResearch/hermes-agent/pull/64835" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#64835</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/65700" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#65700</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/60589" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#60589</a> — @teknium1, @benbarclay + salvaged contributors)</li> <li>Per-session turn lease + conversation-scope funnel; unified session reset boundaries (reset sessions stay reset); truthful runtime readiness checks; per-channel model and system prompt overrides; per-session <code>/model</code> overrides persist across restarts (<a href="https://github.com/NousResearch/hermes-agent/pull/67401" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#67401</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/65783" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#65783</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/62645" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#62645</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/56967" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#56967</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/57030" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#57030</a> — @teknium1)</li> <li>Session auto-reset default off; <code>/sessions search <query></code>; webhook payload filters + route scripts; platform HTTP event callback routing; configurable long-running status phrases (<a href="https://github.com/NousResearch/hermes-agent/pull/60194" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#60194</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/57685" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#57685</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/60944" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#60944</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/65702" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#65702</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/58872" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#58872</a> — @teknium1)</li> <li>Relay: generic OIDC client-credentials provisioning (NAS-free), routed profile carried from the connector wire source, channel context consumed from the connector; Nous auth forensics + <code>nous_session_valid</code> on <code>/api/status</code> for hosted self-heal; Docker re-seeds a terminally-dead Nous bootstrap session on boot (<a href="https://github.com/NousResearch/hermes-agent/pull/60730" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#60730</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/60586" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#60586</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/64649" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#64649</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/59976" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#59976</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/59969" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#59969</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/59983" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#59983</a> — @benbarclay)</li> </ul> <h2>📱 Messaging Platforms</h2> <ul> <li><strong>Inline choice pickers</strong> for <code>/reasoning</code> and <code>/fast</code> on Telegram, Discord, and Matrix — one-tap native buttons instead of typing (<a href="https://github.com/NousResearch/hermes-agent/pull/65799" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#65799</a> — @teknium1)</li> <li>WhatsApp: native Baileys polls (clarify renders as a poll), locations, rich inbound metadata; dashboard pairing flow (<a href="https://github.com/NousResearch/hermes-agent/pull/58865" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#58865</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/60571" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#60571</a> — @teknium1)</li> <li>Discord: recover messages missed during reconnect; auto-created threads renamed to generated session titles; configurable interactive view timeout; opt-in owner mentions on exec-approval prompts; optional admin-only gate for approval buttons (<a href="https://github.com/NousResearch/hermes-agent/pull/66149" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#66149</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/60187" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#60187</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/60230" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#60230</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/60493" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#60493</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/51751" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#51751</a> — @teknium1)</li> <li>Slack: live per-tool status line (<a href="https://github.com/NousResearch/hermes-agent/pull/67080" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#67080</a> — @teknium1, salvaging #62007)</li> <li>Telegram: per-topic free-response allowlist; Google Chat clarify prompts rendered as cards (<a href="https://github.com/NousResearch/hermes-agent/pull/65543" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#65543</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/65546" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#65546</a> — @teknium1)</li> <li>Voice: <code>stt.echo_transcripts</code> toggle; MEDIA: captions attached to the media bubble on standalone sends; <code>display.tool_progress: log</code> option (<a href="https://github.com/NousResearch/hermes-agent/pull/58859" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#58859</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/61415" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#61415</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/57014" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#57014</a> — @teknium1, @kshitijk4poor)</li> </ul> <h2>🖥️ Hermes Desktop App</h2> <ul> <li><strong>Contribution-driven shell on a layout-tree model</strong> — panes, zones, and layouts as data; plugin-scoped i18n locale bundles followed (<a href="https://github.com/NousResearch/hermes-agent/pull/60638" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#60638</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/67303" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#67303</a> — @OutThisLife)</li> <li><strong>Capabilities page</strong> — Skills/Tools/MCP + Hub in one place, with responsive overlay nav; CLI/dashboard parity for skills hub, MCP test/toggle/catalog, maintenance ops, log filters; five UX fixes from live testing (<a href="https://github.com/NousResearch/hermes-agent/pull/57590" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#57590</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/57441" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#57441</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/67482" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#67482</a> — @OutThisLife, @teknium1)</li> <li><strong>Hermes Cloud connection mode</strong> (salvage of #55402); soft gateway switch + gateway-settings polish; terminal execution backend picker with health probes (<a href="https://github.com/NousResearch/hermes-agent/pull/61912" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#61912</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/61916" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#61916</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/67203" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#67203</a> — @OutThisLife, @teknium1)</li> <li>Keybind hint tooltips + keybinds settings tab + unified worktree dialog; base-branch picker for new worktrees; green unread dot for background-finished sessions; background-task sidebar indicators; grouped tool calls across text-less messages; auto-scrolling window for long tool-call runs (<a href="https://github.com/NousResearch/hermes-agent/pull/65204" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#65204</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/62243" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#62243</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/65109" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#65109</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/65174" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#65174</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/61147" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#61147</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/57913" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#57913</a> — @ethernet8023, @OutThisLife)</li> <li>Session + project color system (inherit from project, per-session override, shared across sidebar/tabs); unified active-project identity in chat status; workspace path status action (<a href="https://github.com/NousResearch/hermes-agent/pull/67469" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#67469</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/67681" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#67681</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/67282" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#67282</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/63086" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#63086</a> — @OutThisLife)</li> <li>Declarative memory-provider panel + full-config modal; config-defined TTS/STT providers + xAI TTS params; custom endpoint settings; per-job cron model picker; profile-aware approval mode control; UI scale setting; Ctrl/Cmd+wheel zoom; chat backdrop toggle; <code>/journey</code> opens the memory graph overlay (<a href="https://github.com/NousResearch/hermes-agent/pull/67206" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#67206</a> salvaging @erosika, <a href="https://github.com/NousResearch/hermes-agent/pull/67209" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#67209</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/67759" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#67759</a> — @austinpickett, <a href="https://github.com/NousResearch/hermes-agent/pull/67472" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#67472</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/63520" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#63520</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/60457" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#60457</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/67029" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#67029</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/64598" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#64598</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/57267" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#57267</a> — @teknium1, @OutThisLife)</li> <li>Full TypeScript conversion of the desktop tree (<a href="https://github.com/NousResearch/hermes-agent/pull/57855" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#57855</a> — @ethernet8023)</li> </ul> <h2>📊 Web Dashboard</h2> <ul> <li>Memory provider switching; safe session import flow; WhatsApp pairing; Discord-specific toolsets editable from the web UI; clarified manual Telegram bot setup (<a href="https://github.com/NousResearch/hermes-agent/pull/60569" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#60569</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/63699" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#63699</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/60571" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#60571</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/65361" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#65361</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/64636" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#64636</a> — @teknium1, @kshitijk4poor, @shannonsands)</li> <li>Terminal keep-alive + reattach for dashboard chat sessions; heavy turns isolated in a compute host; paste/drop images into Chat; <code>browser.headed</code> schema toggle; profile + gateway topology on <code>/api/status</code>; mobile/hosted OpenAI OAuth login (<a href="https://github.com/NousResearch/hermes-agent/pull/60515" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#60515</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/65895" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#65895</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/61929" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#61929</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/67046" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#67046</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/60537" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#60537</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/61330" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#61330</a> — @teknium1, @OutThisLife, @benbarclay)</li> <li><code>hermes serve</code> is a true headless backend (no web UI build/mount) (<a href="https://github.com/NousResearch/hermes-agent/pull/55923" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#55923</a> — @OutThisLife)</li> </ul> <h2>🧰 CLI & TUI</h2> <ul> <li><code>/subscription</code> + <code>/topup</code> terminal billing (see Highlights) (<a href="https://github.com/NousResearch/hermes-agent/pull/51639" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#51639</a> — @alt-glitch)</li> <li><strong><code>/model --once</code></strong> — one-turn model override that reverts automatically (<a href="https://github.com/NousResearch/hermes-agent/pull/67113" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#67113</a> — @teknium1, salvaging #29923)</li> <li><strong>Stacked slash-skill invocations</strong> — <code>/skill-a /skill-b do XYZ</code> loads both skills in order (Claude Code port), with autocomplete + ghost text (<a href="https://github.com/NousResearch/hermes-agent/pull/57987" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#57987</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/58763" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#58763</a> — @teknium1)</li> <li><code>--safe-mode</code> troubleshooting flag; uninstall dry-run; TLS failures fail fast with fix hints; <code>/compact</code> alias + preview flags; pip/Homebrew installs warned unsupported (<a href="https://github.com/NousResearch/hermes-agent/pull/45300" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#45300</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/60111" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#60111</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/57992" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#57992</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/57029" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#57029</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/57225" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#57225</a> — @teknium1, @ethernet8023)</li> <li>TUI: model picker refresh support; custom skill bundles dispatched as agent turns; banner sizes skills display to terminal width (<a href="https://github.com/NousResearch/hermes-agent/pull/59782" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#59782</a> — @helix4u, <a href="https://github.com/NousResearch/hermes-agent/pull/62859" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#62859</a> — @Adolanium, <a href="https://github.com/NousResearch/hermes-agent/pull/40624" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#40624</a> — @teknium1)</li> <li>Hermes Console REPL + perf follow-ups; <code>hermes curator usage</code> all-skills view; entry-point plugins surfaced in <code>hermes plugins list</code> (<a href="https://github.com/NousResearch/hermes-agent/pull/57781" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#57781</a> — @kshitijk4poor, <a href="https://github.com/NousResearch/hermes-agent/pull/36727" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#36727</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/40623" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#40623</a> — @teknium1)</li> </ul> <h2>🔧 Tool System, Skills & MCP</h2> <ul> <li>MCP: <code>mcp__server__tool</code> naming convention; server log notifications surfaced in agent.log; hosted OAuth completed across Dashboard + Desktop; configurable <code>redirect_uri</code>/<code>redirect_host</code> for proxied/WAF setups; OAuth callback port races closed; Blender added to the MCP catalog with a curated 4-tool default (<a href="https://github.com/NousResearch/hermes-agent/pull/52750" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#52750</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/57416" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#57416</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/66151" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#66151</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/65610" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#65610</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/65622" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#65622</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/64463" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#64463</a> — @teknium1, @benbarclay)</li> <li>Skills: <code>security/unbroker</code> (autonomous data-broker removal) + blind opt-out hardening; <code>unreal-mcp</code> companion skill; blender-mcp reworked around the catalog entry; humanizer pattern expansion; <code>mcp-oauth-remote-gateway</code> optional skill (<a href="https://github.com/NousResearch/hermes-agent/pull/57438" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#57438</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/57902" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#57902</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/65989" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#65989</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/64715" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#64715</a> — @SHL0MS, <a href="https://github.com/NousResearch/hermes-agent/pull/65066" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#65066</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/65486" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#65486</a> — @teknium1)</li> <li>Browser: full snapshots stored on truncation, eval denylist opt-in; computer_use follows cua-driver's verify→escalate ladder (<a href="https://github.com/NousResearch/hermes-agent/pull/65923" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#65923</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/67123" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#67123</a> — @teknium1)</li> <li>Kanban: modal create-task dialog + editable board project directory; Done-card results made obvious; grab-to-pan board scrolling; attachment toolset + CLI with SSRF-guarded URL fetch; project directory captured at board creation (<a href="https://github.com/NousResearch/hermes-agent/pull/66333" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#66333</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/63638" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#63638</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/60226" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#60226</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/65698" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#65698</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/63249" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#63249</a> — @teknium1)</li> <li>Cron: durable execution audit history; one-shot stale-removal race fixed; run-claim TTL derived from HERMES_CRON_TIMEOUT (<a href="https://github.com/NousResearch/hermes-agent/pull/61791" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#61791</a> — @teknium1, <a href="https://github.com/NousResearch/hermes-agent/pull/62014" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#62014</a> — @PRATHAMESH75, <a href="https://github.com/NousResearch/hermes-agent/pull/59567" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#59567</a>)</li> <li>mem0: self-hosted dashboard backend + recall tuning + setup-wizard mode (<a href="https://github.com/NousResearch/hermes-agent/pull/56943" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#56943</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/60494" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#60494</a> — @kshitijk4poor, @teknium1)</li> <li>Image gen: Codex image inputs; unsupported Codex image accounts classified; tool args recursively normalized by schema (cline port) (<a href="https://github.com/NousResearch/hermes-agent/pull/57017" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#57017</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/63627" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#63627</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/52220" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#52220</a> — @teknium1, @kshitijk4poor)</li> </ul> <h2>🔒 Security & Reliability</h2> <ul> <li>Vertex: credential/project/region resolution through the profile secret scope; <code>VERTEX_CREDENTIALS_PATH</code>/<code>GOOGLE_APPLICATION_CREDENTIALS</code> stripped from subprocess env (<a href="https://github.com/NousResearch/hermes-agent/pull/56680" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#56680</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/56582" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#56582</a> — @srojk34)</li> <li>Six P1 hardening PRs salvaged in one pass — browser guards, MEDIA anchoring, .env lockdown, delegate ACP transport (<a href="https://github.com/NousResearch/hermes-agent/pull/57660" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#57660</a> — @teknium1)</li> <li>Media/vision/image-gen local-file reads routed through the shared credential-read guard; native image routing guarded by file-safety policy; unified image-source resolver + terminal-backend confinement (<a href="https://github.com/NousResearch/hermes-agent/pull/58709" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#58709</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/58752" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#58752</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/57890" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#57890</a> — @teknium1)</li> <li>Webhook body-cap sweep: explicit <code>client_max_size</code> on 3 uncapped aiohttp servers + completion sweep; Raft chunked-request body limit; timestamp-bound V2 webhook signatures (<a href="https://github.com/NousResearch/hermes-agent/pull/59180" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#59180</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/59215" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#59215</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/58902" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#58902</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/58508" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#58508</a> — @teknium1, @srojk34)</li> <li>Redaction: Fireworks token prefixes + Telegram transport errors; env-lookup false positives fixed for KEY=value and JSON/YAML config fields; bot tokens scrubbed from Telegram connect/send errors (<a href="https://github.com/NousResearch/hermes-agent/pull/58501" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#58501</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/58534" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#58534</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/58915" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#58915</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/58893" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#58893</a> — @teknium1)</li> <li>computer-use: subprocess env sanitized across all five cua-driver spawn sites (<a href="https://github.com/NousResearch/hermes-agent/pull/58889" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#58889</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/59165" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#59165</a> — @teknium1)</li> <li>Dashboard: managed-files credential guard widened past .env + dir-tree gap closed; OAuth token TOCTOU closed with atomic 0o600 writes; stale dashboards can't recreate deleted profiles (<a href="https://github.com/NousResearch/hermes-agent/pull/58222" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#58222</a> — @kshitijk4poor, <a href="https://github.com/NousResearch/hermes-agent/pull/60236" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#60236</a> — @teknium1, <a href="https://github.com/NousResearch/hermes-agent/pull/49435" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#49435</a> — @LeonSGP43)</li> <li><span class="cl-badge cl-badge-ci">CI</span>CI: untrusted refs passed through env, not <code>run:</code> interpolation; JS/TS tests wired into CI with source-regex tests banned; js-autofix pushes via PR instead of direct-to-main (<a href="https://github.com/NousResearch/hermes-agent/pull/57842" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#57842</a> — @jquesnelle, <a href="https://github.com/NousResearch/hermes-agent/pull/60707" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#60707</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/65186" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#65186</a> — @ethernet8023)</li> <li><span class="cl-badge cl-badge-ci">CI</span>Docker: terminal network toggle with full-path coverage; Git Bash Mandatory-ASLR install failures detected; Windows updater console hidden during handoff (<a href="https://github.com/NousResearch/hermes-agent/pull/59149" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#59149</a> — @teknium1, <a href="https://github.com/NousResearch/hermes-agent/pull/64651" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#64651</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/66040" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#66040</a> — @helix4u)</li> <li>Anthropic: request-local clients so the stale/interrupt watchdog never corrupts SQLite; per-profile OAuth file; OAuth login 429 fixed (UA must not be claude-code/) (<a href="https://github.com/NousResearch/hermes-agent/pull/67238" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#67238</a> — @OutThisLife, <a href="https://github.com/NousResearch/hermes-agent/pull/59339" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#59339</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/58178" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#58178</a> — @teknium1)</li> <li>Gateway/agent: tool_call_id deduplicated across pre-API sanitizers; background review inherits parent reasoning_config for Anthropic cache parity; <code>/new</code> memory extraction moved off the command path (<a href="https://github.com/NousResearch/hermes-agent/pull/58350" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#58350</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/64379" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#64379</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/61139" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#61139</a> — @teknium1, @kshitijk4poor)</li> </ul> <h2>🔁 Reverted in this window (for the record)</h2> <ul> <li>iron-proxy credential-injection egress firewall (#30179 → reverted in <a href="https://github.com/NousResearch/hermes-agent/pull/58489" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#58489</a>) — not shipping in this release</li> <li>dynamic-workflow orchestration skill (landed, then reverted) — not shipping</li> <li>memory provider-actions extension point (landed, then reverted) — not shipping</li> <li>Note: the plugin <code>pre_tool_call</code> approve escalation was reverted mid-window but <strong>re-landed</strong> in <a href="https://github.com/NousResearch/hermes-agent/pull/60504" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#60504</a> and ships in this release.</li> </ul> <h2>👥 Contributors</h2> <p><strong>450+ people</strong> contributed to this release (via commits, co-author trailers, and salvaged PRs) — the biggest contributor window yet. Thank you, all of you.</p> <h3>Core team</h3> <ul> <li>@teknium1 — release lead; TTFT perf wave, delivery + delegation durability, smart approvals, SecretSource, gateway multiplex + profile routing, sessions export, security round, and a ~290-PR community salvage burn</li> <li>@OutThisLife — desktop app (the speed wave, layout-tree shell, Capabilities page, session colors, vibe reactions, TUI incremental markdown, perf harness)</li> <li>@kshitijk4poor — GPT-5.6 end-to-end, DeepInfra + Upstage Solar providers, perf cluster, compression integrity, mem0, dashboard guards</li> <li>@ethernet8023 — CI overhaul (JS/TS tests wired in, autofix-via-PR, python speedups), desktop keybinds/worktrees/status indicators, full desktop TypeScript conversion</li> <li>@benbarclay — relay OIDC provisioning, gateway multiplex override, Nous auth self-heal, hosted MCP OAuth groundwork</li> <li>@alt-glitch — terminal billing (<code>/subscription</code>, <code>/topup</code>), desktop billing tab</li> <li>@helix4u — desktop provider/model UX, TUI model picker refresh, Windows install/updater hardening</li> <li>@austinpickett — desktop custom endpoint settings</li> <li>@SHL0MS — unbroker + unreal-mcp skills, humanizer expansion</li> </ul> <h3>Top community contributors</h3> <ul> <li>@srojk34 — security hardening: Vertex credential/project/region scoping through the profile secret scope, subprocess env stripping, Raft chunked-request body limits</li> <li>@HexLab98 — 11 fixes across MCP capability gating, Windows installer PATH, desktop cron editing, gateway systemd warnings</li> <li>@UnathiCodex — desktop stability: zoom across display moves, LaTeX rendering, resume-stall and runtime-readiness fixes</li> <li>@xxxigm — <code><think></code> leak fix after thinking-only retry flush, dashboard auth/theme/PTY fixes</li> <li>@erosika — desktop declarative memory-provider panel + honcho recall/timeout correctness</li> <li>@Frowtek — credential security: master stores never mounted into skill sandboxes, live-transcript redaction, dashboard api_key precedence</li> <li>@necoweb3 — browser private-page CDP guard, cron one-shot liveness, gateway compression fail-closed</li> <li>@DavidMetcalfe — desktop updater version pill, Local/custom endpoint exposure, sidebar collapse behavior</li> <li>@shannonsands — dashboard: mobile channel setup, Discord toolsets from web UI, Telegram setup clarity</li> <li>@vishal-dharm — Gemini request-context improvements</li> <li>@PRATHAMESH75 — cron one-shot stale-removal race, dashboard multiplex port-binding guard</li> <li>@alelpoan, @embwl0x, @Adolanium, @giggling-ginger, @Drexuxux, @frizikk, @JoaoMarcos44, @wesleysimplici, @LeonSGP43, @pierrenode, @simpolism, @MorAlekss, @r266-tech, @WadydX, @nv-kasikritc — targeted fixes across desktop, TUI, gateway, cron, webhook, nix, and browser surfaces</li> <li>Salvaged-work authors whose PRs were cherry-picked with credit this window: @Burgunthy (profile routing), @web3blind (sessions export), @hwrdprkns (1Password), @Christopher-Schulze, @Ahmett101, @sjiangtao2024, and many more — see the salvage PR bodies for full attribution</li> </ul> <h3>All contributors</h3> <p>@0-CYBERDYNE-SYSTEMS-0, @0disoft, @0xbyt4, @100yenadmin, @17324393074, @2751738943, @8294, @abhibansal-sg, @adambiggs, @Adolanium, @aeyeopsdev, @aguung, @AhmetArif0, @Ahmett101, @ai-ag2026, @AIalliAI, @ajzrva-sys, @alastraz, @alelpoan, @alex-fireworks, @alex-heritier, @alex107ivanov, @AlexFucuson9, @Alix-007, @allenliang2022, @Almurat123, @AlsayedHoota, @alt-glitch, @alvarosanchez, @amanning3390, @AmAzing129, @AndreasHiltner, @andrewhomeyer, @annguyenNous, @ansel-f, @antydizajn, @arminanton, @arnispiekus, @asimons81, @asscan, @ats3v, @austinlaw076, @austinpickett, @avifenesh, @aydnOktay, @Bartok9, @bautrey, @bbednarski9, @bbopen, @benbarclay, @bigstar0920, @binhnt92, @bird, @Black0Fox0, @BlackishGreen33, @bo.fu, @brendandebeasi, @briandevans, @BROCCOLO1D, @Bruce-anle, @brunz-me, @Burgunthy, @bytesnail, @catbearlove1-lang, @Cdddo, @cgarwood82, @CharmingGroot, @chouqin, @Christopher-Schulze, @claudlos, @CocaKova, @Code-suphub, @CodeForgeNet, @craigdfrench, @CrazyBoyM, @crazywriter1, @cresslank, @cruzanstx, @cyrkstudios, @danilofalcao, @datachainsystems, @DatTheMaster, @davidb73-hub, @davidgut1982, @DavidMetcalfe, @davidrobertson, @deacon-botdoctor, @DECK6, @deepujain, @derek2000139, @designnotdrum, @deusyu, @devatnull, @devorun, @dexhunter, @dfein38347g, @Dhravya, @DictatorBacon, @digitalbase, @dlkakbs, @dmabry, @DNAlec, @dodo-reach, @doncazper, @dorokuma, @doxe0x, @Drexuxux, @dschnurbusch, @Dusk1e, @EdderTalmor, @egilewski, @elashera, @Elektrofussel, @eliteworkstation94-ai, @embwl0x, @emo-eth, @emozilla, @enzo-adami, @Epoxidex, @ErnestHysa, @Erosika, @esthonjr, @ethernet8023, @evefromwayback, @evelynburger, @F4TB0Yz, @falkoro, @fanyangCS, @firefly, @fjlaowan1983, @flewe, @flo1t, @flow-digital-ny, @floze-the-genius, @frizikk, @Frowtek, @FuryMartin, @fyzanshaik, @gauravsaxena1997, @geoffreybutler94, @georgedrury, @gigakun3030, @giggling-ginger, @Git-on-my-level, @gitcommit90, @githubespresso407, @gnodet, @GottZ, @Gridzilla, @grimmjoww578, @gumclaw, @Gutslabs, @HaiderSultanArc, @harjothkhara, @heathley, @hejuntt1014, @helix4u, @HeLLGURD, @hellno, @herbalizer404, @HexLab98, @hmirin, @Hopfensaft, @Hotragn, @hsy5571616, @huanshan5195, @HumphreySun98, @hwrdprkns, @hydracoco7, @hydraxman, @iamlukethedev, @iborazzi, @IgorGanapolsky, @iizotov, @ildunari, @infinitycrew39, @IpastorSan, @irresi, @isfttr, @isheng-eqi, @itsflownium, @izumi0uu, @Jaaneek, @JacketPants, @jaisup, @jakelongvu-bot, @jakepresent, @jaketracey, @JAlmanzarMint, @JasonFang1993, @jbbottoms, @jcjc81, @JiaDe-Wu, @Jiahui-Gu, @Jigoooo, @jingsong-liu, @jneeee, @JoaoMarcos44, @joelbrilliant, @John-Lussier, @jplew, @jtstothard, @juniperbevensee, @Jupiter363, @justinschille, @k4z4n0v4, @kaishi00, @karfly, @kartik-mem0, @kavioavio, @KCAYAAI, @kenyonxu, @keslerm, @kevinrajaram, @knoal, @kocaemre, @kohoj, @konsisumer, @krowd3v, @kshitijk4poor, @kuangmi-bit, @kubolko, @kyssta-exe, @Kyzcreig, @l0h1nth, @labsobsidian, @laurinaitis, @LavyaTandel, @lawyer112, @lemonwan, @LeonSGP43, @lEWFkRAD, @linfeng961, @liuhao1024, @liuwei666888, @ljy-2000, @loes5050, @logical-and, @LoicHmh, @loongfay, @lord-dubious, @lost9999, @lucasfdale, @lucaskvasirr, @luxuguang-leo, @ly-wang19, @m0n5t3r, @m1qaweb, @M1racleShih, @MaartenDMT, @mahdiwafy, @MaheshBhushan, @ManniBr, @marcelohildebrand, @marcolivierlavoie, @markoub, @MarkVLK, @Marxb85, @matantsevs, @maxpetrusenkoagent, @mbac, @mdc2122, @mguttmann, @Mibayy, @michaelHMK, @mijanx, @minchang, @momomojo, @MorAlekss, @morluto, @msh01, @mssteuer, @mvanhorn, @nanami7777777, @nankingjing, @necoweb3, @neo-claw-bot, @neoguyverx, @nicha16, @nikshepsvn, @nima20002000, @nnnet, @NousResearch, @nullptr0807, @nv-kasikritc, @okisdev, @OmarB97, @ooiuuii, @ooovenenoso, @oppih, @Osraka, @ostravajih, @otsune, @OutThisLife, @OYLFLMH, @patrick-muller, @pdmartins, @pedrommaiaa, @Peterskaronis, @petrichor-op, @pgregg88, @pierrenode, @pixel4039, @plcunha, @pnascimento9596, @Polyhistor, @PRATHAMESH75, @professorpalmer, @Punyko8, @Que0x, @Qwinty, @r0gersm1th, @r266-tech, @rabadaki, @ragingbulld, @RainbowAndSun, @rainbowgore, @randimt, @rarf, @rasitakyol, @rayjun, @raymondyan-zhijie, @re-ITRT, @RenoMG, @Rival, @RKelln, @rlaehddus302, @rob-maron, @rodboev, @roryford, @rungmc357, @ruslanvasylev, @s0xn1ck, @s905060, @s96919, @sahibzada-allahyar, @sahil-shubham, @Sahil-SS9, @SahilRakhaiya05, @sam7894604, @SAMBAS123, @samrusani, @sanidhyasin, @sasquatch9818, @sberan, @ScotterMonk, @seagpt, @sebastianlutycz, @SemonCat, @setclock, @shannonsands, @sharziki, @shashwatgokhe, @SHL0MS, @shuangxinniao, @SilentKnight87, @simplast, @simpolism, @SiteupAgencia, @sjiangtao2024, @sk-holmes, @slow4cyl, @smtony, @soddy022, @Soju06, @solyanviktor-star, @SongotenU, @spiky02plateau, @sprmn24, @SquabbyZ, @srojk34, @ssiweifnag, @stantheman0128, @StellarisW, @stephenschoettler, @suninrain086, @superposition, @Supersynergy, @sweetcornna, @szafranski, @tanmayxchoudhary, @tarunravi, @tcconnally, @terry197913, @Thatgfsj, @thegoodguysla, @thestudionorth, @TheTom, @TinkerOfThings, @tjboudreaux, @tjp2021, @Tortugasaur, @Tosko4, @Tranquil-Flow, @trevorgordon981, @trismegistus-wanderer, @tt-a1i, @tuancookiez-hub, @TurgutKural, @Umi4Life, @UnathiCodex, @unsupportedpastels, @uzaylisak, @valda, @vampyren, @veradim, @victor-kyriazakos, @virtualex-itv, @vishal-dharm, @Vissirexa, @vizi0uz, @vkkong, @vKongv, @VolodymyrBg, @vortexopenclaw, @VrtxOmega, @WadydX, @waroffchange, @waseemshahwan, @web3blind, @webtecnica, @wesleion, @wesleysimplicio, @williamumu, @WilsonKinyua, @wxy-nlp, @wyuebei-cloud, @x7peeps, @x9x9x9x9x9x91, @xuezhaolan, @xxxigm, @ya-nsh, @yatesjalex, @ygd58, @yingliang-zhang, @yinkev, @YLChen-007, @yu-xin-c, @yungchentang, @zapabob, @zccyman, @zeapsu, @ziliangpeng, @zwcf5200, @zzpigpinggai</p> <p>Also: bo.fu, Paulo Henrique, kyssta-exe 25470058+kyssta-exe.fu, Paulo Henrique, kyssta-exe 25470058+kyssta-exe.</p> <hr> <p><strong>Full Changelog</strong>: <a href="https://github.com/NousResearch/hermes-agent/compare/v2026.7.1...v2026.7.20">v2026.7.1...v2026.7.20</a></p> </div> <button class="cl-expand-btn ha-headline">▼ EXPAND FULL CHANGELOG</button> <div class="cl-card__footer"> <a href="https://github.com/NousResearch/hermes-agent/releases/tag/v2026.7.20" target="_blank" rel="noopener noreferrer" class="cl-gh-link">↗ GitHub</a> </div> </div> </article><article class="cl-entry" data-version="v2026.7.7.2" data-name="hermes agent v0.18.2 (2026.7.7.2)" data-body="# hermes agent v0.18.2 (v2026.7.7.2) **release date:** july 7, 2026 > same-day patch on top of v0.18.1, picking up the whatsapp baileys dependency fix needed for tagged-release docker builds. --- ## what's in this patch - **fix(whatsapp): unpin baileys from git commit, use published 7.0.0-rc13** ([#60643](https://github.com/nousresearch/hermes-agent/pull/60643)) — the whatsapp bridge dependency now installs from the published npm release instead of a pinned git commit, making installs and docker image builds reliable. full curated release notes for the entire post-v0.18.0 window ship with v0.19.0. ## updating ```bash hermes update # existing installs pip install -u hermes-agent ``` **full changelog**: [v2026.7.7...v2026.7.7.2](https://github.com/nousresearch/hermes-agent/co" data-prerelease="false" data-breaking="false" data-index="23"> <div class="cl-dot"> <span class="cl-dot__icon">●</span> </div> <div class="cl-header"> <span class="ha-headline cl-header__version">v2026.7.7.2</span> <span class="ha-headline cl-header__date">Jul 8, 2026</span> </div> <div class="cl-card"> <h3 class="ha-headline cl-card__title">v0.18.2 (2026.7.7.2)</h3> <div class="changelog-body cl-card__body cl-collapsed"><h1>Hermes Agent v0.18.2 (v2026.7.7.2)</h1> <p><strong>Release Date:</strong> July 7, 2026</p> <blockquote> <p>Same-day patch on top of v0.18.1, picking up the WhatsApp Baileys dependency fix needed for tagged-release Docker builds.</p> </blockquote> <hr> <h2>What's in this patch</h2> <ul> <li><strong>fix(whatsapp): unpin Baileys from git commit, use published 7.0.0-rc13</strong> (<a href="https://github.com/NousResearch/hermes-agent/pull/60643" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#60643</a>) — the WhatsApp bridge dependency now installs from the published npm release instead of a pinned git commit, making installs and Docker image builds reliable.</li> </ul> <p>Full curated release notes for the entire post-v0.18.0 window ship with v0.19.0.</p> <h2>Updating</h2> <pre><code class="language-bash">hermes update # existing installs pip install -U hermes-agent </code></pre> <p><strong>Full Changelog</strong>: <a href="https://github.com/NousResearch/hermes-agent/compare/v2026.7.7...v2026.7.7.2">v2026.7.7...v2026.7.7.2</a></p> </div> <button class="cl-expand-btn ha-headline">▼ EXPAND FULL CHANGELOG</button> <div class="cl-card__footer"> <a href="https://github.com/NousResearch/hermes-agent/releases/tag/v2026.7.7.2" target="_blank" rel="noopener noreferrer" class="cl-gh-link">↗ GitHub</a> </div> </div> </article><article class="cl-entry" data-version="v2026.7.7" data-name="hermes agent v0.18.1 (2026.7.7)" data-body="# hermes agent v0.18.1 (v2026.7.7) **release date:** july 7, 2026 > patch release. this tag rolls up the ~660 prs merged since v0.18.0 (july 1) — bug fixes, hardening, and in-progress feature work — into a stable tagged release for downstream consumers (docker images, hosted deployments, pypi installs). --- ## about this release this is an infrastructure-driven patch tag rather than a fully curated release. since v0.18.0 shipped six days ago, main has accumulated roughly **667 commits across ~990 files (+89.5k/−10.4k lines)**, including installer/updater self-healing on windows, dashboard and gateway fixes, whatsapp dashboard pairing, mcp and provider fixes, and a large volume of stability work. **full curated release notes for this window will ship with v0.19.0**, which will documen" data-prerelease="false" data-breaking="false" data-index="24"> <div class="cl-dot"> <span class="cl-dot__icon">●</span> </div> <div class="cl-header"> <span class="ha-headline cl-header__version">v2026.7.7</span> <span class="ha-headline cl-header__date">Jul 8, 2026</span> </div> <div class="cl-card"> <h3 class="ha-headline cl-card__title">v0.18.1 (2026.7.7)</h3> <div class="changelog-body cl-card__body cl-collapsed"><h1>Hermes Agent v0.18.1 (v2026.7.7)</h1> <p><strong>Release Date:</strong> July 7, 2026</p> <blockquote> <p>Patch release. This tag rolls up the ~660 PRs merged since v0.18.0 (July 1) — bug fixes, hardening, and in-progress feature work — into a stable tagged release for downstream consumers (Docker images, hosted deployments, PyPI installs).</p> </blockquote> <hr> <h2>About this release</h2> <p>This is an infrastructure-driven patch tag rather than a fully curated release. Since v0.18.0 shipped six days ago, main has accumulated roughly <strong>667 commits across ~990 files (+89.5k/−10.4k lines)</strong>, including installer/updater self-healing on Windows, dashboard and gateway fixes, WhatsApp dashboard pairing, MCP and provider fixes, and a large volume of stability work.</p> <p><strong>Full curated release notes for this window will ship with v0.19.0</strong>, which will document everything from v0.18.0 onward — highlights, feature areas, and complete contributor credits. Nothing in this window is skipped; it's documented in the next minor release.</p> <h2>Updating</h2> <pre><code class="language-bash">hermes update # existing installs pip install -U hermes-agent </code></pre> <p><strong>Full Changelog</strong>: <a href="https://github.com/NousResearch/hermes-agent/compare/v2026.7.1...v2026.7.7">v2026.7.1...v2026.7.7</a></p> </div> <button class="cl-expand-btn ha-headline">▼ EXPAND FULL CHANGELOG</button> <div class="cl-card__footer"> <a href="https://github.com/NousResearch/hermes-agent/releases/tag/v2026.7.7" target="_blank" rel="noopener noreferrer" class="cl-gh-link">↗ GitHub</a> </div> </div> </article><article class="cl-entry" data-version="v2026.7.1" data-name="hermes agent v0.18.0 (2026.7.1) — the judgment release" data-body="# hermes agent v0.18.0 (v2026.7.1) **release date:** july 1, 2026 **since v0.17.0:** ~1,720 commits · 998 merged prs · 2,215 files changed · ~251,000 insertions · ~41,000 deletions · **949 issues closed** · **370+ community contributors** > **the judgment release.** over the last week and a half the team put nearly all of its effort into one goal: resolve **every p0 and p1 issue and pr in the entire hermes agent repo** — and as of this release, **100% of them are closed.** zero open p0s. zero open p1s. that's **~700 highest-priority items** cleared as part of **~1,950 total issues and prs closed** this window. we intend to keep p0/p1 at zero from here on. > > on top of that clean-sweep, v0.18.0 is about how *well* hermes thinks and how it *knows when its work is actually done*. mixture-o" data-prerelease="false" data-breaking="false" data-index="25"> <div class="cl-dot"> <span class="cl-dot__icon">●</span> </div> <div class="cl-header"> <span class="ha-headline cl-header__version">v2026.7.1</span> <span class="ha-headline cl-header__date">Jul 1, 2026</span> </div> <div class="cl-card"> <h3 class="ha-headline cl-card__title">v0.18.0 (2026.7.1) — The Judgment Release</h3> <div class="changelog-body cl-card__body cl-collapsed"><h1>Hermes Agent v0.18.0 (v2026.7.1)</h1> <p><strong>Release Date:</strong> July 1, 2026 <strong>Since v0.17.0:</strong> ~1,720 commits · 998 merged PRs · 2,215 files changed · ~251,000 insertions · ~41,000 deletions · <strong>949 issues closed</strong> · <strong>370+ community contributors</strong></p> <blockquote> <p><strong>The Judgment Release.</strong> Over the last week and a half the team put nearly all of its effort into one goal: resolve <strong>every P0 and P1 issue and PR in the entire Hermes Agent repo</strong> — and as of this release, <strong>100% of them are closed.</strong> Zero open P0s. Zero open P1s. That's <strong>~700 highest-priority items</strong> cleared as part of <strong>~1,950 total issues and PRs closed</strong> this window. We intend to keep P0/P1 at zero from here on.</p> <p>On top of that clean-sweep, v0.18.0 is about how <em>well</em> Hermes thinks and how it <em>knows when its work is actually done</em>. Mixture-of-Agents became a first-class citizen — named ensembles of models you can pick like any other model, with every reference model's reasoning shown to you and the aggregator's answer streamed live. The agent learned to verify its own work against evidence instead of vibes, <code>/goal</code> gained completion contracts, and <code>/learn</code> + <code>/journey</code> turned self-improvement into something you can see and steer. Underneath, the gateway became genuinely deployable-at-scale (scale-to-zero, drain coordination), the desktop grew first-class coding projects and a playable memory graph, and subagents can now fan out in the background.</p> </blockquote> <h2>🎯 The P0/P1 Clean Sweep — 100% resolved</h2> <p>This is the release headline. For a week and a half the team hammered the priority backlog day and night, and every single P0 and P1 across the whole repo is now closed:</p> <table> <thead> <tr> <th>Priority</th> <th>Issues closed</th> <th>PRs merged</th> </tr> </thead> <tbody><tr> <td><strong>P0</strong> (critical)</td> <td>3</td> <td>8</td> </tr> <tr> <td><strong>P1</strong> (high)</td> <td>493</td> <td>188</td> </tr> <tr> <td><strong>Total</strong></td> <td><strong>496</strong></td> <td><strong>196</strong></td> </tr> </tbody></table> <p>That's <strong>~692 highest-priority items resolved</strong> in twelve days — and at the moment the sweep completed, the open P0/P1 count hit <strong>0 across the entire repo.</strong> The final cluster to fall was the interrupt-protected-compression sibling-fork bug (issue #56391) and its fix (#56416), closed on an all-nighter right before this release cut.</p> <p>Special shoutout to <strong>@kshitijk4poor</strong>, who burned through the priority backlog day and night alongside the core team — the cron reliability wave, the compression-fork fix, the credential-exfil hardening, and a huge share of the P1 closures are his.</p> <p>We're keeping P0/P1 at <strong>0</strong> from here forward. 🫡</p> <h2>✨ Highlights</h2> <ul> <li><p><strong>Mixture-of-Agents is now a first-class model you can pick</strong> — MoA used to be a mode you toggled; now every named MoA preset shows up as a selectable model under a <code>moa</code> provider, right alongside Claude, GPT, and Grok in every model picker (CLI, TUI, desktop, gateway). Pick "my-council" the same way you'd pick any model, and Hermes routes your prompt through that ensemble automatically. An ensemble of frontier models deliberating on your hardest questions is now one selection away, on every surface. (<a href="https://github.com/NousResearch/hermes-agent/pull/46081" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#46081</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/53548" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#53548</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/53561" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#53561</a> — @teknium1)</p> </li> <li><p><strong>See every model's reasoning, then watch the answer stream in</strong> — When a MoA ensemble runs, each reference model's full output now renders as its own labelled block — you can read what GPT-5 thought, what Claude thought, and what Grok thought, before the aggregator synthesizes them into one answer. And that final answer now streams to you live instead of appearing all at once after a long silence. This works in the CLI, the TUI, and the desktop app. You get to watch the committee deliberate, not just read the verdict. (<a href="https://github.com/NousResearch/hermes-agent/pull/53793" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#53793</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/53855" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#53855</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/55625" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#55625</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/56101" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#56101</a> — @teknium1)</p> </li> <li><p><strong>The agent verifies its own work — "done" means proven, not claimed</strong> — Hermes now records verification evidence for coding work and can decide it's finished by actually running your project's checks, not by asserting success. <code>/goal</code> gained <strong>completion contracts</strong>: you state what "done" looks like, and the standing-goal loop judges completion against that evidence instead of stopping when the model feels like it. There's a <code>pre_verify</code> hook for wiring in custom checks and a one-time migration that tunes the defaults sensibly. The difference between "I think I fixed it" and "the tests pass, here's proof." (<a href="https://github.com/NousResearch/hermes-agent/pull/50501" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#50501</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/52285" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#52285</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/55413" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#55413</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/53552" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#53552</a> — @teknium1, @OutThisLife)</p> </li> <li><p><strong><code>/learn</code> — turn anything into a reusable skill by describing it</strong> — Run <code>/learn <anything></code> and Hermes distills a reusable skill out of whatever you point it at — a directory, a URL, or just the workflow you walked it through five minutes ago. It writes the skill to the standards in your CONTRIBUTING.md automatically. The next time you need that workflow, it's already there. Teaching Hermes a new trick is now a single command, not a manual skill-authoring session. (<a href="https://github.com/NousResearch/hermes-agent/pull/51506" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#51506</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/52372" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#52372</a> — @teknium1)</p> </li> <li><p><strong><code>/journey</code> — a playable timeline of everything Hermes has learned about you</strong> — The CLI and TUI gained <code>/journey</code>, a learning timeline that shows the memories and skills Hermes has accumulated over time — and you can edit or delete any of them right from the view. Pair it with the desktop's new <strong>memory graph</strong> (a top-down, playable radial timeline of memories and skills) and for the first time you can actually <em>see</em> what your agent knows, watch it grow, and prune what's wrong. Your agent's memory stops being a black box. (<a href="https://github.com/NousResearch/hermes-agent/pull/55555" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#55555</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/55859" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#55859</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/55226" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#55226</a> — @OutThisLife)</p> </li> <li><p><strong>Delegate a pile of work and keep going — background fan-out</strong> — <code>delegate_task</code> can now fan out multiple subagents that all run in the <strong>background</strong>: your chat is never blocked, and when every subagent finishes, their results come back as a single consolidated turn. Kick off "research these five competitors in parallel" or "audit these three modules," then carry on with something else while a small fleet works. When it's all done, you get one clean summary instead of babysitting each one. (<a href="https://github.com/NousResearch/hermes-agent/pull/49734" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#49734</a> — @teknium1)</p> </li> <li><p><strong>First-class coding Projects in the desktop app</strong> — The desktop app gained real, per-profile <strong>Projects</strong> — a sidebar of your codebases, a coding rail, a review pane, git worktree management, and agent-facing project tools, all backed by a proper <code>project → repo → lane</code> model. Instead of scattered chat sessions, your coding work is organized into projects the agent understands and can act on. It's the desktop turning into an actual coding cockpit. (<a href="https://github.com/NousResearch/hermes-agent/pull/49037" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#49037</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/54385" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#54385</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/54517" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#54517</a> — @OutThisLife)</p> </li> <li><p><strong>Run Hermes at scale — scale-to-zero and drain coordination</strong> — The gateway can now go <strong>dormant when idle</strong> and quiesce cleanly before a restart, migration, or auto-update — without dropping in-flight conversations. A hosted or relay-only Hermes can scale to zero when nobody's talking to it and wake back up on demand, and disruptive lifecycle actions coordinate an external drain so nobody gets cut off mid-turn. Running Hermes for a team or as a hosted service just got a lot more production-grade. (<a href="https://github.com/NousResearch/hermes-agent/pull/52243" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#52243</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/52937" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#52937</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/54824" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#54824</a> — @teknium1, @benbarclay)</p> </li> <li><p><strong>Cheaper self-improvement — smarter background review</strong> — The post-turn self-improvement fork (the one that decides whether to save a memory or skill) now routes to an auxiliary model, digests context instead of replaying the whole conversation, and adapts its cadence — so the "learn from what just happened" loop that runs after your turns costs a fraction of what it used to. You keep the self-improvement, you stop paying full main-model price for it. (<a href="https://github.com/NousResearch/hermes-agent/pull/49252" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#49252</a> — @teknium1)</p> </li> <li><p><strong>Compose your next prompt in your editor — <code>/prompt</code></strong> — <code>/prompt</code> opens your <code>$EDITOR</code> so you can hand-write a long, multi-line prompt in real markdown instead of fighting a one-line input box. Draft a detailed spec, a structured question, or a big paste, save, and it's queued as your next message. Small thing, huge quality-of-life win for anyone who writes Hermes more than a sentence at a time. (<a href="https://github.com/NousResearch/hermes-agent/pull/50509" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#50509</a> — @teknium1)</p> </li> <li><p><strong>Google Vertex AI — Gemini through your GCP service account, no static key</strong> — Vertex AI is now a first-class provider for Gemini models over Vertex's OpenAI-compatible endpoint. The reason a plain custom-provider setup always died mid-session is that Vertex has no static API key — every request needs a short-lived OAuth2 access token (~1h TTL) minted from a service-account JSON or Application Default Credentials. Hermes now mints and auto-refreshes those tokens for you, so if your org runs Gemini through Google Cloud, you point Hermes at your service account and it just works — no token-pasting, no mid-session expiry. (<a href="https://github.com/NousResearch/hermes-agent/pull/56363" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#56363</a> — @teknium1, @slawt)</p> </li> <li><p><strong>Security round</strong> — This window hardened several surfaces: MCP-config persistence attack surface locked down, cron <code>base_url</code> overrides that could exfiltrate provider credentials blocked, a non-reusable sentinel for prefix secrets in file reads, Slack app-level (<code>xapp-</code>) token redaction, a browser cloud-metadata floor enforced on every backend, and an <code>aiohttp</code> CVE floor across the lazy messaging paths. Fewer ways for a prompt-injected or misconfigured session to leak a credential. (<a href="https://github.com/NousResearch/hermes-agent/pull/50476" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#50476</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/56196" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#56196</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/54166" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#54166</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/56227" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#56227</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/52349" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#52349</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/56237" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#56237</a> — @teknium1, @kshitijk4poor, @claudlos)</p> </li> </ul> <hr> <h2>🧠 Mixture-of-Agents (MoA)</h2> <p>MoA graduated from a mode to a first-class part of the model system this window.</p> <ul> <li><strong>Presets as selectable virtual models</strong> — each named MoA preset appears as a model under provider <code>moa</code>; pick it in any model picker and Hermes routes through the ensemble (<a href="https://github.com/NousResearch/hermes-agent/pull/46081" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#46081</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/53561" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#53561</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/53775" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#53775</a> — @teknium1)</li> <li><strong><code>/moa</code> is now one-shot sugar</strong> — runs a single prompt through the default preset and restores your model afterward; persistent switching goes through the model picker (<a href="https://github.com/NousResearch/hermes-agent/pull/53548" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#53548</a> — @teknium1)</li> <li><strong>Reference-model output shown as labelled blocks</strong> in CLI, TUI, and desktop — read each model's reasoning before the aggregator's synthesis (<a href="https://github.com/NousResearch/hermes-agent/pull/53793" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#53793</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/53855" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#53855</a> — @teknium1)</li> <li><strong>Aggregator response streams live</strong> instead of appearing whole after a silence (<a href="https://github.com/NousResearch/hermes-agent/pull/55625" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#55625</a> — @teknium1)</li> <li><strong>References see full tool state and fire on every user/tool response</strong>; advisory references end on a user turn and get a reference-role system prompt (<a href="https://github.com/NousResearch/hermes-agent/pull/54016" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#54016</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/54007" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#54007</a> — @teknium1)</li> <li><strong>Opt-in full-turn trace persistence to JSONL</strong> (<code>moa.save_traces</code>) for debugging and eval (<a href="https://github.com/NousResearch/hermes-agent/pull/56101" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#56101</a> — @teknium1)</li> <li>Reliability: reference + aggregator models called through their provider's real route; context window resolved from the aggregator (not the 256K default); auxiliary tasks resolve to the aggregator; virtual provider blocked as a reference/aggregator slot; tolerant of hand-edited preset config (<a href="https://github.com/NousResearch/hermes-agent/pull/53580" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#53580</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/53780" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#53780</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/53827" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#53827</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/53281" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#53281</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/53275" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#53275</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/53556" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#53556</a> — @teknium1)</li> <li>MoA slot provider-identity unified on the single <code>call_llm</code> chokepoint; HermesBench results documented (<a href="https://github.com/NousResearch/hermes-agent/pull/55991" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#55991</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/53206" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#53206</a> — @teknium1)</li> </ul> <h2>✅ Verification & Goals — the agent proves its work</h2> <ul> <li><strong>Completion contracts for <code>/goal</code></strong> — state what "done" looks like; the standing-goal loop judges against evidence, not the model's say-so (<a href="https://github.com/NousResearch/hermes-agent/pull/50501" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#50501</a> — @teknium1)</li> <li><strong><code>/goal wait <pid></code></strong> — park the standing-goal loop on a background process instead of re-poking the agent (<a href="https://github.com/NousResearch/hermes-agent/pull/50503" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#50503</a> — @teknium1)</li> <li><strong>Coding verification evidence ledger</strong> — profile-scoped record of canonical project checks detected by <code>agent.coding_context</code>; gateway exposes verification status (<a href="https://github.com/NousResearch/hermes-agent/pull/52285" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#52285</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/52286" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#52286</a> — @OutThisLife)</li> <li><strong><code>pre_verify</code> hook + coding guidance config</strong>; verification stop loop + ad-hoc verification scripts (<a href="https://github.com/NousResearch/hermes-agent/pull/55413" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#55413</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/52296" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#52296</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/52297" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#52297</a> — @OutThisLife)</li> <li><strong>verify-on-stop defaults OFF</strong> with a one-time v32 migration; skips doc-only edits; surface-aware "auto" default restored; gated off for messaging surfaces (<a href="https://github.com/NousResearch/hermes-agent/pull/53552" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#53552</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/54740" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#54740</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/55449" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#55449</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/52412" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#52412</a> — @teknium1, @OutThisLife, @GodsBoy)</li> </ul> <h2>🎓 Self-Improvement (Learn / Journey)</h2> <ul> <li><strong><code>/learn <anything></code></strong> — distill a reusable skill from a directory, URL, or a workflow you just walked through; honors CONTRIBUTING.md skill standards and mixed requirements (<a href="https://github.com/NousResearch/hermes-agent/pull/51506" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#51506</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/52372" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#52372</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/55956" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#55956</a> — @teknium1)</li> <li><strong><code>/journey</code></strong> — CLI + TUI learning timeline of accumulated memories and skills, with in-place edit/delete (<a href="https://github.com/NousResearch/hermes-agent/pull/55555" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#55555</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/55859" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#55859</a> — @OutThisLife)</li> <li><strong>Cheaper background review</strong> — aux-model routing + context digest + adaptive cadence for the post-turn self-improvement fork (<a href="https://github.com/NousResearch/hermes-agent/pull/49252" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#49252</a> — @teknium1)</li> <li><strong><code>memory</code> graph</strong> in the desktop — playable radial timeline of memories + skills over time (<a href="https://github.com/NousResearch/hermes-agent/pull/55226" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#55226</a> — @OutThisLife)</li> </ul> <h2>🖥️ Hermes Desktop App</h2> <h3>Coding cockpit</h3> <ul> <li><strong>First-class Projects</strong> — per-profile sidebar, coding rail, review pane, agent project tools (<code>project → repo → lane</code>); remote-gateway-aware folder picker + git cockpit (status, review, worktrees) (<a href="https://github.com/NousResearch/hermes-agent/pull/49037" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#49037</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/54385" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#54385</a> — @OutThisLife)</li> <li><strong>Multi-terminal panel</strong> with read-only agent terminals; persist & restore terminal tabs + scrollback across relaunch (<a href="https://github.com/NousResearch/hermes-agent/pull/54517" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#54517</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/54585" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#54585</a> — @OutThisLife)</li> <li><strong>PR-style file diffs in chat</strong>; in-app spot editor for the file preview pane; inline rich embeds, diagrams & alerts in assistant markdown (<a href="https://github.com/NousResearch/hermes-agent/pull/50731" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#50731</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/52772" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#52772</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/52935" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#52935</a> — @OutThisLife)</li> </ul> <h3>UX & surfaces</h3> <ul> <li>Conversation timeline rail for long threads; context-usage breakdown popover; read-only spectator transcript for subagent watch windows; pop the composer into a draggable floating window (<a href="https://github.com/NousResearch/hermes-agent/pull/51094" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#51094</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/54907" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#54907</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/55033" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#55033</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/49488" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#49488</a> — @OutThisLife, @austinpickett)</li> <li>Read replies aloud (auto-TTS) composer toggle; remember window size/position/maximized across launches; redesigned clarify prompt; shared overlay Panel primitive for cron/profiles/agents (<a href="https://github.com/NousResearch/hermes-agent/pull/55154" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#55154</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/52086" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#52086</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/52993" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#52993</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/54558" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#54558</a> — @OutThisLife)</li> <li>Backup import/create/download from the web UI; add context-usage popover; flag already-installed themes in install pickers; config-driven Electron launch flags + GPU policy (<a href="https://github.com/NousResearch/hermes-agent/pull/54611" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#54611</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/55410" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#55410</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/53991" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#53991</a> — @teknium1, @OutThisLife)</li> <li><strong>Pets</strong> — roaming pet (opt-in), calmer/realistic roam, Alt+wheel scaling never cropped, frame-perfect hatch flow + CPU-safe chroma, pop-out overlay + notifications (<a href="https://github.com/NousResearch/hermes-agent/pull/55114" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#55114</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/55400" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#55400</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/52877" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#52877</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/47959" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#47959</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/52303" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#52303</a> — @OutThisLife)</li> </ul> <h3>Refactor wave (composer / god-file de-entangle)</h3> <ul> <li>Decomposed the composer into isolated engine hooks; extracted branch/esc/url/placeholder/popout engines; split <code>thread.tsx</code>, <code>sidebar/index.tsx</code>, onboarding overlay, and <code>use-prompt-actions</code> god files into focused modules; shared WebSocket layer decoupling desktop from dashboard (<code>hermes serve</code>) (<a href="https://github.com/NousResearch/hermes-agent/pull/55500" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#55500</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/55842" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#55842</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/55451" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#55451</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/55453" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#55453</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/55807" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#55807</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/55504" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#55504</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/54568" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#54568</a> — @OutThisLife)</li> <li><span class="cl-badge cl-badge-perf">PERF</span>perf: bound tool-result rendering so big <code>/learn</code> runs don't freeze; fast session switching under load (<a href="https://github.com/NousResearch/hermes-agent/pull/52273" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#52273</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/52620" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#52620</a> — @OutThisLife)</li> </ul> <h2>📊 Web Dashboard</h2> <ul> <li>Auto-initiate portal SSO redirect on unauthenticated load; interactive auth setup on no-provider non-loopback bind; confidential-client (<code>client_secret</code>) support in self-hosted OIDC (<a href="https://github.com/NousResearch/hermes-agent/pull/54846" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#54846</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/50551" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#50551</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/55344" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#55344</a> — @teknium1, @benbarclay)</li> <li>Catalogue all memory-provider API keys in <code>OPTIONAL_ENV_VARS</code>; list & add arbitrary custom <code>.env</code> keys on the Keys page; expose cron job execution fields; backup import/create/download (<a href="https://github.com/NousResearch/hermes-agent/pull/54546" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#54546</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/54552" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#54552</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/53551" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#53551</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/54611" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#54611</a> — @benbarclay, @teknium1)</li> <li>Offload PTY spawn/close off the event loop; exclude non-interactive providers from interactive login surfaces (<a href="https://github.com/NousResearch/hermes-agent/pull/53227" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#53227</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/53239" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#53239</a> — @IAvecilla)</li> </ul> <h2>🏗️ Core Agent & Architecture</h2> <h3>Delegation & subagents</h3> <ul> <li><strong>Background fan-out</strong> — parallel subagents run in the background, one consolidated return when all finish; calm "will resume" affordance for background <code>delegate_task</code> (<a href="https://github.com/NousResearch/hermes-agent/pull/49734" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#49734</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/52756" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#52756</a> — @teknium1, @OutThisLife)</li> <li>Track background subagents in the CLI + TUI status bar (<a href="https://github.com/NousResearch/hermes-agent/pull/51441" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#51441</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/51485" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#51485</a> — @teknium1)</li> </ul> <h3>Agent loop, tools & coding context</h3> <ul> <li>One-shot LLM helper + <code>llm.oneshot</code> gateway RPC; expose coding-context project facts (<code>project.facts</code> RPC) (<a href="https://github.com/NousResearch/hermes-agent/pull/51261" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#51261</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/51259" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#51259</a> — @OutThisLife)</li> <li><code>web_extract</code> truncate-and-store instead of LLM summarization; concurrent @-reference expansion (<a href="https://github.com/NousResearch/hermes-agent/pull/54843" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#54843</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/55207" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#55207</a> — @teknium1, @kshitijk4poor)</li> <li>Friendly human-phrased tool labels for built-in tools; <code>/reasoning full</code> (uncapped thinking); <code>/timestamps</code> + timestamps in <code>/history</code>; <code>/prompt</code> composes in <code>$EDITOR</code> (<a href="https://github.com/NousResearch/hermes-agent/pull/55166" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#55166</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/50499" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#50499</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/50506" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#50506</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/50509" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#50509</a> — @teknium1)</li> <li>Per-reasoning-model stale-timeout floor in stream + non-stream detectors; escalate SIGTERM→SIGKILL on host-pid termination after grace (<a href="https://github.com/NousResearch/hermes-agent/pull/52845" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#52845</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/50489" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#50489</a> — @teknium1)</li> <li>Multiple <code>HERMES_WRITE_SAFE_ROOT</code> dirs; opt-in HTTP/WS body capture to an isolated, share-excluded <code>gui_bodies.log</code> (<a href="https://github.com/NousResearch/hermes-agent/pull/53292" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#53292</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/49044" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#49044</a> — @kshitijk4poor)</li> </ul> <h3>Compression & sessions</h3> <ul> <li>In-place compaction option (single session id); flip <code>in_place</code> default to True with a guard fix (<a href="https://github.com/NousResearch/hermes-agent/pull/49739" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#49739</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/52658" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#52658</a> — @teknium1)</li> <li>Backup includes <code>projects.db</code> and kanban boards in the pre-update snapshot (<a href="https://github.com/NousResearch/hermes-agent/pull/52990" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#52990</a> — @kshitijk4poor)</li> </ul> <h3>Providers & models</h3> <ul> <li><strong>Google Vertex AI</strong> first-class provider for Gemini over the OpenAI-compatible endpoint — auto-mints and refreshes short-lived OAuth2 tokens from a service-account JSON / ADC (no static key); salvages & modernizes #8427 by @slawt (<a href="https://github.com/NousResearch/hermes-agent/pull/56363" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#56363</a> — @teknium1, @slawt)</li> <li>Krea via managed Nous Subscription gateway; Z.AI endpoint picker (Global/China/Coding Plan); Ollama-cloud reasoning_effort wiring; remove google-gemini-cli + google-antigravity OAuth providers (<a href="https://github.com/NousResearch/hermes-agent/pull/52647" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#52647</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/52364" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#52364</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/51494" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#51494</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/50492" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#50492</a> — @teknium1, @kshitijk4poor)</li> <li>Honor <code>NOUS_INFERENCE_BASE_URL</code> env override for Nous OAuth; keep Nous auth fresh for idle dashboard/gateway agents (<a href="https://github.com/NousResearch/hermes-agent/pull/52270" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#52270</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/50567" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#50567</a> — @benbarclay, @teknium1)</li> </ul> <h2>🌐 Gateway, Fleet & Relay</h2> <h3>Scale-to-zero & drain</h3> <ul> <li><strong>Scale-to-zero idle detection + dormant-quiesce (Phase 0)</strong>; hardened dormancy guards; fixed arm-gate counting disabled placeholder platforms (<a href="https://github.com/NousResearch/hermes-agent/pull/52243" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#52243</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/52359" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#52359</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/52831" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#52831</a> — @teknium1, @benbarclay)</li> <li><strong>External drain coordination (safe-shutdown Phase 2)</strong>; suppress home-channel shutdown broadcast on flagged drains; persist in-flight transcript on restart/shutdown drain timeout; busy/idle readout for safe lifecycle actions (<a href="https://github.com/NousResearch/hermes-agent/pull/52937" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#52937</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/54824" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#54824</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/50312" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#50312</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/50131" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#50131</a> — @teknium1, @benbarclay, @kshitijk4poor)</li> <li>Default <code>restart_drain_timeout</code> to 0 to kill a systemd crash loop; self-heal a gateway stranded in draining/degraded (<a href="https://github.com/NousResearch/hermes-agent/pull/54066" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#54066</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/55397" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#55397</a> — @teknium1)</li> </ul> <h3>Relay (Phase 5 / 6)</h3> <ul> <li>Wake primitive (gateway side); going-idle / buffered-flip primitive; <code>passthrough_forward</code> over WS; multi-platform-per-agent identity + per-frame egress; forward stable instance id at self-provision; declare relevance policy to the connector (<a href="https://github.com/NousResearch/hermes-agent/pull/51595" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#51595</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/51572" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#51572</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/50702" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#50702</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/52830" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#52830</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/50772" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#50772</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/51248" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#51248</a> — @benbarclay)</li> <li>Authorize relay-delivered events by delivery, not <code>source.platform</code>; adopt <code>scope_id</code> wire key; purge platform-specific scope terminology (<a href="https://github.com/NousResearch/hermes-agent/pull/52306" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#52306</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/55289" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#55289</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/56016" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#56016</a> — @benbarclay)</li> </ul> <h3>Gateway core & rendering</h3> <ul> <li>Typed send-error classification (<code>SendResult.error_kind</code>); per-platform <code>typing_indicator</code> toggle; per-category context breakdown in <code>/usage</code> (<a href="https://github.com/NousResearch/hermes-agent/pull/50342" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#50342</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/55394" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#55394</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/55204" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#55204</a> — @teknium1)</li> <li>API server: configurable concurrent-run cap to prevent DoS; scope run approvals by run id (<a href="https://github.com/NousResearch/hermes-agent/pull/50007" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#50007</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/56129" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#56129</a> — @teknium1)</li> </ul> <h2>📱 Messaging Platforms</h2> <ul> <li><strong>Cron continuations</strong> — continuable cron jobs (thread-preferred continuation with DM-mirror fallback); flat in-channel continuable cron delivery for Slack; warn when gateway not running on cron create/list (<a href="https://github.com/NousResearch/hermes-agent/pull/52250" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#52250</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/56254" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#56254</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/51696" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#51696</a> — @teknium1)</li> <li>Telegram: configurable command menu + raised default cap so skills stay visible; gate rich draft previews separately; drain general send pool on pool timeout before retry (<a href="https://github.com/NousResearch/hermes-agent/pull/51716" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#51716</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/52088" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#52088</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/54121" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#54121</a> — @teknium1, @helix4u)</li> <li>Slack: opt-in Block Kit rendering for agent messages; <code>--no-assistant</code> flag for manifest generation (<a href="https://github.com/NousResearch/hermes-agent/pull/56102" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#56102</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/51487" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#51487</a> — @teknium1)</li> <li>Discord: render reasoning as <code>-#</code> subtext via <code>display.reasoning_style</code> (<a href="https://github.com/NousResearch/hermes-agent/pull/51168" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#51168</a> — @teknium1)</li> <li>Native WhatsApp media delivery via the Baileys bridge; Teams native <code>send_video</code>/<code>send_voice</code>/<code>send_document</code>; photon sidecar upgraded to spectrum-ts v8 with tapback correlation; Raft gateway setup wizard (<a href="https://github.com/NousResearch/hermes-agent/pull/53598" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#53598</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/49308" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#49308</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/53451" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#53451</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/56230" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#56230</a> — @teknium1)</li> <li>Signal: AAC voice-note remux + shared markdown formatting (<a href="https://github.com/NousResearch/hermes-agent/pull/49530" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#49530</a> — @kshitijk4poor)</li> <li>Migrate slack/dingtalk/whatsapp/matrix/feishu/telegram/wecom/email/sms adapters to bundled (<a href="https://github.com/NousResearch/hermes-agent/pull/49408" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#49408</a> — @teknium1)</li> </ul> <h2>🔧 Tool System, Skills & MCP</h2> <ul> <li>Blank Slate setup mode — minimal agent, opt in to everything (<a href="https://github.com/NousResearch/hermes-agent/pull/36733" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#36733</a> — @teknium1)</li> <li>MCP: config persistence attack surface hardened; block base_url exfil; keepalive for short-TTL sessions (see Security) — plus catalog & UX carried from v0.17.0</li> <li>Skills: <code>/learn</code> distillation (see Self-Improvement); <code>cloudflare-temporary-deploy</code> optional skill; creative-ideation v2.1.0 method library (<a href="https://github.com/NousResearch/hermes-agent/pull/50849" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#50849</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/42402" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#42402</a> — @teknium1, @SHL0MS)</li> <li>Kanban: task lifecycle plugin hooks (claimed/completed/blocked); typed block reasons + unblock-loop breaker; handoff freshness stamping (<a href="https://github.com/NousResearch/hermes-agent/pull/50349" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#50349</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/52848" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#52848</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/53973" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#53973</a> — @teknium1)</li> <li>Plugins: <code>ctx.profile_name</code> for session-agnostic profile access (<a href="https://github.com/NousResearch/hermes-agent/pull/50346" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#50346</a> — @teknium1)</li> <li>LSP: PowerShellEditorServices language server; mem0 v3 API + OSS mode + update/delete tools (<a href="https://github.com/NousResearch/hermes-agent/pull/55930" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#55930</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/15624" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#15624</a> — @teknium1, @kartik-mem0)</li> </ul> <h2>⚡ Performance</h2> <ul> <li>Cold start: lazy-load gateway platform adapters; parse config + plugin manifests with libyaml <code>CSafeLoader</code> (<a href="https://github.com/NousResearch/hermes-agent/pull/54448" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#54448</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/54486" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#54486</a> — @teknium1)</li> <li>State: merge FTS5 segments + <code>handoff_state</code> index to curb write-lock contention; single-pass <code>list_profiles</code> alias map + skill-count cache + event-loop offload (<a href="https://github.com/NousResearch/hermes-agent/pull/54752" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#54752</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/54770" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#54770</a> — @kshitijk4poor, @teknium1)</li> </ul> <h2>🔒 Security & Reliability</h2> <ul> <li>Harden MCP-config persistence attack surface; block cron <code>base_url</code> overrides that exfiltrate provider credentials; non-reusable sentinel for prefix secrets in file reads (<a href="https://github.com/NousResearch/hermes-agent/pull/50476" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#50476</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/56196" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#56196</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/54166" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#54166</a> — @teknium1, @kshitijk4poor)</li> <li>Redact Slack App-Level (<code>xapp-</code>) tokens; browser cloud-metadata floor on all backends (CDP non-local); re-check private-network guard after <code>browser_back</code> navigation; scope <code>/resume</code> and <code>/sessions</code> to caller origin (IDOR); <code>aiohttp</code> 3.14.1 CVE floor across lazy messaging paths + pin-drift guard (<a href="https://github.com/NousResearch/hermes-agent/pull/56227" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#56227</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/52349" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#52349</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/56526" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#56526</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/56378" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#56378</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/56237" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#56237</a> — @teknium1, @claudlos, @kshitijk4poor)</li> <li>Cron reliability wave: fail closed when an unpinned job's provider drifts; run missed-grace jobs once instead of deferring forever; keep the ticker alive on <code>BaseException</code> + heartbeat-aware status; layer enabled MCP servers onto per-job toolsets; guard cron model-tool path + auto-resume loop breaker (<a href="https://github.com/NousResearch/hermes-agent/pull/51051" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#51051</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/50062" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#50062</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/50016" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#50016</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/50117" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#50117</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/56240" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#56240</a> — @kshitijk4poor, @teknium1)</li> <li>Windows: suppress console flashes + harden gateway restarts; prefer cmd npm shim on PATH fallback; respawn gateway windowless after GUI update; prefer managed node for whatsapp/desktop (<a href="https://github.com/NousResearch/hermes-agent/pull/52340" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#52340</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/50398" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#50398</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/52239" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#52239</a> — @helix4u, @teknium1)</li> </ul> <h2>🔁 Reverts (in-window, for the record)</h2> <ul> <li>cron job storage returned to per-profile (reverts #32117 + #50993); don't clone <code>auth.json</code> (duplicating OAuth grant causes sibling revocation); windows terminal-popup PRs rolled back; <code>prompt_caching.enabled</code> toggle backed out for re-evaluation (<a href="https://github.com/NousResearch/hermes-agent/pull/51116" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#51116</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/51732" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#51732</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/53853" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#53853</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/56126" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#56126</a> — @teknium1)</li> </ul> <h2>👥 Contributors</h2> <p><strong>381 people</strong> contributed to this release (via commits, co-author trailers, and salvaged PRs). Thank you, all of you.</p> <h3>Core</h3> <ul> <li>@teknium1 — release lead; MoA first-class, verification/goals, <code>/learn</code>, background review, security round, providers, the P0/P1 clean-sweep</li> <li>@OutThisLife — desktop app (projects, memory graph, <code>/journey</code>, multi-terminal, composer refactor wave, pets, verification UX)</li> </ul> <h3>Top community contributors</h3> <ul> <li>@kshitijk4poor — the P0/P1 backlog burn: cron reliability wave, state perf, security (cron credential-exfil), gateway/signal, TUI config — a huge share of the priority closures</li> <li>@benbarclay — relay Phase 5/6, scale-to-zero / drain coordination, dashboard auth/keys, gateway hardening</li> <li>@ethernet8023 — CI/docker (unified jobs, faster builds, timings report)</li> <li>@helix4u — Windows hardening (console flashes, npm shim, gateway restarts)</li> </ul> <h3>All contributors</h3> <p>@0xbyt4, @0xDevNinja, @0xsir0000, @1RB, @595650661, @aaronlab, @abchiaravalle, @adammatski1972, @AetherAgents, @Afnath-max, @agt-user, @ahmadashfq, @AhmetArif0, @AIalliAI, @aieng-abdullah, @ailang323, @ailthrim, @aj-nt, @alelpoan, @alloevil, @amathxbt, @ambition0802, @anderskev, @andressommerhoff, @angelos, @annguyenNous, @Antimatter543, @arminanton, @arthurzhang, @asimons81, @austinpickett, @baolingao, @Bartok9, @basilalshukaili, @BBCrypto-web, @bbopen, @Beandon13, @beardthelion, @benbarclay, @benbenlijie, @binhnt92, @bitcryptic-gw, @Blaryxoff, @bogerman1, @bradhallett, @brett539, @briandevans, @buihongduc132, @bykim0119, @catapreta, @chaithanyak42, @charleneleong-ai, @CharlieKerfoot, @chazmaniandinkle, @chrispersico, @Christopher-Schulze, @chriswesley4, @claudlos, @clovericbot, @cmcejas, @codexGW, @Cossackx, @counterposition, @coygeek, @CRWuTJ, @cyb0rgk1tty, @cyb3rwr3n, @cypctlinux, @cypres0099, @dalenguyen, @Danamove, @DanAsBjorn, @DataAdvisory, @davidgut1982, @DavidMetcalfe, @davidvv, @de1tydev, @denisqq, @devorun, @devsart95, @DhivinX, @DiamondEyesFox, @difujia, @Disaster-Terminator, @djimit, @djstunami, @dodo-reach, @donovan-yohan, @Dr1985, @DrZM007, @Dusk1e, @egilewski, @ehz0ah, @Eji4h, @EloquentBrush0x, @Elshayib, @emozilla, @entropy-0x, @Erosika, @EtherAura, @etherman-os, @ethernet8023, @f-trycua, @fayenix, @fesalfayed, @firefly, @flamiinngo, @flobo3, @francescomucio, @franksong2702, @friendshipisover, @fsaad1984, @fyzanshaik, @GauravPatil2515, @gdeyoung, @georgex8001, @GodsBoy, @graphanov, @Gromykoss, @gustavosmendes, @Gutslabs, @H2KFORGIVEN, @haileymarshall, @hakanpak, @happy5318, @haran2001, @harjothkhara, @heathley, @hehehe0803, @helix4u, @herbalizer404, @HexLab98, @HiddenPuppy, @Hinotoi-agent, @HODLCLONE, @houko, @huangsen365, @huangxudong663-sys, @huangxun375-stack, @HwangJohn, @iaji, @iamlukethedev, @IamSanchoPanza, @IAvecilla, @Icather, @iizotov, @indigokarasu, @infinitycrew39, @ipriyaaanshu, @isair, @islam666, @itenev, @itsflownium, @izumi0uu, @Jaaneek, @JabberELF, @jackjin1997, @jackroofan, @janrenz, @jasnoorgill, @jasonQin6, @jcjc81, @jearnest11, @jeeves-assistant, @Jeffgithub0029, @jeffrobodie-glitch, @JezzaHehn, @jimmyjohansson84, @jmmaloney4, @jnibarger01, @JoaoMarcos44, @jplew, @Junass1, @justemu, @justin-cyhuang, @JustinOhms, @jvradahellys24-art, @Kailigithub, @kaishi00, @kangsoo-bit, @kartik-mem0, @keiravoss94, @kenyonxu, @kernel-t1, @Kewe63, @KeyArgo, @KiruyaMomochi, @kn8-codes, @Kolektori, @konsisumer, @kshitijk4poor, @kyssta-exe, @Kyzcreig, @Lazymonter, @LehaoLin, @LeonSGP43, @lEWFkRAD, @libre-7, @LIC99, @LifeJiggy, @linyubin, @liuhao1024, @lkevincc0, @lkz-de, @loes5050, @londo161, @lubosxyz, @m24927605, @MaheshtheDev, @manus-use, @marco0158, @MarioYounger, @martinramos002-bot, @MattKotsenas, @max-chen, @MaxFreedomPollard, @maxmilian, @maxpetrusenko, @memosr, @Mibayy, @Minksgo, @mintybasil, @mkslzk, @mohamedorigami-jpg, @MorAlekss, @mrparker0980, @ms-alan, @namredips, @nankingjing, @natehale, @necoweb3, @neo-2026, @Nickperillo, @nightq, @nikshepsvn, @nnnet, @nocturnum91, @nodejun, @NousResearch, @nycomar, @OmarB97, @orbisai0security, @oreoluwa, @outsourc-e, @OutThisLife, @p-andhika, @panghuer023, @Paperclip, @peetwan, @pefontana, @petrichor-op, @pinguarmy, @PINKIIILQWQ, @pmos69, @PolyphonyRequiem, @pprism13, @PRATHAMESH75, @professorpalmer, @pyxl-dev, @Que0x, @qWaitCrypto, @r266-tech, @RafaelMiMi, @Railway9784, @randomuser2026x, @rayjun, @rc-int, @rebel0789, @redactdeveloper, @riyas22, @rlaope, @rob-maron, @rodboev, @rodrigoeqnit, @rratmansky, @rrevenanttt, @ruangraung, @Ruzzgar, @ryo-solo, @s010mn, @Sahil-SS9, @SahilRakhaiya05, @SandroHub013, @Sanjays2402, @sasquatch9818, @ScotterMonk, @season179, @sgabel, @sgaofen, @sgtworkman, @shandian64, @shannonsands, @shashwatgokhe, @shawchanshek, @sherman-yang, @SHL0MS, @SidUParis, @SimoKiihamaki, @simpolism, @sjh9714, @skabartem, @skyc1e, @slawt, @soynchux, @spiky02plateau, @spjoes, @sprmn24, @srojk34, @stepanov1975, @steveonjava, @Subway2023, @sweetcornna, @swissly, @Sworntech-dev, @syahidfrd, @synapsesx, @szzhoujiarui-sketch, @talmax1124, @telos-oc, @testingbuddies24, @texhy, @tgmerritt, @theAgenticBuilder, @thestral123, @tkwong, @Tortugasaur, @Tranquil-Flow, @trevorgordon981, @truenorth-lj, @tt-a1i, @tuancookiez-hub, @TutkuEroglu, @tymrtn, @udatny, @UgwujaGeorge, @underthestars-zhy, @uperLu, @uzunkuyruk, @valenteff, @valentt, @vanthinh6886, @Versun, @victor-kyriazakos, @virtuadex, @vKongv, @w31rdm4ch1nZ, @weidzhou, @wgu9, @whoislikemiha, @wnuuee1, @woaini30050, @WuKongAI-CMU, @WuTianyi123, @WXBR, @x7peeps, @x9x9x9x9x9x91, @Xowiek, @xxchan, @xxxigm, @xydigit-zt, @yapsrubricsz0, @yashiels, @yeyitech, @ygd58, @YLChen-007, @yong2bba, @yoniebans, @ypwcharles, @yu-xin-c, @yungchentang, @yusekiotacode, @YuShu, @yyzquwu, @zapabob, @zccyman, @zeapsu, @zmlgit, @znding04, @Zyxxx-xxxyZ</p> <p>Also: Lucas Nicolas.</p> <hr> <p><strong>Full Changelog</strong>: <a href="https://github.com/NousResearch/hermes-agent/compare/v2026.6.19...v2026.7.1">v2026.6.19...v2026.7.1</a></p> </div> <button class="cl-expand-btn ha-headline">▼ EXPAND FULL CHANGELOG</button> <div class="cl-card__footer"> <a href="https://github.com/NousResearch/hermes-agent/releases/tag/v2026.7.1" target="_blank" rel="noopener noreferrer" class="cl-gh-link">↗ GitHub</a> </div> </div> </article><article class="cl-entry" data-version="v2026.6.19" data-name="hermes agent v0.17.0 (v2026.6.19)" data-body="# hermes agent v0.17.0 (v2026.6.19) **release date:** june 19, 2026 **since v0.16.0:** ~1,475 commits · ~800 merged prs · 1,693 files changed · 235,390 insertions · 50,730 deletions · 300+ issues closed · 245 community contributors > **the reach release.** v0.16.0 put hermes on your desktop. v0.17.0 is about how far that reach extends — across new places to talk to it, deeper into the tools you already use, and out to the people running hermes for a team. hermes reached two new channels (imessage via photon, and the raft agent network), the desktop app gained substantial new capability, subagents can now run in the background, image generation learned to edit, and cursor's composer model is reachable through an xai grok subscription. the dashboard got a full profile builder and secure lo" data-prerelease="false" data-breaking="false" data-index="26"> <div class="cl-dot"> <span class="cl-dot__icon">●</span> </div> <div class="cl-header"> <span class="ha-headline cl-header__version">v2026.6.19</span> <span class="ha-headline cl-header__date">Jun 19, 2026</span> </div> <div class="cl-card"> <h3 class="ha-headline cl-card__title">v0.17.0 (v2026.6.19)</h3> <div class="changelog-body cl-card__body cl-collapsed"><h1>Hermes Agent v0.17.0 (v2026.6.19)</h1> <p><strong>Release Date:</strong> June 19, 2026 <strong>Since v0.16.0:</strong> ~1,475 commits · ~800 merged PRs · 1,693 files changed · 235,390 insertions · 50,730 deletions · 300+ issues closed · 245 community contributors</p> <blockquote> <p><strong>The Reach Release.</strong> v0.16.0 put Hermes on your desktop. v0.17.0 is about how far that reach extends — across new places to talk to it, deeper into the tools you already use, and out to the people running Hermes for a team. Hermes reached two new channels (iMessage via Photon, and the Raft agent network), the desktop app gained substantial new capability, subagents can now run in the background, image generation learned to edit, and Cursor's Composer model is reachable through an xAI Grok subscription. The dashboard got a full profile builder and secure login, the Skills Hub browser was rehauled, the <code>memory</code> tool got a major upgrade, and the curator stopped spending aux-model budget on every routine run. 300+ issues closed ride along, plus a security round.</p> </blockquote> <h2>✨ Highlights</h2> <ul> <li><p><strong>Hermes reaches iMessage — Photon Spectrum, no Mac relay required</strong> — There's now an iMessage platform plugin built on Photon's managed line pool. Run <code>hermes photon login</code>, authenticate with a device code, and Hermes can send and receive iMessage — no Mac sitting in a closet running a relay, no BlueBubbles bridge to babysit. It's positioned as the successor to BlueBubbles: free to start, nothing to self-host. If your friends and family live in the blue bubbles, Hermes lives there now too. (<a href="https://github.com/NousResearch/hermes-agent/pull/32348" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#32348</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/42582" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#42582</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/44713" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#44713</a> — @teknium1)</p> </li> <li><p><strong>Raft — Hermes joins the Raft agent network as a gateway channel</strong> — A new bundled Raft platform adapter lets Hermes connect to <a href="https://raft.build">Raft</a> as an external agent through a wake-channel bridge. Set <code>RAFT_PROFILE</code>, run the bridge, and Raft can wake Hermes to handle messages — with a privacy-by-contract design where wake payloads carry only metadata (event IDs, timestamps), never message bodies. Another surface where Hermes can show up and do work. (<a href="https://github.com/NousResearch/hermes-agent/pull/48210" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#48210</a> — @xxchan, @teknium1)</p> </li> <li><p><strong>A substantially more capable desktop app</strong> — v0.16.0 shipped the desktop app; v0.17.0 deepened it across dozens of PRs. Rebindable keyboard shortcuts, native OS notifications with per-type toggles, live subagent <strong>watch-windows</strong> that stream a delegated agent's activity into its own pane, a composer model selector with per-model presets, automatic RTL/bidi text direction, a resizable VS Code-themed terminal pane, per-thread composer drafts, and the ability to install <strong>any VS Code Marketplace theme</strong> directly into the app. The desktop is now a serious daily driver, not a preview. (<a href="https://github.com/NousResearch/hermes-agent/pull/45866" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#45866</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/40660" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#40660</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/47060" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#47060</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/46959" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#46959</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/43292" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#43292</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/44596" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#44596</a> — @OutThisLife, @teknium1)</p> </li> <li><p><strong>Background / async subagents — delegate work and keep going</strong> — <code>delegate_task(background=true)</code> now dispatches a subagent that runs in the background and returns a handle immediately. You and the model keep working while it churns, and the full result re-enters the conversation as a new turn the moment it finishes. Kick off a long research dive or a multi-step build, then carry on with something else instead of sitting blocked waiting on it. (<a href="https://github.com/NousResearch/hermes-agent/pull/40946" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#40946</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/46968" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#46968</a> — @teknium1)</p> </li> <li><p><strong>Edit images, not just generate them — image-to-image in <code>image_generate</code></strong> — <code>image_generate</code> can now edit and transform a source image, not only create one from scratch. Pass an existing image and a prompt and it routes to the backend's edit endpoint (same tool, same pattern as <code>video_generate</code>), across every supported image provider. "Make this logo blue," "remove the background," "turn this sketch into a render" — all from the tool you already use. (<a href="https://github.com/NousResearch/hermes-agent/pull/48705" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#48705</a> — @teknium1)</p> </li> <li><p><strong>Automation Blueprints — schedule things without learning cron</strong> — Pick an automation by name and Hermes asks you for what it needs — no cron syntax, no <code>slot=value</code> typing. One blueprint definition renders natively on every surface: a form in the dashboard, a slash command in the CLI/TUI/messenger, a conversation with the agent, an entry in the docs catalog. "Daily news briefing at 8am" becomes a thing you set up by answering questions, not by memorizing <code>0 8 * * *</code>. (<a href="https://github.com/NousResearch/hermes-agent/pull/41309" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#41309</a> — @teknium1)</p> </li> <li><p><strong>Cursor's Composer model, through your xAI Grok subscription</strong> — <code>grok-composer-2.5-fast</code> is now in the xAI OAuth model picker, with its context window reconciled to the full 200k. Composer is the fast coding model behind Cursor — and if you have an xAI Grok subscription, you can now point Hermes at it directly over OAuth, no separate API key. Your Grok plan, Hermes's agent loop, Composer's coding speed. (<a href="https://github.com/NousResearch/hermes-agent/pull/47908" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#47908</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/47371" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#47371</a> — @teknium1)</p> </li> <li><p><strong>Full profile builder in the dashboard</strong> — Build a complete Hermes profile from the browser — pick its model, choose its skills, attach its MCP servers — without hand-editing <code>config.yaml</code>. The dashboard also unified multi-profile management into one machine-wide view with a global profile switcher, so you manage every profile from a single place. (<a href="https://github.com/NousResearch/hermes-agent/pull/39084" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#39084</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/44007" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#44007</a> — @teknium1)</p> </li> <li><p><strong>Skills Hub browser rehaul</strong> — The dashboard's Skills Hub got a ground-up rework: connected hubs, a Featured section, full skill previews before you install, and a security scan on each skill. Browsing and installing skills from the trusted taps (OpenAI, Anthropic, HuggingFace, NVIDIA) is now a real browsing experience, not a flat list. (<a href="https://github.com/NousResearch/hermes-agent/pull/40384" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#40384</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/43398" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#43398</a> — @teknium1)</p> </li> <li><p><strong>The <code>memory</code> tool got a major upgrade — atomic batch operations</strong> — The <code>memory</code> tool gained an <code>operations</code> array that applies a batch of add/replace/remove edits <strong>atomically against the final character budget</strong>. The model can free up space and add new entries in a single call — even when an add alone would overflow the budget — collapsing what used to be a fragile multi-turn dance into one reliable operation. Memory updates are now faster and far less likely to fail mid-edit. (<a href="https://github.com/NousResearch/hermes-agent/pull/48507" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#48507</a> — @teknium1)</p> </li> <li><p><strong>Secure dashboard login</strong> — The dashboard's authentication was hardened: every token-required endpoint now correctly returns 401 behind the OAuth gate, websocket auth uses the served dashboard token, and a warning fires when a <code>public_url</code> override is silently rejected. Exposing your dashboard to the network is safer by default. (<a href="https://github.com/NousResearch/hermes-agent/pull/42578" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#42578</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/43214" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#43214</a> — @benbarclay, @teknium1)</p> </li> <li><p><strong>Official WhatsApp Business Cloud API adapter</strong> — Alongside the existing Baileys bridge, Hermes now speaks the <strong>official</strong> WhatsApp Business Cloud API — Meta's first-party, hosted, no-bridge-process path. Point it at your Business API credentials and Hermes talks WhatsApp through the supported channel, with no QR-scanning bridge process to keep alive. (<a href="https://github.com/NousResearch/hermes-agent/pull/44331" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#44331</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/43921" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#43921</a> — @jquesnelle, @teknium1)</p> </li> <li><p><strong>Rich text for Telegram — Bot API 10.1 rich messages</strong> — Telegram replies now render as proper rich messages via Bot API 10.1: better formatting, cleaner long-message handling, native markup instead of flattened text. It's on by default with an opt-out, so your Telegram conversations look the way they should without any configuration. (<a href="https://github.com/NousResearch/hermes-agent/pull/44829" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#44829</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/45584" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#45584</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/45953" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#45953</a> — @teknium1)</p> </li> <li><p><strong>Curator cost optimization — no aux-model spend on routine runs</strong> — The skill curator now prunes stale skills by default but no longer runs its LLM-powered consolidation pass unless you opt in (<code>curator.consolidate: true</code> or <code>hermes curator run --consolidate</code>). The deterministic inactivity sweep keeps running for free; the opinionated, aux-model-spending "build umbrella skills" fork is now off by default. Routine background curation costs you <strong>zero tokens</strong>. (<a href="https://github.com/NousResearch/hermes-agent/pull/47840" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#47840</a> — @teknium1)</p> </li> </ul> <h2>🖥️ Hermes Desktop App</h2> <h3>New surfaces & UX</h3> <ul> <li>Rebindable keyboard shortcuts panel; native OS notifications with per-type toggles; curated turn-completion cue + dismissable error banners (<a href="https://github.com/NousResearch/hermes-agent/pull/40660" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#40660</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/45866" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#45866</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/42480" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#42480</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/47985" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#47985</a> — @OutThisLife, @teknium1)</li> <li>Live subagent <strong>watch-windows</strong> — stream a delegated agent's activity into its own pane; composer status stack + editable prompts; open any chat in its own window; new-session-in-compact-window hotkey (<a href="https://github.com/NousResearch/hermes-agent/pull/47060" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#47060</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/44630" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#44630</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/43219" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#43219</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/46951" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#46951</a> — @OutThisLife, @teknium1)</li> <li>Composer model selector + per-model presets + external-provider disconnect; surface every provider/model from <code>hermes model</code> in the GUI; unify provider list to one source; warn when a main-model switch leaves auxiliary tasks pinned elsewhere (<a href="https://github.com/NousResearch/hermes-agent/pull/46959" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#46959</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/40563" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#40563</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/49080" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#49080</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/40286" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#40286</a> — @teknium1, @OutThisLife)</li> <li>Install <strong>any VS Code Marketplace theme</strong>; assignable themes per profile; window translucency slider; unified overlay design system + BrandMark + onboarding redesign (<a href="https://github.com/NousResearch/hermes-agent/pull/43292" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#43292</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/42286" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#42286</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/45086" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#45086</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/40708" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#40708</a> — @teknium1, @OutThisLife)</li> <li>Resizable VS Code-themed terminal pane + palette polish; auto-detect RTL/bidi text direction in chat; Mac-style session switcher (^Tab / ^1-9); worktree-aware sidebar grouping; hover-reveal collapsed sidebars; messaging source folders in sidebar (<a href="https://github.com/NousResearch/hermes-agent/pull/42521" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#42521</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/44596" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#44596</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/43111" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#43111</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/45273" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#45273</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/41670" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#41670</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/41751" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#41751</a> — @OutThisLife)</li> <li>Arrow-key history + queue editing in composer; expand full command inline from the approval bar; follow-streaming-at-bottom + jump-to-bottom button; first-class cron jobs in the sidebar + dashboard scheduler (<a href="https://github.com/NousResearch/hermes-agent/pull/40234" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#40234</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/44864" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#44864</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/45263" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#45263</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/40684" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#40684</a> — @OutThisLife, @teknium1)</li> <li>Desktop pets — pop-out overlay + notifications (<a href="https://github.com/NousResearch/hermes-agent/pull/47938" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#47938</a> — @teknium1)</li> <li>Full tool-backend config (pickers + per-backend settings) in Settings; run tool-backend post-setup installs from the GUI; uninstall the Chat GUI without removing the agent; Shift+click status-bar zap to toggle YOLO globally; <code>/browser connect</code> on a local gateway (<a href="https://github.com/NousResearch/hermes-agent/pull/41232" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#41232</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/40559" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#40559</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/40355" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#40355</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/41666" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#41666</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/47245" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#47245</a> — @teknium1, @OutThisLife)</li> <li>Japanese + Traditional Chinese language switching (<a href="https://github.com/NousResearch/hermes-agent/pull/40114" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#40114</a>)</li> <li>"Restart gateway" action (renamed from "Restart messaging") surfaced in the statusbar + on messaging save/toggle toasts; rendered logs are selectable/copyable (<a href="https://github.com/NousResearch/hermes-agent/pull/49094" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#49094</a> — @OutThisLife)</li> </ul> <h3>Remote-gateway & multi-profile</h3> <ul> <li><strong>Remote media relay</strong> — attach images/PDFs and display agent-written images over the network for the first time; remote-gateway file attachments via <code>file.attach</code> (<a href="https://github.com/NousResearch/hermes-agent/pull/41336" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#41336</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/42634" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#42634</a> — @teknium1)</li> <li>Client + backend version buttons + remote-backend update flow; browse remote backend files; route global-remote profile REST calls; recover chat after sleep/wake by revalidating a stale remote backend (<a href="https://github.com/NousResearch/hermes-agent/pull/42181" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#42181</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/44326" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#44326</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/47011" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#47011</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/41350" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#41350</a> — @OutThisLife, @teknium1)</li> <li>Multi-profile fallout cleanup — WS auth + cross-profile session reads; release profile backends before delete; scope session list/model switch/timer per session (<a href="https://github.com/NousResearch/hermes-agent/pull/44529" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#44529</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/42613" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#42613</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/41103" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#41103</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/41120" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#41120</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/41182" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#41182</a> — @OutThisLife, @teknium1)</li> <li>Stream subagent activity into watch windows; keep streaming painting in unfocused secondary chat windows; recover stranded session windows (<a href="https://github.com/NousResearch/hermes-agent/pull/47060" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#47060</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/47919" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#47919</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/47655" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#47655</a> — @OutThisLife)</li> </ul> <h2>📊 Web Dashboard</h2> <ul> <li>Full-featured profile builder (model + skills + MCPs); unify multi-profile management — one machine dashboard + global profile switcher; profile-scoped skills & toolsets; session switcher panel on the Chat tab (<a href="https://github.com/NousResearch/hermes-agent/pull/39084" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#39084</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/44007" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#44007</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/43808" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#43808</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/49077" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#49077</a> — @teknium1)</li> <li>Skills hub browser rehaul — connected hubs, featured, preview + security scan; SKILL.md editor on Skills page + attach-skill selector in cron modals; full per-MCP catalog detail; full tool-backend config in the GUI (<a href="https://github.com/NousResearch/hermes-agent/pull/40384" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#40384</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/44231" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#44231</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/48520" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#48520</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/40418" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#40418</a> — @teknium1)</li> <li>Enable webhooks from the Webhooks page; idempotent <code>hermes dashboard register</code>; auto-restart gateway after Telegram QR onboarding; file browser; change UI font from the theme picker; reasoning-effort picker in the chat sidebar (<a href="https://github.com/NousResearch/hermes-agent/pull/44021" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#44021</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/42455" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#42455</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/43424" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#43424</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/43512" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#43512</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/41145" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#41145</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/49141" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#49141</a> — @teknium1)</li> </ul> <h2>🏗️ Core Agent & Architecture</h2> <h3>God-file refactor wave (run_agent.py / cli.py / gateway/run.py)</h3> <ul> <li><strong><code>cli.py</code> main() 3297 → 954 lines</strong> — extracted 28 subcommand parsers into <code>hermes_cli/subcommands/</code>, then promoted 9 closure handlers; 32 slash-command handlers → <code>CLICommandsMixin</code>; 18 model-flow wizard functions → <code>model_setup_flows</code>; agent-construction cluster → <code>CLIAgentSetupMixin</code> (<a href="https://github.com/NousResearch/hermes-agent/pull/41798" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#41798</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/41835" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#41835</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/41942" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#41942</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/42174" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#42174</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/42153" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#42153</a> — @teknium1)</li> <li><strong><code>gateway/run.py</code> 19157 → 15870 lines</strong> — 42 slash-command handlers → <code>GatewaySlashCommandsMixin</code>; authorization cluster → <code>GatewayAuthorizationMixin</code>; kanban watcher loops → <code>GatewayKanbanWatchersMixin</code> (<a href="https://github.com/NousResearch/hermes-agent/pull/41886" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#41886</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/42159" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#42159</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/41849" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#41849</a> — @teknium1)</li> <li><strong><code>run_agent.py</code> turn loop</strong> — extracted prologue into <code>TurnContext</code>, post-loop tail into <code>finalize_turn</code>, consolidated inner-retry-loop recovery flags into <code>TurnRetryState</code> (<a href="https://github.com/NousResearch/hermes-agent/pull/41778" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#41778</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/42169" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#42169</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/41828" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#41828</a> — @teknium1)</li> </ul> <h3>Agent loop, prompt & tools</h3> <ul> <li><strong><code>memory</code> batch operations</strong> — atomic add/replace/remove array against the final char budget, so a single call can free space and add entries (<a href="https://github.com/NousResearch/hermes-agent/pull/48507" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#48507</a> — @teknium1)</li> <li><strong><code>search_files</code> lossless densification</strong> — headroom evaluation report + the one densification improvement worth shipping (fewer tokens per result, same matches) (<a href="https://github.com/NousResearch/hermes-agent/pull/47866" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#47866</a> — @teknium1)</li> <li>Removed the agent-callable <code>send_message</code> tool; coding-context posture across CLI/TUI/desktop/ACP; <code>read_file</code> extracts <code>.ipynb</code>/<code>.docx</code>/<code>.xlsx</code> to text (<a href="https://github.com/NousResearch/hermes-agent/pull/47856" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#47856</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/43316" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#43316</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/37082" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#37082</a> — @teknium1)</li> <li>Context-file handling: configurable truncation limit + warnings; scale context-file cap to model window + point agent at the truncated file (<a href="https://github.com/NousResearch/hermes-agent/pull/47251" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#47251</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/47846" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#47846</a> — @teknium1)</li> <li>Compression: temporal anchoring in compaction summaries; raise compaction trigger to 85% for gpt-5.5 on Codex OAuth (<a href="https://github.com/NousResearch/hermes-agent/pull/41102" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#41102</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/40957" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#40957</a> — @teknium1)</li> <li>Adaptive middleware (consumed by NeMo-Relay observer telemetry); usable mid-turn steer — desktop affordance + trusted injection (<a href="https://github.com/NousResearch/hermes-agent/pull/29724" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#29724</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/40240" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#40240</a> — @teknium1)</li> </ul> <h3>Provider & model support</h3> <ul> <li>New models: <code>z-ai/glm-5.2</code> (verified 1M context, OpenRouter + Nous), <code>anthropic/claude-fable-5</code>, <code>laguna-m.1</code> + <code>nemotron-3-ultra</code>, xAI Composer 2.5 in the OAuth picker; default xAI to <code>grok-build-0.1</code> (<a href="https://github.com/NousResearch/hermes-agent/pull/47391" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#47391</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/45695" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#45695</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/42979" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#42979</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/42629" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#42629</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/47908" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#47908</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/47371" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#47371</a> — @teknium1)</li> <li>Model picker: Refresh-Models control to bust stale cache; persist Nous recommended-models to disk + fall back on Portal failure; seed catalog disk cache from checkout on update; MiniMax-M3 reports true 1M context (<a href="https://github.com/NousResearch/hermes-agent/pull/48691" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#48691</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/42628" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#42628</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/42614" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#42614</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/43338" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#43338</a> — @teknium1)</li> <li>Anthropic adaptive models: default to modern thinking contract; never send <code>reasoning</code> field; route <code>reasoning_effort</code> to verbosity; require confirmation for very expensive selections (<a href="https://github.com/NousResearch/hermes-agent/pull/42991" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#42991</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/43012" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#43012</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/43436" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#43436</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/43391" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#43391</a> — @teknium1)</li> <li>Auth: auto-detect OpenRouter credential from the pool; keep Codex OAuth pool accounts distinct on add/re-auth; resolve xAI OAuth across profiles + write rotated tokens back to root; honor <code>model.default_headers</code> for custom OpenAI-compatible providers (<a href="https://github.com/NousResearch/hermes-agent/pull/42263" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#42263</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/42316" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#42316</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/46614" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#46614</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/41096" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#41096</a> — @teknium1)</li> <li>Bedrock falls back to non-streaming <code>InvokeModel</code> when IAM denies the streaming variant; Ollama default <code>max_tokens=65536</code>; surface model refusals as <code>content_filter</code> (<a href="https://github.com/NousResearch/hermes-agent/pull/44293" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#44293</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/41694" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#41694</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/46013" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#46013</a> — @teknium1)</li> </ul> <h3>Sessions, state & multi-agent</h3> <ul> <li>Optional <strong>max session cap</strong>; drop empty sessions on CLI exit and rotation; ACP session-provenance metadata for compression rotation (<a href="https://github.com/NousResearch/hermes-agent/pull/42389" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#42389</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/43855" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#43855</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/41724" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#41724</a> — @teknium1)</li> <li>Delegation: resolve custom-endpoint subagent pools by endpoint identity; remove the default subagent wall-clock timeout; stop subagent completion lines leaking into parent CLI display (<a href="https://github.com/NousResearch/hermes-agent/pull/41730" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#41730</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/45149" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#45149</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/44223" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#44223</a> — @teknium1)</li> <li>Kanban: config-gated auto-subscribe on <code>kanban_create</code>; machine-global singleton lock for the embedded dispatcher; pin assigned profile toolsets for workers; hold reclaim while worker still alive (<a href="https://github.com/NousResearch/hermes-agent/pull/48635" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#48635</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/49068" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#49068</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/45590" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#45590</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/49064" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#49064</a> — @teknium1)</li> <li>Memory: configurable Hindsight retain observation scopes; OpenViking setup UX; Honcho gateway-gated identity tree; Supermemory session-level ingest (<a href="https://github.com/NousResearch/hermes-agent/pull/46611" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#46611</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/48262" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#48262</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/44431" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#44431</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/38756" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#38756</a> — @teknium1, @alt-glitch)</li> </ul> <h2>📱 Messaging Platforms (Gateway)</h2> <h3>New channels</h3> <ul> <li><strong>iMessage via Photon Spectrum</strong> — <code>hermes photon login</code> (device-code OAuth), gRPC-native channel (no webhook), markdown rendering, emoji reactions, outbound media via spectrum-ts (<a href="https://github.com/NousResearch/hermes-agent/pull/32348" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#32348</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/42582" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#42582</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/44713" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#44713</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/42397" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#42397</a> — @teknium1)</li> <li><strong>WhatsApp Business Cloud API</strong> adapter (official, no bridge process) (<a href="https://github.com/NousResearch/hermes-agent/pull/44331" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#44331</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/43921" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#43921</a> — @jquesnelle, @teknium1)</li> <li><strong>SimpleX</strong> — groups, native attachments, text batching, auto-accept; <strong>Raft</strong> bundled platform plugin with activity hooks (<a href="https://github.com/NousResearch/hermes-agent/pull/42584" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#42584</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/48210" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#48210</a> — @teknium1)</li> </ul> <h3>Gateway core & rendering</h3> <ul> <li>Render terminal tool calls as native bash code blocks on markdown platforms; bare fenced code blocks in chat; optional message timestamps for LLM context; configurable <code>tool_progress_grouping</code> (<a href="https://github.com/NousResearch/hermes-agent/pull/41215" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#41215</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/42576" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#42576</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/47253" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#47253</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/47228" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#47228</a> — @teknium1)</li> <li>Telegram: Bot API 10.1 rich messages (now always-on with opt-out); opt-in Online/Offline bot status indicator; stop cutting long streamed responses; MarkdownV2 on progress edits; gate oversized voice/audio before download (<a href="https://github.com/NousResearch/hermes-agent/pull/44829" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#44829</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/45584" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#45584</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/49134" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#49134</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/43761" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#43761</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/44245" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#44245</a> — @teknium1)</li> <li>Discord: propagate <code>role_authorized</code> so <code>DISCORD_ALLOWED_ROLES</code> works end-to-end; recover from runtime gateway task exits; cancel <code>_bot_task</code> on connect failure; stop typing after replies (<a href="https://github.com/NousResearch/hermes-agent/pull/43327" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#43327</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/44383" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#44383</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/44432" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#44432</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/44836" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#44836</a> — @teknium1)</li> <li>Slack: scope top-level channel messages when <code>reply_in_thread=false</code>; thread approval UX (block-size overflow + typed-prefix); make video attachments available to agents; <code>register_slack_action_handler</code> plugin API (<a href="https://github.com/NousResearch/hermes-agent/pull/41703" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#41703</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/43444" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#43444</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/45512" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#45512</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/44664" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#44664</a> — @teknium1)</li> <li>Replied-to media attachments included; document attachments classified as DOCUMENT on Signal/Email/SimpleX/Teams; WhatsApp restarts stale bridge processes; Matrix room-context isolation; QQbot CPU-spin fix; Weixin rate-limit circuit breaker (<a href="https://github.com/NousResearch/hermes-agent/pull/46107" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#46107</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/44695" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#44695</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/44205" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#44205</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/18505" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#18505</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/40574" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#40574</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/41718" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#41718</a> — @teknium1, @banditburai)</li> </ul> <h2>🖥️ CLI, TUI & Setup</h2> <ul> <li><code>/version</code> slash command; <code>/billing</code> interactive terminal billing (TUI + CLI); show time since last final agent response on the status bar; persist resolved approval/clarify prompts in scrollback (<a href="https://github.com/NousResearch/hermes-agent/pull/40214" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#40214</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/45449" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#45449</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/44265" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#44265</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/44702" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#44702</a> — @teknium1)</li> <li>Lock hermes worktrees so concurrent processes can't clobber them; display custom profile alias names in list/show; clone profiles from any source (<a href="https://github.com/NousResearch/hermes-agent/pull/48699" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#48699</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/40371" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#40371</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/45630" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#45630</a> — @teknium1)</li> <li>Opt-in structured profile-build path on first contact; configurable per-platform system-prompt hints; configurable background memory/skill notifications (<a href="https://github.com/NousResearch/hermes-agent/pull/41114" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#41114</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/48630" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#48630</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/47226" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#47226</a> — @teknium1)</li> <li>TUI: interactive Plugins Hub enable/disable overlay; session name in the terminal titlebar; paint approval/clarify/sudo/secret modals directly (not via throttle); wrap long approval commands instead of truncating (<a href="https://github.com/NousResearch/hermes-agent/pull/42965" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#42965</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/43188" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#43188</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/41155" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#41155</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/44691" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#44691</a> — @teknium1)</li> <li>TTS: Gemini persona prompts + audio tags; xAI auto speech tags + speed/streaming knobs; Piper speaker_id; OGG for Telegram auto-TTS (<a href="https://github.com/NousResearch/hermes-agent/pull/43442" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#43442</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/49061" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#49061</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/49062" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#49062</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/49060" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#49060</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/41644" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#41644</a> — @teknium1)</li> </ul> <h2>🔧 Tool System, Skills & MCP</h2> <ul> <li><strong>image-to-image / editing</strong> in <code>image_generate</code> across all backends; shrink images to provider dimension limit (<a href="https://github.com/NousResearch/hermes-agent/pull/48705" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#48705</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/45979" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#45979</a> — @teknium1)</li> <li>MCP: official <strong>Unreal Engine 5.8</strong> MCP server in the catalog; <strong>elicitation handler</strong> so MCP servers can prompt for mid-tool-call confirmation (payment/OAuth) on whichever surface owns the session — CLI/TUI/Telegram/Slack; expose late-connecting MCP tools to the agent between turns (cache-safe); keepalive ping for short-TTL HTTP sessions; block exfil-shaped / suspicious stdio configs before probe; capability-gate <code>tools/list</code> so prompt-only servers connect; preserve stdio argv passthrough + Windows env vars (<a href="https://github.com/NousResearch/hermes-agent/pull/48397" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#48397</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/49203" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#49203</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/49208" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#49208</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/49221" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#49221</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/46083" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#46083</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/44550" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#44550</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/44324" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#44324</a> — @teknium1, @lgalabru)</li> <li>Skills: <code>simplify-code</code> skill (parallel 3-agent code review & cleanup) + risk-tiered application with Chesterton's Fence; find & diff user-modified bundled skills; optional <strong>payments</strong> skills (Stripe Link, MPP, Projects); CLI-based shop skill; live per-source browse progress (<a href="https://github.com/NousResearch/hermes-agent/pull/41691" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#41691</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/49070" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#49070</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/48286" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#48286</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/31343" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#31343</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/47309" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#47309</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/43398" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#43398</a> — @teknium1, @colinwren-stripe)</li> <li>Curator: make skill consolidation opt-in (prune stays default-on) (<a href="https://github.com/NousResearch/hermes-agent/pull/47840" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#47840</a> — @teknium1)</li> <li>Plugins: install from a subdirectory within a repo; accept browser-pasted GitHub URLs in <code>hermes plugins install</code>; <code>session:compress</code> lifecycle event + <code>thread_id</code>/<code>chat_type</code> in agent:start/end context (<a href="https://github.com/NousResearch/hermes-agent/pull/42963" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#42963</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/33539" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#33539</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/47252" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#47252</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/41672" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#41672</a> — @teknium1)</li> <li>Memory/skill <strong>write approval</strong> gate (default off) — boolean <code>write_approval</code> replaces the tri-state <code>write_mode</code> (<a href="https://github.com/NousResearch/hermes-agent/pull/38199" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#38199</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/43354" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#43354</a> — @teknium1)</li> </ul> <h2>🌐 Fleet, Relay & Automation</h2> <ul> <li><strong>Managed scope</strong> — administrator-pinned, user-immutable config & secrets from a root-owned <code>/etc/hermes</code> (<a href="https://github.com/NousResearch/hermes-agent/pull/49098" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#49098</a> — @teknium1)</li> <li><strong>Multiplex all profiles over one gateway process</strong> (opt-in) (<a href="https://github.com/NousResearch/hermes-agent/pull/48273" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#48273</a> — @benbarclay)</li> <li><strong>Pluggable CronScheduler</strong> + Chronos managed-cron provider (scale-to-zero) (<a href="https://github.com/NousResearch/hermes-agent/pull/48275" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#48275</a> — @benbarclay)</li> <li><strong>Automation Blueprints</strong> — parameterized automation templates across every surface (<a href="https://github.com/NousResearch/hermes-agent/pull/41309" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#41309</a> — @teknium1)</li> <li>Gateway-Gateway relay (phases 0-3): relay adapter + capability descriptor, connector⇄gateway channel auth + signed-HTTP inbound + enroll CLI, WS-only inbound, managed-boot self-provision client (<a href="https://github.com/NousResearch/hermes-agent/pull/48078" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#48078</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/48147" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#48147</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/48294" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#48294</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/48242" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#48242</a> — @teknium1)</li> </ul> <h2>🐳 Docker, Nix & Installer</h2> <ul> <li>s6: detect supervisor directly for gateway restart; register profile gateways without auto-starting; persist desired state; clear stale log locks (<a href="https://github.com/NousResearch/hermes-agent/pull/46290" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#46290</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/46266" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#46266</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/46292" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#46292</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/46289" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#46289</a> — @teknium1)</li> <li><span class="cl-badge cl-badge-ci">CI</span>Docker: optimize image size (.dockerignore, drop dev deps, split layers); pre-install matrix deps; supervised gateway uses <code>--replace</code>; harden hosted install tree against self-modification (<a href="https://github.com/NousResearch/hermes-agent/pull/38749" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#38749</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/42413" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#42413</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/47555" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#47555</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/47490" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#47490</a> — @teknium1)</li> <li>Nix: cold npm build fixes + auto-fix-lockfiles workflow; hashless npm deps via <code>importNpmLock</code>; refresh npmDepsHash after Electron 40.10.2 pin (<a href="https://github.com/NousResearch/hermes-agent/pull/41867" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#41867</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/48883" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#48883</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/48457" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#48457</a> — @teknium1)</li> <li>Installer: clear unmerged git index before autostash; scope install-method stamp to the code tree (<a href="https://github.com/NousResearch/hermes-agent/pull/45515" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#45515</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/48188" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#48188</a> — @teknium1)</li> </ul> <h2>🔒 Security & Reliability</h2> <ul> <li>Fail closed on own-policy gateway adapters; fail closed for approval-button auth on Slack/Feishu/Discord when no allowlist is set (<a href="https://github.com/NousResearch/hermes-agent/pull/45634" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#45634</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/41226" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#41226</a> — @teknium1)</li> <li>Redact secrets in request debug dumps; withhold host metadata from public status; block exfil-shaped / suspicious MCP stdio configs before probe (<a href="https://github.com/NousResearch/hermes-agent/pull/46637" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#46637</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/45642" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#45642</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/46083" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#46083</a> — @teknium1)</li> <li>Close shell-escape denylist bypass + fail-closed on missing approval module; scrub operator environment before launching cua-driver MCP; sanitize env for cron job-script subprocesses; bound TodoStore content length/count; scan REST cron prompts for parity with the agent tool (<a href="https://github.com/NousResearch/hermes-agent/pull/40591" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#40591</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/48423" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#48423</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/49207" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#49207</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/41648" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#41648</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/41335" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#41335</a> — @teknium1, @kshitijk4poor)</li> <li>Bump urllib3 and PyJWT to clear CVEs; Langfuse redacts base64 data URIs instead of truncating into invalid base64 (<a href="https://github.com/NousResearch/hermes-agent/pull/40179" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#40179</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/43322" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#43322</a> — @teknium1)</li> </ul> <h2>🪟 Windows</h2> <ul> <li>Dashboard <code>/chat</code> tab via ConPTY (<code>win_pty_bridge</code>) + tests; resolve PowerShell host instead of bare <code>powershell</code> for uv install; resolve <code>powershell.exe</code> by absolute path so Desktop install doesn't stall (<a href="https://github.com/NousResearch/hermes-agent/pull/42251" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#42251</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/48341" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#48341</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/40927" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#40927</a> — @teknium1)</li> <li>Repair stale winget registration + refresh/merge PATH; kill hermes before recreating venv to release <code>_bcrypt.pyd</code> lock; read HERMES_HOME from the registry when env is stale; quarantine running <code>hermes.exe</code> during update repair (<a href="https://github.com/NousResearch/hermes-agent/pull/44084" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#44084</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/45120" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#45120</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/46772" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#46772</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/40409" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#40409</a> — @teknium1)</li> <li>JOB-breakaway watcher reliability + status --deep probes; handle Windows PTY stdin + detached WS frames; decode subprocess output as UTF-8; confirm-modal on native Windows (<a href="https://github.com/NousResearch/hermes-agent/pull/40909" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#40909</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/41953" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#41953</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/44328" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#44328</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/42419" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#42419</a> — @teknium1)</li> </ul> <h2>🐛 Notable Bug Fixes</h2> <ul> <li>Percent-encode non-ascii URL components; sanitize <code>:</code> in FTS5 queries so colon searches don't silently return empty (<a href="https://github.com/NousResearch/hermes-agent/pull/41430" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#41430</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/40653" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#40653</a> — @teknium1)</li> <li>Preserve multimodal user content through crash-resilience persist; flatten multimodal content before provider sync; strip MEDIA directives from compressor input (<a href="https://github.com/NousResearch/hermes-agent/pull/47907" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#47907</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/44738" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#44738</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/44708" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#44708</a> — @teknium1)</li> <li>Re-enter retry loop on genuine Nous 429 so the fallback guard runs; scope Nous tags to Nous auxiliary calls; suppress "Credit access paused" notice on free models (<a href="https://github.com/NousResearch/hermes-agent/pull/45136" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#45136</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/45801" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#45801</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/43669" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#43669</a> — @teknium1)</li> <li>Cron: don't strict-scan script-injected output in no-skills jobs; resolve per-job provider "custom" to <code>providers.custom</code> instead of codex; repair cron ownership on container restart (<a href="https://github.com/NousResearch/hermes-agent/pull/43223" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#43223</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/43505" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#43505</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/41976" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#41976</a> — @teknium1)</li> <li><em>(300+ issues closed this window; full per-area fix list is exhaustive — these are the highest-impact.)</em></li> </ul> <h2>↩️ Reverted in this window (not shipping)</h2> <ul> <li><code>html-artifact</code> skill + sketch/architecture-diagram/concept-diagrams fold (<a href="https://github.com/NousResearch/hermes-agent/pull/48899" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#48899</a>) — reverted (<a href="https://github.com/NousResearch/hermes-agent/pull/49053" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#49053</a>); absent on main.</li> <li>Cron per-job profile support reverted (<a href="https://github.com/NousResearch/hermes-agent/pull/43956" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#43956</a>); a nix patchPhase workaround reverted (<a href="https://github.com/NousResearch/hermes-agent/pull/42151" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#42151</a>).</li> </ul> <h2>👥 Contributors</h2> <p>A huge thank-you to everyone who contributed to this release — <strong>245 contributors</strong> across commits, co-author trailers, and salvaged PRs.</p> <h3>Core</h3> <p>@teknium1</p> <h3>Top community contributors (by merged PRs)</h3> <ul> <li>@OutThisLife — 92 PRs (desktop app maturity (shortcuts, notifications, watch-windows, themes))</li> <li>@kshitijk4poor — 60 PRs (onboarding, model picker, cron env sanitization)</li> <li>@xxxigm — 27 PRs (desktop & gateway fixes)</li> <li>@benbarclay — 23 PRs (gateway multiplex, Chronos cron, dashboard auth)</li> <li>@helix4u — 21 PRs (gateway & installer reliability)</li> <li>@austinpickett — 19 PRs (dashboard & desktop UX)</li> <li>@alt-glitch — 14 PRs (usage-aware credits, Supermemory)</li> <li>@ethernet8023 — 14 PRs (desktop build pipeline & Linux/Windows)</li> <li>@liuhao1024 — 5 PRs (session lifecycle fixes)</li> </ul> <h3>All contributors (alphabetical)</h3> <p>@0z1-ghb, @0xdany, @0xneobyte, @0xyg3n, @1960697431, @895252509, @achaljhawar, @Adolanium, @AhmetArif0, @AIalliAI, @aimable100, @AJ, @ak2k, @alarcritty, @AlchemistChaos, @aldoeliacim, @alelpoan, @AlexanderBFoley, @alfred-smith-0, @ali-nld, @alt-glitch, @am423, @ameobius, @AMIK-coorporations, @annguyenNous, @ArcanePivot, @ARegalado1, @asdlem, @ashishpatel26, @austinpickett, @banditburai, @barronlroth, @Bartok9, @basilalshukaili, @bbednarski9, @bcsmith528, @benbarclay, @benegessarit, @benfrank241, @bionicbutterfly13, @BlackishGreen33, @blut-agent, @bmoore210, @bpasquini, @briandevans, @BROCCOLO1D, @capt-marbles, @ccook1963, @Cdddo, @channkim, @ChasLui, @chimpera, @chromalinx, @CiarasClaws, @claytonchew, @cnfi, @colinwren-stripe, @cresslank, @cyb0rgk1tty, @dangelo352, @davidgut1982, @deaneeth, @definitelynotguru, @Diyoncrz18, @draix, @dschnurbusch, @Dusk1e, @dusterbloom, @ehz0ah, @emozilla, @enesilhaydin, @Erosika, @ethernet8023, @Evisolpxe, @firefly, @flooryyyy, @flyinhigh, @foras910521-lab, @Frowtek, @ft-ioxcs, @fyzanshaik, @Ganesh0690, @gauravsaxena1997, @giladbau, @glesperance, @GodsBoy, @goku94123, @H-Ali13381, @HaozheZhang6, @haran2001, @harshitAgr, @hbentel, @helix4u, @HeLLGURD, @Hermes, @huangxun375-stack, @iamlukethedev, @ianculling, @IAvecilla, @iborazzi, @infinitycrew39, @islam666, @ITheEqualizer, @itsflownium, @Jaaneek, @james47kjv, @jeeves-assistant, @jeffrobodie-glitch, @JezzaHehn, @jiangkoumo, @jimjsong, @JimLiu, @JimStenstrom, @jmsunseri, @JoaoMarcos44, @joel611, @JoelJJohnson, @joerj123, @johnjacobkenny, @jooray, @joshuadow, @jplew, @justinbao19, @Justlrnal4, @Kailigithub, @kamonspecial, @kdunn926, @Kenmege, @Kewe63, @kmccammon, @konsisumer, @kristianvast, @kshitijk4poor, @kyssta-exe, @l37525778-coder, @LaPhilosophie, @leo4226, @LeonSGP43, @liuhao1024, @Llugaes, @loongfay, @loongzhao, @lsaether, @m4dni5, @manishbyatroy, @MaxFreedomPollard, @maxmilian, @maxtrigify, @mnajafian-nv, @mohamedorigami-jpg, @mollusk, @MrDiamondBallz, @mssteuer, @mvanhorn, @naqerl, @Nea74, @necoweb3, @nepenth, @nicoloboschi, @NormallyGaussian, @OmarB97, @omegazheng, @OndrejDrapalik, @OutThisLife, @oxngon, @OYLFLMH, @Paperclip, @paulb26, @pengyuyanITYU, @PhilipAD, @pinguarmy, @plcunha, @ProgramCaiCai, @psionic73, @qin-ctx, @qingshan89, @Que0x, @qWaitCrypto, @r266-tech, @randomsnowflake, @rbrtbn, @rewbs, @rio-jeong, @Rivuza, @rob-maron, @rodboev, @ruangraung, @RyTsYdUp, @Sahil-SS9, @salesondemandio, @sanidhyasin, @sarvesh1327, @sdyckjq-lab, @shannonsands, @SHL0MS, @simpolism, @sitkarev, @skyc1e, @skylarbpayne, @SNooZyy2, @Spaceman-Spiffy, @srojk34, @sweetcornna, @synapsesx, @Tamaz-sujashvili, @tangtaizong666, @temalo, @tfournet, @thedavidweng, @TheGardenGallery, @tim404x, @tomekpanek, @Tranquil-Flow, @tt-a1i, @tuancookiez-hub, @underthestars-zhy, @Veritas-7, @victor-kyriazakos, @wesleysimplicio, @WolframRavenwolf, @WompaJango, @x1erra, @xiaoxinova, @xtymac, @xushibo, @XVVH, @xxchan, @xxxigm, @xy200303, @y0shua1ee, @yanxue06, @yatesjalex, @YLChen-007, @yoniebans, @youjunxiaji, @yubingz, @zakame, @zapabob, @zccyman, @zimigit2020, @ziwon, @zwcf5200, @zxcasongs.</p> <hr> <p><strong>Full Changelog</strong>: <a href="https://github.com/NousResearch/hermes-agent/compare/v2026.6.5...v2026.6.19">v2026.6.5...v2026.6.19</a></p> </div> <button class="cl-expand-btn ha-headline">▼ EXPAND FULL CHANGELOG</button> <div class="cl-card__footer"> <a href="https://github.com/NousResearch/hermes-agent/releases/tag/v2026.6.19" target="_blank" rel="noopener noreferrer" class="cl-gh-link">↗ GitHub</a> </div> </div> </article><article class="cl-entry" data-version="v2026.6.5" data-name="hermes agent v0.16.0 (2026.6.5) — the surface release" data-body="# hermes agent v0.16.0 (v2026.6.5) **release date:** june 5, 2026 **since v0.15.2:** 874 commits · 542 merged prs · 1,962 files changed · 205,216 insertions · 46,217 deletions · 399 issues closed (2 p0, 62 p1, 16 security-tagged) · 170 community contributors (including co-authors) > **the surface release.** hermes meets you wherever you work. a brand-new native desktop app — built across 100 prs and 159 commits in a single week — gives you hermes as a real macos/linux/windows application: one-click install, in-app self-update, drag-and-drop files into chat, an inline model picker in the status bar, concurrent multi-profile sessions, a full simplified chinese translation, and the ability to connect to a remote hermes gateway over oauth or username/password. alongside it, the web dashboard" data-prerelease="false" data-breaking="false" data-index="27"> <div class="cl-dot"> <span class="cl-dot__icon">●</span> </div> <div class="cl-header"> <span class="ha-headline cl-header__version">v2026.6.5</span> <span class="ha-headline cl-header__date">Jun 6, 2026</span> </div> <div class="cl-card"> <h3 class="ha-headline cl-card__title">v0.16.0 (2026.6.5) — The Surface Release</h3> <div class="changelog-body cl-card__body cl-collapsed"><h1>Hermes Agent v0.16.0 (v2026.6.5)</h1> <p><strong>Release Date:</strong> June 5, 2026 <strong>Since v0.15.2:</strong> 874 commits · 542 merged PRs · 1,962 files changed · 205,216 insertions · 46,217 deletions · 399 issues closed (2 P0, 62 P1, 16 security-tagged) · 170 community contributors (including co-authors)</p> <blockquote> <p><strong>The Surface Release.</strong> Hermes meets you wherever you work. A brand-new native desktop app — built across 100 PRs and 159 commits in a single week — gives you Hermes as a real macOS/Linux/Windows application: one-click install, in-app self-update, drag-and-drop files into chat, an inline model picker in the status bar, concurrent multi-profile sessions, a full Simplified Chinese translation, and the ability to connect to a remote Hermes gateway over OAuth or username/password. Alongside it, the web dashboard grew a full browser-based administration panel (MCP catalog, messaging channels, credentials, webhooks, memory, pluggable OIDC / username-password login), and first-time setup got a "Quick Setup via Nous Portal" path that gets you from install to first message in seconds. The default skill set was trimmed to what you actually need, NVIDIA/skills joined the trusted Skills Hub taps, the model picker is now fuzzy-searchable everywhere (desktop, web, TUI, CLI), and <code>/undo</code> finally lets you take back the last N turns. 2 P0 and 62 P1 closures ride along, plus a security round (CVE-2026-48710 Starlette pin, SSRF off-loop hardening, subprocess credential stripping).</p> </blockquote> <hr> <h2>✨ Highlights</h2> <ul> <li><p><strong>Hermes Desktop — a real native app, not a terminal wrapper</strong> — This is the headline. There's now a <code>apps/desktop/</code> Electron application that installs like any other desktop app on macOS, Linux, and Windows, updates itself in place from inside the app, and gives you a polished GUI for everything Hermes does. You get a proper chat window with streaming, a session list you can archive and search, drag-and-drop files anywhere in the chat area, clipboard image paste, a Cmd+K command palette, and a model picker right in the status bar. If you've been telling friends "it's a CLI agent" and watching their eyes glaze over — now you can just send them an installer. None of this existed a week ago. (<a href="https://github.com/NousResearch/hermes-agent/pull/20059" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#20059</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/35607" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#35607</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/37099" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#37099</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/37379" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#37379</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/38631" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#38631</a> — @OutThisLife, @jquesnelle, @ethernet8023, @austinpickett, @benbarclay)</p> </li> <li><p><strong>Run the desktop app against a remote Hermes — sign in with OAuth or username/password</strong> — The desktop app doesn't have to run Hermes locally. Point it at a remote Hermes gateway (your homelab, a hosted box, a teammate's server) and it connects over a secure WebSocket, authenticating with OAuth or a username/password login — no fiddling with <code>--insecure</code> flags or hand-copied session tokens. Each profile can target its own remote host, and you can run concurrent sessions across multiple profiles in one window with cross-profile <code>@session</code> links. The practical version: your laptop runs a thin GUI, the heavy agent runs wherever your API keys and compute live. (<a href="https://github.com/NousResearch/hermes-agent/pull/37888" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#37888</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/38851" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#38851</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/39330" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#39330</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/39778" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#39778</a> — @benbarclay, @OutThisLife, @teknium1)</p> </li> <li><p><strong>The web dashboard is now a full admin panel — configure everything from the browser</strong> — The dashboard grew from "view your sessions" into a complete administration surface. There's a Channels page that sets up every gateway messaging platform (Telegram, Discord, Slack, etc.) from the browser, an admin panel for the MCP catalog with enable/disable toggles, credential management, webhook and hook creation, memory configuration, gateway controls, and a System page with check-before-update and one-click Debug Share. You no longer have to SSH in and edit <code>config.yaml</code> to wire up a new messaging channel or MCP server — it's all point-and-click now. (<a href="https://github.com/NousResearch/hermes-agent/pull/36704" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#36704</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/36736" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#36736</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/37211" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#37211</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/38205" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#38205</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/38600" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#38600</a> — @teknium1)</p> </li> <li><p><strong>Hermes Desktop speaks Simplified Chinese — full 简体中文 in the chat GUI</strong> — The desktop app now ships a complete Simplified Chinese (简体中文) translation across every UI surface — the chat window itself, sidebar, settings, command center, cron, messaging, profiles, skills, agents, the lot. English stays the default; switch language in Appearance settings and the choice persists to your config (<code>display.language</code>). It's built on a proper typed i18n layer, so adding more languages from here is straightforward. (<a href="https://github.com/NousResearch/hermes-agent/pull/38241" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#38241</a> — @JimLiu)</p> </li> <li><p><strong>Leaner default skill set — Hermes ships only what you actually need</strong> — The bundled skill set got a deliberate trim. Skills that were redundant or dead are gone (<code>spotify</code> — superseded by the native Spotify plugin's 7 tools; <code>linear</code> — superseded by <code>hermes mcp install linear</code>; <code>kanban-codex-lane</code>, <code>debugging-hermes-tui-commands</code>, a stale <code>domain</code> orphan, and several empty category markers). Heavier or niche skills moved from bundled to optional (the Baoyu creative set, <code>dspy</code>, <code>subagent-driven-development</code>, <code>minecraft-modpack-server</code>, <code>pokemon-player</code>, <code>hermes-s6-container-supervision</code>) — still one <code>hermes skills install</code> away, just not loaded by default. And a new <code>environments:</code> relevance gate keeps context-specific skills (kanban, docker/s6) out of the skills index for users who'll never use them, while still loading them on explicit request. The result: a smaller, sharper default skill list, less noise in the picker, and a lighter prompt. The curator can now prune unused <strong>built-in</strong> skills too (not just agent-created ones), with usage tracked for every skill. (<a href="https://github.com/NousResearch/hermes-agent/pull/39028" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#39028</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/36701" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#36701</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/36228" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#36228</a> — @teknium1)</p> </li> <li><p><strong>NVIDIA/skills is now a built-in trusted skills tap</strong> — <code>NVIDIA/skills</code> joins OpenAI, Anthropic, and HuggingFace as a default trusted tap in the Skills Hub — discoverable, browsable, searchable, and auto-updating through the same pipeline. NVIDIA's verified skills for CUDA-X, AIQ, cuOpt and the rest of their product stack are one install away, with real category labels from the repo's <code>skills.sh.json</code> sidecar. (<a href="https://github.com/NousResearch/hermes-agent/pull/34333" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#34333</a> — @teknium1)</p> </li> <li><p><strong>Quick Setup via Nous Portal — from install to first message in seconds</strong> — First-time setup was thinned down to two clear paths: Quick Setup (sign in with Nous Portal, get a model picker, start chatting immediately) or Full Setup (the detailed wizard for power users). <code>hermes portal</code> is now the human-readable alias that runs the full quick-setup Nous flow. The first-run menu explains the difference inline so newcomers aren't guessing. The goal: a brand-new user shouldn't need to read docs to send their first message. (<a href="https://github.com/NousResearch/hermes-agent/pull/35723" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#35723</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/36227" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#36227</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/38449" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#38449</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/38465" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#38465</a> — @teknium1, @kshitijk4poor)</p> </li> <li><p><strong>Fuzzy model picker, everywhere — type a few letters, find your model</strong> — The model picker now does fuzzy search across the desktop app, web dashboard, TUI, and CLI. Type "v4fl" and <code>deepseek-v4-flash</code> surfaces; multi-endpoint providers are grouped under one row instead of cluttering the list with duplicates, and each row carries a description so you know what you're picking. The catalog refreshes hourly instead of daily, so new models show up the same day they launch. New this window: <code>deepseek-v4-flash</code>, <code>MiniMax-M3</code> with 1M context, <code>qwen3.7-plus</code>. (<a href="https://github.com/NousResearch/hermes-agent/pull/36928" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#36928</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/35227" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#35227</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/35756" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#35756</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/35659" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#35659</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/36214" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#36214</a> — @kshitijk4poor, @teknium1)</p> </li> <li><p><strong><code>/undo [N]</code> — take back the last N turns</strong> — Said the wrong thing, or sent the agent down a bad path? <code>/undo</code> backs up N user turns, prefills your last message so you can edit and resend, and soft-deletes the turns in between. It works in the CLI, the TUI, and across messaging platforms (Telegram, Discord, etc.) with full parity. Closes a long-standing request (<a href="https://github.com/NousResearch/hermes-agent/issues/21910" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#21910</a>). (<a href="https://github.com/NousResearch/hermes-agent/pull/36229" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#36229</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/36699" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#36699</a> — @teknium1)</p> </li> <li><p><strong>Choose your default interface — <code>cli</code> or <code>tui</code></strong> — You can now set whether <code>hermes chat</code> drops you into the classic CLI or the Ink TUI by default, with a <code>--cli</code> flag to override per-invocation. The TUI also got a single unified <code>/model</code> command and a Sessions overlay for switching between live sessions. Use the interface you actually like. (<a href="https://github.com/NousResearch/hermes-agent/pull/37782" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#37782</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/37112" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#37112</a> — @OutThisLife)</p> </li> </ul> <hr> <h2>🖥️ Hermes Desktop App (NEW)</h2> <h3>Install & lifecycle</h3> <ul> <li>macOS desktop install + in-app self-update; rebuild-and-relaunch cleanly on macOS (<a href="https://github.com/NousResearch/hermes-agent/pull/35607" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#35607</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/36198" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#36198</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/38296" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#38296</a> — @OutThisLife)</li> <li>macOS installer renamed to "Hermes" and turned into a launcher (<a href="https://github.com/NousResearch/hermes-agent/pull/37516" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#37516</a> — @OutThisLife)</li> <li><span class="cl-badge cl-badge-ci">CI</span>Build desktop in its own <code>desktop</code> stage on macOS/Linux instead of silently skipping; content-hash build stamp, <code>--build-only</code> / <code>--force-build</code> flags (<a href="https://github.com/NousResearch/hermes-agent/pull/36134" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#36134</a> — @OutThisLife, <a href="https://github.com/NousResearch/hermes-agent/pull/37597" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#37597</a> — @ethernet8023)</li> <li>Boot-failure recovery + live API-key validation; cancellable install; recover from corrupt cached Electron download (<a href="https://github.com/NousResearch/hermes-agent/pull/35864" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#35864</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/37379" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#37379</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/39032" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#39032</a> — @OutThisLife, @teknium1)</li> <li>Windows: recover from corrupt Electron cache in bootstrap install; stop racing our own backend during in-app update (<a href="https://github.com/NousResearch/hermes-agent/pull/39465" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#39465</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/39828" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#39828</a> — @teknium1, @OutThisLife)</li> <li>Linux: configure Electron sandbox helper; detect linux arm64 binary; disable GPU acceleration on remote displays to stop flicker (<a href="https://github.com/NousResearch/hermes-agent/pull/37691" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#37691</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/38594" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#38594</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/37932" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#37932</a> — @ethernet8023, @OutThisLife)</li> <li>Require Node ≥20.19/22.12 for the desktop build; zero eslint/typecheck debt + prettier pass (<a href="https://github.com/NousResearch/hermes-agent/pull/38255" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#38255</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/39100" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#39100</a> — @OutThisLife)</li> </ul> <h3>Remote-gateway & multi-profile</h3> <ul> <li>Connect to OAuth-gated remote gateways; username/password login for remote gateways; per-profile remote gateway hosts (<a href="https://github.com/NousResearch/hermes-agent/pull/37888" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#37888</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/38851" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#38851</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/39778" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#39778</a> — @benbarclay, @teknium1, @OutThisLife)</li> <li>Concurrent multi-profile sessions, cross-profile <code>@session</code> links; re-mint OAuth WS ticket on gateway reconnect; gate OAuth remote connect on AT-or-RT (<a href="https://github.com/NousResearch/hermes-agent/pull/39330" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#39330</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/38886" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#38886</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/39464" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#39464</a> — @OutThisLife, @teknium1, @benbarclay)</li> <li>Offer remote sign-in on a gated-gateway boot failure; validate live WebSocket in remote gateway test (<a href="https://github.com/NousResearch/hermes-agent/pull/39402" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#39402</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/39511" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#39511</a> — @teknium1)</li> </ul> <h3>Chat UX & settings</h3> <ul> <li>Drop files anywhere in the chat area; clipboard image paste with dedupe; attachments on Enter, IME composition handling (<a href="https://github.com/NousResearch/hermes-agent/pull/36262" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#36262</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/38306" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#38306</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/38677" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#38677</a> — @OutThisLife, @teknium1)</li> <li>Background needs-input indicator, clarify redesign, Cmd+K palette & UI consistency pass; inline model picker in the status bar; YOLO toggle in the status bar (TUI parity) (<a href="https://github.com/NousResearch/hermes-agent/pull/38631" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#38631</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/37738" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#37738</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/38517" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#38517</a> — @OutThisLife)</li> <li>Session-list overhaul, session hygiene/archive, media streaming + connecting overlay; search sessions by id (SQL-bounded) (<a href="https://github.com/NousResearch/hermes-agent/pull/37379" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#37379</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/37099" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#37099</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/39062" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#39062</a> — @OutThisLife, @teknium1)</li> <li>Dedicated Providers settings + polished Accounts/API-keys UX; consolidate skills + tools management into one pane; move model management into Settings (<a href="https://github.com/NousResearch/hermes-agent/pull/38551" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#38551</a> — @austinpickett, <a href="https://github.com/NousResearch/hermes-agent/pull/37310" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#37310</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/37330" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#37330</a> — @jquesnelle)</li> <li>Render approval/sudo/secret prompts so tools stop silently timing out; surface skill & quick-command slash commands in the palette; first-class xAI Grok OAuth provider in the launcher (<a href="https://github.com/NousResearch/hermes-agent/pull/38578" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#38578</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/38531" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#38531</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/37697" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#37697</a> — @teknium1, @OutThisLife)</li> <li>"Choose provider later" skip on first-run onboarding; onboarding can configure a local/custom endpoint without an API key; custom zoom shortcuts (<a href="https://github.com/NousResearch/hermes-agent/pull/39483" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#39483</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/38572" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#38572</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/37894" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#37894</a> — @teknium1, @ethernet8023)</li> <li>macOS helper microphone entitlement; scroll-jump fixes (native anchoring, at-rest jump, wheel-up snap-back); thinking block stays open mid-streaming (<a href="https://github.com/NousResearch/hermes-agent/pull/37745" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#37745</a> — @xxxigm, <a href="https://github.com/NousResearch/hermes-agent/pull/37866" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#37866</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/38221" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#38221</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/38809" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#38809</a> — @OutThisLife, @teknium1, @stremtec)</li> <li>GUI quality-of-life triage batch; salvaged AhmetArif0 desktop/dashboard fixes; rename session via <code>session.title</code> RPC so <code>/title</code> works (<a href="https://github.com/NousResearch/hermes-agent/pull/37536" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#37536</a> — @austinpickett, <a href="https://github.com/NousResearch/hermes-agent/pull/39070" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#39070</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/39410" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#39410</a> — @teknium1, @benbarclay)</li> <li><code>hermes debug share</code> / <code>/debug</code> / <code>hermes logs</code> now include <code>desktop.log</code> (<a href="https://github.com/NousResearch/hermes-agent/pull/38203" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#38203</a> — @teknium1)</li> <li><strong>Simplified Chinese (简体中文) translation</strong> across every desktop UI surface — typed i18n layer, switch in Appearance settings, persisted via <code>display.language</code> (English remains default) (<a href="https://github.com/NousResearch/hermes-agent/pull/38241" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#38241</a> — @JimLiu)</li> <li>Full multi-profile support over one global-remote dashboard; remote-profile sessions are first-class (resume, read, rename/archive/delete); new chats honor their profile in global-remote mode (<a href="https://github.com/NousResearch/hermes-agent/pull/39921" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#39921</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/39894" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#39894</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/39993" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#39993</a> — @OutThisLife)</li> </ul> <h2>📊 Web Dashboard</h2> <h3>Administration panel (NEW)</h3> <ul> <li>Full administration panel — MCP catalog with enable/disable toggles, pairing, webhooks, credentials, memory, gateway, hook creation, system settings (<a href="https://github.com/NousResearch/hermes-agent/pull/36704" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#36704</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/36736" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#36736</a> — @teknium1)</li> <li>Channels page — set up every gateway messaging channel from the browser (<a href="https://github.com/NousResearch/hermes-agent/pull/37211" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#37211</a> — @teknium1)</li> <li>System page: check-before-update flow + Debug Share (<a href="https://github.com/NousResearch/hermes-agent/pull/38205" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#38205</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/38600" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#38600</a> — @teknium1)</li> <li>nous-blue theme, bulk sessions, schedule picker; enriched profiles dashboard + de-dupe channel env vars; configurable terminal background via theme (<a href="https://github.com/NousResearch/hermes-agent/pull/37383" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#37383</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/37872" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#37872</a> — @austinpickett, <a href="https://github.com/NousResearch/hermes-agent/pull/37156" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#37156</a> — @teknium1)</li> <li>Always enable embedded chat; remove dashboard <code>--tui</code> flag (<a href="https://github.com/NousResearch/hermes-agent/pull/38591" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#38591</a> — @benbarclay)</li> </ul> <h3>Auth</h3> <ul> <li>Pluggable username/password login (Option B); generic self-hosted OIDC provider + multi-provider verify fix; <code>hermes dashboard register</code> for self-hosted OAuth client (<a href="https://github.com/NousResearch/hermes-agent/pull/38819" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#38819</a> — @benbarclay, <a href="https://github.com/NousResearch/hermes-agent/pull/38917" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#38917</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/38802" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#38802</a> — @teknium1)</li> <li>Rotate dashboard sessions via refresh token; share <code>/api/*</code> public allowlist between legacy and OAuth gates; drop <code>/api/*</code> paths from OAuth <code>next=</code> round trip (<a href="https://github.com/NousResearch/hermes-agent/pull/37247" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#37247</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/34254" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#34254</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/36244" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#36244</a> — @benbarclay)</li> <li>Chat tab works in gated (OAuth) mode; trust non-web WS origins on OAuth-gated binds after ticket auth; authenticate server-spawned PTY child WS; sanction plugin WS/upload auth via SDK helpers (<a href="https://github.com/NousResearch/hermes-agent/pull/34793" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#34793</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/37870" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#37870</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/37972" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#37972</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/38549" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#38549</a> — @teknium1, @benbarclay, @kshitijk4poor)</li> <li>Allow desktop websocket origins on remote binds (<a href="https://github.com/NousResearch/hermes-agent/pull/37747" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#37747</a> — @teknium1)</li> </ul> <h2>🏗️ Core Agent & Architecture</h2> <h3>Provider & model support</h3> <ul> <li>New models: <code>deepseek-v4-flash</code> (+ trimmed variants, maker-grouped curated lists), <code>MiniMax-M3</code> with 1M context on native minimax providers, <code>qwen3.7-plus</code> (Nous + OpenRouter), <code>gemini-3.5-flash</code> to Gemini OAuth + API-key pickers (<a href="https://github.com/NousResearch/hermes-agent/pull/35659" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#35659</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/36214" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#36214</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/39409" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#39409</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/37046" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#37046</a> — @teknium1)</li> <li>Model picker: fuzzy search across WebUI/TUI/CLI; group multi-endpoint providers under one row; refresh provider descriptions + describe grouped rows; refresh catalog hourly; stop routing OpenAI selection to OpenRouter (<a href="https://github.com/NousResearch/hermes-agent/pull/36928" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#36928</a> — @kshitijk4poor, <a href="https://github.com/NousResearch/hermes-agent/pull/35227" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#35227</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/35773" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#35773</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/35756" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#35756</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/37175" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#37175</a>)</li> <li>Always show Nous Tool Gateway backends, login on select; surface the Nous free tool pool (entitlement + setup prompt); route FAL video gen through managed Nous gateway (<a href="https://github.com/NousResearch/hermes-agent/pull/35792" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#35792</a> — @teknium1, <a href="https://github.com/NousResearch/hermes-agent/pull/36153" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#36153</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/33259" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#33259</a> — @alt-glitch)</li> <li>Persist mid-session model switch to database; recover model on post-interrupt recovery turn (<a href="https://github.com/NousResearch/hermes-agent/pull/35256" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#35256</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/35381" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#35381</a> — @teknium1)</li> <li>Credential pool: <code>STATUS_DEAD</code> for terminal OAuth failures; isolate custom provider picker credentials (<a href="https://github.com/NousResearch/hermes-agent/pull/34412" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#34412</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/34810" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#34810</a> — @teknium1)</li> <li>Disable Nous Portal legacy session-key inference fallback — JWT-only (<a href="https://github.com/NousResearch/hermes-agent/pull/34508" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#34508</a> — @kshitijk4poor)</li> </ul> <h3>Agent loop, prompt & tools</h3> <ul> <li><code>/undo [N]</code> — backs up N user turns with prefill + soft-delete (CLI/TUI + messaging-platform parity) (<a href="https://github.com/NousResearch/hermes-agent/pull/36229" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#36229</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/36699" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#36699</a> — @teknium1)</li> <li>Progressive tool disclosure for MCP and plugin tools (scoped); embedder environment-hint hook for the system prompt; universal task-completion guidance + local Python toolchain probe (<a href="https://github.com/NousResearch/hermes-agent/pull/34493" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#34493</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/34574" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#34574</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/34340" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#34340</a> — @teknium1)</li> <li>Uncap delegation <code>max_spawn_depth</code> (floor 1, no ceiling); broaden Hermes self-knowledge pointer to docs + skill; <code>hermes prompt-size</code> diagnostic (<a href="https://github.com/NousResearch/hermes-agent/pull/39772" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#39772</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/38538" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#38538</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/35276" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#35276</a> — @teknium1)</li> <li><code>perf(read_file)</code>: compact line-number gutter — ~14% fewer tokens per read (now the only format) (<a href="https://github.com/NousResearch/hermes-agent/pull/35368" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#35368</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/35532" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#35532</a> — @teknium1)</li> <li>Resolve agent cwd from <code>TERMINAL_CWD</code> via one reader; align prefill messages key handling; resume relaunches in the session's original working directory (<a href="https://github.com/NousResearch/hermes-agent/pull/35028" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#35028</a> — @banditburai, <a href="https://github.com/NousResearch/hermes-agent/pull/38760" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#38760</a> — @helix4u, <a href="https://github.com/NousResearch/hermes-agent/pull/38562" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#38562</a> — @teknium1)</li> <li>Prevent session-id fork from concurrent compressions; observer telemetry hooks + NeMo-Relay plugin (gated tool emit) (<a href="https://github.com/NousResearch/hermes-agent/pull/34351" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#34351</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/38232" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#38232</a> — @teknium1)</li> </ul> <h3>Sessions, state & memory</h3> <ul> <li><code>perf(state)</code>: merge FTS5 segments on VACUUM + <code>hermes sessions optimize</code>; keep <code>/branch</code> sessions visible after parent reopen; survive missing FTS5 runtimes (<a href="https://github.com/NousResearch/hermes-agent/pull/34596" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#34596</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/39214" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#39214</a> — @teknium1, @kshitijk4poor, <a href="https://github.com/NousResearch/hermes-agent/pull/35452" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#35452</a> — @helix4u)</li> <li>Honcho: make startup fail open; harden self-hosted setup paths (<a href="https://github.com/NousResearch/hermes-agent/pull/24847" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#24847</a> — @stephenschoettler, <a href="https://github.com/NousResearch/hermes-agent/pull/35170" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#35170</a> — @kshitijk4poor)</li> <li>Supermemory: session-level ingest + kebab aliases (<a href="https://github.com/NousResearch/hermes-agent/pull/38756" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#38756</a> — @alt-glitch)</li> </ul> <h2>🧩 Multi-Agent (Kanban) & Skills</h2> <h3>Kanban</h3> <ul> <li><code>goal_mode</code> cards run workers in a <code>/goal</code> loop; file attachments on tasks; attach images referenced in task bodies to worker vision (<a href="https://github.com/NousResearch/hermes-agent/pull/35710" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#35710</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/35395" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#35395</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/34210" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#34210</a> — @teknium1)</li> <li><code>default_assignee</code> fallback + per-profile concurrency cap; <code>POST /runs/{run_id}/terminate</code> endpoint; gate notifier watcher on <code>dispatch_in_gateway</code> (<a href="https://github.com/NousResearch/hermes-agent/pull/34244" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#34244</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/34449" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#34449</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/37174" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#37174</a> — @teknium1)</li> <li>CLI dispatch config passthrough + humanizer skill swap (<a href="https://github.com/NousResearch/hermes-agent/pull/34337" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#34337</a> — @teknium1)</li> </ul> <h3>Skills</h3> <ul> <li><strong>Leaner default skill set</strong> (<a href="https://github.com/NousResearch/hermes-agent/pull/39028" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#39028</a> — @teknium1):<ul> <li>Removed (redundant / dead): <code>spotify</code> (→ Spotify plugin's 7 native tools), <code>linear</code> (→ <code>hermes mcp install linear</code>), <code>kanban-codex-lane</code>, <code>debugging-hermes-tui-commands</code>, stale <code>domain</code> orphan, empty category markers (<code>diagramming</code>, <code>gifs</code>, <code>inference-sh</code>, <code>mlops/training</code>, <code>mlops/vector-databases</code>)</li> <li>Bundled → optional: <code>baoyu-article-illustrator</code>, <code>baoyu-comic</code>, <code>creative-ideation</code>, <code>pixel-art</code>, <code>dspy</code>, <code>subagent-driven-development</code>, <code>minecraft-modpack-server</code>, <code>pokemon-player</code>, <code>hermes-s6-container-supervision</code></li> <li>Consolidated: <code>webhook-subscriptions</code> + <code>native-mcp</code> folded into the <code>hermes-agent</code> skill as on-demand references; <code>writing-plans</code> merged into <code>plan</code> (v2.0.0)</li> <li>New <code>environments:</code> frontmatter relevance gate (<code>kanban</code> / <code>docker</code> / <code>s6</code>) — context-specific skills stop appearing in the index for users who won't use them, still load on explicit request</li> </ul> </li> <li>Curator can now prune unused <strong>built-in</strong> skills (not just agent-created), with usage tracked for every skill (<a href="https://github.com/NousResearch/hermes-agent/pull/36701" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#36701</a> — @teknium1)</li> <li>Blank-slate skills — <code>install --no-skills</code> + opt-out/opt-in for the default profile (<a href="https://github.com/NousResearch/hermes-agent/pull/36228" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#36228</a> — @teknium1)</li> <li><strong>NVIDIA/skills trusted tap</strong> — <code>NVIDIA/skills</code> is now a default trusted Skills Hub tap alongside OpenAI/Anthropic/HuggingFace; <code>skills.sh.json</code> sidecar gives taps real category labels (<a href="https://github.com/NousResearch/hermes-agent/pull/34333" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#34333</a> — @teknium1)</li> <li>Skills Hub: fix browse cap, add source links + copy buttons + category cleanup (<a href="https://github.com/NousResearch/hermes-agent/pull/37143" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#37143</a> — @teknium1)</li> <li>New optional skills: <code>grok</code> (xAI Grok Build CLI), <code>antigravity-cli</code> operator (under autonomous-ai-agents) (<a href="https://github.com/NousResearch/hermes-agent/pull/34582" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#34582</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/34583" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#34583</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/34604" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#34604</a> — @teknium1)</li> </ul> <h2>📱 Messaging Platforms (Gateway)</h2> <ul> <li>Structured stream-event protocol + Telegram draft formatting parity; per-platform streaming defaults (Telegram on, Discord off) + dashboard toggles; surface gateway streaming block in <code>DEFAULT_CONFIG</code> (<a href="https://github.com/NousResearch/hermes-agent/pull/37250" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#37250</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/37303" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#37303</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/37285" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#37285</a> — @teknium1)</li> <li>Discord voice-channel mixer — ambient idle bed + verbal acks that overlap TTS; explain <code>/voice</code> usage when toggled bare (<a href="https://github.com/NousResearch/hermes-agent/pull/39659" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#39659</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/39766" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#39766</a> — @teknium1)</li> <li>Handle Feishu meeting invitations; bluebubbles group mention gating; matrix bang-command aliases; matrix fail-closed approval reaction auth (<a href="https://github.com/NousResearch/hermes-agent/pull/39040" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#39040</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/37091" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#37091</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/38175" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#38175</a> — @teknium1, @alt-glitch, <a href="https://github.com/NousResearch/hermes-agent/pull/34567" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#34567</a>)</li> <li>Clean service restart flow; close ResponseStore + dispose unowned adapter on reconnect failure; weixin <code>asyncio.wait_for</code> timeouts (<a href="https://github.com/NousResearch/hermes-agent/pull/36188" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#36188</a> — @helix4u, <a href="https://github.com/NousResearch/hermes-agent/pull/37679" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#37679</a> — @Fearvox, <a href="https://github.com/NousResearch/hermes-agent/pull/35117" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#35117</a> — @banditburai)</li> </ul> <h2>🖥️ CLI, TUI & Setup</h2> <ul> <li>Configurable default interface (cli vs tui) + <code>--cli</code> flag; TUI single <code>/model</code> command + unified Sessions overlay; nudge toward <code>/agents</code> dashboard when delegation starts (<a href="https://github.com/NousResearch/hermes-agent/pull/37782" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#37782</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/37112" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#37112</a> — @OutThisLife, <a href="https://github.com/NousResearch/hermes-agent/pull/34704" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#34704</a> — @kshitijk4poor)</li> <li>Thin out setup — Quick Setup via Nous Portal + Full Setup defaults; explain Quick vs Full inline; <code>hermes portal</code> human-readable Portal onboarding alias + full quick-setup Nous flow (<a href="https://github.com/NousResearch/hermes-agent/pull/35723" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#35723</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/36227" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#36227</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/38449" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#38449</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/38465" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#38465</a> — @teknium1, @kshitijk4poor)</li> <li>Set process title to <code>hermes</code> in ps/top/htop; warn on unsupported pip installs + fix stale update-check cache (<a href="https://github.com/NousResearch/hermes-agent/pull/35143" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#35143</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/34846" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#34846</a> — @teknium1)</li> <li>TUI perf: stop slow/dead MCP servers from freezing startup; stop eager MCP discovery from blocking agent-capable startup; stop persisting full tool output in trail lines (silent OOM) (<a href="https://github.com/NousResearch/hermes-agent/pull/35273" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#35273</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/35397" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#35397</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/38224" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#38224</a> — @teknium1)</li> <li>TUI fixes: auto-recover session on unexpected gateway death; reassemble split SGR mouse sequences; preserve UTF-8 in PowerShell clipboard; reset terminal input modes on exit; <code>/save</code> snapshots under Hermes home (<a href="https://github.com/NousResearch/hermes-agent/pull/35893" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#35893</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/38564" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#38564</a> — @OutThisLife, <a href="https://github.com/NousResearch/hermes-agent/pull/35222" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#35222</a> — @teknium1, <a href="https://github.com/NousResearch/hermes-agent/pull/36864" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#36864</a> — @maxmilian, <a href="https://github.com/NousResearch/hermes-agent/pull/38251" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#38251</a> — @austinpickett)</li> <li>Setup model/provider pickers migrated off <code>simple_term_menu</code> to curses (ESC + ghost-row fixes); default browser/TTS picker to free local backend, not paid Nous (<a href="https://github.com/NousResearch/hermes-agent/pull/35806" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#35806</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/37800" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#37800</a> — @teknium1)</li> </ul> <h2>🔧 Tool System & Installer</h2> <ul> <li><code>single managed-uv path</code>, delete fts5 installer escalation; installer commit pinning opt-in (default branch-follow); shallow clones (<a href="https://github.com/NousResearch/hermes-agent/pull/37660" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#37660</a> — @ethernet8023, <a href="https://github.com/NousResearch/hermes-agent/pull/37123" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#37123</a> — @jquesnelle, <a href="https://github.com/NousResearch/hermes-agent/pull/39423" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#39423</a> — @ethernet8023)</li> <li><code>ensure_uv()</code> survives the update boundary (no first-run crash); harden venv rebuild + verify core deps after install; require managed marker before destructive clean; stash/restore by default for non-interactive updates (<a href="https://github.com/NousResearch/hermes-agent/pull/39780" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#39780</a> — @OutThisLife, <a href="https://github.com/NousResearch/hermes-agent/pull/38887" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#38887</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/39568" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#39568</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/39645" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#39645</a> — @teknium1, @helix4u)</li> <li>MCP: stop reporting false OAuth success when no token was obtained; vision honors <code>model.supports_vision</code> in <code>vision_analyze</code> + <code>browser_vision</code>; MiniMax t2a_v2 TTS <code>raise_for_status</code> (<a href="https://github.com/NousResearch/hermes-agent/pull/34807" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#34807</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/34562" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#34562</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/39057" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#39057</a> — @teknium1)</li> <li>yuanbao: cache resolved media resources by resourceId (<a href="https://github.com/NousResearch/hermes-agent/pull/34474" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#34474</a> — @teknium1)</li> </ul> <h2>🐳 Docker & Deployment</h2> <ul> <li>Container reuse + bounded-sync cleanup + orphan reaper; auto-join Docker socket group for docker-in-docker backend; boot non-root containers (skip s6-setuidgid drop when already unprivileged) (<a href="https://github.com/NousResearch/hermes-agent/pull/33645" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#33645</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/34407" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#34407</a> — @benbarclay, <a href="https://github.com/NousResearch/hermes-agent/pull/34837" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#34837</a> — @IAvecilla)</li> <li>Skip unnecessary boot chown when volume ownership matches remapped UID; seed <code>gateway_state.json</code> from <code>HERMES_GATEWAY_BOOTSTRAP_STATE</code> on first boot; tag containers with hermes-agent labels for identification (<a href="https://github.com/NousResearch/hermes-agent/pull/35027" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#35027</a> — @Foldblade, <a href="https://github.com/NousResearch/hermes-agent/pull/37896" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#37896</a> — @benbarclay)</li> <li>Point TUI launcher at prebuilt bundle via <code>HERMES_TUI_DIR</code>; consolidate node/nix workspace lockfile + update all consumers (<a href="https://github.com/NousResearch/hermes-agent/pull/37923" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#37923</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/36171" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#36171</a> — @benbarclay, @ethernet8023)</li> </ul> <h2>🔒 Security & Reliability</h2> <ul> <li><strong>CVE-2026-48710 (Starlette BadHost)</strong> — pin patched Starlette ≥1.0.1 (<a href="https://github.com/NousResearch/hermes-agent/pull/35118" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#35118</a> — @teknium1)</li> <li>Run URL SSRF checks off the event loop in async paths; strip Bedrock inference bearer token from subprocess env; add <code>bws_cache.json</code> to file-safety read guard; neutralize file paths in mutation-verifier footer (<a href="https://github.com/NousResearch/hermes-agent/pull/39046" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#39046</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/34498" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#34498</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/34421" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#34421</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/35684" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#35684</a> — @teknium1)</li> <li>Restore approval/sudo context in <code>execute_code</code> + guard entry points; add docker restart/stop/kill to <code>DANGEROUS_PATTERNS</code>; sanitize invisible unicode in vetted skill content; deepcopy tools before in-place xAI mutation (<a href="https://github.com/NousResearch/hermes-agent/pull/34497" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#34497</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/33438" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#33438</a> — @teknium1, @Sarbai, <a href="https://github.com/NousResearch/hermes-agent/pull/37245" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#37245</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/34416" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#34416</a>)</li> <li>Sandbox-mirror soft guard for writes to per-task <code>.hermes</code> mirrors; honcho fail-open on startup (<a href="https://github.com/NousResearch/hermes-agent/pull/32213" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#32213</a> — @briandevans, <a href="https://github.com/NousResearch/hermes-agent/pull/24847" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#24847</a> — @stephenschoettler)</li> </ul> <h2>🐛 Notable Bug Fixes</h2> <ul> <li><strong>399 issues closed</strong> this window (2 P0, 62 P1, 16 security-tagged, 262 bug-labeled).</li> <li>Desktop: keep in-flight new chats from vanishing on refresh; Stop button actually interrupts when a turn is queued; stop background session messages bleeding into the active transcript; slash/@ completion menu navigable & Esc-dismissable; IME Enter no longer splits messages (<a href="https://github.com/NousResearch/hermes-agent/pull/37908" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#37908</a> — @OutThisLife, <a href="https://github.com/NousResearch/hermes-agent/pull/37948" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#37948</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/37975" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#37975</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/37937" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#37937</a> — @kshitijk4poor, <a href="https://github.com/NousResearch/hermes-agent/pull/38333" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#38333</a> — @stremtec)</li> <li>Update: stop stash/restore from clobbering desktop source on managed clones; don't fail desktop rebuild/skills sync on mid-rebuild venv; export launcher virtualenv to uv (<a href="https://github.com/NousResearch/hermes-agent/pull/38542" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#38542</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/38885" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#38885</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/35224" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#35224</a> — @teknium1)</li> <li>Voice: honor <code>PIPEWIRE_REMOTE</code> in PortAudio fallback; allow <code>/voice</code> over SSH when a sound server is reachable; restore mistralai (2.4.8 clean, ban lifted) (<a href="https://github.com/NousResearch/hermes-agent/pull/33473" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#33473</a> — @Dusk1e, <a href="https://github.com/NousResearch/hermes-agent/pull/35719" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#35719</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/34841" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#34841</a> — @teknium1)</li> </ul> <h2>📚 Documentation</h2> <ul> <li>New Desktop App guide + remote-backend sections (session token, <code>--tui</code> requirement, username/password connect, dashboard/gateway prerequisites) (<a href="https://github.com/NousResearch/hermes-agent/pull/37457" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#37457</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/38144" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#38144</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/38180" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#38180</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/38534" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#38534</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/39128" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#39128</a> — @teknium1)</li> <li>Dashboard auth-provider suitability + registration across dashboard/Docker/Desktop; network egress isolation guide for Docker (<a href="https://github.com/NousResearch/hermes-agent/pull/39633" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#39633</a> — @benbarclay, <a href="https://github.com/NousResearch/hermes-agent/pull/26385" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#26385</a> — @Manzela)</li> </ul> <hr> <p><img src="https://v3b.fal.media/files/b/0a9d248f/AyRBEKS8C4o6HZNF6KjbD_M2U5y4wY.png" alt="Hermes Agent v0.16.0 — The Surface Release"></p> <h2>👥 Contributors</h2> <p>A huge thank-you to the <strong>170 community contributors</strong> (including co-authors) who shipped work in this release.</p> <h3>Core</h3> <ul> <li>@teknium1</li> </ul> <h3>Top community contributors (by merged-PR count)</h3> <ul> <li><strong>@OutThisLife</strong> (52) — built the desktop app end to end: install, self-update, remote-gateway connect, multi-profile sessions, chat UX, status-bar model picker</li> <li><strong>@benbarclay</strong> (44) — Docker hardening, dashboard auth (OIDC, username/password, refresh-token rotation), desktop OAuth remote connect</li> <li><strong>@kshitijk4poor</strong> (29) — fuzzy model picker, setup/portal onboarding, desktop completion-menu & Stop-button fixes, honcho hardening</li> <li><strong>@ethernet8023</strong> (18) — desktop build pipeline (content-hash stamp, build flags), Linux/arm64 desktop support, managed-uv consolidation</li> <li><strong>@austinpickett</strong> (8) — dashboard nous-blue theme + bulk sessions, desktop Providers settings, GUI QoL triage</li> <li><strong>@alt-glitch</strong> (7) — Nous tool-pool entitlement surfacing, FAL video-gen managed gateway, supermemory session ingest, matrix aliases</li> <li><strong>@helix4u</strong> (6) — gateway service-restart flow, update destructive-clean guard, config prefill alignment</li> <li><strong>@jquesnelle</strong> (4) — installer commit-pinning opt-in, desktop skills/tools + model-management consolidation</li> <li><strong>@JimLiu</strong> — full Simplified Chinese (简体中文) desktop translation + typed i18n layer</li> </ul> <h3>All Contributors</h3> <p>@0xharryriddle, @a1245582339, @adybag14-cyber, @AhmetArif0, @alaamohanad169-ship-it, @alelpoan, @alt-glitch, @Aman113114-IITD, @amathxbt, @aminvakil, @annguyenNous, @aqilaziz, @Archerouyang, @ashishpatel26, @asimons81, @austinpickett, @banditburai, @baofuen, @Bartok9, @bbednarski9, @beardthelion, @bedirhancode, @benbarclay, @benfrank241, @blackpilledsoftware-prog, @bluefishs, @brian-doherty, @briancl2, @briandevans, @BROCCOLO1D, @caojiguang, @CharZhou, @counterposition, @coygeek, @CryptoByz, @davetist, @davidgut1982, @dchenk, @dirtyren, @donovan-yohan, @dparikh79, @dskwe, @Dusk1e, @dvir-pashut, @EloquentBrush0x, @emozilla, @ErnestHysa, @Erosika, @ethernet8023, @f3rs3n, @faisfamilytravel, @Fearvox, @ferminquant, @fesalfayed, @firefly, @flooryyyy, @Foldblade, @Frowtek, @gbarany, @Glucksberg, @GodsBoy, @haran2001, @harjothkhara, @HashClawAI, @hayka-pacha, @helix4u, @HeLLGURD, @Hinotoi-agent, @hllqkb, @IAvecilla, @inchargeautomation-lab, @Interstellar-code, @isair, @ITheEqualizer, @jeffrobodie-glitch, @JezzaHehn, @JimLiu, @Julientalbot, @julio-cloudvisor, @karmeleon, @Kenmege, @Kewe63, @Kolektori, @konsisumer, @kshitijk4poor, @kurobaryo, @kweiner, @kyssta-exe, @Kyzcreig, @LengR, @leonardsellem, @LeonSGP43, @libre-7, @liuboacean, @liuhao1024, @loongzhao, @luyao618, @MaheshtheDev, @Manzela, @mathijsvandenhurk, @MattMaximo, @maxcz79, @maxmilian, @Moikapy, @MustafaKara7, @nateGeorge, @nepenth, @nielskaspers, @ninjmnky, @octavioturra, @OCWC22, @ohMyJason, @ousiaresearch, @outsourc-e, @OutThisLife, @Pluviobyte, @polnikale, @pxdsgnco, @Que0x, @r266-tech, @redpiggy-cyber, @rewbs, @rexdotsh, @rob-maron, @SaguaroDev, @sahibzada-allahyar, @Sarbai, @sarvesh1327, @scubamount, @SeaXen, @seppegadeyne, @shannonsands, @SHL0MS, @SimoKiihamaki, @SiTaggart, @solaitken, @sprmn24, @stephenschoettler, @steveonjava, @stremtec, @Subway2023, @sweetcornna, @Sylw3ster, @ThyFriendlyFox, @tillfalko, @tmchow, @TonyPepeBear, @Tranquil-Flow, @truenorth-lj, @tuancookiez-hub, @Twanislas, @tymrtn, @uzunkuyruk, @ViewWay, @VinciZhu, @vinoth12940, @vladkvlchk, @vynxevainglory-ai, @WadydX, @wenchengxucool, @whyhkzk, @worlldz, @Wysie, @x1am1, @xxxigm, @ygd58, @youngstar-eth, @zapabob, @zhaoleibd, @Zyrixtrex</p> <hr> <p><strong>Full Changelog</strong>: <a href="https://github.com/NousResearch/hermes-agent/compare/v2026.5.29.2...v2026.6.5">v2026.5.29.2...v2026.6.5</a></p> </div> <button class="cl-expand-btn ha-headline">▼ EXPAND FULL CHANGELOG</button> <div class="cl-card__footer"> <a href="https://github.com/NousResearch/hermes-agent/releases/tag/v2026.6.5" target="_blank" rel="noopener noreferrer" class="cl-gh-link">↗ GitHub</a> </div> </div> </article><article class="cl-entry" data-version="v2026.5.29.2" data-name="hermes agent v0.15.2 (2026.5.29.2)" data-body="# hermes agent v0.15.2 (v2026.5.29.2) **release date:** may 29, 2026 ## 🐛 bug fixes - packaging): ship bundled plugin.yaml manifests in wheel and sdist ([`827f7f07`](https://github.com/nousresearch/hermes-agent/commit/827f7f07825be57108cbea18325e8f5e9fb5d2f2)) ## 👥 contributors thank you to everyone who contributed to this release! - @outsourc-e (1 commit) - @dparikh79 (1 commit) - @ousiaresearch (1 commit) - @libre-7 (1 commit) **full changelog**: [v2026.5.29...v2026.5.29.2](https://github.com/nousresearch/hermes-agent/compare/v2026.5.29...v2026.5.29.2) " data-prerelease="false" data-breaking="false" data-index="28"> <div class="cl-dot"> <span class="cl-dot__icon">●</span> </div> <div class="cl-header"> <span class="ha-headline cl-header__version">v2026.5.29.2</span> <span class="ha-headline cl-header__date">May 29, 2026</span> </div> <div class="cl-card"> <h3 class="ha-headline cl-card__title">v0.15.2 (2026.5.29.2)</h3> <div class="changelog-body cl-card__body"><h1>Hermes Agent v0.15.2 (v2026.5.29.2)</h1> <p><strong>Release Date:</strong> May 29, 2026</p> <h2>🐛 Bug Fixes</h2> <ul> <li>Packaging): ship bundled plugin.yaml manifests in wheel and sdist (<a href="https://github.com/NousResearch/hermes-agent/commit/827f7f07825be57108cbea18325e8f5e9fb5d2f2"><code>827f7f07</code></a>)</li> </ul> <h2>👥 Contributors</h2> <p>Thank you to everyone who contributed to this release!</p> <ul> <li>@outsourc-e (1 commit)</li> <li>@dparikh79 (1 commit)</li> <li>@ousiaresearch (1 commit)</li> <li>@libre-7 (1 commit)</li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/NousResearch/hermes-agent/compare/v2026.5.29...v2026.5.29.2">v2026.5.29...v2026.5.29.2</a></p> </div> <div class="cl-card__footer"> <a href="https://github.com/NousResearch/hermes-agent/releases/tag/v2026.5.29.2" target="_blank" rel="noopener noreferrer" class="cl-gh-link">↗ GitHub</a> </div> </div> </article><article class="cl-entry" data-version="v2026.5.29" data-name="hermes agent v0.15.1 (2026.5.29) — the patch release" data-body="# hermes agent v0.15.1 (v2026.5.29) **release date:** may 29, 2026 **since v0.15.0:** 28 commits · 21 merged prs · hotfix release · 9 contributors > **the patch release.** a same-day hotfix for v0.15.0. headline fix: the dashboard infinite-reload loop that hit anyone running v0.15.0 in loopback mode (docker, hosted hermes, fresh installs). a handful of other v0.15.0 follow-ups go along for the ride — kanban worker sigterm, `/model` picker unification, `/yolo` session bypass, the full 19,932-entry skills.sh catalog, `.md` media delivery restoration, gateway probe-stepdown safety, web-url redaction passthrough, kanban worker vision on referenced images, hindsight observation-default. docker users get an explicit `--insecure` opt-in env var (no more bind-host inference), mcp server bare-com" data-prerelease="false" data-breaking="false" data-index="29"> <div class="cl-dot"> <span class="cl-dot__icon">●</span> </div> <div class="cl-header"> <span class="ha-headline cl-header__version">v2026.5.29</span> <span class="ha-headline cl-header__date">May 29, 2026</span> </div> <div class="cl-card"> <h3 class="ha-headline cl-card__title">v0.15.1 (2026.5.29) — The Patch Release</h3> <div class="changelog-body cl-card__body cl-collapsed"><h1>Hermes Agent v0.15.1 (v2026.5.29)</h1> <p><strong>Release Date:</strong> May 29, 2026 <strong>Since v0.15.0:</strong> 28 commits · 21 merged PRs · hotfix release · 9 contributors</p> <blockquote> <p><strong>The Patch Release.</strong> A same-day hotfix for v0.15.0. Headline fix: the dashboard infinite-reload loop that hit anyone running v0.15.0 in loopback mode (Docker, hosted Hermes, fresh installs). A handful of other v0.15.0 follow-ups go along for the ride — kanban worker SIGTERM, <code>/model</code> picker unification, <code>/yolo</code> session bypass, the full 19,932-entry skills.sh catalog, <code>.md</code> media delivery restoration, gateway probe-stepdown safety, web-URL redaction passthrough, kanban worker vision on referenced images, hindsight observation-default. Docker users get an explicit <code>--insecure</code> opt-in env var (no more bind-host inference), MCP server bare-command PATH resolution, and arm64 PR-build cache fixes.</p> </blockquote> <hr> <h2>✨ Highlights</h2> <ul> <li><p><strong>Dashboard 401 reload loop fixed</strong> — In loopback mode the dashboard's identity probe (<code>/api/auth/me</code>) returns 401 by design, but v0.15.0's stale-token reload guard treated every 401 as a rotated session token and full-page-reloaded to pick up a fresh one. Every successful sibling call cleared the one-shot reload guard, so the page reload-looped forever (Firefox: "Navigated to /sessions" storm; Chrome: React re-render storm). Fix adds an <code>allowUnauthorized</code> opt-out to <code>fetchJSON</code> that skips only the loopback stale-token reload — 401 still throws so <code>AuthWidget</code> swallows it, gated-mode <code>login_url</code> redirects are unaffected. Closes <a href="https://github.com/NousResearch/hermes-agent/issues/34206" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#34206</a>, <a href="https://github.com/NousResearch/hermes-agent/issues/34202" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#34202</a>. (<a href="https://github.com/NousResearch/hermes-agent/pull/30698" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#30698</a> — @austinpickett)</p> </li> <li><p><strong>Docker dashboard <code>--insecure</code> is now an explicit env opt-in, never derived from bind host</strong> — Previously the Docker entrypoint inferred <code>--insecure</code> when the dashboard bound to a non-loopback host. That conflated "I want LAN access" with "I want to disable the same-origin guard." The fix splits them: bind host is bind host, and disabling the dashboard's loopback auth requires an explicit <code>HERMES_DASHBOARD_INSECURE=1</code>. Existing setups that genuinely wanted insecure binding must now set the env var. (<a href="https://github.com/NousResearch/hermes-agent/pull/34188" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#34188</a>, <a href="https://github.com/NousResearch/hermes-agent/pull/34204" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#34204</a> — @benbarclay)</p> </li> <li><p><strong>MCP bare command resolution under Docker</strong> — MCP servers configured with bare commands (<code>npx</code>, <code>npm</code>, <code>node</code>) now resolve against <code>/usr/local/bin</code> so they actually launch inside the Docker image where those binaries live. v0.15.0 left these failing silently in containers when the agent's effective PATH didn't include the Node toolchain location. (<a href="https://github.com/NousResearch/hermes-agent/pull/34186" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#34186</a> — @benbarclay)</p> </li> <li><p><strong>Skills page sidebar / source pills restored</strong> — A stale <code>useMemo</code> dependency in the new dashboard skills page collapsed the source pills and category sidebar to "All" only. Fixed; both surfaces now reflect the live catalog state. (<a href="https://github.com/NousResearch/hermes-agent/pull/34194" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#34194</a>)</p> </li> <li><p><strong>Kanban worker can be killed again</strong> — <code>SIGTERM</code> on a kanban worker was being absorbed by an intermediate process and the worker stayed running. Closes <a href="https://github.com/NousResearch/hermes-agent/issues/28181" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#28181</a>. (<a href="https://github.com/NousResearch/hermes-agent/pull/34045" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#34045</a>)</p> </li> <li><p><strong>Full skills.sh catalog (858 → 19,932 entries)</strong> — The skills hub page was pulling a partial paginated catalog. The fetch now walks the sitemap, so all 19,932 skills.sh entries surface in the picker instead of just the first 858. (<a href="https://github.com/NousResearch/hermes-agent/pull/34025" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#34025</a>)</p> </li> </ul> <hr> <h2>🐛 Bug Fixes</h2> <h3>Dashboard / Web</h3> <ul> <li><strong><code>/api/auth/me</code> 401 no longer triggers reload loop</strong> in loopback mode — (<a href="https://github.com/NousResearch/hermes-agent/pull/30698" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#30698</a> — @austinpickett)</li> <li><strong>Skills page source pills + category sidebar restored</strong> — stale <code>useMemo</code> dep (<a href="https://github.com/NousResearch/hermes-agent/pull/34194" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#34194</a>)</li> </ul> <h3>Docker</h3> <ul> <li><strong><code>--insecure</code> is now explicit opt-in via env var</strong>, not derived from bind host (<a href="https://github.com/NousResearch/hermes-agent/pull/34188" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#34188</a> — @benbarclay)</li> <li><strong>Dashboard test suite repaired</strong> to match the insecure-opt-in fix (<a href="https://github.com/NousResearch/hermes-agent/pull/34204" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#34204</a> — @benbarclay)</li> <li><strong>arm64 PR builds skip the GHA cache</strong> to avoid cache-thrash on cross-arch builders (<a href="https://github.com/NousResearch/hermes-agent/pull/33704" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#33704</a> — @BROCCOLO1D)</li> </ul> <h3>MCP</h3> <ul> <li><strong>Bare <code>npx</code>/<code>npm</code>/<code>node</code> resolve against <code>/usr/local/bin</code></strong> for Docker compatibility (<a href="https://github.com/NousResearch/hermes-agent/pull/34186" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#34186</a> — @benbarclay)</li> </ul> <h3>Kanban</h3> <ul> <li><strong>Worker SIGTERM actually terminates the process</strong> (<a href="https://github.com/NousResearch/hermes-agent/pull/34045" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#34045</a>)</li> <li><strong>Workers receive images referenced in task bodies</strong> for vision-capable models (<a href="https://github.com/NousResearch/hermes-agent/pull/34210" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#34210</a>)</li> </ul> <h3>Gateway</h3> <ul> <li><strong><code>.md</code> files deliver again</strong> — media-delivery validation defaults to denylist-only instead of an overly-narrow allowlist (<a href="https://github.com/NousResearch/hermes-agent/pull/34022" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#34022</a>)</li> <li><strong>Probe stepdown safety</strong> — on a context-overflow without an explicit provider context limit, the agent no longer steps down to a smaller model based on an unknown ceiling (salvage of <a href="https://github.com/NousResearch/hermes-agent/pull/33673" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#33673</a>) (<a href="https://github.com/NousResearch/hermes-agent/pull/33826" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#33826</a>)</li> </ul> <h3>CLI</h3> <ul> <li><strong><code>/yolo</code> mid-session enables the per-session bypass</strong> instead of just toggling the env var (which the running agent had already snapshotted) (<a href="https://github.com/NousResearch/hermes-agent/pull/33931" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#33931</a> — @kshitijk4poor)</li> <li><strong><code>/model</code> and <code>hermes model</code> show the same list</strong>, plus disk cache for picker startup (<a href="https://github.com/NousResearch/hermes-agent/pull/33867" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#33867</a>)</li> </ul> <h3>Skills</h3> <ul> <li><strong>Full skills.sh catalog via sitemap</strong> — 858 → 19,932 entries (<a href="https://github.com/NousResearch/hermes-agent/pull/34025" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#34025</a>)</li> </ul> <h3>Redaction</h3> <ul> <li><strong>Web URLs pass through unchanged</strong> — the redactor was eating query parameters that looked credential-shaped (<a href="https://github.com/NousResearch/hermes-agent/pull/34029" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#34029</a>)</li> </ul> <hr> <h2>✨ Small Features</h2> <ul> <li><strong>Hindsight default narrowed to observation-only</strong> for <code>recall_types</code> — tool path is also narrowed (<a href="https://github.com/NousResearch/hermes-agent/pull/34079" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#34079</a> — @nicoloboschi, follow-up <a href="https://github.com/NousResearch/hermes-agent/pull/4df62d239e38bf8c212a595721c9c01e176f6c3a">#34091</a> — @kshitijk4poor)</li> <li><strong>Memory providers receive completed-turn message context</strong> — salvage of <a href="https://github.com/NousResearch/hermes-agent/pull/28065" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#28065</a> (<a href="https://github.com/NousResearch/hermes-agent/pull/34097" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#34097</a> — @kshitijk4poor, credit to @devwdave)</li> </ul> <hr> <h2>📚 Documentation</h2> <ul> <li><strong><code>--no-supervise</code> / <code>HERMES_GATEWAY_NO_SUPERVISE</code> documented</strong> in the reference docs (follow-up to <a href="https://github.com/NousResearch/hermes-agent/pull/33583" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#33583</a>) (<a href="https://github.com/NousResearch/hermes-agent/pull/33751" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#33751</a> — @r266-tech)</li> </ul> <hr> <h2>🛠️ Infrastructure</h2> <ul> <li><strong>Vercel deploy workflow accepts <code>workflow_dispatch</code></strong> so docs deploys can be manually triggered (<a href="https://github.com/NousResearch/hermes-agent/pull/34081" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#34081</a>)</li> <li><strong><code>@nous-research/ui</code> bumped to 0.18.2</strong> (Nix <code>npmDepsHash</code> also updated to match) (<a href="https://github.com/NousResearch/hermes-agent/pull/34193" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#34193</a> follow-ups — @austinpickett)</li> </ul> <hr> <h2>👥 Contributors</h2> <h3>Core</h3> <ul> <li>@teknium1</li> </ul> <h3>Community</h3> <ul> <li>@austinpickett — dashboard 401 reload-loop fix (the headline), <code>@nous-research/ui</code> bump, Nix <code>npmDepsHash</code> updates</li> <li>@benbarclay — Docker <code>--insecure</code> opt-in, MCP bare-command resolution, dashboard test repair</li> <li>@kshitijk4poor — <code>/yolo</code> session bypass, completed-turn memory context salvage, hindsight follow-up docs</li> <li>@nicoloboschi — hindsight <code>recall_types</code> observation default</li> <li>@BROCCOLO1D — arm64 PR build cache fix</li> <li>@r266-tech — <code>--no-supervise</code> reference docs</li> <li>@yangguangjin — probe stepdown safety (salvage of @yanghd's #33673)</li> <li>@devwdave — completed-turn memory context (credited via salvage)</li> <li>@andrewhosf — co-author</li> </ul> <h3>Issue Reporters (the 401 loop)</h3> <ul> <li>@routesmith (<a href="https://github.com/NousResearch/hermes-agent/issues/34206" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#34206</a>)</li> <li>@beeaton (<a href="https://github.com/NousResearch/hermes-agent/issues/34202" target="_blank" rel="noopener noreferrer" class="cl-pr-link">#34202</a>)</li> </ul> <hr> <p><strong>Full Changelog</strong>: <a href="https://github.com/NousResearch/hermes-agent/compare/v2026.5.28...v2026.5.29">v2026.5.28...v2026.5.29</a></p> </div> <button class="cl-expand-btn ha-headline">▼ EXPAND FULL CHANGELOG</button> <div class="cl-card__footer"> <a href="https://github.com/NousResearch/hermes-agent/releases/tag/v2026.5.29" target="_blank" rel="noopener noreferrer" class="cl-gh-link">↗ GitHub</a> </div> </div> </article> <div class="cl-load-more-wrap"> <button id="cl-load-more" class="ha-headline cl-load-more-btn">Load 20 More Releases ▼</button> </div> </div> <button id="cl-scroll-top" class="cl-scroll-top" aria-label="Scroll to top">↑</button> </div> <script type="module">const m=Array.from(document.querySelectorAll(".cl-entry")),g=document.getElementById("cl-search"),i=document.getElementById("cl-filter-stable"),p=document.getElementById("cl-filter-breaking"),E=document.getElementById("cl-filter-prerelease"),c=document.getElementById("cl-scroll-top"),a=document.getElementById("cl-load-more");let t="",s="",o=m.length<=10;i?.classList.add("is-active");function r(){m.forEach((e,l)=>{const n=e.dataset.version||"",L=e.dataset.name||"",b=e.dataset.body||"",u=e.dataset.prerelease==="true",v=e.dataset.breaking==="true",y=!s||n.includes(s)||L.includes(s)||b.includes(s),f=t===""||t==="stable"&&!u||t==="breaking"&&v||t==="prerelease"&&u;e.style.display=y&&f&&(o||l<10)?"":"none"})}g?.addEventListener("input",()=>{s=g.value.toLowerCase().trim(),s&&(o=!0),r()});function d(e){t=e===t?"":e,r(),i?.classList.toggle("is-active",t==="stable"),p?.classList.toggle("is-active",t==="breaking"),E?.classList.toggle("is-active",t==="prerelease")}i?.addEventListener("click",()=>d("stable"));p?.addEventListener("click",()=>d("breaking"));E?.addEventListener("click",()=>d("prerelease"));a?.addEventListener("click",()=>{o=!0,a&&(a.style.display="none"),r()});window.addEventListener("scroll",()=>{c&&(c.style.opacity=window.scrollY>400?"1":"0",c.style.pointerEvents=window.scrollY>400?"auto":"none")},{passive:!0});document.addEventListener("click",e=>{const l=e.target.closest(".cl-expand-btn");if(!l)return;const n=l.previousElementSibling;n&&(n.classList.toggle("cl-collapsed"),l.textContent=n.classList.contains("cl-collapsed")?"▼ EXPAND FULL CHANGELOG":"▲ COLLAPSE")});</script> </main> <footer style="border-top: 8px solid var(--ha-primary); background: var(--ha-bg); margin-top: 6rem; padding: 3rem 2rem;"> <div style="max-width: 1280px; margin: 0 auto; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 1.5rem;"> <div style="display: flex; flex-direction: column; gap: 0.25rem;"> <span class="ha-headline" style="font-size: 0.65rem; font-weight: 900; text-transform: uppercase; letter-spacing: 0.15em; color: var(--ha-text-dim);"> © 2026 changelogs.info / Hermes Agent </span> <span style="font-family: var(--ha-font-mono); font-size: 0.6rem; color: var(--ha-text-muted);"> DATA FROM OFFICIAL GITHUB RELEASES </span> </div> <div style="display: flex; gap: 2rem; flex-wrap: wrap;"> <a href="/" class="ha-headline" style="font-size: 0.65rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em; color: var(--ha-text-dim); text-decoration: none; transition: color 150ms;" onmouseover="this.style.color='var(--ha-primary-bright)'" onmouseout="this.style.color='var(--ha-text-dim)'"> Hub </a><a href="/hermes-agent/changelog/" class="ha-headline" style="font-size: 0.65rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em; color: var(--ha-text-dim); text-decoration: none; transition: color 150ms;" onmouseover="this.style.color='var(--ha-primary-bright)'" onmouseout="this.style.color='var(--ha-text-dim)'"> Changelog </a><a href="/hermes-agent/guide/" class="ha-headline" style="font-size: 0.65rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em; color: var(--ha-text-dim); text-decoration: none; transition: color 150ms;" onmouseover="this.style.color='var(--ha-primary-bright)'" onmouseout="this.style.color='var(--ha-text-dim)'"> Guide </a><a href="https://github.com/NousResearch/hermes-agent" target="_blank" rel="noopener noreferrer" class="ha-headline" style="font-size: 0.65rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em; color: var(--ha-text-dim); text-decoration: none; transition: color 150ms;" onmouseover="this.style.color='var(--ha-primary-bright)'" onmouseout="this.style.color='var(--ha-text-dim)'"> GitHub ↗ </a><a href="/feed/all.xml" class="ha-headline" style="font-size: 0.65rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em; color: var(--ha-text-dim); text-decoration: none; transition: color 150ms;" onmouseover="this.style.color='var(--ha-primary-bright)'" onmouseout="this.style.color='var(--ha-text-dim)'"> RSS </a> </div> <div style="font-family: var(--ha-font-mono); font-size: 0.65rem; color: var(--ha-text-muted); display: flex; align-items: center; gap: 0.5rem;"> <span style="color: var(--ha-primary);">⚡</span> HERMES: ~ </div> </div> </footer> <script type="module">function d(){return getComputedStyle(document.documentElement).getPropertyValue("--tool-primary").trim()||getComputedStyle(document.documentElement).getPropertyValue("--section-color").trim()||"#333333"}function c(){let e=document.getElementById("pt-overlay");return e||(e=document.createElement("div"),e.id="pt-overlay",document.body.appendChild(e)),e}const m=[{sel:".qs-hero__eyebrow",mode:"hero"},{sel:".qs-hero__title",mode:"hero"},{sel:".qs-hero__desc",mode:"hero"},{sel:".qs-hero__badge",mode:"hero"},{sel:".guide-hero__title",mode:"hero"},{sel:".guide-hero__body",mode:"hero"},{sel:".qs-step",mode:"card"},{sel:".qs-milestone",mode:"card"},{sel:".qs-next__title",mode:"card"},{sel:".qs-next__grid",mode:"card"},{sel:".tips-hero__eyebrow",mode:"hero"},{sel:".tips-hero__title",mode:"hero"},{sel:".tips-hero__desc",mode:"hero"},{sel:".tips-section__header",mode:""},{sel:".tips-section",mode:""},{sel:".tips-card",mode:"card"},{sel:".tips-feature",mode:"card"},{sel:".tips-gotcha",mode:"card"},{sel:".tips-recipe",mode:"card"},{sel:".guide-changelog",mode:"card"}];function u(){m.forEach(({sel:t,mode:o})=>{document.querySelectorAll(t).forEach(r=>{if(r.hasAttribute("data-reveal"))return;r.setAttribute("data-reveal",o||"");const n=r.parentElement;if(n){const i=[...n.children].indexOf(r),l=Math.min(i*75,450);r.style.transitionDelay=l+"ms"}})});const e=new IntersectionObserver(t=>{t.forEach(o=>{o.isIntersecting&&(o.target.classList.add("is-visible"),e.unobserve(o.target))})},{threshold:.06,rootMargin:"0px 0px -30px 0px"});document.querySelectorAll("[data-reveal]").forEach(t=>{e.observe(t)})}let a=null,s=!1;document.addEventListener("astro:before-preparation",()=>{if(window.matchMedia("(prefers-reduced-motion: reduce)").matches)return;s=!0;const e=d(),t=c();t.style.backgroundColor=e,t.style.backdropFilter="blur(6px)",a?.cancel(),a=t.animate([{opacity:0,transform:"scale(1.08)"},{opacity:.85,transform:"scale(1.0)"}],{duration:280,easing:"cubic-bezier(0.4, 0, 0.2, 1)",fill:"forwards"})});document.addEventListener("astro:before-swap",()=>{});document.addEventListener("astro:page-load",()=>{if(u(),!s)return;s=!1;const e=document.getElementById("pt-overlay");if(!e)return;const t=d();e.style.backgroundColor=t,requestAnimationFrame(()=>{requestAnimationFrame(()=>{a?.cancel(),a=e.animate([{opacity:.85,transform:"scale(1.0)"},{opacity:0,transform:"scale(0.95)"}],{duration:600,easing:"cubic-bezier(0.0, 0, 0.2, 1)",fill:"forwards"})})})});</script> </body></html>