From 9c8ca14d55a6fd449bce7eeadfcd162211dd7fad Mon Sep 17 00:00:00 2001 From: Martin Kvist Date: Sat, 14 Feb 2026 13:35:52 +0100 Subject: [PATCH] feat(acp): stream partial tool output during execution Add rawOutput to tool_call_update when status is in_progress. This enables ACP clients to receive streaming output from tools like bash while they are still executing. The bash tool already updates metadata.output on each stdout chunk, but this data was not being forwarded through the ACP protocol. Now clients can subscribe to in_progress updates and receive partial output in realtime. Fixes #5024 --- packages/opencode/src/acp/agent.ts | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/packages/opencode/src/acp/agent.ts b/packages/opencode/src/acp/agent.ts index 9512406b3d47..44750a77c794 100644 --- a/packages/opencode/src/acp/agent.ts +++ b/packages/opencode/src/acp/agent.ts @@ -318,6 +318,10 @@ export namespace ACP { title: part.tool, locations: toLocations(part.tool, part.state.input), rawInput: part.state.input, + // Stream partial output during execution (e.g., bash stdout) + rawOutput: part.state.metadata?.output + ? { output: part.state.metadata.output } + : undefined, }, }) .catch((error) => { @@ -831,6 +835,10 @@ export namespace ACP { title: part.tool, locations: toLocations(part.tool, part.state.input), rawInput: part.state.input, + // Stream partial output during execution (e.g., bash stdout) + rawOutput: part.state.metadata?.output + ? { output: part.state.metadata.output } + : undefined, }, }) .catch((err) => {