Skip to content

ACP: the autopilot task_complete summary is sent only as a tool call, not as an agent message #5150

Closed

Description

@nikita-ashihmin

Describe the bug

In ACP mode (copilot --acp --stdio), when an autopilot turn ends with the task_complete tool, the final answer of the turn reaches the client only as a tool_call / tool_call_update with kind: "other". No agent_message_chunk carries the summary. Then session/prompt returns stopReason: "end_turn".

Per ACP, agent_message_chunk is the response of the agent, and tool_call reports the execution of a tool (prompt turn). So ACP clients show the answer as a collapsed tool call, and the user must expand it to read the result. JetBrains Air (IntelliJ IDEA) is affected.

The Copilot TUI renders the task_complete summary as the final markdown answer (changelog 1.0.6). The ACP server does not. task_complete is an internal control tool of autopilot, so a client has no generic way to know that this tool call is the answer.

Affected version

GitHub Copilot CLI 1.0.96 (agentInfo.version "1.0.96"), started as copilot --acp --stdio. The same binary ships in @github/copilot-language-server 1.554.0 (@github/copilot-win32-x64). Windows 11, x64.

Steps to reproduce the behavior

  1. Start copilot --acp --stdio and send initialize, then session/new.
  2. Switch the session to autopilot: session/set_config_option with configId: "mode" and value https://agentclientprotocol.com/protocol/session-modes#autopilot.
  3. Send session/prompt with the text Create a file hello.txt with the text "hello", then finish the task.

The session/update notifications of that turn, in order:

config_option_update
config_option_update
session_info_update
usage_update
tool_call            "Creating ...\hello.txt"   pending
agent_message_chunk  "Info: ...\hello.txt"
tool_call_update     completed
usage_update
tool_call            "task_complete"            pending
tool_call_update     completed

The task_complete notifications:

{"sessionUpdate":"tool_call","toolCallId":"toolu_014obvFRV78u2US8vcmwXq8p","title":"task_complete","kind":"other","status":"pending","rawInput":{"summary":"Created hello.txt containing \"hello\"."}}
{"sessionUpdate":"tool_call_update","toolCallId":"toolu_014obvFRV78u2US8vcmwXq8p","status":"completed","content":[{"type":"content","content":{"type":"text","text":"Created hello.txt containing \"hello\"."}}],"rawOutput":{"content":"Created hello.txt containing \"hello\".","detailedContent":"✓ Task completed: Created hello.txt containing \"hello\"."}}

Then session/prompt returns {"stopReason":"end_turn", ...}. The only agent_message_chunk of the turn is the Info: line of the file tool.

Expected behavior

The ACP server sends the task_complete summary as an agent_message_chunk, as the TUI renders it. It can also keep the tool call, or not expose task_complete as a client-visible tool call at all.

Additional context

The same class of output loss is reported for other channels: #2482 (-p output) and #1324 (subagent result).

Activity

  1. added
    area:agentsSub-agents, fleet, autopilot, plan mode, background agents, and custom agents
    area:non-interactiveNon-interactive mode (-p), CI/CD, ACP protocol, and headless automation
    and removed on Oct 18, 2026
  2. justinthec commented on Oct 21, 2026

    @justinthec

    @nikita-ashihmin can you verify if this is still an issue for you with Github Copilot 1.556.0?

    I tested that with IntelliJ and it now seems to stream the agent_message_chunks for the task_complete as desired.

  3. patniko commented on Oct 26, 2026

    @patniko
    Collaborator

    Thanks for the clear protocol trace. This is fixed in Copilot CLI v1.0.102: when an autopilot turn ends with task_complete, ACP clients now receive the completion summary as agent_message_chunk updates, so it renders as the agent's answer rather than only inside a collapsed tool call. If you still see the summary only as a tool call on the latest version, please let us know and we'll reopen.

    Triaged as part of a Copilot SDK backlog review, with help from GitHub Copilot.

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:agentsSub-agents, fleet, autopilot, plan mode, background agents, and custom agentsarea:non-interactiveNon-interactive mode (-p), CI/CD, ACP protocol, and headless automation

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions