Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -473,7 +473,7 @@
### 优化

- i18n 设置模块拆分优化,引入翻译质量门禁机制 (#588) [@YangQing-Lin](https://github.com/YangQing-Lin)
- OpenCode 使用文档更新,添加 GPT-5.2 和 Gemini v1beta 配置示例 (#597)
- OpenCode 使用文档更新,添加 GPT-5.5 和 Gemini v1beta 配置示例 (#597)

### 修复

Expand Down Expand Up @@ -908,7 +908,7 @@

### 其他

- 更新使用文档:Codex 推荐模型更新为 gpt-5.2 with xhigh reasoning
- 更新使用文档:Codex 推荐模型更新为 gpt-5.5 with xhigh reasoning
- 更新 LiteLLM 模型价格数据

---
Expand Down
4 changes: 3 additions & 1 deletion messages/en/dashboard.json
Original file line number Diff line number Diff line change
Expand Up @@ -253,7 +253,9 @@
"responseModelLabel": "Actual Response Model",
"mismatchTooltip": "The upstream provider returned a different model than the one requested. Billing is still based on the requested model.",
"secondaryLineAriaLabel": "Actual response model: {model}",
"arrowPrefix": "\u21b3"
"arrowPrefix": "\u21b3",
"noSignatureBadge": "No thinking signature",
"noSignatureTooltip": "Thinking was enabled but no thinking signature was returned in the stream; the actual response model falls back to the plain model field from message_start."
},
"errorMessage": "Error Message",
"fake200ForwardedNotice": "Note: For streaming requests, this failure may be detected only after the stream ends; the response content may already have been forwarded to the client.",
Expand Down
4 changes: 2 additions & 2 deletions messages/en/settings/prices.json
Original file line number Diff line number Diff line change
Expand Up @@ -172,10 +172,10 @@
"deleteConfirm": "Are you sure you want to delete model {name}? This action cannot be undone.",
"form": {
"modelName": "Model ID",
"modelNamePlaceholder": "e.g., gpt-5.4",
"modelNamePlaceholder": "e.g., gpt-5.5",
"modelNameRequired": "Model ID is required",
"displayName": "Display Name (Optional)",
"displayNamePlaceholder": "e.g., GPT-5.4 Codex",
"displayNamePlaceholder": "e.g., GPT-5.5 Codex",
"type": "Type",
"provider": "Provider",
"providerPlaceholder": "e.g., openai",
Expand Down
2 changes: 1 addition & 1 deletion messages/en/settings/providers/form/modelSelect.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
"loading": "Loading...",
"manualAdd": "Manually Add Model",
"manualDesc": "Support adding any model name (not limited to price table)",
"manualPlaceholder": "Enter model name (e.g. gpt-5.4)",
"manualPlaceholder": "Enter model name (e.g. gpt-5.5)",
"notFound": "Model not found",
"openai": "OpenAI",
"providerFilterAll": "All Providers",
Expand Down
2 changes: 1 addition & 1 deletion messages/en/settings/providers/form/strings.json
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@
"modelWhitelistLoading": "Loading...",
"modelWhitelistManualAdd": "Manually Add Model",
"modelWhitelistManualDesc": "Support adding any model name (not limited to price table)",
"modelWhitelistManualPlaceholder": "Enter model name (e.g. gpt-5.4-pro)",
"modelWhitelistManualPlaceholder": "Enter model name (e.g. gpt-5.5-pro)",
"modelWhitelistNotFound": "Model not found",
"modelWhitelistSearchPlaceholder": "Search model name...",
"modelWhitelistSelectAll": "Select All ({count})",
Expand Down
4 changes: 2 additions & 2 deletions messages/en/usage.json
Original file line number Diff line number Diff line change
Expand Up @@ -544,7 +544,7 @@
"importantPoints": [
"Create an API key in the cch console and set the CCH_API_KEY environment variable",
"cchClaude/openai use ${resolvedOrigin}/v1; cchGemini uses ${resolvedOrigin}/v1beta",
"When selecting models, use provider_id/model_id (e.g. openai/gpt-5.4 or cchClaude/claude-sonnet-4-5-20250929)"
"When selecting models, use provider_id/model_id (e.g. openai/gpt-5.5 or cchClaude/claude-sonnet-4-5-20250929)"
]
},

Expand Down Expand Up @@ -622,7 +622,7 @@
"steps": [
"Restart Droid",
"Enter the /model command",
"Select GPT-5.4 [cch] or Sonnet 4.5 [cch]",
"Select GPT-5.5 [cch] or Sonnet 4.5 [cch]",
"Start using!"
]
}
Expand Down
4 changes: 3 additions & 1 deletion messages/ja/dashboard.json
Original file line number Diff line number Diff line change
Expand Up @@ -253,7 +253,9 @@
"responseModelLabel": "実際の応答モデル",
"mismatchTooltip": "上流プロバイダが返したモデルがリクエストされたモデルと異なります。課金は引き続きリクエストモデルを基準とします。",
"secondaryLineAriaLabel": "実際の応答モデル: {model}",
"arrowPrefix": "\u21b3"
"arrowPrefix": "↳",
"noSignatureBadge": "思考署名なし",
"noSignatureTooltip": "思考が有効ですが、応答ストリームに thinking signature が含まれていないため、実際の応答モデルは message_start の平文モデル名にフォールバックしました。"
},
"errorMessage": "エラーメッセージ",
"fake200ForwardedNotice": "注意:ストリーミング要求では、失敗判定がストリーム終了後になる場合があります。応答内容は既にクライアントへ転送されている可能性があります。",
Expand Down
4 changes: 2 additions & 2 deletions messages/ja/settings/prices.json
Original file line number Diff line number Diff line change
Expand Up @@ -172,10 +172,10 @@
"deleteConfirm": "モデル {name} を削除してもよろしいですか?この操作は元に戻せません。",
"form": {
"modelName": "モデルID",
"modelNamePlaceholder": "例: gpt-5.4",
"modelNamePlaceholder": "例: gpt-5.5",
"modelNameRequired": "モデルIDは必須です",
"displayName": "表示名 (任意)",
"displayNamePlaceholder": "例: GPT-5.4 Codex",
"displayNamePlaceholder": "例: GPT-5.5 Codex",
"type": "タイプ",
"provider": "プロバイダー",
"providerPlaceholder": "例: openai",
Expand Down
2 changes: 1 addition & 1 deletion messages/ja/settings/providers/form/modelSelect.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
"loading": "読み込み中...",
"manualAdd": "手動でモデルを追加",
"manualDesc": "任意のモデル名を追加できます(価格表のモデルに限定されません)",
"manualPlaceholder": "モデル名を入力(例:gpt-5.4)",
"manualPlaceholder": "モデル名を入力(例:gpt-5.5)",
"notFound": "モデルが見つかりません",
"openai": "OpenAI",
"providerFilterAll": "すべてのプロバイダー",
Expand Down
2 changes: 1 addition & 1 deletion messages/ja/settings/providers/form/strings.json
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@
"modelWhitelistLoading": "読み込み中...",
"modelWhitelistManualAdd": "モデルを手動追加",
"modelWhitelistManualDesc": "価格表に限定せず、任意のモデル名を追加できます",
"modelWhitelistManualPlaceholder": "モデル名を入力 (例: gpt-5.4)",
"modelWhitelistManualPlaceholder": "モデル名を入力 (例: gpt-5.5)",
"modelWhitelistNotFound": "モデルが見つかりません",
"modelWhitelistSearchPlaceholder": "モデル名を検索...",
"modelWhitelistSelectAll": "すべて選択 ({count})",
Expand Down
4 changes: 2 additions & 2 deletions messages/ja/usage.json
Original file line number Diff line number Diff line change
Expand Up @@ -544,7 +544,7 @@
"importantPoints": [
"cch の管理画面で API Key を作成し、環境変数 CCH_API_KEY を設定してください",
"cchClaude/openai は ${resolvedOrigin}/v1、cchGemini は ${resolvedOrigin}/v1beta を baseURL に使用します",
"モデル選択は provider_id/model_id 形式(例:openai/gpt-5.4 または cchClaude/claude-sonnet-4-5-20250929)"
"モデル選択は provider_id/model_id 形式(例:openai/gpt-5.5 または cchClaude/claude-sonnet-4-5-20250929)"
]
},

