What's new in v0.50.21
Full live streaming experience + reload recovery
This release completes the live streaming improvements started in v0.50.20.
Live reasoning cards — while the agent is thinking, the placeholder spinner upgrades to a live reasoning card (lightbulb icon + scrollable text) that updates in real time as reasoning tokens arrive. Models that emit reasoning via the reasoning_callback or through tool progress events both work.
Tool completion events — live tool cards transition cleanly from "running" to "done" as each tool finishes. The backend now accepts both the old 3-arg (name, preview, args) callback form and the new 4-arg (event_type, name, preview, args) form.
Session state preserved across switches — switching to another chat and back no longer loses partial assistant output or live tool cards. The active thread is the source of truth; INFLIGHT state is mirrored on every token.
Durable reload recovery — if you reload the page mid-stream, the session reconnects to the live SSE stream and the partial messages, reasoning text, and live tool cards are all restored. Backed by localStorage (hermes-webui-inflight-state), per-session, 10-minute TTL. Snapshots saved on every token/tool event, cleared on completion/error/cancel.
Session-scoped message queue — queued follow-up messages stay attached to their originating session and don't bleed across chats.
Todos survive session reload — the Todo panel reads from the raw session messages (including tool outputs) rather than the filtered display set.
961 tests | Full changelog