`claude agents --all` silently omits plain interactive sessions (kind: "interactive") from the agent view list
Description
claude agents (agent view / FleetView) is meant to list all sessions — but a session started as a normal foreground conversation (i.e. not dispatched via --bg) never shows up in the interactive picker, even with --all. It's still present in claude agents --json --all, just invisible in the TUI.
Repro
- Start a plain foreground session in a repo:
claude(no--bg, no-w), do anything, exit. - Run
claude agents --json --allfrom that same repo/cwd. The session is present, e.g.:
``json`
{
"pid": 4546,
"cwd": "/Users/me/Code/some-repo",
"kind": "interactive",
"startedAt": 1784108357797,
"sessionId": "9dcf4fb1-3f55-4219-bcd8-6b5956bb61af",
"name": "fix-anchors-variant-script-bug",
"status": "idle"
}
state
Note it has no field (unlike kind: "background" entries, which always have state: done|failed|working|blocked`).
- Run
claude agents --all(interactive TUI). Expected: the session above appears somewhere in the list (58+ entries shown, grouped as "Needs input" / "Completed" / etc). Actual: it does not appear anywhere — not in any group, and not counted in the "N more" collapsed overflow either. It's only discoverable via--json.
Why this matters
claude agents / the agent view is the only way to browse sessions across all worktrees of a repo at once (/resume and -r are scoped to the current worktree's project-path encoding only). Since real work often happens in plain foreground sessions rather than --bg dispatches, this makes a meaningful chunk of session history undiscoverable through the UI that's supposed to be the cross-worktree session browser.
Expected behavior
The TUI should render every session returned by --json --all, including kind: "interactive" entries with no lifecycle state — e.g. bucket them under their own group ("Interactive" / "Other") rather than dropping them because they don't fit the background-agent state enum.
Environment
claude --version: 2.1.210- macOS (Darwin 25.5.0)
- Repro repo has 16 git worktrees; the missing session ran directly in the main checkout (not a worktree)