Hermes merged 78 PRs on September 11
The ones worth knowing:
• Multiplex isolation hardens: secondary profiles stop inheriting the default bot's bearer, allowlists, vault secrets, and host identity
• MEDIA: delivery under multiplex can no longer attach another profile's .env, auth.json, or state.db
• state.db stops wedging on healthy WALs, corrupt rows, and FTS damage; doctor/repair handle real incident shapes
• Desktop Bot Mode and roster hover no longer spawn a backend per profile or per row
• Pooled remote profile clicks no longer storm reconnects while the VPS backend cold-starts
• Guided first launch ships behind HERMES_GUEST_ONBOARDING, with free-tier chip badge polish
• Bedrock Claude and Converse models survive /model, fallback, and restore on one runtime binder
• Bedrock Guardrails enforce on the Claude route; blocks surface as refusals
• Native DeepSeek Flash keeps 1M context and vision without a config pin
• OpenRouter :nitro/:floor variants resolve their base model's context window
• Compression model_thresholds can be scoped per provider so Codex Astra's 0.85 no longer leaks onto OpenRouter/Nous
• Release v0.21.2 lands (2026.9.11)
Here is the full list:
DESKTOP IMPROVEMENTS (25 PRs)
• fix(desktop): qualify group (you) by connection, not bare profile name
• fix(desktop): stage group-chat PDFs as workspace files
• Desktop: open bot tiles no longer cold-start or pin pooled backends from the background
• fix(serve): the backend exits when its Desktop parent dies instead of living forever
• Desktop: an expired remote OAuth session no longer flickers the Sign-in overlay
• fix(desktop): older session history stays reachable across scope spellings and backends
• fix(desktop): preserve local provider identity across new chats
• fix(desktop): recover trapped sidebars and keep titlebar controls clickable
• fix(desktop): republish composer clearance after an effect replay
• and more…
DEVELOPER TOOLS & PLUGINS (15 PRs)
• fix(bootstrap-installer): stamp setup app version from release semver
• fix: update checks poll the GitHub API once a day instead of git-fetching every 30 min
• test(auth): fix main-red anon-auth fixture after the per-profile token memo
• main is green again: anon-auth fixture resets the token memo to its dict shape
• fmt(js): `npm run fix` auto-fix (5x)
• fix: update errors name the real cause; hermes update can't hang on a stalled fetch; shallow grafts pruned
• feat(compression): model_thresholds keys can be scoped to one provider (Codex Astra no longer leaks its 0.85 onto OpenRouter/Nous)
• and more…
SECURITY & SECRETS (10 PRs)
• fix(gateway): MEDIA: delivery can no longer attach another profile's .env / auth.json / state.db under multiplex
• fix(auth): secondary profiles no longer get a sibling profile's Nous bearer from per-process memos under multiplex
• fix(gateway): secondary-profile bots no longer inherit the default profile's allow-all / allowlists
• and more…
INTEGRATIONS & CHAT (11 PRs)
• feat(wisdom): add Hermes Collective Wisdom Agent V1
• fix(relay): honor explicit profile disable before relay startup
• fix(feishu): secondary-profile drive-comment turns and SDK callbacks no longer run under the launch profile
• Bedrock Claude and Converse models survive /model, fallback and restore (one runtime binder for all wires)
• feat(relay): pass API request metadata to Relay tracking
• Guided first launch behind HERMES_GUEST_ONBOARDING: intro, guided chat, first task in default (NS-848, PR B1)
• and more…
STABILITY & FIXES (17 PRs)
• fix(sessions): a lost WAL generation is captured durably before shutdown settles; 3.11 retires the handle unclosed
• fix(gateway): /p// webhook replies and api_server callbacks stay on the routed profile
• fix(gateway): secondary-profile send_message, notices and /loop wakeups no longer post through the default bot
• fix(terminal): remote NOPASSWD sudo no longer prompts for a password
Hermes merged 69 PRs on September 10
The ones worth knowing:
• Nous free tier ships: free inference and connectors out of the box, created once at boot only behind HERMES_GUEST_ONBOARDING=1
• Sign in with a Nous account from chat via /login, one shared flow
• Vault two-factor codes: automatic from a saved authenticator key, otherwise asked for in your UI
• Agent signs in, pays, and fills addresses from 1Password, Bitwarden, or the local vault, password-blind on every browser backend
• DeepSeek V4.1 Flash lands on the Nous Portal and OpenRouter pickers
• Plugins: pin to a commit from Desktop, install private git repos with stored credentials, one Plugins page under Capabilities
• Radio ships as an opt-in SDK plugin, with credits linking to artist profiles
• /model onto Bedrock Mantle OpenAI models no longer 401s (SigV4 survives client rebuilds)
• Desktop login-shell PATH probe settles on timeout so Linux boot cannot hang
• Bot DMs carry their sender into the recipient turn; ALLOW_BOTS chats get a loop guard
• archify appears in the optional-skills catalog, content pulled live from upstream
• In-app tips show once each instead of re-appearing every six hours
Here is the full list:
DESKTOP IMPROVEMENTS (21 PRs)
• feat(desktop): Nous free tier on Hermes Desktop
• fix(desktop): settle the login-shell PATH probe and kill the probe child on timeout
• fix(desktop): in-app tips show once each instead of re-appearing every six hours
• fix(desktop): idle HUD/popout windows no longer refuse drive_preview for the active session
• fix(desktop): Hyprland HUD floats even when j/clients lags the first map
• fix(desktop): HUD mode shows the transcript again
• fix(desktop): hide fixed titlebar clusters on contributed full pages
• fix(desktop): leaving HUD mode always gives the app window back
• fix(desktop): model picker keeps the (provider, model) pair; a shared id on OpenRouter no longer rewrites the pick
• Desktop Telegram setup: no stale 'No bot token' error, QR quick setup + restart banner ported from the dashboard, gateway restart no longer bails on linger
• fix(desktop): Windows update no longer reports a healthy install as a missing Desktop exe
• fix(desktop/settings): searchable-select popover sized to content, not the shrink-wrapped trigger
• feat(desktop): integrate panel tabs into the titlebar
• fix(desktop): make native notifications reveal their session tab
• feat(desktop): link radio credits directly to artist profiles
• fix(desktop): restore Cmd/Ctrl+Enter in clarify forms
• feat(desktop): show more recent sessions in project grouping
• fix(desktop): keep artifact links at the bottom of the status stack
• fix(desktop): keep settings search opaque under Glass
• fix(desktop): wait for session discovery without discarding queued prompts
• fix(desktop): collapse composer status groups except todos
VOICE & REAL-TIME (1 PRs)
• fix(desktop): auto-TTS reads a reply once while the HUD is open
DEVELOPER TOOLS & PLUGINS (18 PRs)
• fix(desktop): resolve plugin SDK namespaces lazily so disk plugins load in production builds
• fmt(js): `npm run fix` auto-fix (11x)
• feat(skills): archify appears in the optional-skills catalog, content pulled live from upstream
• feat(desktop): Plugins is one row per plugin; desktop halves are app-level, never profile-scoped
• feat(plugins): pin a plugin to a commit from Desktop, pins shown in every list
• refactor(desktop): one Plugins page under Capabilities, owns agent + desktop plugins, install, and the catalog
• feat(plugins): private git repos install with the user's stored credentials
• feat(desktop): ship Radio as an opt-in SDK plugin
SECURITY & SECRETS (4 PRs)
• feat(vault): two-factor codes: automatic from a saved authenticator key, otherwise asked for in the user's UI
• feat: agent signs in, pays and fills addresses from 1Password/Bitwarden/local vault: zero setup, password-blind on every browser backend
• fix(relay): accept a provision response that issues no secret
• fix(desktop): exclude expired Windows trust roots with real-certificate coverage
INTEGRATIONS & CHAT (15 PRs)
• The free tier is created in one place, at boot, only behind HERMES_GUEST_ONBOARDING=1
• feat(gateway): sign in with a Nous account from a chat (/login), one shared sign-in flow
• fix(auth): a sign-in from the free tier settles the default model and route
• feat(auth): Nous free tier: free inference and connectors out of the box, one command to sign in
• fix(providers): use chat completions for all Actual routes
• /model onto Bedrock Mantle OpenAI models no longer 401s (SigV4 survives client rebuilds)
• feat(honcho): each turn is written under its author's peer; bot DMs get their own session
• feat(bot-mode): bot DMs carry their sender into the recipient's turn; ALLOW_BOTS chats get a loop guard
• feat(models): DeepSeek V4.1 Flash on the Nous Portal and OpenRouter pickers
• fix(routing): /model and auxiliary auto never bill a provider the user did not select (Astra to OpenRouter, Grok to Nous)
• DeepSeek provider no longer rewrites custom model ids
• fix(models): never auto-switch to a provider the user has no credentials for; keep session custom endpoints; ACP explicit prefix wins
• fix(models): /model keeps a model the current provider serves; deepseek-flash is DeepSeek's canonical Flash id
• fix(metadata): GLM context windows from the live catalog; hyphenated slugs, entry-level overrides, aux inherits main pin
• fix(dashboard-auth): offer every configured provider in native sign-in
STABILITY & FIXES (10 PRs)
• fix(gateway): long-session 400 envelope gets the /compact reply, other failures keep their text
• Hidden seed rows stay out of search, a partial seed copy is rolled back, live resume counts the wire
• Seeded sessions survive a gateway restart and store their seed once
• Subagent roster and controls survive prompt-driven reconnects
• fix(bot-mode): relay waiter outlives the Desktop deliver deadline
• fix: join delegated work before finite chat exits
• fix(agent): stop background reviews creating phantom plugin sessions
• fix(sessions): a stale explicit-close stamp no longer wedges compression
• fix(cron): bare-platform home deliveries are continuable
• test(gateway): make 7 macOS-failing gateway tests host-honest
nitter.cf/iamlukethedev/status/2…
multiplex isolation hardens are huge. secondary profiles leaking bearer + vault secrets is the kind of silent bug that kills trust — good to see that sealed properly
Sep 12, 2026 · 8:21 AM UTC