Repository navigation
v0.20.0
·
111 commits
to master
since this release
[v0.20.0] — 2026-09-09
自动路由生命周期、管理界面与 CLI 协议兼容。原生端点优先;未实现完整转换的协议组合不再裸转发。
安全
- 站点代理:HTTP(S) 环境代理同样拒绝 metadata/link-local 等禁止目标,保留直连地址校验(#1284)。
ACCOUNT_CREDENTIAL_SECRET:示例改为替换提示;生产须自行生成密钥,已有加密凭据换密钥后的恢复步骤见部署说明(#1237)。
修复
/v1/messages:文本及客户端工具可回退到 Chat,并转换 JSON/SSE 返回及工具续轮;不支持的扩展保留原生路径(#1288)。- SSE:显式上游错误记为失败;工具终止原因与完整参数一致;Messages 代理错误使用原生错误事件,不追加成功终止标记(#1278、#1279、#1288)。
- NewAPI 模型发现:禁用
/v1/models时可使用账号已有 PAT;无效 relay key 不被管理凭据掩盖,管理模型列表不冒充推理健康(#1232)。 - NewAPI 令牌:同步与删除覆盖全分页,掩码原值按最多 100 条分批获取;每次最多 1,000 条、10 页、8 MiB 令牌元数据。不完整或失败列表不驱动默认凭据切换,legacy 列表无法证明目标不存在时删除明确失败(#1289)。
/api/accounts/login:上游轮换默认 relay key 后,重新登录同步可用凭据,不再保留失效默认项(#1266)。- 管理接口:部分上游登录、余额、模型和令牌写入失败改为分类错误,不再伪装成空列表、零余额或成功;API-key-only 边界保持明确(#1227、#1244、#1246、#1247、#1248、#1251)。
- 签到:无签到能力的上游返回 skipped;成功事件正常进入通知流,重复签到不重复计算奖励(#1267、#1268、#1269)。
- 下游密钥:已删除的路由不再阻止编辑已有密钥策略(#1229)。
变更
autoCreateModelRoutes:默认 false;开启后随模型同步创建缺失路由,保留手工绑定、禁用策略和密钥授权,模型退订移除自动通道(#1285)。POST /api/routes/rebuild:wait:false返回 202 与 taskId;经GET /api/tasks/{taskId}查询,页面关闭不取消任务,服务器重启不续跑(#1285)。PROXY_FIRST_BYTE_TIMEOUT_SEC:流式请求的 0 使用 90 秒默认响应头预算;正数覆盖默认值,不再受隐藏 30 秒上限截断;响应开始后由流空闲超时控制(#1288)。- 管理界面:整理导航层级、路由编辑与批量通道选择;内嵌 Noto Sans SC,中文字体不再依赖操作系统,超时和协议回退说明与行为一致(#1260、#1286、#1288)。
移除
CLAUDE_CLIENT_SECRET:移除未消费的变量;Claude OAuth 覆盖仅需CLAUDE_CLIENT_ID,使用 PKCE(#1257)。CODEX_HEADER_DEFAULTS_USER_AGENT、CODEX_HEADER_DEFAULTS_BETA_FEATURES:移除从未生效的配置项(#1257)。PROXY_STICKY_SESSION_ENABLED、PROXY_SESSION_CHANNEL_LEASE_TTL_MS、PROXY_SESSION_CHANNEL_LEASE_KEEPALIVE_MS:移除未接线的开关与租约配置;现役 TTL/并发限制不变(#1257)。
已知遗留
- Messages 隐藏 reasoning 回放使用进程内缓存与自有工具 ID,经当前授权策略绑定原通道;上限 256 组 / 8 MiB / 单组 512 KiB / 30 分钟。过期、淘汰、重启或换实例会明确拒绝续轮,不承诺集群粘性。转换范围见客户端接入说明。
admin_audit_logs与checkin_logs仍无保留期;本版不自动清理已有审计或签到历史。