Agent View: home page input frozen after returning from agent detail (Windows)

Status Fixed / completed
Reported on v2.1.143
Maintainer reply ✓ Yes — diana-ant
Activity 9 comments · opened May 16, 2026 · closed May 27, 2026
💡 Likely answer: A maintainer (diana-ant, collaborator) responded on this thread — see the highlighted reply below.

Description

After running claude agents, drilling into an agent's detail view, and returning to the home (list) view, the home view stops responding to keyboard input. The TUI is still rendered correctly but no key (arrows, Enter, Esc, q, Ctrl+C) does anything. The only way to recover is to X out of the terminal window.

Reproduction

  1. Run claude agents in Windows Terminal
  2. Agent View loads, shows the home page (e.g. 0 awaiting input · 0 working · 4 completed)
  3. Arrow-key down to select any agent from the Completed list
  4. Press Enter to open the agent detail
  5. Press Esc (or arrow keys, or q) to navigate back to the home page
  6. Home page renders again — but keyboard input no longer works

Repros every time, on a brand new Agent View invocation. Has never worked for me since the feature shipped.

Expected

After returning from an agent detail view, the home page should accept keyboard input again — scroll, select another agent, or quit cleanly.

Actual

Home page visible, terminal not closed, but stdin appears frozen. No keystrokes register. Must close the terminal window to recover.

Environment

  • OS: Windows 11 Pro 25H2, build 26200.8457
  • Hardware: Lenovo ThinkPad P14s Gen 6 AMD (21RV000NUS), AMD Ryzen AI 9 HX PRO 370
  • Terminal: Windows Terminal 1.24.11321.0
  • Shell: PowerShell 7+ (pwsh, launched via pwsh.exe -NoProfile)
  • Claude Code: 2.1.143.0
  • Node: v24.12.0

Related issues

  • #59511 — Agent View: opening session hangs indefinitely (Windows, v2.1.142). Similar Windows-specific TUI navigation problem but a different point in the flow (opening vs. returning). May share a root cause.
  • #58990 — Left arrow in AskUserQuestion doesn't return to Agents view (Linux). Different surface but same family of key-propagation / focus issues.

