Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .changeset/clever-moles-smile.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"kilo-code": patch
---

Fix Moonshot coding endpoint model selection so it includes all Moonshot models while keeping `kimi-for-coding` hidden on non-coding endpoints.
5 changes: 2 additions & 3 deletions webview-ui/src/components/settings/ApiOptions.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -344,9 +344,8 @@ const ApiOptions = ({
? Object.fromEntries(
Object.entries(filteredModels).filter(
([modelId]) =>
apiConfiguration.moonshotBaseUrl === "https://api.kimi.com/coding/v1"
? modelId === "kimi-for-coding"
: modelId !== "kimi-for-coding",
modelId !== "kimi-for-coding" ||
apiConfiguration.moonshotBaseUrl === "https://api.kimi.com/coding/v1",
),
)
: filteredModels
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -390,7 +390,7 @@ describe("ApiOptions", () => {
})

expect(screen.getByRole("option", { name: "kimi-for-coding" })).toBeInTheDocument()
expect(screen.queryByRole("option", { name: "kimi-k2-thinking" })).not.toBeInTheDocument() // kilocode_change
expect(screen.getByRole("option", { name: "kimi-k2-thinking" })).toBeInTheDocument() // kilocode_change
})

it("shows diff settings, temperature and rate limit controls by default", () => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -441,7 +441,7 @@ describe("useSelectedModel", () => {
})

// kilocode_change start
it("forces kimi-for-coding when Moonshot coding endpoint is selected with a non-coding model", () => {
it("keeps non-coding model when Moonshot coding endpoint is selected", () => {
const apiConfiguration: ProviderSettings = {
apiProvider: "moonshot",
apiModelId: "kimi-k2-thinking",
Expand All @@ -451,7 +451,7 @@ describe("useSelectedModel", () => {
const wrapper = createWrapper()
const { result } = renderHook(() => useSelectedModel(apiConfiguration), { wrapper })

expect(result.current.id).toBe("kimi-for-coding")
expect(result.current.id).toBe("kimi-k2-thinking")
})
// kilocode_change end

Expand Down
5 changes: 2 additions & 3 deletions webview-ui/src/components/ui/hooks/useSelectedModel.ts
Original file line number Diff line number Diff line change
Expand Up @@ -321,9 +321,8 @@ function getSelectedModel({
const isKimiCodingEndpoint = apiConfiguration.moonshotBaseUrl === "https://api.kimi.com/coding/v1"
const firstNonCodingMoonshotModelId =
Object.keys(moonshotModels).find((modelId) => modelId !== "kimi-for-coding") ?? moonshotDefaultModelId
const id = isKimiCodingEndpoint
? "kimi-for-coding"
: configuredId === "kimi-for-coding"
const id =
configuredId === "kimi-for-coding" && !isKimiCodingEndpoint
? firstNonCodingMoonshotModelId
: configuredId
// kilocode_change end
Expand Down
Loading