CommandCodeAI / CommandCodeAI/command-code
TUI shows background sub-agent tool call as 0s / 0 tokens while the agent is still running
Personne n'a encore pris cette issue.
- Langage dominant
- Aucune donnée de langage
- Étoiles
- 4k
- Forks
- 350
- Métriques de merge des PR
- Aucune PR mergée en 30 j
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.
Guide de contribution
Aucun guide de contribution indexé pour ce dépôt
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Commencez par reproduire le flux de background-agent dans la TUI avec sleep 12; echo done, puis examinez le renderer des appels d’outils et la gestion des outils de l’agent dans dist/cli.mjs. Suivez la manière dont duration_ms, total_tokens, tool_uses et turns sont liés avant et après agent_output. Le travail est terminé lorsqu’un appel en cours possède un état actif clair au lieu d’afficher des 0s/0 tokens qui semblent définitifs, et que les appels terminés affichent les valeurs renvoyées.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- bash, javascript
- Domaine
- cli, observability
- Type d'issue
- Bug
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Activité
- Active
- Clarté
- Plutôt claire
- Accessibilité débutants
- 72/100