← All updates
2026-05-14 Risk note Watch

Hermes’ latest reliability cluster is about disappearing Web UI streams, failed compression, vision fallbacks, and dashboard auth

The most reader-useful Hermes cluster in this window is about keeping visible state aligned with model state. Issue #25583 reports Web UI SSE disconnects that can make a fully rendered assistant reply vanish, briefly show content from another session, or render raw Python content-block JSON as chat text because the run event queue is destroyed when the browser stream drops while the agent is still running. Issue #25585 and PR #25588 address a more dangerous model-state failure: automatic context compression used to insert a static “summary unavailable” marker and still drop middle turns when summary generation failed; the fix returns the original messages unchanged and records warning state instead. Issue #25594 says custom providers outside the models.dev registry can receive multipart text+image tool results even when the model is text-only, triggering HTTP 400 errors such as `text is not set`; #25602 asks for dashboard visibility and test controls for auxiliary fallback chains such as vision and compression. Nearby PRs fill in the same reliability theme: #25577 coerces tool args whose schema types are declared through anyOf/oneOf, #25580 moves cloud browser providers into plugins, #25584/#25587 make text fallback choices resolvable on platforms without buttons, and #20515 gates dashboard HTML/assets and WebSockets behind Tailscale identity allowlists when configured.

ImpactEmerging Sources3 Audienceoperator · developer · team
Why it matters

Agents that look fine in the transcript can still lose model-facing context or mix sessions under the hood. Web UI stream recovery, compression failure behavior, multimodal capability detection, and dashboard auth are not glamorous, but they decide whether a long-running Hermes deployment can be trusted after network drops and provider failures.

Evidence
  • Issue #25583 says `_handle_run_events()` removes the run stream in `finally`, so browser SSE drops can destroy the queue while the agent is still running and cause dropped events or wrong rendering
  • Issue #25585 documents failed compression dropping middle turns despite no generated summary; PR #25588 changes compression to return original messages unchanged and record warning metadata
  • Issue #25594 reports custom providers receiving multipart vision tool results and failing with HTTP 400 `text is not set` because capability detection is missing
  • Issue #25602 proposes dashboard controls to see, switch, and test auxiliary fallback chains for base, vision, compression, web extract, and session search models
  • PR #25577 adds regression tests for anyOf/oneOf schema coercion; PRs #25584 and #25587 repair text-choice clarify fallback on non-button channels
  • PR #20515 unifies dashboard HTTP/WebSocket auth and supports Tailscale identity allowlists
Risk notes
  • Several items are open issues or PRs, so deployments may still have the old behavior
  • SSE recovery bugs can be hard to reproduce without real disconnects, tab switches, or mobile sleep
  • Fallback dashboards are useful only if they show actual runtime decisions, not just configured YAML