47 Commits
Author SHA1 Message Date
tbphp 5d98e41cc4 chore(deps): upgrade Bifrost Core to v1.9.0 (#676) 2026-09-17 18:38:41 +08:00
tbphp 311c388c3a fix(groups): add missing gateway protocol probes (#673)
* fix(groups): add missing gateway protocol probes

* fix(groups): avoid typed gateway probe cancellation races

* fix(probes): validate gateway response array elements

* fix(probes): validate required native response payloads

* fix(probes): enforce exclusive Gemini part payloads
2026-09-17 16:24:24 +08:00
tbphp 91df89efed fix(bifrost): 恢复兼容渠道的工具降级转发 (#653)
* fix(execution): 保留跨协议工具调用约束

* fix(cpa): 修正工具白名单兼容边界

* fix(bifrost): 拒绝丢失压缩上下文

* fix(execution): 保持计数请求工具约束

* fix(bifrost): 恢复兼容渠道的工具降级转发
2026-09-14 22:21:59 +08:00
tbphp fbb99067cc fix(health): 放宽上游错误重试并保留健康边界 (#643)
* fix(health): 放宽上游错误重试并保留健康边界

* fix(health): 补齐资源操作重放与上下文拒绝规则

* fix(execution): 保留明确请求拒绝的分类优先级

* fix(health): 补齐流内 HTTP 错误重试判断
2026-09-13 18:06:37 +08:00
tbphp f8a04df46d fix(deepseek): 补齐原生协议字段兼容 (#638)
* fix(deepseek): 补齐原生协议字段兼容

* fix(deepseek): 兼容强制工具调用与默认思考

* fix(deepseek): 跳过空思考字段别名
2026-09-13 11:42:46 +08:00
tbphp c4c8452e6c fix(execution): 保留原生消息前缀并保护转换语义 (#631)
* fix(execution): 补齐原生消息透传并保留对话结构

* fix(execution): 保护转换请求的指令和执行约束

* fix(execution): 补齐无角色历史后的系统指令保护
2026-09-12 17:55:22 +08:00
tbphp 1b50c77673 fix(usage): 统一修正 Anthropic 流式输入与缓存用量 (#630)
* fix(cpa): 修正 Anthropic 流式转换的输入用量统计

* fix(usage): 统一 Anthropic 流式用量修正

* fix(usage): 保留原生流未采集时的执行层用量
2026-09-12 17:08:44 +08:00
tbphp a895ba25bf fix(execution): 统一普通渠道出站 UA 规则 (#622) 2026-09-11 11:59:15 +08:00
tbphp f091528bdb feat(gateway): 接入原生 Responses WebSocket 与逐轮治理 (#616)
* feat(gateway): 接入原生 Responses WebSocket 与逐轮治理

* feat(gateway): 增加 WS 分层开关并修复连接治理

* fix(gateway): 关闭停用或删除分组的 WS 连接
2026-09-10 21:18:41 +08:00
tbphp 7cbd2e672d feat(responses): 实现响应状态续接路由 (#609)
* feat(responses): 实现响应状态续接路由

* fix(responses): 限制响应 ID 长度并兼容缺失字段删除

* fix(responses): 按协议存储能力匹配续接路由
2026-09-09 23:13:41 +08:00
tbphp fe4b6ac159 feat(gateway): 接入原生文本重排序协议 (#607) 2026-09-09 15:06:50 +08:00
tbphp 7ed01e668b feat(images): 支持 Antigravity 与 Gemini 共享生图转换 (#605)
* feat(antigravity): 支持 Images 单向生图转换

* feat(images): 复用转换并支持 Gemini 渠道生图

* fix(images): 修正生图转换失败分类并恢复候选回退
2026-09-09 13:20:10 +08:00
tbphp 1898d8ee64 fix(gateway): 修复协议查询参数与零输出边界 (#603) 2026-09-09 11:18:20 +08:00
tbphp e0bfa07ec4 feat(scheduler): 统一凭据权重并调整模型错误重试 (#597)
* feat(scheduler): 统一凭据权重并调整错误重试

* docs: 更新三语配置权重说明
2026-09-08 17:18:08 +08:00
tbphp ae59a0ae85 feat(channel): 增加 Sub2API 渠道 (#567) 2026-09-04 22:55:55 +08:00
tbphp 21fa526a29 fix(gateway): 统一 Responses store 路由兼容 (#532)
* fix(gateway): 统一 Responses store 路由兼容

* fix(gateway): 收紧 Responses 降级归一化

* fix(channel): 将 DeepSeek 标记为无状态
2026-09-02 19:54:30 +08:00
tbphp e6b752b4db feat(channel): 增加 GPT-Load 上游渠道 (#526) 2026-09-01 21:52:38 +08:00
tbphp 1be3587000 feat(channel): 增加 CLIProxyAPI 多协议渠道 (#525) 2026-09-01 21:07:19 +08:00
tbphp d7d28370da feat(channel): 增加 New API 多协议渠道 (#524) 2026-09-01 19:56:40 +08:00
tbphp aee2111290 feat(gateway): 支持 OpenAI Embeddings API (#496)
新增原生 OpenAI Embeddings 端点,覆盖首期 API Key 渠道,并复用现有路由、健康、用量、日志与管理流程。
2026-08-30 00:45:19 +08:00
tbphp b1a7f373fc fix: 接入首个流错误安全切换 (#486)
* fix(gateway): 接入首个流错误安全切换

* fix(gateway): 保留显式重放安全状态
2026-08-28 08:15:13 +08:00
tbphp d4bbb9193a feat: 升级 Go 与 SDK 版本 (#485)
* feat(gateway): 升级 SDK 并封口兼容合同

* fix: 修正升级后的格式与模型过滤

* fix(ci): 更新 Go 漏洞扫描器

* fix(gateway): 拒绝非标准服务层级字段
2026-08-27 22:48:16 +08:00
tbphp e9e88dce99 feat(images): 接入 OpenAI 图片生成与编辑 (#476)
* feat(images): 接入 OpenAI 图片生成与编辑

* fix(images): 补齐响应容量与边界处理

* fix(images): 修正协议观测与响应上限覆盖

* fix(stream): 保证取消优先于流关闭

* fix(images): 修正空 SSE 错误对象判定

* fix(images): 避免媒体数据触发凭据误判

* fix(images): 阻止流式响应泄漏凭据

* fix(images): 校验完整流事件后再转发

* fix(images): 修正响应模型观测
2026-08-27 15:11:52 +08:00
tbphp d518b06acc refactor: 统一错误决策与执行链路 (#466)
* refactor: 统一错误决策与执行链路

* fix(gateway): 修正错误来源与候选预算
2026-08-24 23:26:22 +08:00
tbphp 4f9eba5802 feat(proxy): 完成数据面代理与渠道约束 (#459)
* feat(proxy): 实现第一阶段数据面代理

* feat(proxy): 收敛渠道与代理协议支持

* fix(proxy): 修复环境检测与迁移验证

* fix(proxy): 回收旧代理运行时并校验地址

* fix(proxy): 补齐创建链路与前端校验

* fix(proxy): 收口订阅代理与迁移兼容

* fix(proxy): 修复环境代理与运行时回收

* fix(proxy): 为系统外部请求应用全局代理

* docs(config): 精简环境配置说明

* feat(proxy): 重构代理设置的前端交互与样式

设置页与分组设置页:
- 代理设置接入页面统一的草稿态与保存栏,不再独立即时提交
- 计入页面 dirty/valid,参与未保存离开拦截与并发冲突推迟
- 新增 ProxyOverrideRow,用分段控件替代原独立编辑弹层

账号卡片与密钥行:
- ProxyConfigEditor 新增 card 外观:标题在白底面板外,与相邻小节同级
- 修掉按视口宽度判断断点的问题,窄容器内不再挤压错乱
- 编辑态下拉固定宽度,不随所选模式伸缩;整体收进两行
- 新增 ProxyScopeIndicator,凭据配置了独立代理时给出标识与悬停提示

密钥行交互:
- 操作列收成「更多操作」菜单与展开图标,与账号卡片同构
- 折叠区分为权重、出站代理、运行诊断三个带标题小节,设置与诊断不再混放
- 权重编辑从弹层迁入折叠区,权重列的值可点击直达
- 释放的列宽还给凭据、权重与最近调用列

文案精简为继承、直连、自定义,并清理两处无引用的死键

* refactor(proxy): 统一代理设置的覆盖交互并消除样式重复

设置页与分组设置页:
- 代理行改用 RuntimeOverrideRow,与超时等设置项共用同一组件
- inherit 映射为“未覆盖”,direct/custom 映射为“显式覆盖”,因此补齐了
  覆盖/恢复默认按钮、覆盖状态徽章、当前有效值与待恢复默认态
- 分段控件只保留直连与自定义,继承由外层覆盖开关表达
- 删除自造的 ProxyOverrideRow,新增只含编辑控件的 ProxyOverrideControl

已保存的自定义地址:
- 输入框不做回填,统一由 placeholder 展示已存地址
- 同模式下留空或与已存地址逐字相同均视为未改动,顺带挡住掩码被当作
  新密码存回;无改动时保存按钮禁用
- 重新开启覆盖时回到基线已存的覆盖模式,使恢复默认可原路撤销

代码质量:
- 面板外壳(标题 + 白底面板 + 标签/值/编辑图标/操作)抽为全局
  .setting-panel,代理、权重、诊断三处共用,不再各写一份
- 删除 ProxyConfigEditor 已无调用方的 row 外观及随之失效的 props、
  徽章分支与始终隐藏的文案
- 占位地址推导与覆盖开关规则收敛为 proxy.ts 中的共享函数
- 移除代理输入提示文案及其失去引用的 i18n 键

密钥行折叠区诊断值字号对齐上方面板。重构以构建产物 CSS 逐条比对验证,
差异均为已论证的等价改写。

* fix(proxy): 修复代理传输与校验边界
2026-08-24 11:11:22 +08:00
tbphp 3333f49f36 fix(claude): 补全订阅渠道能力 2026-08-17 09:38:45 +08:00
tbphp 6ddbf5b56d fix(ci): 稳定 race 测试门禁 2026-08-16 11:31:03 +08:00
tbphp 9a23a87e05 fix(protocol): 统一模型列表协议归属 2026-08-16 09:20:50 +08:00
tbphp 4c00eed40b refactor(channel): 统一渠道架构与协议契约 2026-08-15 15:37:50 +08:00
tbphp 2c4e4e1652 fix(codex): 完善订阅协议与认证流程 2026-08-14 14:45:51 +08:00
tbphp e9daf96865 feat(channel): 支持 DeepSeek 三种原生协议 2026-08-13 23:33:06 +08:00
tbphp 22a6f1c57b fix: 修复上游执行与迁移边界问题 2026-08-12 23:49:18 +08:00
tbphp 8cf67efdf0 feat(vertex): 简化凭据配置并支持 Gemini 原生请求 2026-08-12 15:50:15 +08:00
tbphp 36d2915fbd fix(import): 根据 SDK 展示上游地址提示 2026-08-12 11:39:40 +08:00
tbphp 59d07c9b6b feat: 日志协议优化 2026-08-12 08:37:53 +08:00
tbphp e7de10ec73 feat(route): 支持有损协议转换与参数追踪 2026-08-11 17:42:10 +08:00
tbphp 6162826efa fix(runtime): 稳定流空闲超时分类 2026-08-11 13:58:17 +08:00
tbphp 1ef573ae34 fix(health): 改进凭据自动恢复检测 2026-08-11 11:33:50 +08:00
tbphp 8a7c4615df fix(v2): 收口协议执行与流式边界 2026-08-11 08:56:59 +08:00
tbphp d6be4272d1 feat(console): 完善日志诊断与模型视图 2026-08-11 08:18:45 +08:00
tbphp c13906f001 fix(logs): 展示脱敏后的上游错误消息 2026-08-10 22:11:52 +08:00
tbphp 530ee0aede feat(bifrost): 按最终配置复用原生运行时 2026-08-10 21:30:38 +08:00
tbphp f458a98b12 fix(lifecycle): 规范服务启动与退出流程 2026-08-10 18:46:59 +08:00
tbphp 9c05b41966 feat(channel): 支持自定义上游地址 2026-08-10 13:19:48 +08:00
tbphp 5ca340939c fix(v2): 收口发布前运行时与迁移问题 2026-08-10 12:17:05 +08:00
tbphp 61b763b96b fix(channel): 收口渠道执行与终局迁移 2026-08-10 10:31:08 +08:00
tbphp 6f6f7c3efc refactor(channel): 切换为 Bifrost 渠道执行架构 2026-08-10 08:22:15 +08:00