Bug Description
The typing indicator TTL (time-to-live) is not refreshed when startTypingLoop() is called while the typing loop is already running. This causes the typing indicator to stop after 2 minutes even if tools are still executing.
Steps to Reproduce
- Send a message that triggers a long-running tool (e.g., browser navigation, file operations)
- Observe that typing indicator shows initially
- After ~2 minutes, typing indicator stops even though the agent is still working
Root Cause
In src/auto-reply/reply/typing.ts, startTypingLoop() only calls refreshTypingTtl() when starting a new loop. If the loop is already running (typingTimer exists), it returns early without refreshing the TTL.
Proposed Fix
Move refreshTypingTtl() earlier in startTypingLoop() so it's called even when the loop is already running, while still respecting the runComplete guard.
AI-assisted bug report (Claude Code)
Bug Description
The typing indicator TTL (time-to-live) is not refreshed when
startTypingLoop()is called while the typing loop is already running. This causes the typing indicator to stop after 2 minutes even if tools are still executing.Steps to Reproduce
Root Cause
In
src/auto-reply/reply/typing.ts,startTypingLoop()only callsrefreshTypingTtl()when starting a new loop. If the loop is already running (typingTimerexists), it returns early without refreshing the TTL.Proposed Fix
Move
refreshTypingTtl()earlier instartTypingLoop()so it's called even when the loop is already running, while still respecting therunCompleteguard.AI-assisted bug report (Claude Code)