fix(server): a plugin decides which options it applies live

A plugin reporting `controls` and `providerOptions` receives every key a live
change touches, with or without a control, and applies them or rejects the
whole request. The daemon's live-key guard now runs only for a plugin still
reporting `settings`, which cannot refuse a key.
This commit is contained in:
Mohamed Boudra
2026-11-02 00:34:19 +01:00
parent 970c281daf
commit 00ec4bc80c
5 changed files with 91 additions and 40 deletions
+3 -3
View File
@@ -129,9 +129,9 @@ export interface ProviderConfigChanges {
mode?: string | null;
thinkingOption?: string | null;
/**
* The option keys to change on the running session. A key it cannot apply live is not in
* `controls`, and Paseo does not send it. `null` returns the key to the provider's own default.
* Apply the change or fail the request; the committed values come back in `session.config`.
* The option keys to change on the running session, with or without a control. Apply every key
* or fail the whole request, for a key you only read when a session opens. `null` returns the
* key to the provider's own default. The committed values come back in `session.config`.
*/
providerOptions?: Readonly<Record<string, JsonValue>>;
/** @deprecated Sent next to `providerOptions` to a provider that reports `settings`. */