From 8d5b7c6c2847d15134e3edfe427f11dedc20bd4d Mon Sep 17 00:00:00 2001 From: Eden Zimbelman Date: Thu, 10 Jul 2025 22:48:57 -0700 Subject: [PATCH 1/3] refactor: check payload type before extracting assistant thread info --- src/Assistant.ts | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/src/Assistant.ts b/src/Assistant.ts index 86404a9eb..62d17ede5 100644 --- a/src/Assistant.ts +++ b/src/Assistant.ts @@ -393,18 +393,14 @@ export function extractThreadInfo(payload: AllAssistantMiddlewareArgs['payload'] let context: AssistantThreadContext = {}; // assistant_thread_started, asssistant_thread_context_changed - if ( - 'assistant_thread' in payload && - 'channel_id' in payload.assistant_thread && - 'thread_ts' in payload.assistant_thread - ) { - channelId = payload.assistant_thread.channel_id; - threadTs = payload.assistant_thread.thread_ts; - context = payload.assistant_thread.context; + if (payload.type === 'assistant_thread_started' || payload.type === 'assistant_thread_context_changed') { + channelId = payload.assistant_thread?.channel_id; + threadTs = payload.assistant_thread?.thread_ts; + context = payload.assistant_thread?.context; } // user message in thread - if ('channel' in payload && 'thread_ts' in payload && payload.thread_ts !== undefined) { + if (payload.type === 'message' && 'thread_ts' in payload && payload.thread_ts !== undefined) { channelId = payload.channel; threadTs = payload.thread_ts; } From 62de663e0d72ef764bbbcb06fa5d38e6affe80cb Mon Sep 17 00:00:00 2001 From: Eden Zimbelman Date: Mon, 14 Jul 2025 13:07:00 -0700 Subject: [PATCH 2/3] refactor: prefer checks for existing properties instead of event types --- src/Assistant.ts | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/Assistant.ts b/src/Assistant.ts index 62d17ede5..57975dcad 100644 --- a/src/Assistant.ts +++ b/src/Assistant.ts @@ -392,15 +392,21 @@ export function extractThreadInfo(payload: AllAssistantMiddlewareArgs['payload'] let threadTs = ''; let context: AssistantThreadContext = {}; - // assistant_thread_started, asssistant_thread_context_changed - if (payload.type === 'assistant_thread_started' || payload.type === 'assistant_thread_context_changed') { - channelId = payload.assistant_thread?.channel_id; - threadTs = payload.assistant_thread?.thread_ts; - context = payload.assistant_thread?.context; + if ( + 'assistant_thread' in payload && + payload.assistant_thread && + typeof payload.assistant_thread.channel_id === 'string' && + typeof payload.assistant_thread.thread_ts === 'string' + ) { + channelId = payload.assistant_thread.channel_id; + threadTs = payload.assistant_thread.thread_ts; + if (typeof payload.assistant_thread.context === 'object' && payload.assistant_thread.context !== null) { + context = payload.assistant_thread.context; + } } // user message in thread - if (payload.type === 'message' && 'thread_ts' in payload && payload.thread_ts !== undefined) { + if ('channel' in payload && 'thread_ts' in payload && payload.thread_ts !== undefined) { channelId = payload.channel; threadTs = payload.thread_ts; } From 565727c5f1037c4c7c4b7cc2bf5af9b4c4bc3de8 Mon Sep 17 00:00:00 2001 From: Eden Zimbelman Date: Mon, 14 Jul 2025 13:08:13 -0700 Subject: [PATCH 3/3] revert: include the comment of the expected matching events --- src/Assistant.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Assistant.ts b/src/Assistant.ts index 57975dcad..b84164fe5 100644 --- a/src/Assistant.ts +++ b/src/Assistant.ts @@ -392,6 +392,7 @@ export function extractThreadInfo(payload: AllAssistantMiddlewareArgs['payload'] let threadTs = ''; let context: AssistantThreadContext = {}; + // assistant_thread_started, asssistant_thread_context_changed if ( 'assistant_thread' in payload && payload.assistant_thread &&