Skip to content

[bug] Explore Task sub-agent is non-interactable 0 toolcalls. #14424

Closed as not planned

Description

@Greg-Myers-SB

Description

Claude Sonnet 4.6 likes to use explore sub-agents a lot. Sub-agents in Opencode are great, in that you can see their progress by clicking on them. Unfortunately when Opencode has an explore launched it is non-interactive, you can't click into it to see progress, and the toolcalls remains at 0 until it finishes and shoots up to whatever number it eventually ends at. Only after it completes can you dive into the explore to see what was done.

Can you make the Explore sub-agent update real-time as toolcalls are made, and if possible let you drill in like a normal sub-agent?

Plugins

"plugin": [],

OpenCode version

1.2.6

Steps to reproduce

Ask Claude Sonnet 4.6 to plan any mid-sized task. Of all the agents this one seems to really like to do an Explore.

Screenshot and/or share link

Image

Operating System

macOS Version 26.1 (25B78)

Terminal

iTerm2

Activity

  1. added
    coreAnything pertaining to core functionality of the application (opencode server stuff)
    on Feb 20, 2026
  2. Greg-Myers-SB commented on Feb 20, 2026

    @Greg-Myers-SB
    Author

    I actually wonder if this may be a Sonnet 4.6 specific bug as 4.5 can do explore as sub-agent successfully?
    Edit: I spoke too soon, managed to get Sonnet 4.5 to get stuck in the same place.

    Image
  3. changed the title [-]Explore sub-agent is non-interactable[/-] [+][bug] Explore Task sub-agent is non-interactable 0 toolcalls.[/+] on Feb 20, 2026
  4. Greg-Myers-SB commented on Feb 20, 2026

    @Greg-Myers-SB
    Author

    I figured out you can ctrl+x right to get into the explore task even though it doesn't let you click, doesn't show the ctrl+x right text, and doesn't update the UI. Looks like this is primarily a UI bug.

  5. hydroplexus commented on Feb 20, 2026

    @hydroplexus

    Sometimes I faced the same problem. But I use glm-7. The agent just freezes and does nothing.

  6. apleynes commented on Feb 21, 2026

    @apleynes

    Happens with devstral 2 (mistral/devstral-2512) as well on my end. I can confirm the "ctrl+x right" trick works and I've noticed that the agent is doing work so it is primarily a UI bug. The subagent eventually finishes and the tool call and subagent session is then visible.

    Happens with any sub-agent launched through the task tool (also with custom sub agents)

    Opencode 1.2.6.

  7. loxoron218 commented on Feb 23, 2026

    @loxoron218

    I'm using GLM5 and GLM4.7 and I'm also experiencing this issue.

    Opencode 1.2.10

  8. OS-Lihua commented on Mar 1, 2026

    @OS-Lihua

    I've also encountered this issue. I was using Claude Opus 4.6.

  9. guazi04 commented on Mar 8, 2026

    @guazi04

    Root Cause Analysis

    Traced through the code — the issue is a timing gap between tool part rendering and session creation:

    packages/opencode/src/tool/task.ts L66-117:

    1. Session.create() at L72 — happens inside tool.execute()
    2. ctx.metadata({ sessionId }) at L111 — also inside execute()

    When an LLM outputs N tool_use blocks simultaneously, the UI receives all N tool parts immediately (status: pending/running). But execute() runs with limited concurrency — queued tasks haven't called Session.create() yet, so their metadata.sessionId is empty.

    UI impact:

    • TUI (cli/cmd/tui/routes/session/index.tsx L1965-2031): tools() and duration() are derived from child session messages. No session = no messages = "0 toolcalls · 0ms". The onClick handler is guarded by if (props.metadata.sessionId).
    • Web App (ui/src/components/message-part.tsx L1482-1561): href() depends on metadata.sessionId. Without it, description renders as plain text (<ToolText>) instead of a clickable <TaskLink>.

    Suggested fix (UI layer):

    • For task parts where status is pending/running and sessionId is not yet available, show a loading shimmer instead of "0 toolcalls · 0ms"
    • The "X toolcalls · Ys" summary should only render for completed tasks that have actual session data
    • Once metadata.sessionId arrives via SSE, the component should reactively update to become clickable (SolidJS reactivity should handle this, but the initial render state is misleading)
  10. removed
    bugSomething isn't working
    coreAnything pertaining to core functionality of the application (opencode server stuff)
    on May 3, 2026
  11. github-actions commented on Jul 4, 2026

    @github-actions
    Contributor

    To stay organized issues are automatically closed after 60 days of no activity. If the issue is still relevant please open a new one.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions