Repository navigation
Releases: Quan-Robin/DSH-desktop-for-Linux
Release list
0.1.40 — pet 在线时不再重复弹审批窗(+ 0.1.39 全部修复)
DSH-desktop-for-Linux 0.1.40
新增:pet 在线时不再重复弹审批窗
背景:桌宠(pet)与桌面版各自轮询插件 /api/state,于是同一次审批会出现
两个审批 UI(pet 气泡 + 桌面版 420×190 原生弹窗)。用户要求"pet 运行期间只应
有一个审批窗口"。
做法(配合插件 ≥ v0.4.4):
balance.js:轮询/api/state时带?client=desktop;main.js:审批监看新增petOwnsApproval = plugin.state.petPresent——
pet 在线时不再弹原生审批窗,并收起已弹出的,由 pet 承担唯一审批 UI。
同时包含(0.1.39)
- 删除右侧栏「文件」栏目;「改动」栏 root 改用插件
/api/state.workspace
(原先只从cwdById取,而插件/api/usage不带cwd→ 恒显示"非 git 工作区"),
工作区不是仓库时自动探测子目录(新增git:detectIPC)。 - 终端改为 VS Code 风格,并补齐
xterm.css(缺它时 xterm 的 helper textarea
会显示成终端上方一个白色输入框)。 - 价格表按官方(2026-09)人民币价重写,补上缺失的
deepseek-flash键
(缺失时全部 fallback 到旧价 = 费用算错的根因);峰值时段改为北京 08–12/14–18 且仅工作日。 - 平均命中率不再硬编码为 0,改用会话
byModel计算cacheRead/(input+cacheRead)。 - 估算余额:本轮进行中实时变化;官方余额稳定 60s 后直接显示官方值,不再重复扣本次消耗。
- 改配置白屏可自愈:
render-process-gone/did-fail-load自动重载 + F5/Ctrl+R;
重载前重新抓取 dsh token(改配置会换 token),与浏览器刷新等效且不重启服务。 - 源码构建成功但安装失败时新增「复制安装命令」按钮。
依赖
审批单窗、终端与用量修复需要伴生插件 dsh-plugin-desktop ≥ v0.4.4。
0.1.39 — dsh 0.1.5-rc.1 兼容修复(右侧栏 / 余额 / 终端)
DSH-desktop-for-Linux 0.1.39
针对 dsh 0.1.5-rc.1 的兼容修复,以及右侧栏 / 余额 / 终端一批实测定位的 bug。
右侧栏
- 删除「文件」栏目,只保留 概览 / 改动 / 终端。
- 「改动」栏不再空白:面板的活动工作区原先只从
cwdById取,而插件/api/usage
的 session 不带cwd→ root 恒空 → 永远显示「非 git 工作区」。现改用插件
/api/state.workspace;工作区本身不是仓库时自动探测其子目录与常见项目目录
(新增git:detectIPC)。 - 终端改为 VS Code 风格(
#1e1e1e+ 完整 ANSI 16 色 + 闪烁光标 + 圆角内边距),
并补齐xterm.css—— 原先只加载xterm.js,导致 xterm 内部用于捕获按键的
helper textarea 显示成终端上方一个白色输入框。
余额 / 用量
- 价格表按官方(2026-09)人民币价重写,补上此前缺失的
deepseek-flash键
(不在表里时所有 flash 调用 fallback 到旧价,这是"费用算不对"的根因);
峰值时段改为北京 08–12 / 14–18 且仅周一至周五。 - 平均命中率不再硬编码为 0(
balanceState.hitRate = 0导致面板「平均命中」恒为
0.0%)→ 改用当前会话byModel计算cacheRead/(input+cacheRead)。 - 估算余额:本轮进行中仍实时变化;官方余额稳定 60s 后直接显示官方值,
不再把已结算的本次消耗重复扣掉。
稳定性
- 改配置白屏可自愈:
render-process-gone/did-fail-load自动重载,
F5 / Ctrl+R 手动刷新;刷新前重新抓取 dsh token(改配置会换 token,
只重载旧 URL 仍是白屏)——与浏览器点刷新等效,且不重启服务。 - 源码构建成功但安装失败时,弹窗新增「复制安装命令」按钮,
一键复制sudo dpkg -i "<deb>"。
依赖
终端与用量修复需要伴生插件 dsh-plugin-desktop ≥ v0.4.3(含 subprocess inject、
tracker 作用域修复、用量事件采集修复、以及左侧栏折叠的上游 UI 补丁器)。
v0.1.38
DeepSeek Harness Desktop v0.1.38
本版含 5 项新功能 + dsh 0.1.5+ 完整兼容修复。完整条目见 CHANGELOG「0.1.38」。
新增
- 轮次统计(伴生插件 v0.4):每轮 TTFT(首字延迟)、输出速度(tok/s)、轮耗时、缓存命中率,实时显示在文件面板「概览」卡
- 会话导出 Markdown:页内右键「导出为 Markdown」/ 调色板
Ctrl+E—— 本地会话直出到下载目录并在文件管理器定位(纯函数导出器 + 单测) - 停靠终端:文件面板新增「终端」tab(xterm.js)——经 dsh 官方
spawnTerminal接缝桥接 PTY(WebSocket,无需原生模块);依赖伴生插件 v0.4 - Prompt 模板库:
Ctrl+Shift+T调色板模板模式,本地 JSON 持久化,Ctrl+S保存当前输入为模板 - 错误通知:DSH 运行出错时系统通知(点击聚焦主窗口,
notifyOnError可关)
dsh 0.1.5+ 兼容修复(实测破坏性变更)
- token 认证:0.1.5+ 的 Web UI 需
?token=…(无 token 请求返回 401)——外壳现从 dsh 输出与 dsh.log 捕获 token 并带参加载;isServerUp认 401(特征文本)为存活,修复此前 120s 启动超时与复用/重启路径失效 --no-open:spawn 时禁止 dsh 拉起系统浏览器,UI 归桌面端窗口- 插件
inject移除apiProxy(0.1.5+ 已删除该服务;硬声明会 pending 并拖垮整棵插件树)
伴生插件修复(插件独立仓库 v0.4.2)
- 客户端 ASI 缺陷:v0.3 合并页内文件面板脚本时
__ModuleLoader__.load({…})后缺分号,被解析为链式调用抛错;dsh 0.1.5+ 以合并流加载全部 client bundle,单点抛错连坐其后所有插件(连环 Failed to load plugins) - 一并升级:compat 层(跨版本
spawnTerminal形态 + 错误事件名并集)、/api/shell终端桥、lastTurn/lastError
兼容提示:dsh 0.1.5+ 另有 @deepseek-ai/dsh-client-runtime 拆包(defineStore 迁至 @deepseek-ai/dsh-client-store)与客户端模块表「平台种子词」白名单两处破坏性变更——第三方插件的 client 需自行适配。
资产说明:
DeepSeek-Harness-x64.zip:Linux 便携版,解压后运行./deepseek-harness(内置 node + dsh,数据存应用旁 data/,多实例并存各自独立)deepseek-harness-desktop_0.1.38_amd64.deb:普通版 debDeepSeek Harness-0.1.38.AppImage:普通版 AppImage
v0.1.37
DeepSeek Harness Desktop v0.1.37
累计 12 个未发版修复 + 历次 features 正式合并发布。完整条目见 CHANGELOG「0.1.37」。
性能(会话解析提速 ~20x):zstd 解压改用系统 zstd CLI(C 实现),fzstd 降级备用——首扫 16.2s → 0.7s,消除启动/查余额时 UI 卡死(worker 占满单核 ~15s,表现为"启动后 15 秒卡死"/"查余额卡死")。
修复(插件自愈三连):① 自愈禁用的插件 id 改为包名优先(loader entry hash 每次重启变化,写 hash 永远无效);② 自愈同时探测 dsh 页面 'Failed to load plugins'(插件加载失败时 dsh 进程并不退出,exit-code 路径永不触发);③ disableDshPlugin 对 bundle 内插件直接改 profile package.json 移除(patch 层拦不住 bundle,根治 dsh-vision-router 反复 Failed to load plugins)。
修复(窗口首启):WebContentsView 首帧无 bounds → 窗口空白透明直到手动 resize——创建即显式 setBounds + show 后重新布局(消除"首启透明+拖影")。
修复(托盘):① 单 SNI 热更新(不再每次重建 → 多图标各带菜单);② SNI 注册唯一递增服务名 + watcher 交互加超时;③ 菜单结构恒定(「安装伴生插件」↔「重装伴生插件」label 切换、不增删项)——修复 GNOME dbusmenu 对运行中菜单增删的渲染残留(灰色错位项/分隔符漂移/'——'幽灵项)。
修复(伴生插件):中 asar 安装路径(__dirname 优先);复制改逐文件读写(asar 虚拟 FS cpSync 不可靠);client bundle 以插件本名 dsh-plugin-desktop 注册(否则 'loaded without registering')。
修复(会话估算/自愈边界/置顶/右键):连续对话估算基线重置;未置顶不再显示「取消置顶」;置顶标题剥离相对时间;官方右键插件存在时注入脚本自动让位;伴生插件安装后菜单项恒定。
发布(伴生插件独立仓库):dsh-plugin-desktop(dsh-plugin 话题,dsh plugin add github:Quan-Robin/dsh-plugin-desktop 安装;也可用托盘/设置页一键装)。定位:大部分桌面端功能 + 小部分插件功能——当前会话感知、实时轮次状态、快捷输入通道、页内完整右键菜单与置顶会话扩展。未装时本应用仍完整可用(极简原版)。
0.1.36 以来 features:对话感知估算余额、页内右键菜单+置顶、右侧文件面板(概览/文件/改动 tab)、会话调色板 Ctrl+Shift+P、跨会话全文搜索 Ctrl+Shift+F、审批直达(DS-pet 联动)、全局快捷输入 Ctrl+Shift+D、文件拖放兜底、窗口记忆、dsh:// deep link、多 profile、测试基建(npm test 6 套件)。
资产说明:
DeepSeek-Harness-x64.zip:Linux 便携版,解压后运行./deepseek-harness(内置 node + dsh,数据存应用旁 data/,多实例并存各自独立)deepseek-harness-desktop_0.1.37_amd64.deb:普通版 debDeepSeek Harness-0.1.37.AppImage:普通版 AppImage
v0.1.36
DeepSeek Harness Desktop v0.1.36
新增:对话感知估算余额——对话进行中,估算余额 = 对话开始时的官方余额 − 本次对话消耗(随消耗实时减少);对话结束(turn/end 事件)后估算冻结,待官方余额稳定 60 秒(计费落定)后自动采纳为新基线:
- 子代理静默思考(长时间无输出、无 turn/end)不误触发采纳,运行中估算保持不动
- 手动校准(菜单「校准余额」)重置对话基线
- 移除旧的 usage-state.json 自动重校准方案(对话中估算被官方旧值拉回、看起来"不减少"的问题)
修复(端口/会话匹配):监听端口改为精确列匹配(ss -tlnpH)——端口 13080 不再被误判为 3080;会话文件按目录名精确匹配——session id 为子串时不再拿错会话
修复(插件禁用):精确判定已禁用条目(正则 + id 转义),存在但未禁用时补 disabled: true 标志,杜绝重复条目
修复(重启竞态):「重启服务」等待外部 dsh 完全停净后再启动新进程——修复新进程被误杀的竞态
修复(GUI 启动):spawn 前探测常见安装位置(/.npm-global/bin、/.local/bin、/usr/bin)——纯净 GUI 环境 PATH 不含这些目录时不再 ENOENT
修复(峰值定价):按北京时区(Asia/Shanghai)判定高峰时段——系统时区非 UTC+8 的用户不再误判
改进:dsh.log 5MB 轮转(长跑不无限膨胀);overlay 窗口开启 sandbox、新窗口只放行 http(s) 链接;加载/致命/构建安装/更新通知等文案 i18n 补全;移除调试 switch.log 残留
重构:会话解析器(zstd 解压 + 行扫描)合并为共享 usage-parse.js(worker 与内联回退同源,不再漂移)
资产说明:
DeepSeek-Harness-x64.zip:Linux 便携版,解压后运行./deepseek-harness(内置 node + dsh,数据存应用旁 data/,不碰 ~/.dsh;多实例可同时运行,配置各自独立)deepseek-harness-desktop_0.1.36_amd64.deb:普通版 deb(无捆绑运行时)DeepSeek Harness-0.1.36.AppImage:普通版 AppImage
v0.1.35
DeepSeek Harness Desktop v0.1.35
新增:Linux 便携版(zip)——捆绑 node + pnpm + dsh 运行时,解压即用(类似 Antigravity-x64 目录形态):
DeepSeek-Harness-x64.zip:解压后运行./deepseek-harness(启动器自动处理 sandbox、脱离终端运行)- 开箱即用:自动启用内置运行时;数据默认存应用旁
data/(不碰~/.dsh);端口被外部服务占用时自动顺延(不显示宿主机自己的会话) - 配置完全隔离:便携版应用数据在应用旁
data/app/——普通版与便携版、或多个便携副本可同时运行,设置互不影响(各自独立窗口/服务/数据) - 构建:
npm run bundle+npm run dist:portable(内置 dsh 版本固定,更新 = 重新构建)
其他更新:
- 插件加载失败自愈:dsh 因插件失败退出时弹窗询问是否禁用该插件并自动重启(不再只是报错)
- 对话完成提醒(窗口不在前台时系统通知,设置面板可开关)
- 设置面板新增「应用版本」(如 v0.1.35);便携版显示内置 dsh 版本
- 普通版:显式配置 bundled 但无内置运行时 → 自动回退 npx 并提示
- 稳定性:官方余额先行显示、会话解析全走 worker 线程、托盘菜单热更新(不再堆积图标)
普通版(deb / AppImage):行为与之前一致,无捆绑运行时(体积不变)。
注意:普通版与便携版是独立配置——关闭行为等设置各自保存,互不影响。
v0.1.33
DeepSeek Harness Desktop v0.1.33
修正:
- 托盘余额精简范围修正:托盘菜单余额只显示官方余额(按需精简);应用菜单栏的「余额」菜单恢复完整内容(官方/估算/当前会话/本次对话消耗、各会话、详情、刷新、校准)
安装(deb):sudo dpkg -i deepseek-harness-desktop_0.1.33_amd64.deb
v0.1.32
DeepSeek Harness Desktop v0.1.32
修复:
- dsh 服务意外退出(code=1):新版 dsh 要求显式
DSH_HOME,桌面端启动时未设置导致MISSING_DSH_HOME崩溃退出——已修复(启动时自动设置,与本地会话扫描一致) - 代码审查修复(4 项):
- 余额扫描 worker 增加 30 秒超时降级(防止偶发卡死导致余额菜单永久失效)
- 定时刷新与「校准」并发时的 worker 请求互斥(避免结果交叉)
- 托盘菜单热更新失败时先销毁旧服务再重建(防图标堆积回归)
- 托盘 SNI 异步注册防重复创建(启动早期不会出现双图标)
- 托盘余额菜单精简:只显示官方余额(余额详情、各会话、刷新、校准入口移除)
安装(deb):sudo dpkg -i deepseek-harness-desktop_0.1.32_amd64.deb
配置:~/.config/deepseek-harness-desktop/config.json
v0.1.31
DeepSeek Harness Desktop v0.1.31
DeepSeek Harness(dsh)桌面壳应用。
本版新增/修复(自 v0.1.11 以来):
- 余额监控套件:官方余额(DeepSeek API)+ 本地会话 token 用量扫描(worker 线程,不卡界面)+ 按模型分价估算(峰谷定价);「校准」以官方余额为基准,偏差过大自动重校准
- 当前会话/本次对话跟随:自动跟随 Web UI 中打开/切换的会话(监听窗口内 session.* 请求,缓存会话切换也覆盖);余额详情页与托盘「各会话消耗」子菜单可手动设为当前
- 多 API key 隔离:服务端会话须与本地 DSH_HOME 一致,否则降级本地扫描,杜绝其他 DSH_HOME/API key 的用量混算
- 对话完成提醒:检测 turn/end 事件,窗口不在前台时系统通知(含回复摘要),点击回前台;设置面板可开关
- 无响应/闪退修复:会话解析全部走 worker;官方余额先行显示(启动 6 秒可见);fetch 超时收紧(2.5s/5s);首次扫描与页面加载错峰
- 托盘图标堆积修复:SNI 菜单热更新(dbusmenu LayoutUpdated),不再每次刷新重建托盘服务
- i18n:界面中/英文可切换(设置面板)
- 设置面板:内嵌浮层(居中、模态遮罩)、关闭行为、语言、对话完成提醒、检查/安装 dsh npm 更新(绝对路径探测,GUI 环境可用)
安装(deb):sudo dpkg -i deepseek-harness-desktop_0.1.31_amd64.deb
配置:~/.config/deepseek-harness-desktop/config.json(port / closeBehavior / language / notifyOnTurnEnd / balanceSessionId / pricing 等)
v0.1.13
DeepSeek Harness Desktop v0.1.13
修复
- 彻底修复检查更新失败:0.1.12 的
bash -lc方案依赖~/.profile的 PATH 配置,而 npm 全局目录(~/.npm-global/bin)不在.profile中,纯净 GUI 环境下仍然找不到dsh。现改为直接探测常见安装位置(~/.npm-global/bin、~/.local/bin、/usr/bin)并用绝对路径执行,完全不依赖 shell 配置
改进
- 检查更新失败时提示具体失败项(
dsh --version失败 /npm view失败及原因),便于定位问题
完整更新历史见 CHANGELOG.md