speak()'s CancelledError handler was calling queue.cancel() which killed pw-play mid-sentence during container restarts. Now it just re-raises, letting the consumer finish naturally. Explicit cancel_speech() still kills playback immediately. Also override FastMCP's timeout_graceful_shutdown=0 in uvicorn config so request handlers get shutdown_timeout seconds before cancellation.
Description
No description provided
Languages
Python
95.9%
Dockerfile
2%
Swift
1.4%
Makefile
0.7%