diff --git a/changelog/3819.changed.md b/changelog/3819.changed.md new file mode 100644 index 000000000..7b43c399c --- /dev/null +++ b/changelog/3819.changed.md @@ -0,0 +1,4 @@ +- `ServiceSettingsUpdateFrame`s are now `UninterruptibleFrame`s. Generally speaking, you don't want a user interruption to prevent a service setting change from going into effect. Note that you usually don't use `ServiceSettingsUpdateFrame` directly, you use one of its subclasses: + - `LLMUpdateSettingsFrame` + - `TTSUpdateSettingsFrame` + - `STTUpdateSettingsFrame` diff --git a/src/pipecat/frames/frames.py b/src/pipecat/frames/frames.py index c69ddc931..d359bcfb1 100644 --- a/src/pipecat/frames/frames.py +++ b/src/pipecat/frames/frames.py @@ -2118,7 +2118,7 @@ class TTSStoppedFrame(ControlFrame): @dataclass -class ServiceUpdateSettingsFrame(ControlFrame): +class ServiceUpdateSettingsFrame(ControlFrame, UninterruptibleFrame): """Base frame for updating service settings. Supports both a ``settings`` dict (for backward compatibility) and a