Skip to content

ACP tool_call/tool_call_update use generic titles while running #23947

@nizheming

Description

@nizheming

ACP emits generic tool metadata before completion.

In packages/opencode/src/acp/agent.ts, tool_call and tool_call_update(status=in_progress) use part.tool as the title, and toolStart() sends rawInput: {}. Only the completed update uses part.state.title and the richer input.

This means ACP clients often show bash, read, or skill while a tool is pending/running, even when a semantic title is already available in part.state.title.

Current local source still does this on v1.4.11-199-ga419f1c50.

OpenCode version

v1.4.11-199-ga419f1c50

Steps to reproduce

  1. Run opencode acp with an ACP client that displays tool progress.
  2. Trigger a tool with a semantic running title, for example a skill or connector-backed action.
  3. Observe the pending/running tool card.
  4. Compare it with the completed tool event.

Expected

Pending/running ACP events should use the best available semantic metadata:

  • prefer part.state.title ?? part.tool
  • prefer part.state.input ?? {}

Actual

Pending/running events use generic values:

  • title: part.tool
  • rawInput: {} in tool_call
  • generic titles such as bash, read, skill until completion

Why this matters

Downstream ACP clients cannot render meaningful running status if the adapter only sends generic metadata before completion.

Metadata

Metadata

Assignees

Labels

acpcoreAnything pertaining to core functionality of the application (opencode server stuff)

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions