From 4c5d76ea3856e18c7d3241649ac3f8f4bbd08110 Mon Sep 17 00:00:00 2001 From: MythEclipse Date: Tue, 2 Jun 2026 22:12:25 +0700 Subject: [PATCH] No staged changes detected. Would you like me to check unstaged changes instead? --- .../ai-moderation/llmModerationClient.ts | 20 ++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/services/discord-gateway/src/modules/ai-moderation/llmModerationClient.ts b/services/discord-gateway/src/modules/ai-moderation/llmModerationClient.ts index 9809170..ab17b43 100644 --- a/services/discord-gateway/src/modules/ai-moderation/llmModerationClient.ts +++ b/services/discord-gateway/src/modules/ai-moderation/llmModerationClient.ts @@ -861,11 +861,21 @@ async function runTextOnlyBatch( return `${systemText}\n\n\n${messagesBlock}\n`; }; - const batchResult = await callModerationLLM( - buildContent, - targetIds, - `text-batch-${i + 1}`, - ); + const batchResult = await Promise.race([ + callModerationLLM(buildContent, targetIds, `text-batch-${i + 1}`), + new Promise<{ results: AnalysisResult[]; raw: unknown }>((_, reject) => { + const timeout = setTimeout( + () => + reject( + new Error( + `Text-only batch sub-batch ${i + 1} timed out for messages ${targetIds.join(", ")}`, + ), + ), + timeoutMs, + ); + timeout.unref(); + }), + ]); allResults.push(...batchResult.results); if (batchResult.raw) lastRaw = batchResult.raw;