Expand Down Expand Up @@ -622,7 +622,7 @@
"steps": [
"Droid を再起動",
"/model コマンドを入力",
"GPT-5.4 [cch] または Sonnet 4.5 [cch] を選択",
"GPT-5.5 [cch] または Sonnet 4.5 [cch] を選択",
"使用開始!"
]
}
Expand Down
4 changes: 2 additions & 2 deletions messages/providers-i18n-additions.json
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@
"modelWhitelistSelectAll": "全选 ({count})",
"modelWhitelistClear": "清空",
"modelWhitelistManualAdd": "手动添加模型",
"modelWhitelistManualPlaceholder": "输入模型名称(如 gpt-5.4-pro)",
"modelWhitelistManualPlaceholder": "输入模型名称(如 gpt-5.5-pro)",
"modelWhitelistManualDesc": "支持添加任意模型名称(不限于价格表中的模型)",
"modelWhitelistAllowAll": "允许所有 {type} 模型",
"modelWhitelistAllowAllClause": "允许所有 Claude 模型",
Expand Down Expand Up @@ -319,7 +319,7 @@
"modelWhitelistSelectAll": "Select All ({count})",
"modelWhitelistClear": "Clear",
"modelWhitelistManualAdd": "Manually Add Model",
"modelWhitelistManualPlaceholder": "Enter model name (e.g. gpt-5.4-pro)",
"modelWhitelistManualPlaceholder": "Enter model name (e.g. gpt-5.5-pro)",
"modelWhitelistManualDesc": "Support adding any model name (not limited to price table)",
"modelWhitelistAllowAll": "Allow all {type} models",
"modelWhitelistAllowAllClause": "Allow all Claude models",
Expand Down
4 changes: 3 additions & 1 deletion messages/ru/dashboard.json
Original file line number Diff line number Diff line change
Expand Up @@ -253,7 +253,9 @@
"responseModelLabel": "Фактическая модель ответа",
"mismatchTooltip": "Провайдер вернул модель, отличную от запрошенной. Тарификация по-прежнему ведётся по запрошенной модели.",
"secondaryLineAriaLabel": "Фактическая модель ответа: {model}",
"arrowPrefix": "\u21b3"
"arrowPrefix": "↳",
"noSignatureBadge": "Нет подписи мышления",
"noSignatureTooltip": "Мышление было включено, но в потоке ответа не была возвращена подпись мышления; фактическая модель ответа берётся из обычного поля model в message_start."
},
"errorMessage": "Сообщение об ошибке",
"fake200ForwardedNotice": "Примечание: для потоковых запросов эта ошибка может быть обнаружена только после завершения потока; содержимое ответа могло уже быть передано клиенту.",
Expand Down
4 changes: 2 additions & 2 deletions messages/ru/settings/prices.json
Original file line number Diff line number Diff line change
Expand Up @@ -172,10 +172,10 @@
"deleteConfirm": "Удалить модель {name}? Это действие необратимо.",
"form": {
"modelName": "ID модели",
"modelNamePlaceholder": "например: gpt-5.4",
"modelNamePlaceholder": "например: gpt-5.5",
"modelNameRequired": "ID модели обязателен",
"displayName": "Отображаемое имя (необязательно)",
"displayNamePlaceholder": "например: GPT-5.4 Codex",
"displayNamePlaceholder": "например: GPT-5.5 Codex",
"type": "Тип",
"provider": "Поставщик",
"providerPlaceholder": "например: openai",
Expand Down
2 changes: 1 addition & 1 deletion messages/ru/settings/providers/form/modelSelect.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
"loading": "Загрузка...",
"manualAdd": "Добавить модель вручную",
"manualDesc": "Поддержка добавления любого названия модели (не ограничено прайс-листом)",
"manualPlaceholder": "Введите название модели (например, gpt-5.4)",
"manualPlaceholder": "Введите название модели (например, gpt-5.5)",
"notFound": "Модели не найдены",
"openai": "OpenAI",
"providerFilterAll": "Все провайдеры",
Expand Down
2 changes: 1 addition & 1 deletion messages/ru/settings/providers/form/strings.json
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@
"modelWhitelistLoading": "Загрузка...",
"modelWhitelistManualAdd": "Добавить модель вручную",
"modelWhitelistManualDesc": "Поддерживает добавление любого имени модели (не ограничено прайс-листом)",
"modelWhitelistManualPlaceholder": "Введите имя модели (например, gpt-5.4)",
"modelWhitelistManualPlaceholder": "Введите имя модели (например, gpt-5.5)",
"modelWhitelistNotFound": "Модели не найдены",
"modelWhitelistSearchPlaceholder": "Поиск по имени модели...",
"modelWhitelistSelectAll": "Выбрать все ({count})",
Expand Down
4 changes: 2 additions & 2 deletions messages/ru/usage.json
Original file line number Diff line number Diff line change
Expand Up @@ -544,7 +544,7 @@
"importantPoints": [
"Создайте API key в панели cch и задайте переменную окружения CCH_API_KEY",
"cchClaude/openai используют ${resolvedOrigin}/v1; cchGemini использует ${resolvedOrigin}/v1beta",
"При выборе модели используйте provider_id/model_id (например, openai/gpt-5.4 или cchClaude/claude-sonnet-4-5-20250929)"
"При выборе модели используйте provider_id/model_id (например, openai/gpt-5.5 или cchClaude/claude-sonnet-4-5-20250929)"
]
},

