Fix issue where subagent thoughts are appended. (#22975)

This commit is contained in:
Christian Gunderman
2026-03-18 19:20:31 +00:00
committed by GitHub
parent 0ed9f1e7f5
commit 0082e1ec97
2 changed files with 10 additions and 4 deletions

View File

@@ -230,7 +230,7 @@ describe('LocalSubagentInvocation', () => {
expect(display.terminateReason).toBe(AgentTerminateMode.TIMEOUT);
});
it('should stream THOUGHT_CHUNK activities from the executor', async () => {
it('should stream THOUGHT_CHUNK activities from the executor, replacing the last running thought', async () => {
mockExecutorInstance.run.mockImplementation(async () => {
const onActivity = MockLocalAgentExecutor.create.mock.calls[0][2];
@@ -245,7 +245,7 @@ describe('LocalSubagentInvocation', () => {
isSubagentActivityEvent: true,
agentName: 'MockAgent',
type: 'THOUGHT_CHUNK',
data: { text: ' Still thinking.' },
data: { text: 'Thinking about next steps.' },
} as SubagentActivityEvent);
}
return { result: 'Done', terminate_reason: AgentTerminateMode.GOAL };
@@ -258,7 +258,13 @@ describe('LocalSubagentInvocation', () => {
expect(lastCall.recentActivity).toContainEqual(
expect.objectContaining({
type: 'thought',
content: 'Analyzing... Still thinking.',
content: 'Thinking about next steps.',
}),
);
expect(lastCall.recentActivity).not.toContainEqual(
expect.objectContaining({
type: 'thought',
content: 'Analyzing...',
}),
);
});

View File

@@ -120,7 +120,7 @@ export class LocalSubagentInvocation extends BaseToolInvocation<
lastItem.type === 'thought' &&
lastItem.status === 'running'
) {
lastItem.content += text;
lastItem.content = text;
} else {
recentActivity.push({
id: randomUUID(),