diff --git a/packages/server/src/server/agent/providers/claude/agent.test.ts b/packages/server/src/server/agent/providers/claude/agent.test.ts index a4cd72f4f..6760940fe 100644 --- a/packages/server/src/server/agent/providers/claude/agent.test.ts +++ b/packages/server/src/server/agent/providers/claude/agent.test.ts @@ -679,6 +679,14 @@ describe("ClaudeAgentSession features", () => { }), ).resolves.toEqual([expect.objectContaining({ id: "fast_mode", value: false })]); + await expect( + client.listFeatures({ + provider: "claude", + cwd: process.cwd(), + model: "claude-opus-5", + }), + ).resolves.toEqual([expect.objectContaining({ id: "fast_mode", value: false })]); + await expect( client.listFeatures({ provider: "claude", @@ -687,6 +695,14 @@ describe("ClaudeAgentSession features", () => { }), ).resolves.toEqual([]); + await expect( + client.listFeatures({ + provider: "claude", + cwd: process.cwd(), + model: "claude-sonnet-5", + }), + ).resolves.toEqual([]); + await expect( client.listFeatures({ provider: "claude", diff --git a/packages/server/src/server/agent/providers/claude/model-manifest.ts b/packages/server/src/server/agent/providers/claude/model-manifest.ts index d8d6cc398..c51fb70a6 100644 --- a/packages/server/src/server/agent/providers/claude/model-manifest.ts +++ b/packages/server/src/server/agent/providers/claude/model-manifest.ts @@ -43,6 +43,7 @@ export const CLAUDE_MODEL_MANIFEST = [ contextWindowMaxTokens: 1_000_000, effortLevels: CLAUDE_EFFORT_LEVELS.xhigh, supportsThinkingDisabled: true, + supportsFastMode: true, }, { id: "claude-fable-5", diff --git a/packages/server/src/server/agent/providers/claude/models.test.ts b/packages/server/src/server/agent/providers/claude/models.test.ts index bb7c651bd..c379ab998 100644 --- a/packages/server/src/server/agent/providers/claude/models.test.ts +++ b/packages/server/src/server/agent/providers/claude/models.test.ts @@ -497,4 +497,10 @@ describe("claudeManifestModelSupportsFastMode", () => { expect(claudeManifestModelSupportsFastMode("openrouter/anthropic/claude-opus-4-8")).toBe(false); expect(claudeManifestModelSupportsFastMode("claude-opus-4-8-20260101")).toBe(true); }); + + it("supports fast mode on Opus 5 but not on other Claude 5 models", () => { + expect(claudeManifestModelSupportsFastMode("claude-opus-5")).toBe(true); + expect(claudeManifestModelSupportsFastMode("claude-sonnet-5")).toBe(false); + expect(claudeManifestModelSupportsFastMode("claude-fable-5")).toBe(false); + }); });