CommandCodeAI / CommandCodeAI/command-code
TUI shows background sub-agent tool call as 0s / 0 tokens while the agent is still running
Nobody has claimed this yet.
- Dominant language
- No language data
- Stars
- 4k
- Forks
- 350
- PR merge metrics
- No merged PRs in 30d
Description
Summary
When the main agent dispatches a background sub-agent (agent/Task tool with run_in_background), the TUI renders the tool-call block with 0s duration and 0 tokens from the moment it is launched and for the entire time it is running. Real usage (tokens, duration, turns) only appears after the agent finishes and agent_output returns.
Impact: while a long-running sub-agent is in flight, there is no in-progress signal (no spinner, no elapsed time, no token counter), and the "0s / 0 tokens" reading looks like a completed no-op. I cannot tell whether the sub-agent is alive, stuck, or done while waiting.
Expected Behavior
While a sub-agent is running, its tool-call block should indicate an active/in-progress state (e.g. spinner or live elapsed time), and should not display a final-looking "0s / 0 tokens". Duration/token/turn stats should populate when the sub-agent completes (or stream live if available). Once finished, the block should show the real values returned by agent_output.
Actual Behavior
Immediately after launching a background sub-agent, the tool-call block shows 0s and 0 tokens. These values stay at 0s/0 tokens for the whole run even though the agent is actively working. Only after the agent completes and I call agent_output do real numbers appear (observed ~22k-30k tokens, 4.6-7.3s, 1 tool_use, 2 turns). No in-progress indicator is shown, so the block appears finished/no-op while the agent is actually still running.
Steps to reproduce the issue
- Start Command Code (cmd) in a TUI session — reproduced both with yolo mode on and off, so it is not yolo-specific. (Linux (WSL2) — Ubuntu 24.04.3 LTS, kernel 6.18.33.2-microsoft-standard-WSL2, x86_64 and WSL2, TERM=xterm-256color (Windows Terminal); TERM_PROGRAM is empty)
- Ask the agent to launch a background sub-agent, e.g.: "dispatch a background sub-agent that runs
sleep 12; echo doneand returns the output" (agent tool with run_in_background: true). - Immediately observe the tool-call block in the TUI: it shows 0s / 0 tokens.
- Keep watching for the whole run (a ~21s agent makes this easy) — it stays at 0s / 0 tokens, with no spinner/elapsed time/live tokens.
- Wait for it with agent_output — only then does the block show real usage (tokens, duration, turns).
Command Code Version
1.53.1
Operating System
Linux
Terminal/IDE
Unknown
Shell
bash
Session file (optional)
command-code-session-84b81546.html
Fix prompt (optional)
In the Command Code TUI, the tool-call block for the background sub-agent (Task/agent tool launched with run_in_background) renders duration and token counts as 0s / 0 tokens the moment it is dispatched and keeps showing 0/0 for the entire run, with no in-progress indicator. It only shows real usage after the agent completes and agent_output returns.
Expected: while the sub-agent is running, show an active state (spinner and/or live elapsed time) and do not show a final-looking 0s / 0 tokens; populate duration/tokens/turns from the agent's actual result when it completes (or stream them live if available).
Likely location: the TUI renderer for tool calls / the agent (Task) tool in the Command Code bundle (dist/cli.mjs), where tool-call metadata (duration_ms, total_tokens, tool_uses, turns) is bound to the rendered row. Currently these fields default to 0/undefined until the final result is attached, and the "running" branch is not distinguished from the "finished" branch.
Additional context
Reproduced on 1.53.1 (latest) with yolo mode on. Also reproduced on 1.53.0.
Latest run: background sub-agent ran ~21.5s (sleep 12; echo ...) and completed with 63803 tokens, 3 tool_uses, 4 turns, 21588ms — yet the TUI tool-call block showed 0s / 0 tokens for the entire in-flight period.
Earlier session (1.53.0, three background agents, all completed):
- bg-1: 22828 tokens, 1 tool_use, 2 turns, 7294ms
- bg-2: 29954 tokens, 1 tool_use, 2 turns, 4618ms
- bg-3: 30000 tokens, 1 tool_use, 2 turns, 7003ms
agent_output itself (wait / status / list / parallel waits) returns correct data — the bug is isolated to the TUI rendering of the in-flight tool call, not the agent runtime.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the background-agent flow in the TUI with sleep 12; echo done, then inspect the tool-call renderer and agent tool handling in dist/cli.mjs. Trace how duration_ms, total_tokens, tool_uses, and turns are bound before and after agent_output. Done means an in-flight call has a clear active state instead of final-looking 0s/0 tokens, and completed calls show the returned values.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- bash, javascript
- Domain
- cli, observability
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 72/100