Skip to content

Releases: ChaYeWuu/dsh-hyperworkbuddy

0.1.4

Choose a tag to compare

@ChaYeWuu ChaYeWuu released this 27 Oct 15:20
d0898a6

修复

上游在 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

Choose a tag to compare

@ChaYeWuu ChaYeWuu released this 21 Oct 10:50
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。

0.1.2

Choose a tag to compare

@ChaYeWuu ChaYeWuu released this 18 Oct 04:39
6a9d40b

修复国际版请求被上游判为「请求被拦截,请重新发送」的问题。

修复

  • 补齐渠道校验头:国际版网关自 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

Choose a tag to compare

@ChaYeWuu ChaYeWuu released this 17 Oct 05:55
c332a24

国内版新增「每日自动签到」开关:打开后立刻补签一次,之后每天第一次轮询时自动签到。

新增

  • 每日自动签到(仅国内版):开关打开后立刻补签一次,之后每天第一次轮询心跳时自动签到,签到完自动刷新积分
  • 面板显示「上次自动签到」的日期,一眼看出今天签没签

行为说明

  • 每个版本每天只尝试一次。签到失败多半是上游抖动,每轮都重试只会把失败放大;当天剩下的时间可以随时手动点「一键签到」补上
  • 记的是「尝试过」而不是「成功过」,所以进程中途崩溃或重启也不会在同一天反复打上游
  • 国际版没有签到接口,开关不会出现在国际版分区

修复

  • 旧版状态文件缺少新字段时,面板不再渲染出 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

Choose a tag to compare

@ChaYeWuu ChaYeWuu released this 17 Oct 05:47
5deaf1d

首个发布版本:在 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 也可在「设置 → 插件」里直接搜索仓库地址安装。