What happened
When a Claude Code session starts a shell command with run_in_background: true from the first moment (as opposed to a foreground command that T3 auto-moves to background at its timeout), the running process has no visible representation anywhere in the UI — no live shell row in the thread timeline and no entry in the task panel — even while the process is alive and the backend has recorded it.
The two launch shapes end up with very different visibility:
- Foreground → auto-backgrounded at timeout: the timeline keeps a live "running" shell row. Visible. ✓
- Backgrounded from the start: the tool call completes in ~0.1 s (it just returns the task id), so the timeline row finishes immediately, and the task panel never shows it either — from reading the bundled client code, the panel's task tracker skips activities whose
agentKind is not agent, which excludes local_bash background tasks.
So a long-running background watcher/monitor process is effectively invisible. In our case the human operator concluded a PR watcher wasn't running (and lost trust in the agent's "watcher armed" claims) while the process was provably alive — the DB had the task.started activity with no completion, but nothing on screen reflected it.
Steps to reproduce
- In a T3 thread, have the agent run any long-lived command via the Bash tool with
run_in_background: true (e.g. sleep 600).
- Observe: the tool call returns immediately with a task id; after that there is no UI element showing a running background shell.
- Compare: run the same command foreground with a 150 s timeout; when T3 moves it to background, a live row remains visible until it exits.
Expected
Both launch shapes should produce the same live "background shell running" indicator (timeline row and/or task panel entry) until the process exits.
Version
T3 Code desktop 0.0.37 (macOS, Apple Silicon), Claude Code provider.
What happened
When a Claude Code session starts a shell command with
run_in_background: truefrom the first moment (as opposed to a foreground command that T3 auto-moves to background at its timeout), the running process has no visible representation anywhere in the UI — no live shell row in the thread timeline and no entry in the task panel — even while the process is alive and the backend has recorded it.The two launch shapes end up with very different visibility:
agentKindis notagent, which excludeslocal_bashbackground tasks.So a long-running background watcher/monitor process is effectively invisible. In our case the human operator concluded a PR watcher wasn't running (and lost trust in the agent's "watcher armed" claims) while the process was provably alive — the DB had the
task.startedactivity with no completion, but nothing on screen reflected it.Steps to reproduce
run_in_background: true(e.g.sleep 600).Expected
Both launch shapes should produce the same live "background shell running" indicator (timeline row and/or task panel entry) until the process exits.
Version
T3 Code desktop 0.0.37 (macOS, Apple Silicon), Claude Code provider.