fix(claude): show the Fast toggle on Opus 5 (#2939)
The Claude model manifest declares fast-mode support per model, and the `claude-opus-5` entry was added without `supportsFastMode`. Claude Code supports fast mode on Opus 5, so the composer and Command Center hid a toggle the model actually has. Set the flag. Everything downstream already keys off it: `claudeManifestModelSupportsFastMode` gates `buildClaudeFeatures`, which feeds `listFeatures`, the session `features` getter, `setFeature`, and the `setModel` auto-clear. Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
ef6d7b3b9a
commit
b4357139bb
@@ -679,6 +679,14 @@ describe("ClaudeAgentSession features", () => {
|
|||||||
}),
|
}),
|
||||||
).resolves.toEqual([expect.objectContaining({ id: "fast_mode", value: false })]);
|
).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(
|
await expect(
|
||||||
client.listFeatures({
|
client.listFeatures({
|
||||||
provider: "claude",
|
provider: "claude",
|
||||||
@@ -687,6 +695,14 @@ describe("ClaudeAgentSession features", () => {
|
|||||||
}),
|
}),
|
||||||
).resolves.toEqual([]);
|
).resolves.toEqual([]);
|
||||||
|
|
||||||
|
await expect(
|
||||||
|
client.listFeatures({
|
||||||
|
provider: "claude",
|
||||||
|
cwd: process.cwd(),
|
||||||
|
model: "claude-sonnet-5",
|
||||||
|
}),
|
||||||
|
).resolves.toEqual([]);
|
||||||
|
|
||||||
await expect(
|
await expect(
|
||||||
client.listFeatures({
|
client.listFeatures({
|
||||||
provider: "claude",
|
provider: "claude",
|
||||||
|
|||||||
@@ -43,6 +43,7 @@ export const CLAUDE_MODEL_MANIFEST = [
|
|||||||
contextWindowMaxTokens: 1_000_000,
|
contextWindowMaxTokens: 1_000_000,
|
||||||
effortLevels: CLAUDE_EFFORT_LEVELS.xhigh,
|
effortLevels: CLAUDE_EFFORT_LEVELS.xhigh,
|
||||||
supportsThinkingDisabled: true,
|
supportsThinkingDisabled: true,
|
||||||
|
supportsFastMode: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: "claude-fable-5",
|
id: "claude-fable-5",
|
||||||
|
|||||||
@@ -497,4 +497,10 @@ describe("claudeManifestModelSupportsFastMode", () => {
|
|||||||
expect(claudeManifestModelSupportsFastMode("openrouter/anthropic/claude-opus-4-8")).toBe(false);
|
expect(claudeManifestModelSupportsFastMode("openrouter/anthropic/claude-opus-4-8")).toBe(false);
|
||||||
expect(claudeManifestModelSupportsFastMode("claude-opus-4-8-20260101")).toBe(true);
|
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);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user