fix subagent tool id mismatch (#303580)

This commit is contained in:
Justin Chen
2026-03-20 11:55:57 -07:00
committed by GitHub
parent 30a711eccb
commit 289b95b8b6

View File

@@ -215,8 +215,10 @@ export class RunSubagentTool extends Disposable implements IToolImpl {
// Track whether we should collect markdown (after the last tool invocation)
const markdownParts: string[] = [];
// Generate a stable subAgentInvocationId for routing edits to this subagent's content part
const subAgentInvocationId = invocation.callId ?? `subagent-${generateUuid()}`;
// Generate a stable subAgentInvocationId for routing edits to this subagent's content part.
// Use chatStreamToolCallId when available because that is what ChatToolInvocation.toolCallId
// uses in the renderer (see PR #302863), and the subagent grouping matches on toolCallId.
const subAgentInvocationId = invocation.chatStreamToolCallId ?? invocation.callId ?? `subagent-${generateUuid()}`;
let inEdit = false;
const progressCallback = (parts: IChatProgress[]) => {
@@ -306,7 +308,7 @@ export class RunSubagentTool extends Disposable implements IToolImpl {
message: args.prompt,
variables: { variables: variableSet.asArray() },
location: ChatAgentLocation.Chat,
subAgentInvocationId: invocation.callId,
subAgentInvocationId: subAgentInvocationId,
subAgentName: subAgentName,
userSelectedModelId: modeModelId,
modelConfiguration: modeModelId ? this.languageModelsService.getModelConfiguration(modeModelId) : undefined,