Make ServiceUpdateSettingsFrame uninterruptible—settings updates are generally independent of specific utterances.

Before this change, settings updates were often not applied. For example, a `TTSUpdateSettingsFrame` queued while the bot was speaking would only have an effect at the end of the bot's reply, and any interruption before the end of the reply would "cancel" the update.
This commit is contained in:
Paul Kompfner
2026-02-24 17:07:20 -05:00
parent 6f0061ab96
commit b6f21ab15d
2 changed files with 5 additions and 1 deletions

View File

@@ -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`

View File

@@ -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