Expand Down Expand Up @@ -622,7 +622,7 @@
"steps": [
"Перезагрузите Droid",
"Введите команду /model",
"Выберите GPT-5.4 [cch] или Sonnet 4.5 [cch]",
"Выберите GPT-5.5 [cch] или Sonnet 4.5 [cch]",
"Начните использовать!"
]
}
Expand Down
4 changes: 3 additions & 1 deletion messages/zh-CN/dashboard.json
Original file line number Diff line number Diff line change
Expand Up @@ -253,7 +253,9 @@
"responseModelLabel": "实际响应模型",
"mismatchTooltip": "上游供应商实际返回的模型与请求的模型不一致。计费仍然基于请求模型。",
"secondaryLineAriaLabel": "实际响应模型:{model}",
"arrowPrefix": "\u21b3"
"arrowPrefix": "↳",
"noSignatureBadge": "无思考签名",
"noSignatureTooltip": "请求开启了思考但响应流中没有 thinking signature,实际响应模型回退到 message_start 明文字段。"
},
"errorMessage": "错误信息",
"fake200ForwardedNotice": "提示:对于流式请求,该失败可能在流结束后才被识别;响应内容可能已原样透传给客户端。",
Expand Down
4 changes: 2 additions & 2 deletions messages/zh-CN/settings/prices.json
Original file line number Diff line number Diff line change
Expand Up @@ -172,10 +172,10 @@
"deleteConfirm": "确定要删除模型 {name} 吗?此操作不可撤销。",
"form": {
"modelName": "模型 ID",
"modelNamePlaceholder": "例如: gpt-5.4",
"modelNamePlaceholder": "例如: gpt-5.5",
"modelNameRequired": "模型 ID 不能为空",
"displayName": "展示名称(可选)",
"displayNamePlaceholder": "例如: GPT-5.4 Codex",
"displayNamePlaceholder": "例如: GPT-5.5 Codex",
"type": "类型",
"provider": "供应商",
"providerPlaceholder": "例如: openai",
Expand Down
2 changes: 1 addition & 1 deletion messages/zh-CN/settings/providers/form/modelSelect.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
"exactMatchHint": "这里选中的模型会作为精确匹配规则加入白名单;前缀、后缀、关键词和正则规则仍在下方高级编辑区维护。",
"fallbackNotice": "当前无法获取上游模型列表,已自动切换到本地价格表目录。",
"manualAdd": "手动添加模型",
"manualPlaceholder": "输入模型名称(如 gpt-5.4)",
"manualPlaceholder": "输入模型名称(如 gpt-5.5)",
"manualDesc": "支持添加任意模型名称(不限于价格表中的模型)",
"claude": "Claude",
"openai": "OpenAI",
Expand Down
2 changes: 1 addition & 1 deletion messages/zh-CN/settings/providers/form/strings.json
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@
"modelWhitelistSelectAll": "全选 ({count})",
"modelWhitelistClear": "清空",
"modelWhitelistManualAdd": "手动添加模型",
"modelWhitelistManualPlaceholder": "输入模型名称(如 gpt-5.4)",
"modelWhitelistManualPlaceholder": "输入模型名称(如 gpt-5.5)",
"modelWhitelistManualDesc": "支持添加任意模型名称(不限于价格表中的模型)",
"modelWhitelistAllowAll": "允许所有 {type} 模型",
"modelWhitelistAllowAllClause": "允许所有 Claude 模型",
Expand Down
4 changes: 2 additions & 2 deletions messages/zh-CN/usage.json
Original file line number Diff line number Diff line change
Expand Up @@ -540,7 +540,7 @@
"importantPoints": [
"请先在 cch 后台创建 API Key,并设置环境变量 CCH_API_KEY",
"cchClaude/openai 使用 ${resolvedOrigin}/v1,cchGemini 使用 ${resolvedOrigin}/v1beta",
"模型选择时使用 provider_id/model_id 格式(例如 openai/gpt-5.4 或 cchClaude/claude-sonnet-4-5-20250929)"
"模型选择时使用 provider_id/model_id 格式(例如 openai/gpt-5.5 或 cchClaude/claude-sonnet-4-5-20250929)"
]
},

