Skip to content

Commit c6706ca

Browse files
author
q1600822305
committed
feat: cherry-pick official updates RooCodeInc#262-RooCodeInc#313 (bug fixes, models, features)
1 parent 593a34a commit c6706ca

43 files changed

Lines changed: 1691 additions & 127 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.changeset/sly-candles-hide.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"roo-cline": patch
3+
---
4+
5+
Fix OpenAI Codex and OpenAI Native stream parsing for done-only and `content_part` events, including duplicate-text guards when deltas are already streamed.

.tool-versions

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
1+
pnpm 10.8.1
12
nodejs 20.19.2

docs/sync_progress.md

Lines changed: 34 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -23,39 +23,41 @@
2323
| **#255** | ⏳ 待分析 | `d52b6834e` 回滚后的 bug 修复和功能恢复 |
2424
| **#256-#258** | ⏳ 待分析 | ⭐ Reapply Batch 1-4:非 AI-SDK 功能恢复(read_file 重构、edit 重命名、Skills UI、浏览器移除、Provider 移除等) |
2525
| #259-#261 | 🟡 可跳过 | CLI 相关(stdin 流模式、v0.0.54 发布) |
26-
| #262-#263 | ⏳ 待同步 | Bug 修复(follow_up 参数验证、压缩摘要保留) |
27-
| #264 | 🟡 可跳过 | 营销网站博客(web app,不影响扩展) |
28-
| #265 | ⏳ 待同步 | Claude Sonnet 4.6 支持 |
29-
| #266 | 🟡 可跳过 | Release v3.48.0 changeset |
30-
| #267-#270 | 🟡 可跳过 | CLI 修复 + changeset |
31-
| #271 | ⏳ 待同步 | MCP 服务器初始化竞态修复 |
32-
| #272 | ⏳ 待分析 | DeleteQueuedMessage IPC 命令 |
33-
| #273 | ⏳ 待同步 | Bedrock Claude Sonnet 4.6 模型 ID 修复 |
34-
| #274-#277 | 🟡 可跳过 | Release v3.48.1 + changeset |
35-
| #278 | ⏳ 待分析 | ⭐ 每会话文件变更面板 |
36-
| #279 | ⏳ 待分析 | ⭐ 每工作区索引 opt-in 控制 |
37-
| #280 | ⏳ 待同步 | 聊天 rehydration 滚动生命周期修复 |
38-
| #281 | ⏳ 待分析 | ⭐ 每任务文件历史存储(跨实例安全) |
39-
| #282-#286 | 🟡 可跳过 | Release v3.49.0 + CLI v0.1.0 + changeset |
40-
| #287 | ⏳ 待同步 | Gemini 3.1 Pro 支持 |
41-
| #288-#289 | 🟡 可跳过 | Release v3.50.0 + changeset |
42-
| #290 | ⏳ 待同步 | 设置搜索结果宽度修复 |
43-
| #291 | ⏳ 待分析 | ⚠️ 移除 Roomote Control |
44-
| #292 | ⏳ 待同步 | gpt-5.3-codex-spark 模型 |
45-
| #293 | ⏳ 待同步 | OpenAI done-only/content-part 响应修复 |
46-
| #294 | ⏳ 待同步 | ⭐ execute_command timeout 参数 |
47-
| #295 | ⏳ 待同步 | Vertex/Gemini 禁用 apply_diff 启用 edit |
48-
| #296-#297 | ⏳ 待同步 | FileChangesPanel 行数 + 复制按钮反馈 |
49-
| #298 | 🟡 可跳过 | Changeset |
50-
| #299 | ⏳ 待同步 | Bedrock 自定义 ARN 提示缓存修复 |
26+
| #262 | ✅ 已同步 | follow_up 参数验证 |
27+
| #263 | ✅ 已同步 | 压缩摘要保留 |
28+
| #264 | 🟡 跳过 | 营销网站博客(web app,不影响扩展) |
29+
| #265 | ✅ 已同步 | Claude Sonnet 4.6 支持(含冲突解决) |
30+
| #266-#270 | 🟡 跳过 | Release + CLI + changeset |
31+
| #271 | ✅ 已同步 | MCP 服务器初始化竞态修复 |
32+
| #272 | ⏳ 待分析 | DeleteQueuedMessage IPC 命令(依赖 Reapply Batch) |
33+
| #273 | ✅ 已同步 | Bedrock Claude Sonnet 4.6 模型 ID 修复 |
34+
| #274-#277 | 🟡 跳过 | Release v3.48.1 + changeset |
35+
| #278 | ⏳ 待分析 | ⭐ 每会话文件变更面板(依赖 Reapply Batch) |
36+
| #279 | ⏳ 待分析 | ⭐ 每工作区索引 opt-in 控制(依赖 Reapply Batch) |
37+
| #280 | ⏳ 待分析 | 聊天 rehydration 滚动生命周期(依赖 Reapply Batch) |
38+
| #281 | ⏳ 待分析 | ⭐ 每任务文件历史存储(依赖 Reapply Batch) |
39+
| #282-#286 | 🟡 跳过 | Release v3.49.0 + CLI v0.1.0 + changeset |
40+
| #287 | ✅ 已同步 | Gemini 3.1 Pro 支持 |
41+
| #288-#289 | 🟡 跳过 | Release v3.50.0 + changeset |
42+
| #290 | ✅ 已同步 | 设置搜索结果宽度修复 |
43+
| #291 | ⏳ 待分析 | ⚠️ 移除 Roomote Control(依赖 Reapply Batch) |
44+
| #292 | ✅ 已同步 | gpt-5.3-codex-spark 模型(含冲突解决) |
45+
| #293 | ✅ 已同步 | OpenAI done-only/content-part 响应修复 |
46+
| #294 | ✅ 已同步 | ⭐ execute_command timeout 参数(含冲突解决) |
47+
| #295 | ⏳ 待分析 | Vertex/Gemini 禁用 apply_diff 启用 edit(依赖 edit 重命名) |
48+
| #296 | ⏳ 待分析 | FileChangesPanel 行数(依赖 #278|
49+
| #297 | ✅ 已同步 | 复制按钮反馈(含冲突解决) |
50+
| #298 | 🟡 跳过 | Changeset |
51+
| #299 | ✅ 已同步 | Bedrock 自定义 ARN 提示缓存修复 |
5152
| #300 | ⏳ 待分析 | ⭐ 内联终端渲染与 VSCode 一致(可能与终端增强冲突) |
52-
| #301 | ⏳ 待同步 | git 模板泄漏到 checkpoint 修复 |
53-
| #302-#305 | 🟡 可跳过 | Release v3.50.2 + Unbound 恢复 + changeset |
54-
| #303 | ⏳ 待同步 | 恢复 Unbound Provider |
55-
| #304 | ⏳ 待同步 | Vertex AI claude-sonnet-4-6 模型 ID 修复 |
56-
| #306-#310 | 🟡 可跳过 | CI + changeset + .tool-versions |
57-
| #311 | ⏳ 待同步 | MiniMax M2.5 模型 |
58-
| #312-#313 | 🟡 可跳过 | Release v3.50.4 + changeset |
53+
| #301 | ✅ 已同步 | git 模板泄漏到 checkpoint 修复 |
54+
| #302 | 🟡 跳过 | Release v3.50.2 |
55+
| #303 | ⏳ 待分析 | 恢复 Unbound Provider(依赖 Reapply Batch 移除) |
56+
| #304 | ✅ 已同步 | Vertex AI claude-sonnet-4-6 模型 ID 修复 |
57+
| #305-#310 | 🟡 跳过 | Changeset + CI + .tool-versions |
58+
| #310 | ✅ 已同步 | .tool-versions 添加 pnpm 10.8.1 |
59+
| #311 | ✅ 已同步 | MiniMax M2.5 模型 |
60+
| #312-#313 | 🟡 跳过 | Release v3.50.4 + changeset |
5961

