# NousResearch/hermes-agent · Kanban WS disconnect leaks poll tasks, CPU saturation

## Open now

- Nothing open on GitHub.

These items address a bug where disconnected WebSocket clients on idle Kanban boards leave orphaned polling tasks that saturate the executor pool and cause sustained high CPU usage. Related work bundles additional idle and polling CPU fixes across desktop UI components.

## TL;DR

- 3 member(s): 0 open issue(s), 1 closed issue(s), 0 open PR(s), 1 merged PR(s), 1 PR(s) closed without merging.
- A fix was merged to main in PR #86754. Verify it addresses your case.
- **Recommended:** read PR #86754 (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: `resolved` · deciding PR(s): `pr-86754`. This is distinct from the fix status above. Weigh it yourself.

## How this cluster was grouped

- Link evidence (`STRUCTURAL_SPANNING`): every member is connected by structural evidence: shared changed files, or a closing/superseded reference.
- Pairwise link density `0.67`: 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.

## Closed / duplicate issues

- #77833: \[Bug\] Kanban event-stream WS handler leaks poll tasks on client disconnect — executor pool saturates, sustained 100%+ CPU

## Prior & competing PRs

- **#86754: perf(desktop/dashboard): salvage idle & polling CPU fixes — unfocused UI pause, sidebar scan bounds, pet poll, PTY back-off, kanban WS zombie reap**. merged to main · fix tier `verified`
  - maintainer direction: category `merged`
  - files: `apps/desktop/src/app/contrib/hooks/use-background-sync.test.ts`, `apps/desktop/src/app/contrib/hooks/use-background-sync.ts`, `apps/desktop/src/app/shell/hooks/use-status-snapshot.test.ts`, `apps/desktop/src/app/shell/hooks/use-status-snapshot.ts`, `apps/desktop/src/components/assistant-ui/thread/status.test.tsx`, `apps/desktop/src/components/chat/activity-timer.test.tsx`, `apps/desktop/src/components/chat/activity-timer.ts`, `apps/desktop/src/hooks/use-viewed-interval.ts`, `apps/desktop/src/lib/statusbar.tsx`, `contributors/emails/[redacted:email]`, `contributors/emails/[redacted:email]`, `contributors/emails/{ID}+{username}@users.noreply.github.com`, `hermes_cli/web_routers/profiles.py`, `hermes_cli/web_server.py`, `plugins/kanban/dashboard/plugin_api.py`, `tests/hermes_cli/test_cron_profile_enumeration_lightweight.py`, `tests/hermes_cli/test_profiles_sidebar_cache.py`, `tests/hermes_cli/test_web_server_pty_idle_backoff.py`, `tests/plugins/test_kanban_ws_idle_disconnect.py`, `ui-tui/src/__tests__/petPolling.test.ts` (+2 more)
- **#77884: fix(kanban): detect WS client disconnect on idle board, prevent zombie poll tasks**. closed without merge
  - maintainer direction: category `merged_via`; implication `superseded`; refs `#86754`

## Fix status

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