You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[ACP] dsh-acp sends agent_thought_chunk and agent_message_chunk with the same messageId, so clients merge reasoning into the reply
#8235
dsh-acp gives the reasoning and the reply of one assistant message the same messageId. An ACP client that groups chunks by messageId treats both as one message, and the reasoning text appears inside the reply.
Seen in Paseo (0.9.2 and 0.10.x) through the DeepSeek Harness provider plugin: the full reasoning is shown again in the reply body.
Where
@deepseek-ai/dsh-acplib/index.js, assistantUpdates (0.2.0-rc.1, also 0.1.7-rc.2):
if(block.type==="reasoning"){updates.push({sessionUpdate: "agent_thought_chunk",messageId: event.data.message.id,// same idcontent: {type: "text",text: block.text},});continue;}updates.push({sessionUpdate: "agent_message_chunk",messageId: event.data.message.id,// same id
content,});
The Agent MAY include an opaque, unique messageId on message chunks. Chunks with the same messageId belong to the same message; a changed messageId indicates a new message.
A thought and a reply are different messages, but here they share one ID, so a spec-following client is told they are the same message.
Suggested fix
Give thought chunks their own ID, for example ${message.id}:thought, or omit messageId on agent_thought_chunk.
Workaround on the client side
The Paseo plugin now rewrites the thought chunk ID before passing it on (geoqiao/paseo-stuff#21). We will remove that once dsh-acp sends distinct IDs.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
What happens
dsh-acpgives the reasoning and the reply of one assistant message the samemessageId. An ACP client that groups chunks bymessageIdtreats both as one message, and the reasoning text appears inside the reply.Seen in Paseo (0.9.2 and 0.10.x) through the DeepSeek Harness provider plugin: the full reasoning is shown again in the reply body.
Where
@deepseek-ai/dsh-acplib/index.js,assistantUpdates(0.2.0-rc.1, also 0.1.7-rc.2):Why this is a problem
ACP v1, Prompt Turn → Message IDs:
A thought and a reply are different messages, but here they share one ID, so a spec-following client is told they are the same message.
Suggested fix
Give thought chunks their own ID, for example
${message.id}:thought, or omitmessageIdonagent_thought_chunk.Workaround on the client side
The Paseo plugin now rewrites the thought chunk ID before passing it on (geoqiao/paseo-stuff#21). We will remove that once dsh-acp sends distinct IDs.
All reactions