Problem
When Squad (or any agent) spawns a background task via the task tool with mode: background and then calls read_agent with wait: true, the CLI renders every polling attempt as a separate log line:
○ Read: General-purpose agent (Keaton: Triage issues #8 and #6)
└ Waiting for result…
○ Read: General-purpose agent (Keaton: Triage issues #8 and #6)
└ Waiting for result…
○ Read: General-purpose agent (Keaton: Triage issues #8 and #6)
└ Waiting for result…
This produces 7+ identical lines of output for a single read_agent call that takes ~2 minutes. The user sees noise instead of a clean waiting state.
Expected Behavior
A single read_agent call with wait: true should render as one line that updates in place (or at most shows a spinner/progress indicator), not N repeated log entries. Something like:
○ Waiting for Keaton: Triage issues #8 and #6… (127s)
└ Done
Or simply collapse the repeated polling into one entry.
Context
- This happens with
read_agent(wait=true, timeout=300) — the CLI appears to be rendering each internal poll cycle as a separate tool output
- The agent description (e.g.,
Keaton: Triage issues #8 and #6) is already in the first line — repeating it adds no information
- For agents that take 2+ minutes, this can produce 10+ identical lines of output
- The actual result rendering at the end is fine — it's just the waiting state that's noisy
Problem
When Squad (or any agent) spawns a background task via the
tasktool withmode: backgroundand then callsread_agentwithwait: true, the CLI renders every polling attempt as a separate log line:This produces 7+ identical lines of output for a single
read_agentcall that takes ~2 minutes. The user sees noise instead of a clean waiting state.Expected Behavior
A single
read_agentcall withwait: trueshould render as one line that updates in place (or at most shows a spinner/progress indicator), not N repeated log entries. Something like:Or simply collapse the repeated polling into one entry.
Context
read_agent(wait=true, timeout=300)— the CLI appears to be rendering each internal poll cycle as a separate tool outputKeaton: Triage issues #8 and #6) is already in the first line — repeating it adds no information