From b41b3d2ff0624bd940de5ac2b5de777af88db70d Mon Sep 17 00:00:00 2001 From: Christiaan Arnoldus Date: Thu, 10 Sep 2026 10:29:41 +0200 Subject: [PATCH] fix(vscode): only feature recommended auto models --- .changeset/filter-auto-models.md | 5 +++++ .../tests/model-selector-accessibility.spec.ts | 11 +++++++++++ .../src/components/shared/ModelSelector.tsx | 2 +- .../webview-ui/src/stories/shared.stories.tsx | 6 ++++++ 4 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 .changeset/filter-auto-models.md diff --git a/.changeset/filter-auto-models.md b/.changeset/filter-auto-models.md new file mode 100644 index 00000000000..0e85b4aa15f --- /dev/null +++ b/.changeset/filter-auto-models.md @@ -0,0 +1,5 @@ +--- +"kilo-code": patch +--- + +Keep unlisted Auto models in the regular provider list instead of featuring them in the Auto Models section. diff --git a/packages/kilo-vscode/tests/model-selector-accessibility.spec.ts b/packages/kilo-vscode/tests/model-selector-accessibility.spec.ts index 14bbd832895..9f6d7785eee 100644 --- a/packages/kilo-vscode/tests/model-selector-accessibility.spec.ts +++ b/packages/kilo-vscode/tests/model-selector-accessibility.spec.ts @@ -38,6 +38,17 @@ test("model selector exposes combobox relationships and active option movement", "aria-label", "Routes each request to the cheapest model that gets the job done, based on continuously benchmarked accuracy and cost.", ) + const kilo = page.getByRole("treeitem", { name: "Kilo", exact: true }) + const legacy = page.getByRole("treeitem", { name: /Kilo Auto Legacy/ }) + await expect(legacy).toBeVisible() + const legacyAfterKilo = await kilo.evaluate( + (group, id) => { + const model = document.getElementById(id!) + return !!model && !!(group.compareDocumentPosition(model) & Node.DOCUMENT_POSITION_FOLLOWING) + }, + await legacy.getAttribute("id"), + ) + expect(legacyAfterKilo).toBe(true) await expect(page.getByRole("treeitem", { name: "Omega" })).toBeVisible() await combobox.press("ArrowDown") diff --git a/packages/kilo-vscode/webview-ui/src/components/shared/ModelSelector.tsx b/packages/kilo-vscode/webview-ui/src/components/shared/ModelSelector.tsx index 44468887540..16f07d6e010 100644 --- a/packages/kilo-vscode/webview-ui/src/components/shared/ModelSelector.tsx +++ b/packages/kilo-vscode/webview-ui/src/components/shared/ModelSelector.tsx @@ -286,7 +286,7 @@ export const ModelSelectorBase: Component = (props) => { } for (const m of filtered()) { - if (isAuto(m)) { + if (isAuto(m) && m.recommendedIndex !== undefined) { autos.push(m) continue } diff --git a/packages/kilo-vscode/webview-ui/src/stories/shared.stories.tsx b/packages/kilo-vscode/webview-ui/src/stories/shared.stories.tsx index 8753cb96ae1..e3b810053fd 100644 --- a/packages/kilo-vscode/webview-ui/src/stories/shared.stories.tsx +++ b/packages/kilo-vscode/webview-ui/src/stories/shared.stories.tsx @@ -83,6 +83,12 @@ const ACCESSIBLE_MODELS: EnrichedModel[] = [ }, autoRouting: { models: ["openai/gpt-5.5", "anthropic/claude-opus-4.6"] }, }, + { + id: "kilo-auto/legacy", + name: "Kilo Auto Legacy", + providerID: "kilo", + providerName: "Kilo", + }, { id: "omega", name: "Omega", providerID: "openai", providerName: "OpenAI", recommendedIndex: 2 }, { id: "alpha", name: "Alpha", providerID: "kilo", providerName: "Kilo" }, { id: "bravo", name: "Bravo", providerID: "kilo", providerName: "Kilo" },