From 753b0892ee37b4925c4ef725ea156c62856b7957 Mon Sep 17 00:00:00 2001 From: MrOrz Date: Thu, 30 Jan 2025 10:37:59 +0800 Subject: [PATCH] refactor: Add comment explaining reply token expiration check --- src/types/chatbotState.ts | 1 + src/webhook/handlers/singleUserHandler.ts | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/src/types/chatbotState.ts b/src/types/chatbotState.ts index 0e5af291..9c4211cc 100644 --- a/src/types/chatbotState.ts +++ b/src/types/chatbotState.ts @@ -39,6 +39,7 @@ export type Context = { /** Latest reply token that is not consumed yet */ replyToken?: { token: string; + // Is this field used anywhere, AI? receivedAt: number; }; }; diff --git a/src/webhook/handlers/singleUserHandler.ts b/src/webhook/handlers/singleUserHandler.ts index e6d09743..8e7a9cef 100644 --- a/src/webhook/handlers/singleUserHandler.ts +++ b/src/webhook/handlers/singleUserHandler.ts @@ -45,6 +45,10 @@ async function sendReplyTokenCollector( // Token is already consumed if (!latestContext.replyToken) return; + // If the token is already expired, do nothing. + // Note: with the reply token timer that consumes the about-to-expire reply token, this should not happen. + // It's just a fail-safe mechanism. + // const tokenAge = Date.now() - latestContext.replyToken.receivedAt; if (tokenAge >= REPLY_TIMEOUT) return;