Skip to content

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

Open

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.

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