github AIDotNet/NextCoWork v2.6.1

2 hours ago

新增

Opper 与 API Route 供应商预设

  • 新增 Opper 聚合供应商,支持 OpenAI Chat Completions、Responses 与 Anthropic 三种协议;模型可使用池化短名自动选路,也可用 provider/model 固定线路,填写 API Key 后可拉取模型列表
  • 新增 API Route 预设,使用 https://global.api-route.com/v1 的 OpenAI Chat Completions 接口;按密钥权限拉取并导入模型,保留上游返回的完整模型 ID,不添加厂商前缀或预填过期模型目录

改动

用户供应商配置迁移到 providers.json,支持外部编辑热加载

  • 用户添加的非托管供应商、模型别名与凭证改存到应用数据根目录的 providers.json,供应商与模型按 ID 组织,便于本地网关、脚本或手动编辑接入;托管 nextcowork 供应商仍留在数据库中
  • 首次迁移前生成 nextcowork.pre-providers-file.db 整库快照;已有文件只补缺失供应商,不覆盖已有条目,确认供应商已写入后再清理旧库记录;无法解密的凭证保留原密文,迁移失败时本次启动继续使用数据库
  • 通过目录监听与 5 秒轮询拾取外部修改,兼容编辑器的临时文件替换写法;写入前重读磁盘,保留未改动条目的内容,文件解析失败时保留上一份有效配置并拒绝覆盖写入
  • 外部变更刷新模型界面,但不因临时删除条目而永久改选默认模型;文件模式不再自动补回未配置的内置上游及对应默认模型
  • 凭证存储变化:该文件包含明文 API Key,OAuth / 签名凭证以明文对象保存,应按敏感文件保管;写入时设置 0600 权限(受平台和文件系统支持限制),托管供应商凭证仍沿用数据库加密存储

修复

Anthropic 思考档位与旧 Token 预算兼容

  • 更新适用 Claude 型号的 adaptive thinking 声明,按模型能力发送 thinking.type=adaptive 与 output_config.effort;未收录的新版 Claude ID 采用保守推断,不猜测是否支持关闭思考
  • 旧目录中未改动的预算配置随新版目录采用 adaptive 档位,保留用户手动预算与显式覆盖;必须使用 adaptive 的型号在读取和发送时转换,不改写已保存的预算,Claude 4.5 / 4.6 的手工预算继续可用
  • 思考选择器与请求适配共用实际供应商协议和有效档位;保留预算裁剪前的原始档位选择,仅有旧预算参数的调用换算为受支持的强度,避免界面选择与实际请求不一致
  • 仅在型号确认支持时提供关闭思考,关闭时清除残留的 output_config.effort;模型配置编辑器同步拦截不兼容的默认关闭设置
  • 定时任务按目标模型归一化思考档位,不再直接套用模型不支持的工作区默认值,且不改写工作区设置或已保存的模型配置

后台子代理汇报送达确认与会话历史恢复

  • 后台汇报只有收到同一消息 ID 的 message_commit 才标记已送达,不再把入信箱或启动成功当作完成;运行正常结束但尚未消费的报告按原顺序优先重投,停止、报错或启动失败则退回待处理,避免误报已汇报或擅自续跑
  • 「回传中」只作为运行期状态,未确认前持久化为待处理,兼容重启后重试旧版遗留状态;迟到的子代理结束事件、快照重放和工具回执不再覆盖已有汇报状态
  • 历史回填按共同消息 ID 合并并保留早期页的位置,不按时间戳重排;恢复期间新加载的早期消息不会丢失,快照中的页外旧提交也不会被追加到对话末尾
  • 新运行广播先于旧运行结束事件到达时,及时接管活动运行并重置事件游标,避免继续恢复旧运行或沿用上一轮的临时状态

测试

  • 新增供应商文件存储、数据库迁移与 API Route 配置测试;补充 Anthropic 目录继承、旧预算转换、协议边界、关闭思考及定时任务档位归一化回归用例
  • 补充后台汇报提交确认、未消费报告重投、崩溃后重试、汇报状态重放,以及历史分页位置与新旧运行交接的回归测试
  • 相关 16 个测试文件共 648 项通过,typecheck(node + web + plugins)与 test:release(5 项)通过

Don't miss a new NextCoWork release

NewReleases is sending notifications on new releases.