mirror of
https://github.com/Kilo-Org/kilocode.git
synced 2026-08-29 03:44:06 +08:00
Merge pull request #9575 from Kilo-Org/session/agent_2642ef3e-70fd-4b3a-b82b-fab4dca6f519
fix(vscode): persist autocomplete model switch back to Codestral
This commit is contained in:
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"kilo-code": patch
|
||||
---
|
||||
|
||||
Fix switching autocomplete model back to Codestral not persisting.
|
||||
@@ -751,7 +751,6 @@
|
||||
},
|
||||
"kilo-code.new.autocomplete.model": {
|
||||
"type": "string",
|
||||
"default": "mistralai/codestral-2508",
|
||||
"enum": [
|
||||
"mistralai/codestral-2508",
|
||||
"inception/mercury-edit"
|
||||
|
||||
@@ -8,7 +8,7 @@ import { AutocompleteCodeActionProvider } from "./AutocompleteCodeActionProvider
|
||||
import { AutocompleteInlineCompletionProvider } from "./classic-auto-complete/AutocompleteInlineCompletionProvider"
|
||||
import { AutocompleteTelemetry } from "./classic-auto-complete/AutocompleteTelemetry"
|
||||
import type { KiloConnectionService } from "../cli-backend"
|
||||
import { DEFAULT_AUTOCOMPLETE_MODEL } from "../../shared/autocomplete-models"
|
||||
import { getAutocompleteModel } from "../../shared/autocomplete-models"
|
||||
|
||||
const CONFIG_SECTION = "kilo-code.new.autocomplete"
|
||||
|
||||
@@ -27,7 +27,7 @@ function readSettings(): AutocompleteServiceSettings {
|
||||
enableAutoTrigger: config.get<boolean>("enableAutoTrigger") ?? true,
|
||||
enableSmartInlineTaskKeybinding: config.get<boolean>("enableSmartInlineTaskKeybinding") ?? true,
|
||||
enableChatAutocomplete: config.get<boolean>("enableChatAutocomplete") ?? true,
|
||||
model: config.get<string>("model") ?? DEFAULT_AUTOCOMPLETE_MODEL.id,
|
||||
model: getAutocompleteModel(config.get<string>("model") ?? "").id,
|
||||
snoozeUntil: config.get<number>("snoozeUntil"),
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,6 +31,19 @@ describe("autocomplete settings", () => {
|
||||
expect(buildAutocompleteSettingsMessage().settings.model).toBe("inception/mercury-edit")
|
||||
})
|
||||
|
||||
it("defaults to codestral when no model is set", async () => {
|
||||
const { buildAutocompleteSettingsMessage } = await import("../settings")
|
||||
|
||||
expect(buildAutocompleteSettingsMessage().settings.model).toBe("mistralai/codestral-2508")
|
||||
})
|
||||
|
||||
it("defaults to codestral when stored model is no longer supported", async () => {
|
||||
state.set("model", "some/removed-model")
|
||||
const { buildAutocompleteSettingsMessage } = await import("../settings")
|
||||
|
||||
expect(buildAutocompleteSettingsMessage().settings.model).toBe("mistralai/codestral-2508")
|
||||
})
|
||||
|
||||
it("persists supported model updates", async () => {
|
||||
const post = vi.fn()
|
||||
const { routeAutocompleteMessage } = await import("../settings")
|
||||
|
||||
+2
-2
@@ -7,7 +7,7 @@ import { postprocessAutocompleteSuggestion } from "../classic-auto-complete/usel
|
||||
import { VisibleCodeTracker } from "../context/VisibleCodeTracker"
|
||||
import { FileIgnoreController } from "../shims/FileIgnoreController"
|
||||
import type { KiloConnectionService } from "../../cli-backend"
|
||||
import { DEFAULT_AUTOCOMPLETE_MODEL } from "../../../shared/autocomplete-models"
|
||||
import { getAutocompleteModel } from "../../../shared/autocomplete-models"
|
||||
import { finalizeChatSuggestion, buildChatPrefix } from "./chat-autocomplete-utils"
|
||||
|
||||
interface ChatCompletionRequestMessage {
|
||||
@@ -77,7 +77,7 @@ export class ChatTextAreaAutocomplete {
|
||||
|
||||
async getCompletion(userText: string, visibleCodeContext?: VisibleCodeContext): Promise<{ suggestion: string }> {
|
||||
const cfg = vscode.workspace.getConfiguration("kilo-code.new.autocomplete")
|
||||
this.model.setModel(cfg.get<string>("model") ?? DEFAULT_AUTOCOMPLETE_MODEL.id)
|
||||
this.model.setModel(getAutocompleteModel(cfg.get<string>("model") ?? "").id)
|
||||
const startTime = Date.now()
|
||||
|
||||
// Build context for telemetry
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import * as vscode from "vscode"
|
||||
import { AUTOCOMPLETE_MODELS, DEFAULT_AUTOCOMPLETE_MODEL } from "../../shared/autocomplete-models"
|
||||
import { AUTOCOMPLETE_MODELS, getAutocompleteModel } from "../../shared/autocomplete-models"
|
||||
|
||||
const keys = new Set(["enableAutoTrigger", "enableSmartInlineTaskKeybinding", "enableChatAutocomplete", "model"])
|
||||
|
||||
@@ -35,7 +35,7 @@ export function buildAutocompleteSettingsMessage() {
|
||||
enableAutoTrigger: config.get<boolean>("enableAutoTrigger", true),
|
||||
enableSmartInlineTaskKeybinding: config.get<boolean>("enableSmartInlineTaskKeybinding", false),
|
||||
enableChatAutocomplete: config.get<boolean>("enableChatAutocomplete", false),
|
||||
model: config.get<string>("model", DEFAULT_AUTOCOMPLETE_MODEL.id),
|
||||
model: getAutocompleteModel(config.get<string>("model") ?? "").id,
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { describe, it, expect } from "bun:test"
|
||||
import { readFileSync } from "node:fs"
|
||||
import { join } from "node:path"
|
||||
import { AUTOCOMPLETE_MODELS, DEFAULT_AUTOCOMPLETE_MODEL } from "../../src/shared/autocomplete-models"
|
||||
import { AUTOCOMPLETE_MODELS } from "../../src/shared/autocomplete-models"
|
||||
|
||||
describe("autocomplete model enum ↔ AUTOCOMPLETE_MODELS sync", () => {
|
||||
const pkg = JSON.parse(readFileSync(join(__dirname, "../../package.json"), "utf8"))
|
||||
@@ -16,7 +16,7 @@ describe("autocomplete model enum ↔ AUTOCOMPLETE_MODELS sync", () => {
|
||||
expect(prop.enumDescriptions).toHaveLength(AUTOCOMPLETE_MODELS.length)
|
||||
})
|
||||
|
||||
it("package.json default matches DEFAULT_AUTOCOMPLETE_MODEL", () => {
|
||||
expect(prop.default).toBe(DEFAULT_AUTOCOMPLETE_MODEL.id)
|
||||
it("package.json does not declare a default (VS Code strips user overrides that equal the schema default)", () => {
|
||||
expect(prop.default).toBeUndefined()
|
||||
})
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user