Skip to content

Commit e394a7c

Browse files
committed
fix: set 200k as default context window for Claude models instead of 1m
The isDefault flag was incorrectly placed on the '1m' context window option for claude-opus-4-6 and claude-sonnet-4-6, causing resolveApiModelId to append the [1m] suffix to all Claude model IDs by default. This silently upgraded every Claude session to the 1M context window. Moved isDefault: true to the '200k' option so that the [1m] suffix is only appended when a user explicitly selects the 1M context window. Updated the corresponding test fixture and expectations to match.
1 parent bf19a06 commit e394a7c

File tree

2 files changed

+12
-13
lines changed

2 files changed

+12
-13
lines changed

apps/server/src/provider/Layers/ClaudeProvider.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,8 @@ const BUILT_IN_MODELS: ReadonlyArray<ServerProviderModel> = [
4848
supportsFastMode: true,
4949
supportsThinkingToggle: false,
5050
contextWindowOptions: [
51-
{ value: "200k", label: "200k" },
52-
{ value: "1m", label: "1M", isDefault: true },
51+
{ value: "200k", label: "200k", isDefault: true },
52+
{ value: "1m", label: "1M" },
5353
],
5454
promptInjectedEffortLevels: ["ultrathink"],
5555
} satisfies ModelCapabilities,
@@ -68,8 +68,8 @@ const BUILT_IN_MODELS: ReadonlyArray<ServerProviderModel> = [
6868
supportsFastMode: false,
6969
supportsThinkingToggle: false,
7070
contextWindowOptions: [
71-
{ value: "200k", label: "200k" },
72-
{ value: "1m", label: "1M", isDefault: true },
71+
{ value: "200k", label: "200k", isDefault: true },
72+
{ value: "1m", label: "1M" },
7373
],
7474
promptInjectedEffortLevels: ["ultrathink"],
7575
} satisfies ModelCapabilities,

packages/shared/src/model.test.ts

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,8 @@ const claudeCaps: ModelCapabilities = {
3636
supportsFastMode: false,
3737
supportsThinkingToggle: false,
3838
contextWindowOptions: [
39-
{ value: "200k", label: "200k" },
40-
{ value: "1m", label: "1M", isDefault: true },
39+
{ value: "200k", label: "200k", isDefault: true },
40+
{ value: "1m", label: "1M" },
4141
],
4242
promptInjectedEffortLevels: ["ultrathink"],
4343
};
@@ -117,7 +117,7 @@ describe("misc helpers", () => {
117117

118118
describe("context window helpers", () => {
119119
it("reads default context window", () => {
120-
expect(getDefaultContextWindow(claudeCaps)).toBe("1m");
120+
expect(getDefaultContextWindow(claudeCaps)).toBe("200k");
121121
});
122122

123123
it("returns null for models without context window options", () => {
@@ -142,17 +142,16 @@ describe("resolveApiModelId", () => {
142142
).toBe("claude-opus-4-6[1m]");
143143
});
144144

145-
it("applies default context window suffix when contextWindow is not set", () => {
146-
// 1m is the default for claudeCaps, so [1m] suffix should be applied
145+
it("returns the model as-is when contextWindow is not set (200k default)", () => {
147146
expect(
148147
resolveApiModelId({ provider: "claudeAgent", model: "claude-opus-4-6" }, claudeCaps),
149-
).toBe("claude-opus-4-6[1m]");
148+
).toBe("claude-opus-4-6");
150149
expect(
151150
resolveApiModelId(
152151
{ provider: "claudeAgent", model: "claude-opus-4-6", options: {} },
153152
claudeCaps,
154153
),
155-
).toBe("claude-opus-4-6[1m]");
154+
).toBe("claude-opus-4-6");
156155
});
157156

158157
it("returns the model as-is for explicit 200k (no suffix needed)", () => {
@@ -165,13 +164,13 @@ describe("resolveApiModelId", () => {
165164
});
166165

167166
it("falls back to default when context window value is unsupported", () => {
168-
// bogus is not in contextWindowOptions, so falls back to default (1m)
167+
// bogus is not in contextWindowOptions, so falls back to default (200k)
169168
expect(
170169
resolveApiModelId(
171170
{ provider: "claudeAgent", model: "claude-opus-4-6", options: { contextWindow: "bogus" } },
172171
claudeCaps,
173172
),
174-
).toBe("claude-opus-4-6[1m]");
173+
).toBe("claude-opus-4-6");
175174
});
176175

177176
it("returns the model as-is when model has no context window options", () => {

0 commit comments

Comments
 (0)