Skip to content

Releases: Quan-Robin/DSH-desktop-for-Linux

0.1.40 — pet 在线时不再重复弹审批窗(+ 0.1.39 全部修复)

Choose a tag to compare

@Quan-Robin Quan-Robin released this 13 Sep 07:30

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:detect IPC)。
  • 终端改为 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 兼容修复(右侧栏 / 余额 / 终端)

Choose a tag to compare

@Quan-Robin Quan-Robin released this 13 Sep 06:53

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:detect IPC)。
  • 终端改为 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

Choose a tag to compare

@Quan-Robin Quan-Robin released this 12 Sep 06:23

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+ 兼容修复(实测破坏性变更)

  1. token 认证:0.1.5+ 的 Web UI 需 ?token=…(无 token 请求返回 401)——外壳现从 dsh 输出与 dsh.log 捕获 token 并带参加载;isServerUp 认 401(特征文本)为存活,修复此前 120s 启动超时与复用/重启路径失效
  2. --no-open:spawn 时禁止 dsh 拉起系统浏览器,UI 归桌面端窗口
  3. 插件 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:普通版 deb
  • DeepSeek Harness-0.1.38.AppImage:普通版 AppImage

v0.1.37

Choose a tag to compare

@Quan-Robin Quan-Robin released this 18 Aug 06:34

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:普通版 deb
  • DeepSeek Harness-0.1.37.AppImage:普通版 AppImage

v0.1.36

Choose a tag to compare

@Quan-Robin Quan-Robin released this 16 Aug 09:37

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

Choose a tag to compare

@Quan-Robin Quan-Robin released this 15 Aug 10:08

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

Choose a tag to compare

@Quan-Robin Quan-Robin released this 15 Aug 07:11

DeepSeek Harness Desktop v0.1.33

修正:

  • 托盘余额精简范围修正:托盘菜单余额只显示官方余额(按需精简);应用菜单栏的「余额」菜单恢复完整内容(官方/估算/当前会话/本次对话消耗、各会话、详情、刷新、校准)

安装(deb):sudo dpkg -i deepseek-harness-desktop_0.1.33_amd64.deb

v0.1.32

Choose a tag to compare

@Quan-Robin Quan-Robin released this 15 Aug 06:55

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

Choose a tag to compare

@Quan-Robin Quan-Robin released this 14 Aug 18:27

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

Choose a tag to compare

@Quan-Robin Quan-Robin released this 14 Aug 10:49

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