From 9a945d7ba056c642ca627ba33c4271c306850a45 Mon Sep 17 00:00:00 2001 From: Alessandro Pogliaghi Date: Wed, 29 Jul 2026 12:23:00 +0100 Subject: [PATCH] fix(agent): hide effort controls for Kimi sessions Generated-By: PostHog Code Task-Id: e18a8b14-426f-437f-98e2-db55475ea06e --- .../claude/claude-agent.resume-model.test.ts | 21 +++++++++++++++++++ .../agent/src/adapters/claude/claude-agent.ts | 1 + 2 files changed, 22 insertions(+) diff --git a/packages/agent/src/adapters/claude/claude-agent.resume-model.test.ts b/packages/agent/src/adapters/claude/claude-agent.resume-model.test.ts index 04610b6f00..41d5be45d5 100644 --- a/packages/agent/src/adapters/claude/claude-agent.resume-model.test.ts +++ b/packages/agent/src/adapters/claude/claude-agent.resume-model.test.ts @@ -84,6 +84,12 @@ function getModelConfigOption(response: { return response.configOptions?.find((opt) => opt.id === "model"); } +function getEffortConfigOption(response: { + configOptions?: Array<{ id: string; currentValue?: unknown }> | null; +}) { + return response.configOptions?.find((opt) => opt.id === "effort"); +} + // Real temp dirs: createSession validates cwd and SettingsManager reads // settings from disk; CLAUDE_CONFIG_DIR keeps both away from the real home. const cwd = mkdtempSync(path.join(os.tmpdir(), "claude-agent-test-cwd-")); @@ -358,6 +364,21 @@ describe("ClaudeAcpAgent session creation", () => { } }); + it("does not expose effort controls when a new session starts with Kimi K3", async () => { + const agent = makeAgent(); + + const response = await agent.newSession({ + cwd, + mcpServers: [], + _meta: { taskRunId: "run-kimi", model: "moonshotai/kimi-k3" }, + }); + + expect(getModelConfigOption(response)?.currentValue).toBe( + "moonshotai/kimi-k3", + ); + expect(getEffortConfigOption(response)).toBeUndefined(); + }); + // The timeout *message* (RequestError "... timed out after ...") is covered // by claude-agent.refresh.test.ts. Here we cover the leak fix on the // new-session and resume paths: any init failure must close the query so the diff --git a/packages/agent/src/adapters/claude/claude-agent.ts b/packages/agent/src/adapters/claude/claude-agent.ts index 14974dd3c6..0a9842dee7 100644 --- a/packages/agent/src/adapters/claude/claude-agent.ts +++ b/packages/agent/src/adapters/claude/claude-agent.ts @@ -2252,6 +2252,7 @@ export class ClaudeAcpAgent extends BaseAcpAgent { settingsManager.getSettings().model, meta?.model, ]); + modelOptions.currentModelId = resolvedModelId; session.modelId = resolvedModelId; session.lastContextWindowSize = this.getContextWindowForModel(resolvedModelId);