diff --git a/src/resources/extensions/sf/preferences-validation.ts b/src/resources/extensions/sf/preferences-validation.ts index f093fadc0..c7c4c253b 100644 --- a/src/resources/extensions/sf/preferences-validation.ts +++ b/src/resources/extensions/sf/preferences-validation.ts @@ -295,6 +295,20 @@ export function validatePreferences(preferences: SFPreferences): { } } + // ─── Service Tier ─────────────────────────────────────────────────── + // OpenAI service tier for gpt-5.4 models. "off" explicitly disables the + // whole feature (hooks, footer, command refuse enable). Undefined = not + // configured. Historical gap: this field wasn't wired through validation + // so even "priority" / "flex" were being silently dropped. + if (preferences.service_tier !== undefined) { + const validTiers = new Set(["priority", "flex", "off"]); + if (typeof preferences.service_tier === "string" && validTiers.has(preferences.service_tier)) { + validated.service_tier = preferences.service_tier as SFPreferences["service_tier"]; + } else { + errors.push(`service_tier must be one of: priority, flex, off`); + } + } + // ─── Search Provider ───────────────────────────────────────────── if (preferences.search_provider !== undefined) { const validSearchProviders = new Set(["brave", "tavily", "ollama", "combosearch", "native", "auto"]);