From 7bf9d0152fcc27c27aa9035d7846238127932c88 Mon Sep 17 00:00:00 2001 From: Adam Weidman Date: Tue, 12 May 2026 00:06:26 -0400 Subject: [PATCH] Add safe string handling for activity data properties Use typeof check and trim to avoid displaying 'undefined' for missing properties in THOUGHT_CHUNK, TOOL_CALL_START, TOOL_CALL_END, and ERROR events. TAG=agy CONV=d4b1d79a-226d-4301-8d60-bdb5d4701569 --- .../core/src/agents/local-session-invocation.ts | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/packages/core/src/agents/local-session-invocation.ts b/packages/core/src/agents/local-session-invocation.ts index a686e25ad9..08e8f34593 100644 --- a/packages/core/src/agents/local-session-invocation.ts +++ b/packages/core/src/agents/local-session-invocation.ts @@ -126,7 +126,8 @@ export class LocalSessionInvocation extends BaseToolInvocation< switch (activity.type) { case 'THOUGHT_CHUNK': { - const text = String(activity.data['text']); + const rawText = activity.data['text']; + const text = typeof rawText === 'string' ? rawText.trim() : ''; const lastItem = recentActivity[recentActivity.length - 1]; if ( @@ -152,9 +153,10 @@ export class LocalSessionInvocation extends BaseToolInvocation< break; } case 'TOOL_CALL_START': { - const name = String(activity.data['name']); + const rawName = activity.data['name']; + const name = typeof rawName === 'string' ? rawName.trim() : ''; const displayName = activity.data['displayName'] - ? sanitizeErrorMessage(String(activity.data['displayName'])) + ? sanitizeErrorMessage(String(activity.data['displayName']).trim()) : undefined; const description = activity.data['description'] ? sanitizeErrorMessage(String(activity.data['description'])) @@ -178,7 +180,8 @@ export class LocalSessionInvocation extends BaseToolInvocation< break; } case 'TOOL_CALL_END': { - const name = String(activity.data['name']); + const rawName = activity.data['name']; + const name = typeof rawName === 'string' ? rawName.trim() : ''; const data = activity.data['data']; const isError = isToolActivityError(data); @@ -198,7 +201,8 @@ export class LocalSessionInvocation extends BaseToolInvocation< break; } case 'ERROR': { - const error = String(activity.data['error']); + const rawError = activity.data['error']; + const error = typeof rawError === 'string' ? rawError.trim() : ''; const errorType = activity.data['errorType']; const sanitizedError = sanitizeErrorMessage(error); const isCancellation =