Repository navigation
ACP: the autopilot task_complete summary is sent only as a tool call, not as an agent message #5150
Description
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
- Start
copilot --acp --stdioand sendinitialize, thensession/new. - Switch the session to autopilot:
session/set_config_optionwithconfigId: "mode"and valuehttps://agentclientprotocol.com/protocol/session-modes#autopilot. - Send
session/promptwith the textCreate 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
justinthec commentedon Oct 21, 2026
@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.