mirror of
https://github.com/google-gemini/gemini-cli.git
synced 2026-04-30 23:14:32 -07:00
fix(core): add explicit empty log guard in A2A pushMessage (#26198)
This commit is contained in:
@@ -585,5 +585,27 @@ describe('a2aUtils', () => {
|
||||
status: 'completed',
|
||||
});
|
||||
});
|
||||
|
||||
it('should correctly push the first message when messageLog is empty (Issue #24894)', () => {
|
||||
const reassembler = new A2AResultReassembler();
|
||||
|
||||
const message: Message = {
|
||||
kind: 'message',
|
||||
role: 'agent',
|
||||
messageId: 'm1',
|
||||
parts: [{ kind: 'text', text: 'First message' }],
|
||||
};
|
||||
|
||||
reassembler.update({
|
||||
kind: 'status-update',
|
||||
contextId: 'ctx1',
|
||||
status: {
|
||||
state: 'working',
|
||||
message,
|
||||
},
|
||||
} as unknown as SendMessageResult);
|
||||
|
||||
expect(reassembler.toString()).toBe('First message');
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -126,7 +126,7 @@ export class A2AResultReassembler {
|
||||
if (!message) return;
|
||||
if (message.role === 'user') return; // Skip user messages reflected by server
|
||||
const text = extractPartsText(message.parts, '');
|
||||
if (text && this.messageLog[this.messageLog.length - 1] !== text) {
|
||||
if (text && this.messageLog.at(-1) !== text) {
|
||||
this.messageLog.push(text);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user