# NousResearch/hermes-agent · UI stuck in running/thinking state after turn ends

## Open now

- 2 issues, 1 PR open on GitHub.
- #19543: Bug: Web UI chat does not auto-refresh new messages and running status stays stuck
- #46517: \[Bug\]: TUI (Desktop App) shows "Running Code..." indicator indefinitely after session has completed
- PR #50644: fix(tui): ignore stale idle inflight on session activate

A cluster of bugs and fixes around chat, todo, and thinking indicators remaining in active/spinning states after assistant turns complete, affecting desktop, mobile, TUI, and dashboard surfaces. Fixes address stale UI state, reconnection recovery, session watchdog healing, and turn-end synchronization.

## TL;DR

- 17 member(s): 2 open issue(s), 5 closed issue(s), 1 open PR(s), 3 merged PR(s), 6 PR(s) closed without merging.
- A fix was merged to main in PR #65239. Verify it addresses your case.
- **Recommended:** read PR #65239 (and any competing PRs below) before filing. Confirm the merged change covers your symptom.

## Maintainer resolution verdict

- Internal-tracker verdict over this cluster's issue members: `partially_resolved` · deciding PR(s): `pr-65239`. This is distinct from the fix status above. Weigh it yourself.

## How this cluster was grouped

- Link evidence (`STRUCTURAL_PARTIAL`): some members are connected by structural evidence (shared changed files, or a closing/superseded reference); the rest are joined by an automated relevance judgement over their text.
- Members outside that structural core may belong to a different underlying problem.
- Pairwise link density `0.09`: the share of member pairs that carry a link, counting a structural link in full and a relevance-only link at 0.36. `1.00` means every pair is linked.

## Open related issues

- #19543: Bug: Web UI chat does not auto-refresh new messages and running status stays stuck
- #46517: \[Bug\]: TUI (Desktop App) shows "Running Code..." indicator indefinitely after session has completed

## Closed / duplicate issues

- #38371: \[Bug\]: Mobile web UI stays stuck in “generating” after Codex finishes when returning from background
- #42662: \[Bug\]: Desktop todo panel shows archived in_progress items as still running after the assistant turn has completed
- #50159: \[Bug\]: Desktop stays stuck on stale "Thinking" state after turn completes and transcript is persisted
- #59344: Dashboard UI: /reset leaves chat section stale requiring refresh
- #61820: Desktop todo list stays 0/N after work is done (stale UI)

## Prior & competing PRs

- **#42666: fix(desktop): stop spinning animation on archived in_progress todo items**. closed without merge · fix tier `suggested`
  - maintainer direction: category `implemented_elsewhere`; implication `superseded`; refs `d62979a6f`
  - _suggested-tier fix detail withheld; re-request with `?tier=all` to include it._
- **#42669: fix(desktop): stop archived todo rows from looking live after turn completion**. closed without merge · fix tier `suggested`
  - maintainer direction: category `implemented_elsewhere`; implication `superseded`; refs `3e21cfdebbf790e3b2a89b01084a8aa86914c9a5`
  - _suggested-tier fix detail withheld; re-request with `?tier=all` to include it._
- **#65239: fix(dashboard): redraw TUI after fresh session**. merged to main · fix tier `verified`
  - maintainer direction: category `merged`; implication `superseded`
  - files: `ui-tui/src/__tests__/createSlashHandler.test.ts`, `ui-tui/src/__tests__/useSessionLifecycle.test.ts`, `ui-tui/src/app/useMainApp.ts`, `ui-tui/src/app/useSessionLifecycle.ts`
- **#86923: fix(desktop): arm the turn progress timer at submit instead of waiting for message.start**. merged to main · fix tier `verified`
  - maintainer direction: category `merged`; implication `superseded`
  - files: `apps/desktop/src/app/session/hooks/use-message-stream/gateway-event.ts`, `apps/desktop/src/app/session/hooks/use-prompt-actions/index.test.tsx`, `apps/desktop/src/app/session/hooks/use-prompt-actions/submit.ts`
- **#87234: fix(desktop): settle no-payload turns via turnLive discriminator (salvage #74163)**. merged to main · fix tier `verified`
  - maintainer direction: category `merged`; implication `superseded`
  - files: `apps/desktop/src/app/contrib/hooks/use-background-sync.ts`, `apps/desktop/src/app/session/hooks/use-message-stream/gateway-event.ts`, `apps/desktop/src/app/session/hooks/use-message-stream/index.ts`, `apps/desktop/src/app/session/hooks/use-message-stream/session-info-side-effects.test.tsx`, `apps/desktop/src/app/session/hooks/use-prompt-actions/index.ts`, `apps/desktop/src/app/session/hooks/use-session-actions.test.tsx`, `apps/desktop/src/app/session/hooks/use-session-actions/index.ts`, `apps/desktop/src/app/types.ts`, `apps/desktop/src/lib/chat-runtime.ts`
- **#46572: fix(desktop): settle idle turns missing assistant payload**. closed without merge
  - maintainer direction: category `implemented_elsewhere`; implication `superseded`; refs `#87234`, `#74163`
- **#50644: fix(tui): ignore stale idle inflight on session activate**. open
  - maintainer direction: category `uncategorized`; implication `needs_llm`; refs `5ff11a689b561fdb`
  - files: `tests/test_tui_gateway_server.py`, `tui_gateway/server.py`
- **#53665: fix(desktop): settle in-progress todo spinner when turn ends**. closed without merge
  - maintainer direction: category `superseded_by_pr`; implication `superseded`; refs `3e21cfdebbf790e3b2a89b01084a8aa86914c9a5`, `#61820`
- **#59932: fix(dashboard): clear xterm terminal buffer on /reset (#59344)**. closed without merge
  - maintainer direction: category `implemented_elsewhere`; implication `superseded`; refs `#65239`, `#59344`
- **#74163: fix(desktop): settle a turn that ends with no assistant payload**. closed without merge
  - maintainer direction: category `merged_via`; implication `superseded`; refs `b0f371e8f`, `#87234`, `#86923`

## Fix status

- Merged to main in PR #65239 (cited above). No release data is tracked. Verify downstream.
- Fix last verified (merged) `2026-08-15`.
- Subsystem: `apps/desktop`
