From 531bd9f735d7bab41ca3b32fc839976b310d40bb Mon Sep 17 00:00:00 2001 From: y574444354 <574444354@qq.com> Date: Thu, 16 Apr 2026 11:29:23 +0800 Subject: [PATCH 1/4] chore: bump version to 4.0.6 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 版本号升级至 4.0.6 - CHANGELOG.md 新增 4.0.6 变更记录 - package.json 描述更新,undici 移至 dependencies --- .omc/project-memory.json | 66 +++++++++++++++++++ ...749dc8f9-6034-4b83-8221-33ac46fe84fb.jsonl | 1 - CHANGELOG.md | 6 ++ package.json | 6 +- scripts/defines.ts | 2 +- 5 files changed, 76 insertions(+), 5 deletions(-) delete mode 100644 .omc/state/agent-replay-749dc8f9-6034-4b83-8221-33ac46fe84fb.jsonl diff --git a/.omc/project-memory.json b/.omc/project-memory.json index 7189e2b17..883b73e99 100644 --- a/.omc/project-memory.json +++ b/.omc/project-memory.json @@ -176,6 +176,60 @@ } }, "hotPaths": [ + { + "path": "C:\\Users\\SXF-Admin\\.claude\\projects\\D--source-codespace-geroge-costrict-repo-csc\\memory\\project_bun_to_node_migration.md", + "accessCount": 7, + "lastAccessed": 1776310133168, + "type": "file" + }, + { + "path": "package.json", + "accessCount": 5, + "lastAccessed": 1776309529820, + "type": "file" + }, + { + "path": "C:\\Users\\SXF-Admin\\.claude\\projects\\D--source-codespace-geroge-costrict-repo-csc\\memory\\project_version_milestones_4x.md", + "accessCount": 5, + "lastAccessed": 1776310132640, + "type": "file" + }, + { + "path": "CHANGELOG.md", + "accessCount": 4, + "lastAccessed": 1776310073300, + "type": "file" + }, + { + "path": "C:\\Users\\SXF-Admin\\.claude\\projects\\D--source-codespace-geroge-costrict-repo-csc\\memory\\feedback_changelog_merged_style.md", + "accessCount": 3, + "lastAccessed": 1776309698865, + "type": "file" + }, + { + "path": "C:\\Users\\SXF-Admin\\.claude\\projects\\D--source-codespace-geroge-costrict-repo-csc\\memory\\project_upstream_sync_conflict.md", + "accessCount": 2, + "lastAccessed": 1776308992853, + "type": "file" + }, + { + "path": "C:\\Users\\SXF-Admin\\.claude\\projects\\D--source-codespace-geroge-costrict-repo-csc\\memory\\feedback_direct_action_preference.md", + "accessCount": 2, + "lastAccessed": 1776309022748, + "type": "file" + }, + { + "path": "scripts\\defines.ts", + "accessCount": 2, + "lastAccessed": 1776309529227, + "type": "file" + }, + { + "path": "C:\\Users\\SXF-Admin\\.claude\\projects\\D--source-codespace-geroge-costrict-repo-csc\\memory\\feedback_npm_auth_method.md", + "accessCount": 2, + "lastAccessed": 1776310104176, + "type": "file" + }, { "path": "src", "accessCount": 1, @@ -193,6 +247,18 @@ "accessCount": 1, "lastAccessed": 1776229520323, "type": "file" + }, + { + "path": "scripts\\postinstall.cjs", + "accessCount": 1, + "lastAccessed": 1776309134829, + "type": "file" + }, + { + "path": "src\\utils\\proxy.ts", + "accessCount": 1, + "lastAccessed": 1776309134873, + "type": "file" } ], "userDirectives": [] diff --git a/.omc/state/agent-replay-749dc8f9-6034-4b83-8221-33ac46fe84fb.jsonl b/.omc/state/agent-replay-749dc8f9-6034-4b83-8221-33ac46fe84fb.jsonl deleted file mode 100644 index 0eed0c057..000000000 --- a/.omc/state/agent-replay-749dc8f9-6034-4b83-8221-33ac46fe84fb.jsonl +++ /dev/null @@ -1 +0,0 @@ -{"t":0,"agent":"a795097","agent_type":"unknown","event":"agent_stop","success":true} diff --git a/CHANGELOG.md b/CHANGELOG.md index 2f03c671c..0e682c01f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,12 @@ All notable changes to this project will be documented in this file. +## [4.0.6] - 2026-04-16 + +### 新功能 + +- 去除了运行时bun的依赖 + ## [4.0.5] - 2026-04-15 ### 新功能 diff --git a/package.json b/package.json index c25ae4e7d..6463cb6d7 100644 --- a/package.json +++ b/package.json @@ -1,8 +1,8 @@ { "name": "@costrict/csc", - "version": "4.0.5-3", + "version": "4.0.6", - "description": "CSC — 多模型终端 AI 编程助手,支持 Anthropic/OpenAI/Gemini/Grok 等多种 API 端点", + "description": "CSC — CoStrict多模型终端 AI 编程助手,支持 Anthropic/OpenAI/Gemini/Grok 等多种 API 端点", "type": "module", "author": "claude-code-best ", "repository": { @@ -64,6 +64,7 @@ }, "dependencies": { "@claude-code-best/mcp-chrome-bridge": "^2.0.7", + "undici": "^7.24.6", "ws": "^8.20.0", "yaml": "^2.8.3" }, @@ -187,7 +188,6 @@ "turndown": "^7.2.2", "type-fest": "^5.5.0", "typescript": "^6.0.2", - "undici": "^7.24.6", "url-handler-napi": "workspace:*", "usehooks-ts": "^3.1.1", "vscode-jsonrpc": "^8.2.1", diff --git a/scripts/defines.ts b/scripts/defines.ts index 404dc3425..08541f2d0 100644 --- a/scripts/defines.ts +++ b/scripts/defines.ts @@ -7,7 +7,7 @@ */ export function getMacroDefines(): Record { return { - "MACRO.VERSION": JSON.stringify("4.0.5.1"), + "MACRO.VERSION": JSON.stringify("4.0.6"), "MACRO.BUILD_TIME": JSON.stringify(new Date().toISOString()), "MACRO.FEEDBACK_CHANNEL": JSON.stringify(""), "MACRO.ISSUES_EXPLAINER": JSON.stringify(""), From fbeaf1395e161b49f822d1d06feba6cfcb647921 Mon Sep 17 00:00:00 2001 From: y574444354 <574444354@qq.com> Date: Thu, 16 Apr 2026 19:12:01 +0800 Subject: [PATCH 2/4] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=20CoStrict=20prov?= =?UTF-8?q?ider=20=E6=A8=A1=E5=9E=8B=E9=80=89=E6=8B=A9=E4=B8=8E=20token=20?= =?UTF-8?q?=E4=BC=B0=E7=AE=97=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - ConsoleOAuthFlow: 替换 ModelPicker 为直接 Select 组件,避免 getAPIProvider() 竞态导致显示标准 Anthropic 模型列表 - modelOptions: 简化模型选项逻辑,CoStrict 凭证持有者统一走 CoStrict 模型缓存路径,加载中显示提示而非标准模型列表 - provider/index: 回写 usage 和 stop_reason 到已 yield 的 assistant messages,与 Anthropic 原生路径保持一致 - tokenEstimation: 非 Anthropic 原生 provider(costrict/openai/ grok/gemini)统一使用粗略 token 估算 - 品牌文案: Claude → CoStrict 相关措辞修正 --- src/components/ConsoleOAuthFlow.tsx | 55 +++++++++++++------- src/components/ModelPicker.tsx | 2 +- src/constants/prompts.ts | 2 +- src/costrict/provider/index.ts | 18 +++++++ src/services/tokenEstimation.ts | 16 +++++- src/utils/betas.ts | 2 +- src/utils/model/modelOptions.ts | 80 ++++------------------------- 7 files changed, 81 insertions(+), 94 deletions(-) diff --git a/src/components/ConsoleOAuthFlow.tsx b/src/components/ConsoleOAuthFlow.tsx index 73ba8d0a5..d66cc58f7 100644 --- a/src/components/ConsoleOAuthFlow.tsx +++ b/src/components/ConsoleOAuthFlow.tsx @@ -17,7 +17,6 @@ import { getSettings_DEPRECATED, updateSettingsForSource } from '../utils/settin import { Select } from './CustomSelect/select.js'; import { Spinner } from './Spinner.js'; import TextInput from './TextInput.js'; -import { ModelPicker } from './ModelPicker.js'; import { useSetAppState } from '../state/AppState.js'; type Props = { @@ -1260,25 +1259,43 @@ function OAuthStatusMessage({ case 'costrict_model_select': { const sortedModels = [...oauthStatus.models].sort((a, b) => a.id.localeCompare(b.id)); + // 直接使用已获取的模型列表渲染选项,避免通用 ModelPicker 因 getAPIProvider() 竞态 + // 导致显示标准 Anthropic 模型列表而非 CoStrict 动态模型 + const costrictOptions = sortedModels.map(m => ({ + value: m.id, + label: m.name ?? m.id, + description: + m.id === 'Auto' + ? `${Math.round(((m as any).creditDiscount ?? 0) * 100)}% discount` + : `${(m as any).creditConsumption ?? '?'}x credit`, + })); return ( - { - const selected = model ?? sortedModels[0]?.id ?? ''; - process.env.COSTRICT_MODEL = selected; - setAppState(prev => ({ ...prev, mainLoopModel: selected, mainLoopModelForSession: null })); - setOAuthStatus({ state: 'success' }); - void onDone(); - }} - onCancel={() => { - const selected = sortedModels[0]?.id ?? ''; - process.env.COSTRICT_MODEL = selected; - setAppState(prev => ({ ...prev, mainLoopModel: selected, mainLoopModelForSession: null })); - setOAuthStatus({ state: 'success' }); - void onDone(); - }} - /> + + + + Select model + + Login successful. Select a CoStrict model to use: + + +