Repository navigation
Releases: Ianzhyh/workbuddy-to-dsh
Release list
v1.10.1 — 上下文预算生效时机文案修正
1.10.1
仅面板文案与文档修正,不改变 adapter / 请求行为。
- 上下文预算何时生效:dsh 的
request/context是每轮prepareCall()解析的;面板保存 600K 后,下一轮请求就按 600K 解析(同一会话也生效)。 - 用量弹层为什么还显示 1M:分母是上一轮请求的快照;保存后没发新消息时不会自己刷新,发一条消息即可刷新。
- 切换模型:下一轮请求按当前选中的模型重新解析,用那个模型自己的预算;每个模型的设置独立。
- 面板状态改为「当前配置」,保存提示不再声称“已保存并即时生效”,而是明确“下一轮请求生效 / 发消息刷新”。
1.10.0 的 Token 表单、自动保存、偏好迁移(DSH_HOME)保持不变。
完整变更见 CHANGELOG。
v1.10.0 — 上下文窗口输入/输出表单
主要变化
- 模型详情顶部「上下文窗口(Token)」:输入(dsh 上下文预算)与输出(发给上游的
max_tokens)并排,两行都支持滑块粗选 + 自定义数值(128K/1M/131072),留空 = 自动。 - Token 改完自动保存:滑块松开、输入框失焦/回车即落盘;采样参数仍点「保存修改」一起提交。窄面板里改完切页不再丢失。
- 官方默认不再“左右脑互博”:默认输入 300K + 输出上限 384K 是模型自己的组合,不再被判成错误;输入/输出共享窗口只做非阻断提示,模型上限/下限仍硬校验。
- 精确回填:131072 不会显示成 128K 后再保存成 128000;输出上限同时显示精确 tokens。
- 偏好稳定迁移:
.model-prefs.json从插件安装目录迁到<DSH_HOME>/workbuddy-model-prefs.json,旧文件读取时自动迁移;重装/清 pnpm 缓存不再静默回到 300K。 - 模型表显示生效值,覆盖值标「自定义」,筛选行新增「已自定义(N)」;中文/英文与 400px 窄屏验收通过。
完整变更见 CHANGELOG。
v1.9.8
上下文长度按模型单独调(#5)
- 模型详情里新增「上下文长度」滑块:档位取该模型官方目录的 300K / 600K / 1M(以及官方默认/上限),拖动后自动保存。
- 每个模型有独立的值和上限,不再全局一刀切;「自动」= 跟随官方默认 / 桥配置。
- 偏好存进
.model-prefs.json的contextWindowByModel;WORKBUDDY_CONTEXT_WINDOW仍可作为「自动」时的桥端默认值。 - 顶部模型页只提示入口,实际滑块在每行「详情」里。
模型默认参数现在真的生效
- 修复 dsh 的
resolveCall物化defaultMaxTokens/defaultEffort后覆盖面板设置的问题;每模型默认值现在会进入请求。 max_tokens输入即时按该模型官方上限校验,超过直接拦下;temperature0–2 越界也会即时提示。- 新增官方默认温度展示(上游目录的
temperature字段);留空时不下发,由上游使用该默认值。 - 增加常用温度一键值、参数作用说明、未保存/已保存状态与保存反馈。
思考档位来源
- 区分
upstream/measured/fallback。国际版目录漏掉的模型标「实测补全 / 官方目录未列(实测补全)」;国内版目录列出的模型仍直接使用官方档位。 - 这解释了同一模型在国内外目录里档位数量可能不同(例如国际版补全的 deepseek-v4.1-flash 为实测 6 档,国内版官方目录为 low/high/max 3 档)。
升级:安装 dsh-plugin-workbuddy-1.9.8.tgz,完全退出 dsh 再打开;模型页点「详情」即可看到每个模型的上下文滑块与默认参数。
v1.9.7 — 换号即时生效,旧进程自动换代
这次修的是「为什么升级了还没好」
v1.9.6 之后仍有反馈:在 WorkBuddy 客户端换号后,面板账号是新的、积分/UID 还是旧的;hy3 仍显示 6 个思考档位;保存模型显示设置后勾选恢复默认。根因不在单个字段,而在几条一直没被同时处理的路径:
- 升级只换脚本,后台旧桥/旧控制台继续服务:桥与控制台现在都带构建指纹,插件启动/重启时自动停旧拉新。hy3 的六档位、旧换号逻辑都属于这一条。
- 并发请求把凭据来源来回覆盖:一个请求刚跟随桌面,另一个已读到 plugin 的来源又把
source.json写回去,导致同一时刻新旧账号混用。现在跟随单飞,解析前重新确认来源。 - 账号相关的缓存没有按账号作废:积分、模型目录、思考档位、签到分别有自己的 TTL。现在
/v1/quota带账号归属,目录缓存记录抓取账号;同文件原地换号也会立即作废。 - 活动登录文件选错:国内版/国际版并存时,启动会按最近写入的活动文件选,登出快照不参与。
- 账号切换有延迟:新增
GET /v1/identity(只解析凭据,不抓目录、不打上游)。插件宿主/面板/控制台每 2 秒轮询,身份或桥构建一变,立刻作废缓存、通知 dsh 选择器并重拉所有已挂载面板。实际模型请求在下一次请求就使用新账号。 - 模型显示设置写盘失败被静默吞掉:插件目录只读时回退到
<DSH_HOME>/workbuddy-model-prefs.json;两处都失败会如实报错,不再假装保存成功。 - 账号页的「已选(未生效)」补了「改用桌面端」;非生效插件凭据标「未使用」。
升级
- tgz:下载本页附件
dsh-plugin-workbuddy-1.9.7.tgz,在 dsh 里安装; - 或
dsh plugin --profile desktop add github:Ianzhyh/workbuddy-to-dsh
装完完整退出并重启一次 dsh(托盘退出)。重启后新插件会自动把仍在跑的旧桥/旧控制台换掉,不需要手动清理。若 .env 里显式锁定了 WORKBUDDY_CREDENTIAL_SOURCE=plugin,桥不会自动跟随桌面;这是有意的锁定,可在账号页切回桌面端。
验证
npm run release:check全绿npm run panel:check全绿npm run test:ui38/38 通过- 新增回归:活动登录文件选择、旧构建自动重启、plugin 来源换号跟随/并发覆盖、
/v1/identity身份版本、换号后目录作废、额度账号归属、模型显示偏好组合保存
如果升级重启后仍看到旧账号,请先在概览确认「桥进程」PID 已变化;若没有,说明 dsh 还没加载新插件(旧宿主),完全退出重开一次即可。
v1.9.6 — 换号跟随与官方模型/档位对齐
重点修复
- 在 WorkBuddy 客户端换号后,插件仍显示旧账号(#6):面板的「切换账号」会把桥钉在某个历史登录快照上,而客户端换号覆盖的是它自己的默认登录文件。现在桥会检测桌面端账号变化并自动跟随;换回原账号时恢复用户钉住的快照。旧的
.state.json没有账号元数据时按「快照账号 ≠ 桌面账号」迁移一次;控制台启动与账号页也会校正过期钉住,只重启确实按旧快照启动的桥。 - 模型清单与官方 GUI 不一致(#5):默认只把 WorkBuddy 官方模型选择器列出的模型放进 dsh;网关注册但官方未上架的模型在面板标「官方未上架」,默认不进 dsh,可先体检再在「显示官方目录外的模型」里勾选。实测扩展模型里有能直接调用的(
kimi-k2.5/deepseek-v3-2-volc/hunyuan-chat),也有上游直接 400 的死条目(glm-4.6/glm-5.0/minimax-m2.5/hy4-preview-x),所以不再默认暴露。 - 思考档位与官方不一致:改为直取上游目录的
reasoning.supportedEfforts(官方 GUI 的低/高/极致 = low/high/max),不再用本地六档表覆盖官方声明;上游没给时才退回实测表。已保存的旧档位(如hy3的medium)会临时保留,避免升级后 dsh 直接报UNSUPPORTED_REASONING_EFFORT。 - 上下文默认值对齐官方:
/v1/models的context_window改为官方contextWindow.defaultLength(多数模型 300K,不再一律报上限 1M),并新增官方默认/可选档位/上限字段。dsh 没有上下文档位选择器时,可用WORKBUDDY_CONTEXT_WINDOW=600000|1000000钉住(不超过模型上限)。
升级
- 插件/tgz:下载本 Release 的
dsh-plugin-workbuddy-1.9.6.tgz后执行
dsh plugin --profile desktop add ./dsh-plugin-workbuddy-1.9.6.tgz,重启 dsh。 - GitHub 直装:重新执行
dsh plugin --profile desktop add github:Ianzhyh/workbuddy-to-dsh,重启 dsh。 - 升级后建议重启一次桥(面板「概览 → 重启桥」),让新的目录/档位元数据生效。
非官方互操作实现,请自行确认 WorkBuddy / 腾讯的服务条款;仅用于自己账号,不做多账号池化、代调用或转售。
v1.9.5 — 网页搜索状态真实性与可撤销接入
重点修复
- 网页搜索状态卡不再“假绿”:同时检查配置、桥存活与令牌匹配;桥停止、令牌轮换、地址指向旧端口、桥未登录都会给出具体原因。
- 上游返回非 JSON 200 不再被当成“0 结果成功”;搜索的 401 刷新、换凭据与 5xx 重试共享同一个 20s 总预算;限流统一映射为 429。
- 兼容 Node 18:取消信号不再无条件使用 Node 20.3 才有的
AbortSignal.any;413 后主动排空请求体;搜索 URL 仅接受 http(s)。
新增
- 一键接入前快照 dsh 的搜索分节与独立凭据,新增「恢复接入前配置」;不返回、不记录旧令牌。
- 状态卡保留最近一次自检时间/来源数,并提供「重新检测」。
/v1/messages搜索响应补server_tool_use与usage.server_tool_use.web_search_requests,修复tool_use_id悬空;不伪造 Anthropic 的 opaqueencrypted_content。npm run preflight增加只读的网页搜索配置层检查;文档移除不存在的DEEPSEEK_SEARCH_BASE_URL,补充错误码与限流排查。
升级
- 插件/tgz:下载本 Release 的
dsh-plugin-workbuddy-1.9.5.tgz后执行
dsh plugin --profile desktop add ./dsh-plugin-workbuddy-1.9.5.tgz,重启 dsh。 - GitHub 直装:重新执行
dsh plugin --profile desktop add github:Ianzhyh/workbuddy-to-dsh,重启 dsh。
非官方互操作实现,请自行确认 WorkBuddy / 腾讯的服务条款;仅用于自己账号,不做多账号池化、代调用或转售。
v1.9.4 — dsh 11128 修复与网页搜索
重点修复
- issue #4:dsh 全部请求 400 code 11128 —— 上游把 dsh 的 system 身份句
You are an AI agent powered by DeepSeek Harness.当成未授权通道模板。
桥现在只对 system 做最小改写,并新增“删品牌行 → 删首段 → 中性 system”的
渐进兜底(三条协议共用);user、tools 与工具结果保持原样。成功时响应头带
X-WorkBuddy-11128-Fallback,账本记录fallback/fallbackOk。 - 上游 401/403 统一为
upstream_auth_error,不再误报成本地令牌问题。 - 非法/重复 tool name 在本地拦截,错误里直接指出具体工具。
新增
- WorkBuddy 原生网页搜索:
POST /v1/web_search,dsh 设置里可一键接入,
不消耗 DeepSeek 钱包;概览新增网页搜索状态卡与未接入提醒。 - dsh「添加插件」直装:
dsh plugin add github:Ianzhyh/workbuddy-to-dsh。 - GitHub 直装与 tgz 两种安装形态的发布门禁。
升级
- GitHub 直装:重新执行
dsh plugin --profile desktop add github:Ianzhyh/workbuddy-to-dsh
并重启 dsh(或直接升级插件后重启桥)。 - tgz:下载本 Release 的
dsh-plugin-workbuddy-1.9.4.tgz后
dsh plugin --profile desktop add ./dsh-plugin-workbuddy-1.9.4.tgz。
v1.9.3 及更早版本不包含 11128 修复,若仍复现请先确认桥版本为 1.9.4。
v1.9.3 — GitHub 直装启动修复
修复(issue #3:GitHub 直装无法启动)
dsh 的 web boot 用 Loader 条目的包名 作为客户端模块 id:
- 单文件夹 / tgz 安装:
dsh-plugin-workbuddy github:Ianzhyh/workbuddy-to-dsh直装:workbuddy-to-dsh
dsh-plugin/lib/client.js 原先只注册了前者,GitHub 直装时 /plugins/workbuddy-to-dsh/client.js 找不到 factory,web boot 判定 import failed 并中止启动。现在同一份 bundle 会按两个包名 + <script src> 里的实际 id 注册;两种安装形态同时存在时,重复注册会被忽略。
- 面板诊断「客户端半边是否组装」、
preflight的 profile 识别同时认两种包名。 - 11128(
Illegal API invocation from an unapproved channel)不再提示用户去换思考档位,改为先原样重试、仍失败看桥日志。
回归
- 新增
client-bundle.test.mjs:按 dsh 的arrive → 查找 factory语义验证两种包名、别名、旧版合并 URL 与重复注册。 panel-render/visibility/preflight同步补断言。release:check全绿(类型检查、lint、lib、bridge、插件 108 用例、独立分发演练);panel:check通过。
安装
dsh plugin --profile desktop add github:Ianzhyh/workbuddy-to-dsh
# 或本 Release 的 tgz
dsh plugin --profile desktop add ./dsh-plugin-workbuddy-1.9.3.tgz装完重启一次 dsh。
从 dsh 市场安装的用户需要市场把上架版本更新到 1.9.3 才能拿到这些修复。
- 已发布 tgz 已复验:与本地打包产物逐字节一致(sha256
26b3831a…),34 项文件齐全,client.js与 vendor 快照均与仓库一致。
v1.9.2 — 插件适配性与对话状态收尾
插件适配性
- 插件热重载 / 禁用再启用后样式正确替换:同 id 的
<style>不再被静默沿用;对话页组件补齐动画变量,hover / 过渡恢复正常。 - 聊天页按钮补
type="button":宿主把 hero/header 包在 form 里时不会误触发提交。 - 旧宿主嵌套
{usage:{…}}形状下积分胶囊也能读到「今日已用」的当天桶。 - 设置面板与聊天页联动:登录 / 切号 / 退出成功后立即刷新聊天页积分胶囊,不必等 60 秒轮询。
- 对话测试状态跨标签保留:流式请求切走再回来仍在生成、仍能停止或看到失败原因;关闭整个面板时自动中止,避免后台偷偷扣额度。
- 一轮多请求的积分匹配在 routes 晚到时也会重新匹配。
回归
panel-render新增:插件重载样式替换、登录按钮type、旧宿主嵌套 usage、620px 窄列对话测试页溢出检查。release:check全绿:lib 160 / bridge 120 / 插件 100、类型检查、lint、独立分发演练;panel:check(面板渲染 + i18n)通过。
安装
dsh plugin --profile desktop add github:Ianzhyh/workbuddy-to-dsh
# 或本 Release 的 tgz
dsh plugin --profile desktop add ./dsh-plugin-workbuddy-1.9.2.tgz装完重启一次 dsh。
从 dsh 市场安装的用户需要市场把上架版本更新到 1.9.2 才能拿到这些修复。
- 已发布 tgz 已复验:与本地打包产物逐字节一致(sha256
cc2c056973cc5178866c22540176fcc5ad02d58748f367ef9cef5d46976272b0)。
v1.9.1 — 异步异常恢复与用量口径收尾
异步异常恢复
- 设置面板按钮不再卡死:
postJson把网络层 reject 统一转成失败响应;刷新积分、登录、切号、体检、模型目录刷新在断网 / 桥刚退出后都会恢复可点并给出原因。 - 「今日已用」按本地当天:不再读滚动 24h 的 total,改为按
usage.days的当天桶计算;跨午夜不会把昨天算进今天。旧宿主没有日桶时改标「最近24小时已用」。 - 每轮积分的估算值在可见文案标
≈:不用悬停也能区分账本核对值与估算值;账本匹配窗口从 20 条扩大到 100 条,历史会话/并发窗口下更容易命中实际扣费。
回归
- 新增对话失败路径(503 / 空回答 / 快速重复回车)、一轮多请求按 routes 求和、网络 reject 后刷新按钮恢复、「今日已用」取当天桶、估算
≈标记等 panel-render 断言。 release:check全绿:lib 160 / bridge 120 / 插件 100、类型检查、lint、独立分发演练;panel:check(面板渲染 + i18n)通过。
安装
dsh plugin --profile desktop add github:Ianzhyh/workbuddy-to-dsh
# 或本 Release 的 tgz
dsh plugin --profile desktop add ./dsh-plugin-workbuddy-1.9.1.tgz装完重启一次 dsh。
从 dsh 市场安装的用户需要市场把上架版本更新到 1.9.1 才能拿到这些修复。
- 已发布 tgz 已复验:与本地打包产物逐字节一致(sha256
24db6a695fc33b709db3b76a7ae7a2d316ab22bd154c28c794ba42c4e42459ca)。