Expand Down Expand Up @@ -618,7 +618,7 @@
"steps": [
"重启 Droid",
"输入 /model 命令",
"选择 GPT-5.4 [cch] 或 Sonnet 4.5 [cch]",
"选择 GPT-5.5 [cch] 或 Sonnet 4.5 [cch]",
"开始使用!"
]
}
Expand Down
4 changes: 3 additions & 1 deletion messages/zh-TW/dashboard.json
Original file line number Diff line number Diff line change
Expand Up @@ -253,7 +253,9 @@
"responseModelLabel": "實際回應模型",
"mismatchTooltip": "上游供應商實際回傳的模型與請求的模型不一致。計費仍然依據請求模型。",
"secondaryLineAriaLabel": "實際回應模型:{model}",
"arrowPrefix": "\u21b3"
"arrowPrefix": "↳",
"noSignatureBadge": "無思考簽名",
"noSignatureTooltip": "請求啟用了思考但回應流中沒有 thinking signature,實際回應模型回退到 message_start 明文欄位。"
},
"errorMessage": "錯誤訊息",
"fake200ForwardedNotice": "提示:對於串流請求,此失敗可能在串流結束後才被識別;回應內容可能已原樣透傳給用戶端。",
Expand Down
4 changes: 2 additions & 2 deletions messages/zh-TW/settings/prices.json
Original file line number Diff line number Diff line change
Expand Up @@ -172,10 +172,10 @@
"deleteConfirm": "確定要刪除模型 {name} 嗎?此操作無法復原。",
"form": {
"modelName": "模型識別碼",
"modelNamePlaceholder": "例如:gpt-5.4",
"modelNamePlaceholder": "例如:gpt-5.5",
"modelNameRequired": "模型 ID 為必填",
"displayName": "顯示名稱(選填)",
"displayNamePlaceholder": "例如:GPT-5.4 Codex",
"displayNamePlaceholder": "例如:GPT-5.5 Codex",
"type": "類型",
"provider": "供應商",
"providerPlaceholder": "例如:openai",
Expand Down
2 changes: 1 addition & 1 deletion messages/zh-TW/settings/providers/form/modelSelect.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
"loading": "載入中...",
"manualAdd": "手動新增模型",
"manualDesc": "支援新增任意模型名稱(不限於價格表中的模型)",
"manualPlaceholder": "輸入模型名稱(例如 gpt-5.4)",
"manualPlaceholder": "輸入模型名稱(例如 gpt-5.5)",
"notFound": "找不到模型",
"openai": "OpenAI",
"providerFilterAll": "全部供應商",
Expand Down
2 changes: 1 addition & 1 deletion messages/zh-TW/settings/providers/form/strings.json
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@
"modelWhitelistLoading": "載入中...",
"modelWhitelistManualAdd": "手動新增模型",
"modelWhitelistManualDesc": "支援新增任意模型名稱(不限於價格表中的模型)",
"modelWhitelistManualPlaceholder": "輸入模型名稱(例如 gpt-5.4)",
"modelWhitelistManualPlaceholder": "輸入模型名稱(例如 gpt-5.5)",
"modelWhitelistNotFound": "未找到模型",
"modelWhitelistSearchPlaceholder": "搜尋模型名稱...",
"modelWhitelistSelectAll": "全選({count})",
Expand Down
4 changes: 2 additions & 2 deletions messages/zh-TW/usage.json
Original file line number Diff line number Diff line change
Expand Up @@ -540,7 +540,7 @@
"importantPoints": [
"請先在 cch 後台創建 API Key,並設置環境變量 CCH_API_KEY",
"cchClaude/openai 使用 ${resolvedOrigin}/v1,cchGemini 使用 ${resolvedOrigin}/v1beta",
"模型選擇時使用 provider_id/model_id 格式(例如 openai/gpt-5.4 或 cchClaude/claude-sonnet-4-5-20250929)"
"模型選擇時使用 provider_id/model_id 格式(例如 openai/gpt-5.5 或 cchClaude/claude-sonnet-4-5-20250929)"
]
},

Expand Down Expand Up @@ -618,7 +618,7 @@
"steps": [
"重啟 Droid",
"輸入 /model 命令",
"選擇 GPT-5.4 [cch] 或 Sonnet 4.5 [cch]",
"選擇 GPT-5.5 [cch] 或 Sonnet 4.5 [cch]",
"開始使用!"
]
}
Expand Down
4 changes: 2 additions & 2 deletions src/actions/providers.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4309,7 +4309,7 @@ export async function testProviderOpenAIChatCompletions(
): Promise<ProviderApiTestResult> {
return executeProviderApiTest(data, {
path: "/v1/chat/completions",
defaultModel: "gpt-5.4",
defaultModel: "gpt-5.5",
headers: (apiKey, context) => {
void context;
return {
Expand Down Expand Up @@ -4343,7 +4343,7 @@ export async function testProviderOpenAIResponses(
): Promise<ProviderApiTestResult> {
return executeProviderApiTest(data, {
path: "/v1/responses",
defaultModel: "gpt-5.4",
defaultModel: "gpt-5.5",
headers: (apiKey, context) => {
void context;
return {
Expand Down
Loading
Loading