Hermes merged 88 PRs on August 27
DESKTOP IMPROVEMENTS (16 PRs)
• fix(desktop): Cronjobs pane collapses to a ribbon instead of vanishing (salvage #
95956#)
• fix(desktop): spare durable rows when a sibling backend still holds the lease (supersedes #
65059#)
• fix(model): coerce numeric custom provider names so Desktop can assign them
• fix(serve): write machine sentinels to real fd 1 so the desktop handshake survives the stdout redire...
VOICE & REAL-TIME (6 PRs)
• fix(desktop): gate transcript budget cap so Show earlier works (supersedes #
87686#)
• feat(wecom): native reply streaming — typing bubble, per-turn isolation, dedup-safe delivery (salvag...
• fix(sessions): don't let the empty-session sweep delete an archived transcript
• fix(desktop/sessions): legacy NULL-owner session migration — single-match owner backfill + read-only...
DEVELOPER TOOLS & PLUGINS (18 PRs)
• fix(cli): keep journey labels readable
• fix(desktop): a Bots-pane click keeps the open bot chat focused (#
96062#, salvage #
96120#)
• state.db journal mode has one owner: repair re-applies it, delegation guests stop flipping it (salva...
• fix(gemini): embed images in Gemini 3.x for multimodal tool results
SECURITY & SECRETS (2 PRs)
• chore: AUTHOR_MAP — shauneccles (#
95433#) + fedosis (#
94996#)
• fix(desktop): recover cloud auth through portal
INTEGRATIONS & CHAT (11 PRs)
• fix(gateway): size systemd TimeoutStopSec from the full stop budget incl. the cron drain floor (salv...
• fix(tui-gateway): a reconnected session no longer dies to the old socket's disconnect teardown (#
771#...
• fix(gateway): keep sessions.json route when startup recovery succeeds with the same session id (salv...
• fix(gateway): preserve exception type when error string is empty — stop duplicate delivery on httpx ...
STABILITY & FIXES (35 PRs)
• fix(cron): make a recurring job stuck in state=error recoverable again
• fix(compression): dedupe current-turn rows when rotation splits the session mid-turn
• fix(compression): retry a stalled summary on the fallback chain (#
78981#)
• fix(bot-mode): deliveries no longer break on Docker/remote terminal backends (salvage #
95603#)