Hermes merged 54 PRs on November 3
The ones worth knowing:
- Cron jobs can now post into Group Chats and only wake the bots they
@mention, and rooms get a purpose and shared notes
- Group Chat rooms now look like the native chat and show each bot's live state
- Opt-in lead routing lands for Group Chats
- Bot group chats can seat bots from different machines again
- Pin Kanban boards as quick-switch tabs in Desktop
- A failed Desktop update now shows what went wrong, with a support link in the same box
- The Claude subscription plugin lists your account's own models, Mythos 5.1 included, and Claude Mythos is treated as mandatory thinking
- Claude subscription errors now include the upstream request ID
- MCP OAuth login works even when its issuer differs only by a trailing slash
- The Windows installer no longer gets stuck on a half-installed Git
- Approval rules got tighter around credential uploads and stray variation selectors
- A batch of security alerts cleared across undici, zod, qs, pypdf, tornado and more
Here is the full list:
DESKTOP IMPROVEMENTS (13 PRs)
- fix(desktop): keep one tool row per call when events repeat or ids are reused
- fix(desktop): keep notarizing through dropped connections to Apple
- feat(desktop): Web Access Start shows its step and elapsed time
- Desktop no longer warns that a closed local app's MCP server failed its health check
- Desktop: a failed update shows what went wrong and gets a support link in the same box
- fix(desktop): negotiate the session-authority wire on public remote connections
- fix(desktop): move macOS traffic lights closer to the window edge
- feat(desktop): pin Kanban boards as quick-switch tabs
- fix(desktop): support older gateways in Quick Entry
- Windows installer no longer gets stuck on a half-installed Git ("INSTALL DIDN'T FINISH")
- fix(bundles): refuse a macOS update ZIP with entries lacking owner write
- fix(bundles): bake pycs owner-writable so Squirrel.Mac updates install
- fix(bundles): keep uv's wheel links from the payload cache to the machine cache
VOICE & REAL-TIME (3 PRs)
- fix(discord): probe for libopus once, off the event loop
- fix(setup): offer Edge TTS voice selection without resetting the current voice
- test(install-e2e): journeys turn STT off so an old release's boot probe cannot stall the send
DEVELOPER TOOLS & PLUGINS (14 PRs)
- Optional skills that the MCP catalog, catalog plugins, built-in web search or vendor skill repos cover are removed
- Catalog installs of the Claude-subscription plugin now list the account's own models, Mythos 5.1 included
- fix(pm): bind the core package for plugin extras that name it
- fix(pm): a virtual plugin's own-extra references follow its workspace rename
- fix(pm): leave out a carried extra that no longer builds instead of failing every update
- fix(pm): default a CMake policy floor into uv source builds so python-olm builds under CMake 4
- fix(pm): plugin dev/test extras and dependency groups no longer fail the update lock
- fix(pm): build native sdists with gcc/g++ when the pinned Python's clang is missing
- fix(pm): `pm install --without EXTRA` drops a carried extra (matrix) and keeps it dropped
- fix(pm): a tooling-only plugin pyproject no longer hides plugin.yaml dependencies
- fix(pm): ignore desktop metadata files without hiding package payloads
- test(pm): patch registry package classes, not their singletons
- fix(hooks): expose the owning Kanban task id in hook payloads
- chore(plugins): pin birkin-mnemosyne to core 0.9.0
SECURITY & SECRETS (4 PRs)
- fix(deps): clear release-age-eligible security alerts (undici, zod, fast-uri, qs, pypdf, pyasn1, tornado, filelock, setuptools)
- fix(approval): an approved rule no longer hides a credential upload
- fix(approval): flag variation selectors that do not follow an emoji
- fix(approval): credential-upload rule only counts curl/wget upload flags
INTEGRATIONS & CHAT (10 PRs)
- feat(bots): cron jobs post into Group Chats (wake only who they
@mention); rooms get a purpose and shared notes
- feat(bots): group rooms look like the native chat and show each bot's live state
- feat(bots): opt-in lead routing for Group Chats
- fix(desktop): Bot group chats can seat bots from different machines again
- fix(bot-mode): relaunch no longer pins "Hermes gateway is not connected" in the Bots pane
- Hermes Cloud: the Telegram card points to setup that works on Team Gateway (Portal linking for managed agents, /link codes otherwise)
- fix(mcp): OAuth login completes when its issuer differs only by the root trailing slash
- Claude subscription errors now include the upstream request ID (catalog re-pin)
- fix(anthropic): treat Claude Mythos as mandatory-thinking
- fix(gateway): deliver settled replies before releasing turn media
STABILITY & FIXES (10 PRs)
- fix(session): browse recent sessions with a ten-result default
- fix(delegation): reserve child transcripts before publishing session IDs
- fix(profiles): keep existing profile dirs when a force install fails
- fix(web): run config schema build and egress status read off the event loop
- test: serve external services from fixtures and fence every off-machine host
- ci(js): drop vitest's run history from the cached node_modules
- ci: remove the Intel macOS CI and release legs
- ci: run macOS arm64 bundle, smoke and install E2E jobs on Blacksmith
- perf(ci): fork Linux test files from a preloaded pytest server, 3 Linux slices, warm Windows PowerShell and Git caches
- docs(ci): document every workflow's triggers, skips and release paths
54 new features and fixes