This release adds 2 notable features for engineering teams evaluating rollout.
✓ No known CVEs patched in this version
Topics
+10 more
Affected surfaces
ReleasePort's take
Moderate signalThe Docker dashboard --insecure flag now requires the explicit env var HERMES_DASHBOARD_INSECURE=1. This change eliminates implicit insecure behavior.
Why it matters: If you rely on automatic insecure mode, update your deployment scripts to set HERMES_DASHBOARD_INSECURE=1; otherwise dashboards will fail with severity 70 breaking change.
Summary
AI summaryBroad release touches Community, ✨ Highlights, Docker, and Dashboard / Web.
Changes in this release
| Type | Severity | Summary | CVE |
|---|---|---|---|
| Breaking | High |
Docker dashboard --insecure now requires explicit env var HERMES_DASHBOARD_INSECURE=1 Docker dashboard --insecure now requires explicit env var HERMES_DASHBOARD_INSECURE=1 Source: llm_adapter@2026-05-29 Confidence: high |
— |
| Feature | Low |
Skills page now displays full 19,932‑entry skills.sh catalog via sitemap crawl Skills page now displays full 19,932‑entry skills.sh catalog via sitemap crawl Source: llm_adapter@2026-05-29 Confidence: high |
— |
| Feature | Low |
/yolo mid‑session enables per‑session bypass instead of toggling env var only /yolo mid‑session enables per‑session bypass instead of toggling env var only Source: llm_adapter@2026-05-29 Confidence: high |
— |
| Feature | Low |
/model and hermes model CLI commands show identical skill list with disk cache /model and hermes model CLI commands show identical skill list with disk cache Source: llm_adapter@2026-05-29 Confidence: high |
— |
| Feature | Low |
Hindsight default narrowed to observation‑only for recall_types and tool path Hindsight default narrowed to observation‑only for recall_types and tool path Source: granite4.1:30b@2026-05-29-audit Confidence: low |
— |
| Feature | Low |
Memory providers receive completed‑turn message context Memory providers receive completed‑turn message context Source: granite4.1:30b@2026-05-29-audit Confidence: low |
— |
| Bugfix | Medium |
Dashboard 401 reload loop fixed in loopback mode Dashboard 401 reload loop fixed in loopback mode Source: llm_adapter@2026-05-29 Confidence: high |
— |
| Bugfix | Medium |
MCP bare commands resolve against /usr/local/bin in Docker containers MCP bare commands resolve against /usr/local/bin in Docker containers Source: llm_adapter@2026-05-29 Confidence: high |
— |
| Bugfix | Medium |
Kanban worker SIGTERM reliably terminates the process Kanban worker SIGTERM reliably terminates the process Source: llm_adapter@2026-05-29 Confidence: high |
— |
| Bugfix | Medium |
`.md` files are delivered again by media‑delivery validation `.md` files are delivered again by media‑delivery validation Source: llm_adapter@2026-05-29 Confidence: high |
— |
| Bugfix | Medium |
Gateway probe stepdown safety prevents context‑overflow model downgrade Gateway probe stepdown safety prevents context‑overflow model downgrade Source: llm_adapter@2026-05-29 Confidence: high |
— |
| Bugfix | Medium |
Web URLs pass through unchanged by redactor (previously stripped credential‑shaped query params) Web URLs pass through unchanged by redactor (previously stripped credential‑shaped query params) Source: llm_adapter@2026-05-29 Confidence: high |
— |
| Bugfix | Low |
Kanban workers receive images referenced in task bodies for vision models Kanban workers receive images referenced in task bodies for vision models Source: granite4.1:30b@2026-05-29-audit Confidence: low |
— |
Full changelog
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,
/modelpicker unification,/yolosession bypass, the full 19,932-entry skills.sh catalog,.mdmedia delivery restoration, gateway probe-stepdown safety, web-URL redaction passthrough, kanban worker vision on referenced images, hindsight observation-default. Docker users get an explicit--insecureopt-in env var (no more bind-host inference), MCP server bare-command PATH resolution, and arm64 PR-build cache fixes.
✨ Highlights
-
Dashboard 401 reload loop fixed — In loopback mode the dashboard's identity probe (
/api/auth/me) 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 anallowUnauthorizedopt-out tofetchJSONthat skips only the loopback stale-token reload — 401 still throws soAuthWidgetswallows it, gated-modelogin_urlredirects are unaffected. Closes #34206, #34202. (#30698 — @austinpickett) -
Docker dashboard
--insecureis now an explicit env opt-in, never derived from bind host — Previously the Docker entrypoint inferred--insecurewhen 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 explicitHERMES_DASHBOARD_INSECURE=1. Existing setups that genuinely wanted insecure binding must now set the env var. (#34188, #34204 — @benbarclay) -
MCP bare command resolution under Docker — MCP servers configured with bare commands (
npx,npm,node) now resolve against/usr/local/binso 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. (#34186 — @benbarclay) -
Skills page sidebar / source pills restored — A stale
useMemodependency 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. (#34194) -
Kanban worker can be killed again —
SIGTERMon a kanban worker was being absorbed by an intermediate process and the worker stayed running. Closes #28181. (#34045) -
Full skills.sh catalog (858 → 19,932 entries) — 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. (#34025)
🐛 Bug Fixes
Dashboard / Web
/api/auth/me401 no longer triggers reload loop in loopback mode — (#30698 — @austinpickett)- Skills page source pills + category sidebar restored — stale
useMemodep (#34194)
Docker
--insecureis now explicit opt-in via env var, not derived from bind host (#34188 — @benbarclay)- Dashboard test suite repaired to match the insecure-opt-in fix (#34204 — @benbarclay)
- arm64 PR builds skip the GHA cache to avoid cache-thrash on cross-arch builders (#33704 — @BROCCOLO1D)
MCP
- Bare
npx/npm/noderesolve against/usr/local/binfor Docker compatibility (#34186 — @benbarclay)
Kanban
- Worker SIGTERM actually terminates the process (#34045)
- Workers receive images referenced in task bodies for vision-capable models (#34210)
Gateway
.mdfiles deliver again — media-delivery validation defaults to denylist-only instead of an overly-narrow allowlist (#34022)- Probe stepdown safety — 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 #33673) (#33826)
CLI
/yolomid-session enables the per-session bypass instead of just toggling the env var (which the running agent had already snapshotted) (#33931 — @kshitijk4poor)/modelandhermes modelshow the same list, plus disk cache for picker startup (#33867)
Skills
- Full skills.sh catalog via sitemap — 858 → 19,932 entries (#34025)
Redaction
- Web URLs pass through unchanged — the redactor was eating query parameters that looked credential-shaped (#34029)
✨ Small Features
- Hindsight default narrowed to observation-only for
recall_types— tool path is also narrowed (#34079 — @nicoloboschi, follow-up #34091 — @kshitijk4poor) - Memory providers receive completed-turn message context — salvage of #28065 (#34097 — @kshitijk4poor, credit to @devwdave)
📚 Documentation
--no-supervise/HERMES_GATEWAY_NO_SUPERVISEdocumented in the reference docs (follow-up to #33583) (#33751 — @r266-tech)
🛠️ Infrastructure
- Vercel deploy workflow accepts
workflow_dispatchso docs deploys can be manually triggered (#34081) @nous-research/uibumped to 0.18.2 (NixnpmDepsHashalso updated to match) (#34193 follow-ups — @austinpickett)
👥 Contributors
Core
- @teknium1
Community
- @austinpickett — dashboard 401 reload-loop fix (the headline),
@nous-research/uibump, NixnpmDepsHashupdates - @benbarclay — Docker
--insecureopt-in, MCP bare-command resolution, dashboard test repair - @kshitijk4poor —
/yolosession bypass, completed-turn memory context salvage, hindsight follow-up docs - @nicoloboschi — hindsight
recall_typesobservation default - @BROCCOLO1D — arm64 PR build cache fix
- @r266-tech —
--no-supervisereference docs - @yangguangjin — probe stepdown safety (salvage of @yanghd's #33673)
- @devwdave — completed-turn memory context (credited via salvage)
- @andrewhosf — co-author
Issue Reporters (the 401 loop)
Full Changelog: v2026.5.28...v2026.5.29
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
Related context
Related tools
Beta — feedback welcome: [email protected]