Skip to content
This repository was archived by the owner on Nov 10, 2026. It is now read-only.

0.1.3

Choose a tag to compare

@ChaYeWuu ChaYeWuu released this 21 Oct 10:50
· 3 commits to main since this release
5604987

修复国内版稳定复现的「请求被拦截,请重新发送」。

根因

国内版网关(www.codebuddy.cn)自 2026-10-16 起对 POST /v2/chat/completions 增加了内容级渠道校验:请求正文里出现特定特征串就回 HTTP 400 code=11128 Illegal API invocation from an unapproved channel,对外文案是「请求被拦截,请重新发送」。

逐字节二分把触发点精确到 47 个字符的精确短语,而不是关键词黑名单:

发送内容 结果
You are an AI agent powered by DeepSeek Harnes(46 字) 200
You are an AI agent powered by DeepSeek Harness(47 字) 400
  • 单独发 DeepSeek Harness / Harness / DeepSeek → 都是 200
  • 换成 You are a coding agent、I am an AI agent、You are an assistant → 都是 200
  • 把主体换成 OpenAI / Claude / WorkBuddy / 腾讯 → 都是 200
  • 同样的文字放在 user 里 → 200,只有 system 会触发

判断依据是请求正文,这解释了为什么此前换账号、换连接、补 X-Conversation-* 全部无效。

修复

  • 发请求前对每条 system 消息做中性化:命中触发短语则整句改写为 You are a helpful assistant.,兜底把品牌名替换为 host application
  • 只清洗 system:改写用户原话等于污染上下文,且实测 user 不会触发
  • 分块数组形式的 content 保持原样,不拆坏结构

顺带改进的容错

  • 被拦截时不再挨个轮询账号池:拦截按来源判定而非按账号,换号只会把同一个失败重演一遍,还白白多打 N 次上游
  • 改为等 1.2 秒后用同一个账号原地重试一次,短抖动直接被吃掉
  • 重试后仍被拦截时如实报出「已尝试 1/2 个账号」,不再谎称「全部账号均失败」

验证

  • 国内版真实完整请求体(14 条消息 + 45 个工具):改前 3/3 全 400,改后 3/3 全 200
  • 国内版 4 个账号逐个:改前 4/4 全 400,改后 4/4 全 200
  • 国际版对照:未受影响
  • 新增 8 项单元测试,全量 86 项通过

安装与升级

dsh plugin --profile web add github:ChaYeWuu/dsh-hyperworkbuddy

已安装的用户执行:

dsh plugin --profile web update dsh-hyperworkbuddy

宿主插件不热加载,升级后请完全退出并重启 DSH 桌面 App。

兼容性

  • DSH ^0.2.0-rc.1
  • Node ^22.19.0 || >=24.0.0

完整变更见 CHANGELOG.md。