Repository navigation
Releases: ChaYeWuu/dsh-hyperworkbuddy
Release list
0.1.4
修复
上游在 0.1.3 之后换了渠道指纹,国内版又出现「请求被拦截,请重新发送」(400 / code=11128)。这次命中的不是品牌名,而是 system 里一段固定文字,品牌兜底替换救不了,改为按段做最小改写,语义不变。
定位过程
用逐字节二分把触发点压到 111 个字:
Tokens prefixed with @ are paths the user explicitly referenced. Relative paths resolve from the workspace root
- 单独发这 111 字 → 400
- 从任意位置截断 → 200
- 把
root改成roox,或整句改写成Relative paths are resolved against the workspace root→ 200 - 长度、账号、请求头都试过,与结果无关
结论:上游按固定段落的写法做指纹,改动其中任意一句即放行。
真机验证
用 2026-10-21 抓的真实请求体(15 条消息 + 45 个工具 + 24353 字 system)原样走 prepareChatBody():
| 场景 | 修复前 | 修复后 |
|---|---|---|
| 真实完整 body | 3/3 400 | 3/3 200 |
| 国内版 4 个账号各连发 3 次 | — | 12/12 200 |
改写表
| 原文 | 改写后 |
|---|---|
Tokens prefixed with @ are paths the user explicitly referenced. |
…point at paths the user… |
Relative paths resolve from the workspace root |
Relative paths are resolved against the workspace root |
whose URL the runtime context names |
whose URL is named in the runtime context |
第三行是把上游 issue 里记过的 GUI 指纹顺手一起挡掉,免得下次直接套到同一段文字上。
只清洗 system 消息:实测同样的文字放在 user 里不会触发,改写用户原话等于污染上下文。
测试
全量 90 项通过,其中 tests/channel-guard.test.mjs 新增 4 项,覆盖两段改写与「语义不变」的断言。
0.1.3
修复国内版稳定复现的「请求被拦截,请重新发送」。
根因
国内版网关(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。
0.1.2
修复国际版请求被上游判为「请求被拦截,请重新发送」的问题。
修复
- 补齐渠道校验头:国际版网关自 2026-10-16 起对 chat 请求做渠道校验,缺少整套
X-Conversation-*头会直接拒绝,错误码11128,对外文案是「请求被拦截,请重新发送」 - 三个头(
X-Conversation-ID/X-Conversation-Request-ID/X-Conversation-Message-ID)缺一不可,且与账号无关——所以此前的「换号重试」只能治标,换到哪个账号都缺同一组头 - 每次请求现造三个新 UUID:上游不按这组 id 存历史(换新 id 结果相同),它只是渠道标记;新 id 也避免并发的子代理挤在同一个会话上
- 两个区域统一发出,国内线路带与不带都能过,省得分叉
- 签到等计费端点不受影响
保留的行为
- 万一上游仍返回拦截文案,依旧按可重试错误处理:换号重试,但不冷却账号——拦截是上游瞬时风控,与账号本身无关
安装与升级
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。
0.1.1
国内版新增「每日自动签到」开关:打开后立刻补签一次,之后每天第一次轮询时自动签到。
新增
- 每日自动签到(仅国内版):开关打开后立刻补签一次,之后每天第一次轮询心跳时自动签到,签到完自动刷新积分
- 面板显示「上次自动签到」的日期,一眼看出今天签没签
行为说明
- 每个版本每天只尝试一次。签到失败多半是上游抖动,每轮都重试只会把失败放大;当天剩下的时间可以随时手动点「一键签到」补上
- 记的是「尝试过」而不是「成功过」,所以进程中途崩溃或重启也不会在同一天反复打上游
- 国际版没有签到接口,开关不会出现在国际版分区
修复
- 旧版状态文件缺少新字段时,面板不再渲染出
undefined
安装与升级
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。
0.1.0
首个发布版本:在 DSH 设置里直接管理 WorkBuddy 多账号,并把模型接进 DSH 与任意 OpenAI 兼容客户端。
面板与账号
- 设置一级菜单直接出现「WorkBuddy」,不藏在「设置 → 插件」里
- 国内版 / 国际版分区,各有独立账号池、端点与模型表,同名模型不串区域
- 自动跟随 WorkBuddy 桌面 App 的登录状态,也可粘贴 token 或导入账号文件
- 浏览器内链接登录,授权完成后账号自动导入
- 兼容 WorkBuddy2API-Hub 导出格式的第三方批量导入
- 账号卡可就地测试:强制刷新令牌并发一条最小请求,回执直接显示在卡片上
- 账号可单独禁用;额度不足、限流、登录失效与上游风控拦截都会换号重试
模型与推理
- 注册独立 provider,模型直接出现在 DSH 模型选择器里
- 会话亲和:同一会话固定走同一账号,保住上游的提示缓存命中
- 推理档位按上游声明在 DSH 内可选;上游没声明的可逐档位探测补齐
- 上下文窗口按上游声明的档位上报,可选「使用最大窗口」
- 模型旁常显上游计费倍率,面板与选择器两处一致
- 模型可单独显隐,仅影响选择列表,不中断进行中的会话
对外端点
- OpenAI 兼容端点,可同时给 Codex / Claude Code / 其他客户端用
- 独立的对外开关:关闭后只停对外服务,DSH 内的模型调用不受影响
- API Key 支持一键重新生成与自定义,旧 Key 立即失效,无需重启
运维
- 一键刷新:批量刷新该版本全部账号的模型目录与积分
- 国内版一键签到:批量为全部账号签到,完成后自动刷新积分
- 用量看板:记录每次请求的 token 与耗时,汇总今日 / 累计 / 近 7 天 / 分账号 / 分模型
- access token 临近过期时自动续期
已知限制
- 国际版桌面 App 的凭据是加密的,插件不解密,需手动导入该版本的账号
- 宿主插件不热加载,升级后需完全退出并重启 DSH 桌面 App
安装
dsh plugin --profile web add github:ChaYeWuu/dsh-hyperworkbuddy桌面 App 也可在「设置 → 插件」里直接搜索仓库地址安装。