# NousResearch/hermes-agent · TUI input freezing and signal handling issues

## Open now

- 1 issue, 2 PRs open on GitHub.
- #53362: TUI Python process pegs CPU at 99% and becomes unresponsive — /stop, Ctrl+C, and keyboard input all ignored
- PR #53381: fix: replace SIG_IGN for SIGINT with two-stage handler in TUI gateway
- PR #127955: fix(tui-gateway): a wedged TUI child can always be ended: SIGINT recovery, EOF exit past stuck threads, SIGKILL escalation (#53362, salvage #53381)

These items concern bugs and fixes related to keyboard input freezing, unresponsive Ctrl+C, and CPU pegging in a TUI process, along with associated fixes for stdin detachment in background subprocesses and SIGINT signal handling.

## TL;DR

- 6 member(s): 1 open issue(s), 1 closed issue(s), 2 open PR(s), 1 merged PR(s), 1 PR(s) closed without merging.
- A fix was merged to main in PR #28315. Verify it addresses your case.
- **Recommended:** read PR #28315 (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-28315`. 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.29`: 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

- #53362: TUI Python process pegs CPU at 99% and becomes unresponsive — /stop, Ctrl+C, and keyboard input all ignored

## Closed / duplicate issues

- #17959: \[Bug\]: Keyboard input freezes completely — Ctrl+C ineffective, terminal must be killed

## Prior & competing PRs

- **#28315: fix(process-registry): detach stdin from background subprocesses to prevent freeze (#27999)**. merged to main · fix tier `verified`
  - maintainer direction: category `merged`; implication `superseded`
  - files: `tools/process_registry.py`
- **#27999: fix(process-registry): detach stdin from background subprocesses to p…**. closed without merge
  - maintainer direction: category `merged_via`; implication `superseded`; refs `214b95392bb7f19c3a3886168d4936916de424ae`, `#28315`
- **#53381: fix: replace SIG_IGN for SIGINT with two-stage handler in TUI gateway**. open
  - maintainer direction: category `implemented_elsewhere`; implication `superseded`; refs `#127647`, `#53362`
  - files: `tests/tui_gateway/test_sigint_handler.py`, `tui_gateway/entry.py`
- **#127955: fix(tui-gateway): a wedged TUI child can always be ended: SIGINT recovery, EOF exit past stuck threads, SIGKILL escalation (#53362, salvage #53381)**. open
  - maintainer direction: category `uncategorized`; implication `needs_llm`
  - files: `tests/tui_gateway/test_sigint_handler.py`, `tui_gateway/entry.py`, `ui-tui/src/__tests__/gatewayClientKillLatch.test.ts`, `ui-tui/src/gatewayClient.ts`

## Fix status

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