Pre-flight Checks
Bug Description
When a CLI agent (e.g., OpenCode) spawns subagents, Warp's tab badge changes to Done as soon as any subagent finishes, even if the main agent conversation is still active or other subagents are still running. This makes it hard to know when the user actually needs to review the final response.
Steps to Reproduce
- Open a Warp tab running OpenCode.
- Ask OpenCode a question that causes it to spawn one or more subagents (e.g., a complex refactor or multi-file task).
- Observe the tab badge while subagents are running.
- When one subagent finishes, but the main agent or other subagents are still running, the badge switches to Done.
Expected Behavior
The tab badge should remain In progress until the main agent conversation has fully completed and no subagents are still active. Only then should it show Done.
Actual Behavior
The badge switches to Done as soon as the first subagent finishes, creating a false "ready for review" signal.
Operating System
macOS
Agent / Client
OpenCode
Shell
zsh
Additional Context
I have inspected the open-source codebase and believe the root cause is in CLIAgentSessionsModel, which currently stores one session per pane and transitions to Success on any Stop event from a subagent. There is no tracking of parent/child subagent relationships when computing the badge status.
I would love to contribute a fix. A proper solution would add subagent tracking to CLIAgentSessionsModel so that the pane-level session status considers the whole agent tree (main + subagents) before reporting Success.
Files likely involved:
app/src/terminal/cli_agent_sessions/mod.rs
app/src/workspace/view/vertical_tabs.rs
app/src/ai/agent/conversation.rs
Pre-flight Checks
Bug Description
When a CLI agent (e.g., OpenCode) spawns subagents, Warp's tab badge changes to Done as soon as any subagent finishes, even if the main agent conversation is still active or other subagents are still running. This makes it hard to know when the user actually needs to review the final response.
Steps to Reproduce
Expected Behavior
The tab badge should remain In progress until the main agent conversation has fully completed and no subagents are still active. Only then should it show Done.
Actual Behavior
The badge switches to Done as soon as the first subagent finishes, creating a false "ready for review" signal.
Operating System
macOS
Agent / Client
OpenCode
Shell
zsh
Additional Context
I have inspected the open-source codebase and believe the root cause is in
CLIAgentSessionsModel, which currently stores one session per pane and transitions toSuccesson anyStopevent from a subagent. There is no tracking of parent/child subagent relationships when computing the badge status.I would love to contribute a fix. A proper solution would add subagent tracking to
CLIAgentSessionsModelso that the pane-level session status considers the whole agent tree (main + subagents) before reportingSuccess.Files likely involved:
app/src/terminal/cli_agent_sessions/mod.rsapp/src/workspace/view/vertical_tabs.rsapp/src/ai/agent/conversation.rs