diff --git a/.changeset/routed-free-model-name.md b/.changeset/routed-free-model-name.md new file mode 100644 index 00000000000..31185ae44e5 --- /dev/null +++ b/.changeset/routed-free-model-name.md @@ -0,0 +1,5 @@ +--- +"kilo-code": patch +--- + +Fix the model usage panel showing just "free" for auto-routed sessions. The routed model id (e.g. `tencent/hy3:free`) is now displayed correctly instead of being collapsed to its `:free` suffix. diff --git a/packages/kilo-vscode/tests/unit/model-usage.test.ts b/packages/kilo-vscode/tests/unit/model-usage.test.ts index 4d1c84c981c..4b6461f5308 100644 --- a/packages/kilo-vscode/tests/unit/model-usage.test.ts +++ b/packages/kilo-vscode/tests/unit/model-usage.test.ts @@ -48,6 +48,8 @@ describe("model usage", () => { expect(modelUsageName(models[0], providers)).toBe("Qwen 3.7 Plus") expect(modelUsageName(models[1], providers)).toBe("MiniMax M3") expect(modelUsageName({ ...models[0], modelID: "moonshotai/kimi-k2.7-code-20260612" }, {})).toBe("kimi-k2.7-code") + // Routed free-variant ids keep their name instead of collapsing to the ":free" suffix + expect(modelUsageName({ ...models[0], modelID: "tencent/hy3:free" }, {})).toBe("hy3:free") }) test("matches sessions through their top-level tree", () => { diff --git a/packages/kilo-vscode/webview-ui/src/context/model-usage.ts b/packages/kilo-vscode/webview-ui/src/context/model-usage.ts index b6427f5d4f6..4bcb528e7ae 100644 --- a/packages/kilo-vscode/webview-ui/src/context/model-usage.ts +++ b/packages/kilo-vscode/webview-ui/src/context/model-usage.ts @@ -65,7 +65,7 @@ export function modelUsageName(model: SessionModelUsage["models"][number], provi const id = model.modelID.replace(DATE_SUFFIX, "") const name = provider?.models[model.modelID]?.name ?? provider?.models[id]?.name ?? id return name - .replace(/^[^:]+:\s*/, "") + .replace(/^[^:]+:\s+/, "") .replace(/^[^/]+\//, "") .replace(/\s*\([^)]*%\s*off[^)]*\)\s*$/i, "") .replace(/^qwen(?=\d)/i, "Qwen ")