8bd781242aa4258795d8fa97c4946ea53704ab73
The CallEndCoordinator.observe() decremented _tracked_speeches on every BotStoppedSpeakingFrame, not just the one corresponding to tracked (end-node) speech. When a preceding LLM utterance finished between track_speech() and the actual fixed-speech playback, the counter was consumed prematurely, ending the call before the end-node message played. Gate the decrement behind a _current_speech_is_tracked flag that is set only when BotStartedSpeakingFrame follows a pending tracked-speech start. Co-Authored-By: Claude <noreply@anthropic.com>
Description
No description provided
Languages
Python
47.1%
TypeScript
43.1%
JavaScript
8.1%
MDX
1.2%
CSS
0.3%
Other
0.1%