@wengine-ai/llms 2.3.2396 → 2.3.2398

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -93,6 +93,8 @@ npm install -g @wengine-ai/claude-code-router-next@latest && ccr restart
93
93
 
94
94
  | 版本 | 发布内容 |
95
95
  | --- | --- |
96
+ | **v2.3.2398** | <ul><li>**修复 Codex 中转 SSE 被误标 application/json 时丢失内容**: 补齐 v2.3.2397 漏掉的 `OpenAIResponsesTransformer` 同类问题——上游返回 SSE body 但 Content-Type 标 `application/json` 时不再抛 `non-JSON` 错误,改为 peek body 实际内容后按 SSE 透传。</li></ul> |
97
+ | **v2.3.2397** | <ul><li>**修复 SSE 响应被误标 application/json 时丢失内容**: Codex 中转/OpenRouter 错误响应把 SSE body 标成 `application/json` 时,Anthropic transformer 此前按 Content-Type 当非流式 JSON 解析并抛错;现在先 peek body 实际内容,确为 SSE(`event:`/`data:`/`: ` 开头)则走流式转换,仅确为 JSON 才解析,行首匹配不误伤含 `event` 字段的 JSON。</li></ul> |
96
98
  | **v2.3.2396** | <ul><li>**修复 OpenRouter SSE 被当作 JSON 解析**: 最终响应改为按实际 Content-Type 判断流式/非流式,并为 transformer 的 JSON 解析增加原始响应预览,`stealth/ox-alpha` 等返回 `: OPENROUTER PROCESSING` 时不再只报 `Unexpected token ':'`。</li><li>**修复 OpenCode Go 多轮 thinking 缓存断点**: 历史 assistant `thinking` 现在会回放为 `reasoning_content` + signature,避免缓存只能命中到首个 thinking turn 前(常见约 64k)及 `reasoning_content must be passed back` 400;直连 181k 请求验证上游可命中 99.88%。</li><li>**自定义 transformer 参数可直接编辑**: 参数行新增编辑按钮,以 key/value 回填输入框;嵌套 JSON/布尔/数字可修改后按同名 key 覆盖,无需删除重输。</li></ul> |
97
99
  | **v2.3.2395** | <ul><li>**UI 转换器参数支持嵌套 JSON/布尔/数字**: 参数值此前一律按字符串保存,`customparams` 的 deep merge 无法应用字符串参数,结构化参数(如强制 reasoning 端点的 `{"enabled":true,"effort":"max"}`)在 UI 里配了也无效;现在按类型解析(畸形 JSON 保留原文),参数回显不再显示 `[object Object]`。</li></ul> |
98
100
  | **v2.3.2394** | <ul><li>**严格项目路由不再因熔断目标返回 503**: 项目目标仅因 health fail-pool 不可用且无备用模型时,CCR 跳过健康检查继续请求项目配置的同一模型,让客户端收到真实上游结果;供应商/模型缺失、禁用、格式或额度错误仍拒绝,不逃逸项目边界。</li><li>**修复非流式 TTFT 与 token 速率统计**: 非流式响应不再把总耗时冒充 TTFT(显示 `-`),速率改为输出 token ÷ 总耗时,并阻止假 TTFT 污染平均值。</li></ul> |
@@ -101,8 +103,6 @@ npm install -g @wengine-ai/claude-code-router-next@latest && ccr restart
101
103
  | **v2.3.239** | <ul><li>**供应商慢网探测与黄色 ⚠️ 告警**: 后台对每个供应商的 `/models` 可达性探测现在记录延迟,超过 `PROBE_SLOW_THRESHOLD_MS`(默认 3000ms)在 provider 卡片显示黄色 ⚠️;`GET /api/providers/health` 追加 `probes`,手动探测返回 latency/status/isSlow。慢但成功不开熔断,仅作 UI 提示。</li><li>**用量汇总改 SQL 聚合,UI 不再随机卡顿**: `/api/providers/quota`、`/api/usage` 的 summary 此前 `SELECT *` 全量物化 + JS 聚合阻塞 event loop,是 health/quota 随机卡顿的共享根因;改为 SQL `COUNT/SUM/AVG/GROUP BY`,语义不变。</li><li>**UI 刷新循环重做,杜绝请求重叠**: Providers health/quota 改 60s 自调度 single-flight;Usage 改 30s 串行队列(上一个未返回下一个顺延);`/api/clients` 仅 mount 刷新(操作后复用响应、不再 visibility 补拉);页面隐藏时暂停。</li><li>**Image 路由根因修复**: image agent 此前在路由前改写 `req.body.model`,导致用量记录丢失客户端真实模型(如 ccr-opus)并绕过 family image 路由;现按客户端原始模型识别 family 路由图片。同时修复 `promoteToolResultImages` 把所有数组型 tool_result 内容替换为占位符、丢失文本/结构化内容的问题。</li><li>**移除已弃用的 Codex 多账号管理**: 删除账号列表、切换、后台自动维护及对应 API/CLI/UI;Codex 仍作为普通 provider/client 完整支持(检测、`/v1/responses`、transformer、takeover、用量归属),历史账号文件与 `~/.codex/auth.json` 保持不动。</li><li>**路由优先级:模型族优先于 explicit `provider,model`**: 开启 family routing 时请求先走模型族映射,命中即用;family 未命中才解析客户端显式指定,最后落默认路由。</li></ul> |
