@wengine-ai/llms 2.3.2411 → 2.3.2413
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 +2 -2
- package/dist/cjs/server.cjs +11 -11
- package/dist/cjs/server.cjs.map +3 -3
- package/dist/esm/server.mjs +4 -4
- package/dist/esm/server.mjs.map +3 -3
- package/package.json +2 -2
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.2413** | <ul><li>**修复 TTFT 永久为空**: #65(pi 会话粘连)与 #67(temp-file 重写)合并冲突解决时丢失了 #65 的 \`statsKey\` 文件名优先逻辑,handler 用会话 UUID 命名临时文件而 reader 用 requestId 查找 → 永久不匹配 → 所有流式请求的 TTFT 都是 null、tokens_per_second 退化为按完整时长重算。修复后 handler 优先用 \`metadata.statsKey\` 命名文件(对齐 reader),TTFT 与真实速度恢复。</li></ul> |
|
|
97
|
+
| **v2.3.2412** | <ul><li>**修复用量/套餐接口在 node 版本不匹配时全部失效**: 当运行时 Node 的 ABI 与安装 better-sqlite3 时不同(如桌面应用注入自带 node),`ERR_DLOPEN_FAILED` 导致 `/api/usage*`、`/api/providers/quota` 全部 500,UI 用量页与套餐限额条消失。现在优先加载 better-sqlite3,加载失败自动回退 Node 内置 `node:sqlite`(Node ≥ 22.5),任意 node 版本下均可工作;CLI statusline 同步受益;回退时输出一次性显眼日志。</li><li>**修复 pi 模型条目自定义字段被刷新抹除**: `ensurePiCcrProvider` 此前整组替换 `models[]`,pi 的 `thinkingLevelMap` 等条目级自定义字段每次 CCR 启动/项目接管都被静默清掉(#69)。现在模型集合仍由 CCR 管理,但每个生成条目按同 id 与旧条目合并——受管字段以 CCR 为准,条目级自定义字段跨刷新保留。</li></ul> |
|
|
96
98
|
| **v2.3.2411** | <ul><li>**AMD Radeon Cloud 转换器**: 新增 `amd` 转换器:统一 reasoning 意图按目标模型族映射为 AMD 端点支持的 `reasoning_effort` 档位(GLM/Qwen/DeepSeek 分别适配,禁用拼写正确透传),响应侧把 `reasoning` 内容提升为 `thinking`(含 SSE 误标 JSON 边界处理);推荐 provider 链 `use:["OpenAI","amd"]`。</li><li>**Pi 会话粘连**: 识别 `x-session-affinity` 等会话标识头生成稳定会话 ID:并发优先模式的会话槽位跨请求稳定粘附,token-speed 统计与用量记录按稳定会话 ID 分组,兼容 LiteLLM `x-litellm-session-id`,接管刷新后自动写入 pi 配置。</li><li>**修复 token-speed 临时文件堆积导致服务卡死**: 修复按请求写时间戳临时文件且永不清理的问题(单机曾累积 323 万文件,每次请求全目录扫描阻塞事件循环约 33 秒)。写入改为精确文件名原子覆盖并迁移到 `token-speed-v2` 子目录(新旧版本可并存),读取 O(1);新增默认 1 小时保留期自动清理;升级后服务启动自愈,仅清理旧目录中文件名时间戳与修改时间均超过 1 小时的历史文件,不触碰用量库与配置。</li></ul> |
|
|
97
99
|
| **v2.3.2410** | <ul><li>**并发优先模式开关移至通用配置**: 开关从 Router 配置区移到全局设置页「通用配置」区(「去除 Claude Code Attribution 动态头」下方),作为全局开关;配置仍存于 Router 节点,项目 Router 可通过 JSON 覆盖;项目级编辑器不再展示该开关。</li></ul> |
|
|
98
100
|
| **v2.3.2409** | <ul><li>**并发优先模式(会话粘连 + 场景级溢出分流)**: 多项目共用一个 CCR 实例时,大量并发打到同一个模型会导致排队变慢。新增 `Router.enableConcurrencyPriority`(默认关闭)与 `Router.concurrencyThreshold`(默认 3),叠加在现有路由结果之上:路由选中模型(default/think/longContext/extendedContext/webSearch/image/background/模型族默认值)在途并发达到阈值后,新会话直接分流到该场景 fallback 列表(模型族优先于全局)中负载最低的健康模型;会话按槽位(session+模型族+场景)粘连首配模型保持 prompt 缓存命中,仅报错走 fallback 成功才切换;`provider,model` 显式路由与 `<CCR-SUBAGENT-MODEL>` 子代理覆盖不受影响。UI 全局设置页「通用配置」新增「并发优先模式」全局开关与阈值(中英文)。</li></ul> |
|
|
@@ -101,8 +103,6 @@ npm install -g @wengine-ai/claude-code-router-next@latest && ccr restart
|
|
|
101
103
|
| **v2.3.2406** | <ul><li>**默认思考等级支持自定义值**: 除枚举外可填 token 预算或供应商私有字符串(如 `minimal`/`off`);数字在 Anthropic 端点按精确预算注入、OpenAI 系端点折叠为最接近档位,非枚举字符串在 OpenAI 系端点原样透传、Anthropic 端点按别名归一(min/minimal/light→low、xhigh/maximum/ultra→max);UI 新增「自定义」自由输入。</li><li>**思考深度按 effort 下发**: `convertToAnthropic` 现在同时下发 `output_config.effort`(当前 Anthropic 模型与 GLM 等兼容端点真正读取的字段),`thinking.budget_tokens` 保留以兼容旧模型与中转;客户端原始 effort 不再被丢弃、`thinking.type=adaptive` 不再被误判为关闭思考、预算不再被四舍五入到档位。</li><li>**ZCode 独立客户端归属**: 此前 ZCode 用 `ccr-*` 别名 + Claude Code 兼容 metadata 调用,日志一律记为 claude-code;现按请求头(`User-Agent: ZCode/…`、`X-ZCode-*`)识别并单独计入用量。</li><li>**release.sh 发布中断可续跑**: 重跑自动跳过已发布的包,只发剩余包。</li></ul> |
|
|
102
104
|
| **v2.3.2405** | <ul><li>**供应商级默认思考等级**: 客户端未携带思考配置时按供应商配置的默认等级注入,并按端点类型自动转义——Anthropic `/v1/messages` → `thinking.budget_tokens`、OpenAI `/v1/responses` → `reasoning.effort`、OpenAI 兼容 chat → `reasoning_effort`;客户端显式设置始终优先。附带修复客户端显式 thinking 在 Anthropic 端点被丢弃的问题。</li><li>**预置自引用 `ccr` 供应商(免接管)**: ZCode 等自配端点客户端不再需要接管——CCR 启动/保存配置时自动确保存在指向自身的 `ccr` 供应商(ccr-opus/sonnet/haiku);删除后记 tombstone 不复活。</li><li>**pi 项目 provider 命名可读化**: `ccr-project-<hash>` → `ccr-project-<项目名>-<hash>`,旧格式无需迁移。</li></ul> |
|
|
103
105
|
| **v2.3.2404** | <ul><li>**opencode provider 默认携带 x-opencode-session 会话头**: OpenCode Go 端点强制要求 `x-opencode-session`(缺失直接 400),而 CCR 非透传模式重建上游请求时只带 `Authorization`,客户端会话头全部丢弃,导致 opencode go 供应商(如 `omen-alpha`)全部 400。opencode transformer 现按优先级复用稳定会话 ID:客户端原生 `x-opencode-session` 头 → client adapter 提取的 Claude Code 会话 ID(`metadata.user_id`)→ 请求体兜底提取 → Codex 原生 `session_id` 头 → 回退每请求 UUID;同一会话内值稳定,命中 Go 的路由与 prompt cache 优化。</li></ul> |
|
|
104
|
-
| **v2.3.2403** | <ul><li>**修复 Pi 项目级路由未生效**: Pi 项目接管不再复用无法标识项目的全局 `ccr` provider;每个项目改用携带受管项目 ID 的独立 provider,服务端直接加载对应项目 Router。旧接管会自动迁移,关闭全局 Pi 接管不会破坏项目接管,无效映射也不会静默回落到全局模型。</li></ul> |
|
|
105
|
-
| **v2.3.2402** | <ul><li>**formatResponse SSE 识别放宽**: 之前仅对 `application/json` 头 peek,上游用非标准 Content-Type(`text/plain`/空)返回 SSE 仍会报 non-JSON;现对任何非流式响应都先 peek 判 SSE。</li></ul> |
|
|
106
106
|
|
|
107
107
|
> 仅保留最近 10 个版本,更早版本的发布摘要见 [CHANGELOG-archive.md](./CHANGELOG-archive.md),完整详细变更记录见 [CHANGELOG.md](./CHANGELOG.md)。
|
|
108
108
|
|