CommandCodeAI / CommandCodeAI/command-code

TUI shows background sub-agent tool call as 0s / 0 tokens while the agent is still running

未关闭
#845 1 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

主要语言
没有语言数据
星标
4k
派生
350
PR 合并指标
30 天内没有已合并 PR

描述

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
  1. 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)
  2. Ask the agent to launch a background sub-agent, e.g.: "dispatch a background sub-agent that runs sleep 12; echo done and returns the output" (agent tool with run_in_background: true).
  3. Immediately observe the tool-call block in the TUI: it shows 0s / 0 tokens.
  4. 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.
  5. 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.

贡献指南

这个仓库没有索引到贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

调研方向

首先使用 sleep 12; echo done 在 TUI 中复现 background-agent 流程,然后检查 dist/cli.mjs 中的工具调用渲染器和 agent 工具处理。跟踪 agent_output 前后 duration_mstotal_tokenstool_usesturns 的绑定方式。完成的标准是:正在进行的调用具有明确的活动状态,而不是显示看起来已经结束的 0s/0 tokens;已完成的调用则显示返回的值。

由索引模型根据 Issue 内容生成。

评估

技术栈
bash, javascript
领域
cli, observability
Issue 类型
缺陷
难度
3/5
预计耗时
1-2 天
活跃度
活跃
描述清晰度
基本清楚
新手友好度
72/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。