102
104
  | **v2.3.238** | <ul><li>**更新成功后服务自动重启**: 修复 `performUpdate` 跑完 `npm install -g` 只返回“请手动重启”、从不真正重启的问题;现在成功后复用 `/api/restart` 的自重启模式自动重启服务,前端轮询 `checkForUpdates` 返回 `hasUpdate:false` 后自动刷新页面加载新前端。</li><li>**更新请求并发锁**: 新增模块级 `updateInProgress` 守卫,刷新页面丢失 UI 状态后再次点击“立即更新”不会再触发第二次 `npm install -g`。</li><li>**超时文案补全包名**: `app.update_timeout` 改为“手动执行 `npm install -g @wengine-ai/claude-code-router-next@latest`”,照抄即可成功。</li></ul> |
103
105
  | **v2.3.237** | <ul><li>**更新操作显示进度并限制等待时间**: 点击“立即更新”后禁用弹窗按钮并显示“更新中…”状态,避免重复安装;前端请求与后端 `npm install -g` 均设置 5 分钟超时,后端输出缓冲提高到 4 MB,超时会显示可读错误而非永久挂起。</li><li>**精简 Claude 项目指引**: 删除可由 manifests、CLI help 和仓库结构直接推导的常驻说明,保留非显然的安全、发布与架构约束,减少每次会话的固定上下文开销。</li></ul> |
104
- | **v2.3.236** | <ul><li>**阿里云 Token Plan 用量查询(5h/7d 额度)**: 为 `*.maas.aliyuncs.com` 网关新增专用 `AliyunTokenPlanQuotaAdapter`,走 Token Plan 专用 BroadScope 用量接口并把 `per5HourPercentage`/`per1WeekPercentage` 映射为 5h/7d 百分比展示。</li><li>**`quota_sec_token` 配置项与官方网关 + legacy 回退**: provider 可选 `quota_sec_token` 与 UI 密码输入;配置后走官方 `bailian-cs.console.aliyun.com` 网关(对齐真实控制台请求,`_v=undefined`、动态 trace、不含 spm),失败安全降级到 `cs-data` cookie-only 端点。</li><li>**pi 扩展上下文触发统一为绝对阈值**: 移除 pi 的 `extendedContextRatio`,统一走 family → Router → 200000 的绝对阈值链。</li><li>**测试 HOME 隔离真正到达 vitest worker**: 修复 core/shared 测试套件此前落在真实 `~/.claude-code-router` 的隔离失效问题。</li></ul> |
105
- | **v2.3.235** | <ul><li>**修复 npm 全局安装静默失败**: 此前 `@wengine-ai/llms` 发布包把运行时 shared 依赖保留为 pnpm 的 `workspace:*` 协议,npm 在解析依赖树阶段无法识别并 exit 1。发布流程现在先发布同版本 `@wengine-ai/claude-code-router-shared`,再把 core 中所有 `workspace:` 范围转换为真实 npm version range 后发布,最后发布 CLI;shared/core/CLI 三个发布 manifest 都新增 `workspace:` 拦截校验,防止再次发布 npm 无法安装的包。</li></ul> |
106
106
 
107
107
  > 仅保留最近 10 个版本,更早版本的发布摘要见 [CHANGELOG-archive.md](./CHANGELOG-archive.md),完整详细变更记录见 [CHANGELOG.md](./CHANGELOG.md)。
108
108