From ccee61746a1020bc20426b19d67f0867cd9a80f5 Mon Sep 17 00:00:00 2001 From: Vlad Sebastian CRETU Date: Fri, 4 Sep 2026 10:24:42 +0300 Subject: [PATCH] fix(chat): keep rendering session history when an A2A event has no content --- src/app/components/chat/chat.component.spec.ts | 15 +++++++++++++++ src/app/components/chat/chat.component.ts | 2 +- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/app/components/chat/chat.component.spec.ts b/src/app/components/chat/chat.component.spec.ts index 6b4f165d..d221ba8b 100644 --- a/src/app/components/chat/chat.component.spec.ts +++ b/src/app/components/chat/chat.component.spec.ts @@ -1739,6 +1739,21 @@ describe('ChatComponent', () => { }); }); + describe('buildUiEventFromEvent', () => { + it('should not throw for an A2A response event without content', () => { + const event = { + id: 'event-a2a-no-content', + author: 'remote_agent', + customMetadata: {'a2a:response': 'true'}, + }; + + const uiEvent = (component as any).buildUiEventFromEvent(event); + + expect(uiEvent.role).toBe('bot'); + expect(uiEvent.text).toBeUndefined(); + }); + }); + describe('extractA2uiJsonFromText', () => { it('should do nothing if message has no text', () => { const uiEvent = new UiEvent({role: 'bot', event: {} as any}); diff --git a/src/app/components/chat/chat.component.ts b/src/app/components/chat/chat.component.ts index 7b19e8cb..fde5a304 100644 --- a/src/app/components/chat/chat.component.ts +++ b/src/app/components/chat/chat.component.ts @@ -2719,7 +2719,7 @@ export class ChatComponent implements OnInit, AfterViewInit, OnDestroy { private buildUiEventFromEvent(event: any, reverseOrder: boolean = false): UiEvent { const isA2aResponse = this.isEventA2aResponse(event); const rawParts = isA2aResponse ? - this.combineA2uiDataParts(event.content?.parts) : + this.combineA2uiDataParts(event.content?.parts || []) : event.content?.parts || []; const parts = this.combineTextParts(rawParts); const partsToProcess = reverseOrder ? [...parts].reverse() : parts;