Repro
- Run `deepseek` in any workspace.
- Ask the model to do something that fires `task_shell_start` (cargo build, gh pr list, anything that runs in the background).
- Watch the footer: it correctly reports `tool task_shell_start · 2 active · 0 done`.
- Look at the right sidebar's Tasks panel: shows only `turn (in_progress)` and `No tasks`.
Cause
`render_sidebar_tasks` reads from `app.task_panel`, which is populated from `task_manager.list_tasks()` — that's the durable background-task store (`/task add`-style jobs). Live shell jobs from `task_shell_start` live in a different store (the shell job manager) and never reach the Tasks panel.
Fix options (pick one)
- A. Merge shell-job entries into `task_panel` so the panel shows everything that's running. Keep the "Tasks" label.
- B. Rename the panel to "Background tasks" so users understand it only shows durable `/task`-created work, and add a separate compact "Jobs" indicator for shell jobs.
- C. Drop the panel entirely and put a single "running: N" chip in the footer instead. The Plan/Todos/Agents panels carry the bulk of the live signal already; Tasks adds little.
Recommend A: lowest user-friction, keeps the panel useful when there's something to show.
Acceptance
Repro
Cause
`render_sidebar_tasks` reads from `app.task_panel`, which is populated from `task_manager.list_tasks()` — that's the durable background-task store (`/task add`-style jobs). Live shell jobs from `task_shell_start` live in a different store (the shell job manager) and never reach the Tasks panel.
Fix options (pick one)
Recommend A: lowest user-friction, keeps the panel useful when there's something to show.
Acceptance