Notes

  • I separately worked around the older PowerShell-hook stdin-corruption bug (#26586 / #53321) by replacing a pwsh.exe hook with a node hook + explicit "shell": "bash" in settings.json. That fix is in place at the time this Agent View bug occurs, so this is not the same root cause.
  • The terminal tab title stays as "claude agents" after the freeze, suggesting the Agent View process is still alive in the foreground — just not accepting input.

View original on GitHub ↗

9 Comments

github-actions[bot] · 3 months ago

Found 3 possible duplicate issues:

  1. https://github.com/anthropics/claude-code/issues/59657
  2. https://github.com/anthropics/claude-code/issues/59409
  3. https://github.com/anthropics/claude-code/issues/59251

This issue will be automatically closed as a duplicate in 3 days.

  • If your issue is a duplicate, please close it and 👍 the existing issue instead
  • To prevent auto-closure, add a comment or 👎 this comment

🤖 Generated with Claude Code

kanetik · 3 months ago

2.1.143 installed on Windows - agents view is more unusable today than before. I second this bug, and can confirm that #59251 is still broken (maybe worse)

TommyFFXdev · 3 months ago

FleetView TUI hard-hang on second mount — regression in 2.1.141+, Windows

Probable duplicate of

  • #59688 (home page input frozen after returning from agent detail, Windows, 2.1.143)
  • #59720 (TUI freeze on entry + orphaned daemons, Windows 11, 2.1.143)
  • #59715 (CLI freezes upon returning to agent view, v2.1.143 — CLOSED)

This report adds regression boundary, clean-user reproduction, daemon-side
forensics, and bundle-level code evidence
that aren't in those threads.

Reproduction (deterministic, every time)

  1. Start a Claude Code interactive CLI session.
  2. Open agent view (/agents or the leftarrow shortcut → [PERF:bg-leftarrow-mounted]).
  3. Navigate back to the session — works normally.
  4. Open agent view a second time → TUI hard-hangs: mouse and keyboard input

are completely ignored. Only recovery is closing the terminal window or
taskkill /PID <claude.exe>.

Reproduced on a clean Windows user profile with no prior ~/.claude state.

Version matrix

| Claude Code | Behavior |
|---|---|
| 2.1.140 | Least bad — works in most flows, only occasional issues |
| 2.1.141 | Regression introduced — freeze begins occurring |
| 2.1.143 | Freeze reproduces deterministically |

This points to a change in the 2.1.141 release window as the introducing
commit. The freeze persists through 2.1.143.

Environment

  • OS: Windows 11 Home 10.0.26200
  • Terminal: Windows Terminal
  • Shell: PowerShell 7+
  • Claude Code: 2.1.143
  • Build: BUILD_TIME=2026-05-15T17:39:39Z, GIT_SHA=cfb8132e4c3551e2773f41a1900efd1cc93637db

Daemon side is healthy

Investigated ~/.claude/daemon.log, daemon/roster.json, all jobs/*/state.json:

  • No exception, no panic, no crash event in daemon.log during the freeze window
  • Workers (999ff4a7, dac9f075, e4316f09) properly registered with pipes
  • After freeze + hard kill: daemon cleanly restarts, adopts orphaned workers,

no state corruption

  • Removing/quarantining a candidate ghost worker (a state:"failed" job with

no jsonl and no pipe) had no effect on the freeze — confirms bug is not
in daemon-worker reconciliation

The bug is entirely client-side (TUI/render layer).

Bundle-level code evidence

Strings extracted from bin/claude.exe (2.1.143) via grep -a on the
Bun-compiled binary:

Suspect heartbeat without observable cleanup

Sz9=1, Rz9, Jt$, li6=!1, Zt$=".fleetview-heartbeat", Iz9=5000, wF8, ni6;
  • .fleetview-heartbeat with 5000ms interval (Iz9)
  • No matching setInterval(...) paired with clearInterval(...) found in

the FleetView module scope (other heartbeats — session_keepalive_heartbeat
in Rr7/JM6/uX8, and bg-rv 30s heartbeat in nX8/CqA — DO have
proper paired cleanup; this one appears not to)

Module-level state (var in module scope, persistent across mount/unmount)

var Lt$, ZE, j$H, Sz9=1, Rz9, Jt$, li6=!1, Zt$, Iz9, wF8, ni6;
  • Jt$ (jobs array), li6 (one-time-sort flag), wF8, ni6 — not reset

on remount. li6 is explicitly a "sort already happened" sentinel:
if(!li6) Jt$.sort(...), li6=!0; → second mount skips the sort entirely
and uses stale Jt$

Mount flow

s.stdout)?.unmount(),
await new Promise((M)=>setImmediate(M)),
Ujq(),
process.env.CLAUDE_AGENTS_SELECT=H;
let[{createRoot:_},{mountFleetView:A,seedLastJobs:f}]=await(q??inq()),
z=await _({exitOnCtrlC:!1});
clearInterval(K);
...
N("[PERF:bg-leftarrow-mounted]"),
await A(z),
await CK(0,"other",{suppressResumeHint:!0}),
process.exit(0)

The clearInterval(K) here is the loader-progress interval (cleanly
paired), not the heartbeat. The heartbeat appears to have no equivalent
in this codepath.

Hypothesis (best fit for observed symptoms)

A frozen-input/no-error/hard-kill symptom indicates a blocked event loop,
not a thrown exception. Two candidates fit:

  1. Heartbeat-interval leak: .fleetview-heartbeat setInterval registered

in module-scope state on first mount, second mount adds another tick source
without clearing the first → callbacks pile up, renderer falls behind,
input events queue indefinitely.

  1. File watcher leak: if .fleetview-heartbeat is a file watched via

fs.watch / chokidar, Windows ReadDirectoryChangesW handles leak if
.close() isn't called on unmount → eventual handle exhaustion or
ERROR_PIPE_BUSY on the peer named-pipes (\\.\pipe\cc-daemon-...).

A "Cannot destructure property 'mountFleetView' from null or undefined value"
string is present 3× in the binary but does not fit the symptom (it would
throw visibly, not freeze silently) — likely unrelated.

Suggested experiment for the assignee

Discriminator that needs no instrumentation: does the freeze occur on visit-2
if visit-1 was very brief (open + immediately close)?

  • Yes → leak accumulates per-mount regardless of duration ⇒ **registration

leak** (heartbeat or watcher attached but never detached)

  • No → leak grows with time spent in FleetView ⇒ tick accumulation

(heartbeat fires repeatedly while mounted, leaving residual work queued)

This single test discriminates between the two hypotheses above and tells
you which leak primitive to inspect.

Workaround for affected users

Avoid opening agent view a second time within the same CLI session.
If you need to check agents again, exit the CLI (/exit) and start a fresh
claude invocation. Daemon-side state and worker resume both survive this.

Diagnostic data (available on request)

Baseline snapshot from this reproduction is stored locally at:
%LOCALAPPDATA%\Temp\claude_fleetview_diag\ — contains pre-freeze
daemon/roster.json, all jobs/*/state.json, process metrics (handles,
threads, memory), and session manifest. Can attach to follow-ups if useful.

diana-ant collaborator · 3 months ago

Hello! This should have been fixed in 2.1.145 - could you please update and try again?

dannygardner26 · 3 months ago
Hello! This should have been fixed in 2.1.145 - could you please update and try again?

Still down in 2.1.146

eazar001 · 3 months ago

This was fixed for me in 2.1.147, running Windows 11 PowerShell 7.6.1

oldium · 3 months ago

2.1.148 still freezes for me. Repro: fresh start claude agents, press down to select first agent, enter, see how the session gets loaded, press left, observe UI freezes. When I do it from the second terminal window again, now that the session is loaded, it does not freeze. But it freezes when I open a second session and it gets loaded - pressing back freezes the UI.

It seems like the keyboard is frozen, because when I move with mouse over the sessions, I see the mouse reacts and I am even able to click a session and get into it, and even type in it. But when returning back, it freezes again.

bogini collaborator · 3 months ago

Fixed in v2.1.144 — input is now correctly restored after returning from a session on Windows. Please reopen if you still see this on a current version.

github-actions[bot] · 1 month ago

This issue has been automatically locked since it was closed and has not had any activity for 7 days. If you're experiencing a similar issue, please file a new issue and reference this one if it's relevant.