diff --git a/src/auto-reply/reply/typing.ts b/src/auto-reply/reply/typing.ts index 09cc4e51b..7aba34c85 100644 --- a/src/auto-reply/reply/typing.ts +++ b/src/auto-reply/reply/typing.ts @@ -102,11 +102,13 @@ export function createTypingController(params: { const startTypingLoop = async () => { if (sealed) return; if (runComplete) return; + // Always refresh TTL when called, even if loop already running. + // This keeps typing alive during long tool executions. + refreshTypingTtl(); if (!onReplyStart) return; if (typingIntervalMs <= 0) return; if (typingTimer) return; await ensureStart(); - refreshTypingTtl(); typingTimer = setInterval(() => { void triggerTyping(); }, typingIntervalMs);