6062
---
6163

packages/types/src/providers/anthropic.ts

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,27 @@ export type AnthropicModelId = keyof typeof anthropicModels
66
export const anthropicDefaultModelId: AnthropicModelId = "claude-sonnet-4-5"
77

88
export const anthropicModels = {
9+
"claude-sonnet-4-6": {
10+
maxTokens: 64_000, // Overridden to 8k if `enableReasoningEffort` is false.
11+
contextWindow: 200_000, // Default 200K, extendable to 1M with beta flag 'context-1m-2025-08-07'
12+
supportsImages: true,
13+
supportsPromptCache: true,
14+
inputPrice: 3.0, // $3 per million input tokens (≤200K context)
15+
outputPrice: 15.0, // $15 per million output tokens (≤200K context)
16+
cacheWritesPrice: 3.75, // $3.75 per million tokens
17+
cacheReadsPrice: 0.3, // $0.30 per million tokens
18+
supportsReasoningBudget: true,
19+
// Tiered pricing for extended context (requires beta flag 'context-1m-2025-08-07')
20+
tiers: [
21+
{
22+
contextWindow: 1_000_000, // 1M tokens with beta flag
23+
inputPrice: 6.0, // $6 per million input tokens (>200K context)
24+
outputPrice: 22.5, // $22.50 per million output tokens (>200K context)
25+
cacheWritesPrice: 7.5, // $7.50 per million tokens (>200K context)
26+
cacheReadsPrice: 0.6, // $0.60 per million tokens (>200K context)
27+
},
28+
],
29+
},
930
"claude-sonnet-4-5": {
1031
maxTokens: 64_000, // Overridden to 8k if `enableReasoningEffort` is false.
1132
contextWindow: 200_000, // Default 200K, extendable to 1M with beta flag 'context-1m-2025-08-07'

packages/types/src/providers/bedrock.ts

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,30 @@ export const bedrockModels = {
2929
maxCachePoints: 4,
3030
cachableFields: ["system", "messages", "tools"],
3131
},
32+
"anthropic.claude-sonnet-4-6": {
33+
maxTokens: 8192,
34+
contextWindow: 200_000, // Default 200K, extendable to 1M with beta flag 'context-1m-2025-08-07'
35+
supportsImages: true,
36+
supportsPromptCache: true,
37+
supportsReasoningBudget: true,
38+
inputPrice: 3.0, // $3 per million input tokens (≤200K context)
39+
outputPrice: 15.0, // $15 per million output tokens (≤200K context)
40+
cacheWritesPrice: 3.75, // $3.75 per million tokens
41+
cacheReadsPrice: 0.3, // $0.30 per million tokens
42+
minTokensPerCachePoint: 1024,
43+
maxCachePoints: 4,
44+
cachableFields: ["system", "messages", "tools"],
45+
// Tiered pricing for extended context (requires beta flag 'context-1m-2025-08-07')
46+
tiers: [
47+
{
48+
contextWindow: 1_000_000, // 1M tokens with beta flag
49+
inputPrice: 6.0, // $6 per million input tokens (>200K context)
50+
outputPrice: 22.5, // $22.50 per million output tokens (>200K context)
51+
cacheWritesPrice: 7.5, // $7.50 per million tokens (>200K context)
52+
cacheReadsPrice: 0.6, // $0.60 per million tokens (>200K context)
53+
},
54+
],
55+
},
3256
"amazon.nova-pro-v1:0": {
3357
maxTokens: 5000,
3458
contextWindow: 300_000,
@@ -530,17 +554,21 @@ export const BEDROCK_REGIONS = [
530554
export const BEDROCK_1M_CONTEXT_MODEL_IDS = [
531555
"anthropic.claude-sonnet-4-20250514-v1:0",
532556
"anthropic.claude-sonnet-4-5-20250929-v1:0",
557+
"anthropic.claude-sonnet-4-6",
558+
"anthropic.claude-opus-4-6-v1",
533559
] as const
534560

535561
// Amazon Bedrock models that support Global Inference profiles
536562
// As of Nov 2025, AWS supports Global Inference for:
537563
// - Claude Sonnet 4
538564
// - Claude Sonnet 4.5
565+
// - Claude Sonnet 4.6
539566
// - Claude Haiku 4.5
540567
// - Claude Opus 4.5
541568
export const BEDROCK_GLOBAL_INFERENCE_MODEL_IDS = [
542569
"anthropic.claude-sonnet-4-20250514-v1:0",
543570
"anthropic.claude-sonnet-4-5-20250929-v1:0",
571+
"anthropic.claude-sonnet-4-6",
544572
"anthropic.claude-haiku-4-5-20251001-v1:0",
545573
"anthropic.claude-opus-4-5-20251101-v1:0",
546574
] as const

packages/types/src/providers/gemini.ts

Lines changed: 59 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,67 @@ import type { ModelInfo } from "../model.js"
33
// https://ai.google.dev/gemini-api/docs/models/gemini
44
export type GeminiModelId = keyof typeof geminiModels
55

6-
export const geminiDefaultModelId: GeminiModelId = "gemini-3-pro-preview"
6+
export const geminiDefaultModelId: GeminiModelId = "gemini-3.1-pro-preview"
77

88
export const geminiModels = {
9+
"gemini-3.1-pro-preview": {
10+
maxTokens: 65_536,
11+
contextWindow: 1_048_576,
12+
supportsImages: true,
13+
supportsPromptCache: true,
14+
supportsReasoningEffort: ["low", "medium", "high"],
15+
reasoningEffort: "low",
16+
17+
supportsTemperature: true,
18+
defaultTemperature: 1,
19+
inputPrice: 4.0,
20+
outputPrice: 18.0,
21+
cacheReadsPrice: 0.4,
22+
cacheWritesPrice: 4.5,
23+
tiers: [
24+
{
25+
contextWindow: 200_000,
26+
inputPrice: 2.0,
27+
outputPrice: 12.0,
28+
cacheReadsPrice: 0.2,
29+
},
30+
{
31+
contextWindow: Infinity,
32+
inputPrice: 4.0,
33+
outputPrice: 18.0,
34+
cacheReadsPrice: 0.4,
35+
},
36+
],
37+
},
38+
"gemini-3.1-pro-preview-customtools": {
39+
maxTokens: 65_536,
40+
contextWindow: 1_048_576,
41+
supportsImages: true,
42+
supportsPromptCache: true,
43+
supportsReasoningEffort: ["low", "medium", "high"],
44+
reasoningEffort: "low",
45+
46+
supportsTemperature: true,
47+
defaultTemperature: 1,
48+
inputPrice: 4.0,
49+
outputPrice: 18.0,
50+
cacheReadsPrice: 0.4,
51+
cacheWritesPrice: 4.5,
52+
tiers: [
53+
{
54+
contextWindow: 200_000,
55+
inputPrice: 2.0,
56+
outputPrice: 12.0,
57+
cacheReadsPrice: 0.2,
58+
},
59+
{
60+
contextWindow: Infinity,
61+
inputPrice: 4.0,
62+
outputPrice: 18.0,
63+
cacheReadsPrice: 0.4,
64+
},
65+
],
66+
},
967
"gemini-3-pro-preview": {
1068
maxTokens: 65_536,
1169
contextWindow: 1_048_576,

packages/types/src/providers/minimax.ts

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,24 @@ import type { ModelInfo } from "../model.js"
55
// https://platform.minimax.io/docs/api-reference/text-openai-api
66
// https://platform.minimax.io/docs/api-reference/text-anthropic-api
77
export type MinimaxModelId = keyof typeof minimaxModels
8-
export const minimaxDefaultModelId: MinimaxModelId = "MiniMax-M2"
8+
export const minimaxDefaultModelId: MinimaxModelId = "MiniMax-M2.5"
99

1010
export const minimaxModels = {
11+
"MiniMax-M2.5": {
12+
maxTokens: 16_384,
13+
contextWindow: 204_800,
14+
supportsImages: false,
15+
supportsPromptCache: true,
16+
includedTools: ["search_and_replace"],
17+
excludedTools: ["apply_diff"],
18+
preserveReasoning: true,
19+
inputPrice: 0.3,
20+
outputPrice: 1.2,
21+
cacheWritesPrice: 0.375,
22+
cacheReadsPrice: 0.03,
23+
description:
24+
"MiniMax M2.5, the latest MiniMax model with enhanced coding and agentic capabilities, building on the strengths of the M2 series.",
25+
},
1126
"MiniMax-M2": {
1227
maxTokens: 16_384,
1328
contextWindow: 192_000,

packages/types/src/providers/openai-codex.ts

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,34 @@ export const openAiCodexModels = {
5858
supportsTemperature: false,
5959
description: "GPT-5.1 Codex: GPT-5.1 optimized for agentic coding via ChatGPT subscription",
6060
},
61+
"gpt-5.3-codex": {
62+
maxTokens: 128000,
63+
contextWindow: 400000,
64+
includedTools: ["apply_patch"],
65+
excludedTools: ["apply_diff", "write_to_file"],
66+
supportsImages: true,
67+
supportsPromptCache: true,
68+
supportsReasoningEffort: ["low", "medium", "high", "xhigh"],
69+
reasoningEffort: "medium",
70+
inputPrice: 0,
71+
outputPrice: 0,
72+
supportsTemperature: false,
73+
description: "GPT-5.3 Codex: OpenAI's flagship coding model via ChatGPT subscription",
74+
},
75+
"gpt-5.3-codex-spark": {
76+
maxTokens: 8192,
77+
contextWindow: 128000,
78+
includedTools: ["apply_patch"],
79+
excludedTools: ["apply_diff", "write_to_file"],
80+
supportsImages: false,
81+
supportsPromptCache: true,
82+
supportsReasoningEffort: ["low", "medium", "high", "xhigh"],
83+
reasoningEffort: "medium",
84+
inputPrice: 0,
85+
outputPrice: 0,
86+
supportsTemperature: false,
87+
description: "GPT-5.3 Codex Spark: Fast, text-only coding model via ChatGPT subscription",
88+
},
6189
"gpt-5.2-codex": {
6290
maxTokens: 128000,
6391
contextWindow: 400000,

packages/types/src/providers/openrouter.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ export const OPEN_ROUTER_PROMPT_CACHING_MODELS = new Set([
3939
"anthropic/claude-3.7-sonnet:thinking",
4040
"anthropic/claude-sonnet-4",
4141
"anthropic/claude-sonnet-4.5",
42+
"anthropic/claude-sonnet-4.6",
4243
"anthropic/claude-opus-4",
4344
"anthropic/claude-opus-4.1",
4445
"anthropic/claude-haiku-4.5",
@@ -73,6 +74,7 @@ export const OPEN_ROUTER_REASONING_BUDGET_MODELS = new Set([
7374
"anthropic/claude-opus-4.1",
7475
"anthropic/claude-sonnet-4",
7576
"anthropic/claude-sonnet-4.5",
77+
"anthropic/claude-sonnet-4.6",
7678
"anthropic/claude-opus-4.5",
7779
"anthropic/claude-haiku-4.5",
7880
"google/gemini-2.5-pro-preview",

packages/types/src/providers/vercel-ai-gateway.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ export const VERCEL_AI_GATEWAY_PROMPT_CACHING_MODELS = new Set([
1212
"anthropic/claude-opus-4",
1313
"anthropic/claude-opus-4.1",
1414
"anthropic/claude-sonnet-4",
15+
"anthropic/claude-sonnet-4.6",
1516
"openai/gpt-4.1",
1617
"openai/gpt-4.1-mini",
1718
"openai/gpt-4.1-nano",
@@ -51,6 +52,7 @@ export const VERCEL_AI_GATEWAY_VISION_AND_TOOLS_MODELS = new Set([
5152
"anthropic/claude-opus-4",
5253
"anthropic/claude-opus-4.1",
5354
"anthropic/claude-sonnet-4",
55+
"anthropic/claude-sonnet-4.6",
5456
"google/gemini-1.5-flash",
5557
"google/gemini-1.5-pro",
5658
"google/gemini-2.0-flash",

0 commit comments

Comments
 (0)