yeqingtang/dsh-task-watcher-plugin:DeepSeek Harness 的 Windows 托盘监视器插件

前言

DeepSeek Harness(DSH)采用插件化架构。在 Windows 环境下,管理一个常驻系统的托盘监视程序(如 DshTaskWatcher)通常需要手动下载安装包、配置环境并确保进程常驻。yeqingtang/dsh-task-watcher-plugin 将 DshTaskWatcher(独立 PowerShell 托盘应用)打包进 DSH 插件,在 DSH 的框架下完成部署、拉起与生命周期管理,解决了独立进程与宿主服务解耦的需求。

核心功能

该插件采用 Host + Web 双半端 架构,主要能力如下:

  • 脱离宿主进程:使用 CREATE_NO_WINDOW 标志启动 PowerShell,不绑定 job,无终端窗口。DSH 进程重启或关闭时,托盘监视器会继续运行,不受影响。
  • 独立生命周期:插件仅负责部署与启动,不干预托盘的日常运行。即便停用或卸载插件,正在运行的监视器也不会被终止。
  • 停止意图记忆:当通过开关或托盘右键退出监视器时,会生成 stopped.flag。DSH 重启后不会自动拉回已停止的监视器,除非手动重新启动(这符合“崩溃/强杀仍允许自动恢复”的设计逻辑)。
  • 单实例互斥:监视器内部实现了互斥锁,防止与手动安装的实例产生双托盘。
  • 零依赖零构建:依赖库为纯手写 ESM,无构建步骤,减少环境复杂度。

管理 API

插件提供三个 Loopback POST 接口用于控制:

  • POST /api/dsh-task-watcher/status:查询运行状态、PID 和已部署版本。
  • POST /api/dsh-task-watcher/start:增量覆盖部署 assets 并拉起托盘。配置文件 config.json 仅在缺失时写入。
  • POST /api/dsh-task-watcher/stop:停止托盘进程。匹配逻辑严格锚定 -File DshTaskWatcher.ps1,避免误杀其他包含该文件名的进程。

安装与启用

在终端中执行以下命令安装插件:

dsh plugin --profile web add @yeqingtang/dsh-task-watcher-plugin

安装完成后,需要重启 web 服务才能生效。启用后,可在 设置 → 插件 → 任务监视器 中看到状态显示与启停开关(界面每 10 秒轮询一次,支持中英双语)。

使用注意事项

  1. 平台限制:仅支持 Windows (win32)。
  2. Node 版本:要求 Node.js 版本 >= 20.0.0。
  3. 部署路径:监视器会被安装到 %LOCALAPPDATA%\DshTaskWatcher。
  4. 停止逻辑:停止接口只匹配通过 start 接口拉起的进程,不会误杀其他启动脚本。

总结

该插件通过 Shell 集成的方式,将独立的 Windows 托盘程序纳入 DSH 生态。它既保留了监视器的独立性,又通过 API 提供了统一的控制入口,适合需要在 Windows 环境下维护常驻后台任务的 DeepSeek Harness 用户。

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

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

小夜