dsh-task-overlay:在 DSH 窗口外看任务进度

前言

用 DeepSeek Harness(DSH)跑长任务时,目标 phase、Todo 清单和「待确认 / 已完成未查看」往往都在主窗口里。最小化或切到别的应用后,要再点开 DSH 才能扫一眼状态。若你希望在桌面上常驻一块小区域显示同一套信息,并在 DSH 里用开关控制启停,社区插件 dsh-task-overlay 就是面向这个场景的客户端扩展。

下面介绍它做什么、怎么装、怎么用,以及 Windows 桌面浮窗与跨平台侧栏各自负责什么。

这是什么

dsh-task-overlay 由维护者 gg947919490-byte 发布,分类为客户端插件。它在 DSH 窗口之外放一个桌面悬浮窗,实时展示当前任务状态;同时在 DSH 侧栏提供「桌面浮窗」启停开关。

桌面浮窗部分基于 PowerShell + WPF,仅支持 Windows。DSH 内的开关与 GUI 向浮窗推送状态,这部分逻辑随 DSH 客户端跨平台可用(非 Windows 上仍可使用侧栏开关与状态推送,但无桌面 WPF 窗口)。

核心功能

目标与 Todo

浮窗与 DSH 侧同步的内容包括:

  • 目标状态:phase(进行中 / 已暂停 / 受阻 / 已完成)、objective、第 N/M 轮、受阻原因
  • Todo 进度:进度条与清单(已完成 / 进行中 / 待办)
  • 提醒:跨所有会话统计——N 个会话等待确认、N 个会话已完成未查看

生命周期行为

  • 最小化或关闭 DSH 窗口后,桌面浮窗仍可存在
  • DSH 完全退出后,浮窗不会自动消失,但会显示「DSH 未运行」

DSH 侧控制

安装并刷新页面后,侧栏底部会出现「桌面浮窗」开关(绿点表示运行中),用于启停桌面浮窗进程。

安装与启用

插件要求 Node >= 20、DSH >= 0.2.0-0(见仓库 package.json)。许可证为 MIT。

插件市场(推荐)

先安装市场插件 dshmarket,在 DSH 中打开 设置 → Plugin Market,搜索 dsh-task-overlay 一键安装。

DSH 官方插件页

在安装框填写:

github:gg947919490-byte/dsh-task-overlay

或粘贴 Release 中 dsh-task-overlay.tgz 的直链。

CLI

dsh plugin add gg947919490-byte/dsh-task-overlay

安装完成后刷新一次 DSH 页面(F5),侧栏底部应出现「桌面浮窗」开关。

典型用法

入口 操作
DSH 侧栏底部「桌面浮窗」开关 点击启停桌面浮窗(绿点=运行中)
浮窗标题栏 ▾ / ▸ 展开详情 / 收成 190×32 迷你胶囊
拖动浮窗标题栏 移动位置(位置与折叠状态会记住)
浮窗 ✕ 关闭浮窗进程(可在 DSH 侧栏开关重新打开)

不经过 DSH 开关首次启动:双击 desktop\launch-overlay.cmd 或 desktop\launch-overlay.vbs。

开机自启:将 launch-overlay.vbs 的快捷方式放入 shell:startup。

工作原理(简要)

数据不由宿主从 root 上下文投影(读不到会话作用域的 todos / goal),而由 DSH GUI 客户端推送:

DSH GUI(客户端插件,拥有完整会话状态)
   │  POST 压缩快照 → 127.0.0.1:45123(2 秒心跳,变化即时推送)
   ▼
桌面浮窗(独立 WPF 进程 + 内置 TCP 监听)
   ▲
   │  侧栏开关 → 同源相对路径 /task-overlay/control(start/stop/toggle/status)
DSH 宿主(本包宿主半边)—— start 用 spawn 拉起浮窗,stop 发 {"cmd":"stop"} 优雅关闭

浮窗判断 DSH 是否存活采用三段式:≤20 秒视为实时;>20 秒保留最后一帧并标注数据年龄;>150 秒且宿主端口拒连才显示「DSH 未运行」。

配置与排查

常用配置

位置 参数 默认 说明
dsh/client.js BRIDGE_URL http://127.0.0.1:45123/task-overlay 客户端推送地址,需与浮窗 -Port 一致
desktop/task-overlay.ps1 -Port 45123 桥接监听端口
同上 -DshPort 19387 宿主端口,用于存活探测
同上 -Width 300 展开态宽度(200–520)
同上 -StateFile ~/.dsh/task-overlay/desktop-window.json 位置/折叠记忆

端口被占用时:修改 -Port,并同步 dsh/client.js 的 BRIDGE_URL。

排查

  • 最近一帧快照:~/.dsh/task-overlay/last-payload.json
  • 浮窗未出现:确认已 F5 刷新、侧栏开关为「开」;或手动运行 desktop\launch-overlay.cmd

安全说明(使用前应了解)

  • 宿主控制接口绑定 webServer 自身监听地址(默认 127.0.0.1),并校验请求 Origin 为同源或 dsh-app://app
  • 桥接端口(45123)无鉴权,仅绑定回环;本机其他进程理论上可伪造显示数据或触发关闭,属 README 中说明的已知限制

适用场景与注意

适合:在 Windows 上长时间跑 DSH 任务、希望桌面一角常驻目标 / Todo / 会话提醒,又不想反复切回主窗口的开发者。

注意:

  • 桌面 WPF 浮窗仅 Windows;其他系统只能依赖 DSH 内开关与客户端推送逻辑
  • 插件以当前 DSH 进程权限运行;安装前建议阅读 GitHub 仓库 源码与 MIT 许可证
  • 社区目录 SkillHub 插件页 为独立生态站点,与 DeepSeek / 幻方无官方从属关系

结尾

dsh-task-overlay 把 DSH 会话里的 goal、Todo 进度和跨会话确认提醒,推到独立桌面浮窗,并用侧栏开关统一管理启停。Windows 用户按上述 CLI 或插件市场安装、刷新后即可试用。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye