Skip to content

v1.1.2

Choose a tag to compare

@github-actions github-actions released this 04 Aug 11:10

本版本只修 bug,没有行为变更。两处都影响「号明明是好的,用起来却不对」:生成链路
撞限流改走备用端点时,会把备用端点的报错直接抛给 IDE,让整轮对话失败;以及被封号
的 Key 会被用量刷新「刷活」,界面显示正常而实际一发就 403。

修复

  • IDE 报 [UnknownOperationException] The requested operation is not recognized by the service,持续几分钟后自愈,而软件里测活全程是通的。生成面撞 429 时会改走
    Q 平面重试(两边限流桶独立),但 Q 对 IDE 用的那个 x-amz-target 回的是
    400 UnknownOperationException。此前只把回退端点的 403 当作「端点拒绝」,
    于是这个 400 走了通用路径、被原样返回给 IDE,整轮对话直接失败;更糟的是该端点
    不进冷却,而主端点还在 60 秒限流冷却里,排序把 Q 顶到前面,主端点那整个冷却窗口
    内每一发都先打 Q、每一发都 400。现在回退端点上的任何非 2xx 都算端点拒绝
    4xx 停用该端点 30 分钟、5xx 按限流那档短冷却,一律不参与封号判定,并改回主端点
    重试;主端点仍在限流冷却时会等它到期(上限 60 秒)再发,而不是把这个错误抛给
    IDE —— 429 退避最坏只是慢一点,4xx 是整轮失败。同一发请求里已经被拒过的端点
    也不再重复尝试,避免把一个本可退避重试的 429 换成一个直接返回的 4xx
  • 同一处缺口在 Anthropic 兼容网关(decideFailover)里一并修掉:来自回退端点的
    其余 4xx 不再当成「请求本身的问题」直接回客户端,而是停用该端点并换条链路
  • 已封号的 Key 会被用量刷新「刷活」。撤销封号 / 受限判定此前认任何 2xx,
    而控制面的模型列表与用量查询(ListAvailableModels / GetUsageLimits)对一个
    已被封的号照样返回 200 —— 于是下一轮用量刷新就把判定抹掉,卡片回到正常,
    实际发一发生成请求还是 403。现在只有生成面GenerateAssistantResponse)的
    2xx 才算「能出字」、才有资格撤销判定;两个网关的转发成功同权,控制面的 200 不算

测试

  • 覆盖扩充到 240 个用例:新增「哪些状态码算回退端点被拒」与「被拒之后的端点排序」
    两组回归(两个网关各一组),以及「控制面 2xx 不撤销封号判定」

📦 下载

平台 文件
macOS (Apple Silicon) *-mac-arm64.dmg
macOS (Intel) *-mac-x64.dmg
Windows *-win-x64-setup.exe
Linux *-linux-x86_64.AppImage

macOS 安装包未做签名与公证,首次打开请右键选择「打开」,或在
「系统设置 - 隐私与安全性」中允许运行。


安装遇到问题?请查看 安装说明与常见问题