diff --git a/Packages/macOS/CmuxNext/Sources/CmuxNextSettings/Schema/SettingsSchema+RetiredKeys.generated.swift b/Packages/macOS/CmuxNext/Sources/CmuxNextSettings/Schema/SettingsSchema+RetiredKeys.generated.swift index 94aff4a5a96f..c4dbd3824917 100644 --- a/Packages/macOS/CmuxNext/Sources/CmuxNextSettings/Schema/SettingsSchema+RetiredKeys.generated.swift +++ b/Packages/macOS/CmuxNext/Sources/CmuxNextSettings/Schema/SettingsSchema+RetiredKeys.generated.swift @@ -22,5 +22,7 @@ extension SettingsSchema { "tabs.tabBar.browser": "every pane shows its tab bar; hide one with Hide Tab Bar in the command palette", // The palette is the only way to hide a tab bar (Lawrence 2026-10-15, cx-5425v). "tabs.tabBar.agent": "every pane shows its tab bar; hide one with Hide Tab Bar in the command palette", + // New Tab picks the action itself and has no Search | Ask switch (Leo 2026-10-20, #22816). + "tabs.newTabWidgets.modeSwitch": "New Tab picks open, ask or search from what you type; there is no switch", ] } diff --git a/Packages/macOS/CmuxNext/Tests/CmuxNextSettingsTests/NewTabWidgetSettingsTests.swift b/Packages/macOS/CmuxNext/Tests/CmuxNextSettingsTests/NewTabWidgetSettingsTests.swift index 7d8c43665786..44bbbdd5257b 100644 --- a/Packages/macOS/CmuxNext/Tests/CmuxNextSettingsTests/NewTabWidgetSettingsTests.swift +++ b/Packages/macOS/CmuxNext/Tests/CmuxNextSettingsTests/NewTabWidgetSettingsTests.swift @@ -22,6 +22,17 @@ struct NewTabWidgetSettingsTests { #expect(Self.parse(["greeting": .bool(true), "chats": .bool(true)]).newTabWidgets.ids == ["greeting", "chats"]) } + /// New Tab picks open, ask or search itself (#22816): an old config's switch key is retired, + /// so loading stays clean and Settings/agent writes cannot expose it again. + @Test func theRetiredModeSwitchKeyIsIgnored() { + let snapshot = Self.parse(["modeSwitch": .bool(true)]) + #expect(snapshot.newTabWidgets.ids == []) + #expect(snapshot.diagnostics.isEmpty, "\(snapshot.diagnostics)") + #expect(snapshot.retiredKeys == ["tabs.newTabWidgets.modeSwitch"]) + #expect(SettingsSchema.descriptor(for: ["tabs", "newTabWidgets", "modeSwitch"]) == nil) + #expect(!SettingsSchema.agentSettableKeys.contains("tabs.newTabWidgets.modeSwitch")) + } + @Test func eachWidgetTurnsOnAndTheGreetingOff() { let snapshot = Self.parse([ "greeting": .bool(false), "projects": .bool(true), "actions": .bool(true), diff --git a/schemas/settings-export/settings-schema.sources.sha256 b/schemas/settings-export/settings-schema.sources.sha256 index c173b470b2b2..431cd62e52fd 100644 --- a/schemas/settings-export/settings-schema.sources.sha256 +++ b/schemas/settings-export/settings-schema.sources.sha256 @@ -424,7 +424,7 @@ f9322eec467fc4afb6e840e2ac4ac45ba3725ef7e8beda9e6025b90b5d3a8d10 Packages/macOS 7afcc3f86f1ccaa8cea658981756cddd34a7633e02aa75a6cf1dfdc5ba724854 Packages/macOS/CmuxNext/Sources/CmuxNextSettings/Schema/SettingsSchema+Retired.swift -b1bbecb3bf92c6d816c4b5873244c97f3777fa524d2fa7aeb0904d1cf72b44cd Packages/macOS/CmuxNext/Sources/CmuxNextSettings/Schema/SettingsSchema+RetiredKeys.generated.swift +47ad9831abff626d622d0029cd67f13e1ab95187147b967fe02358ad62044c7f Packages/macOS/CmuxNext/Sources/CmuxNextSettings/Schema/SettingsSchema+RetiredKeys.generated.swift d475ef9c2c02e07fc077689d915c72ed90060003b7b45abde9ce406bf70c94c4 Packages/macOS/CmuxNext/Sources/CmuxNextSettings/Schema/SettingsSchema+Screenshots.generated.swift diff --git a/schemas/settings/retired-keys.json b/schemas/settings/retired-keys.json index baf7734479d2..79620755c1fe 100644 --- a/schemas/settings/retired-keys.json +++ b/schemas/settings/retired-keys.json @@ -35,6 +35,11 @@ "key": "tabs.tabBar.agent", "reason": "every pane shows its tab bar; hide one with Hide Tab Bar in the command palette", "why": "The palette is the only way to hide a tab bar (Lawrence 2026-10-15, cx-5425v)." + }, + { + "key": "tabs.newTabWidgets.modeSwitch", + "reason": "New Tab picks open, ask or search from what you type; there is no switch", + "why": "New Tab picks the action itself and has no Search | Ask switch (Leo 2026-10-20, #22816)." } ] }