Bundle
@yeqingtang/dsh-task-watcher-plugin
Windows tray monitor for DeepSeek Harness tasks: deploys and launches DshTaskWatcher (standalone PowerShell tray app) from the plugin bundle. Status/start/stop via loopback API. The watcher runs detached from the host process.
- Source
- YeqingTang
- License
- MIT
- Updated
- Updated 14 days ago
Readme
# dsh-task-watcher-plugin DSH 任务监视器插件(薄壳)——把 [DshTaskWatcher](https://github.com/YeqingTang/dsh-task-watcher) (独立 Windows 托盘监视程序)打进插件包:安装即部署到 `%LOCALAPPDATA%\DshTaskWatcher` 并拉起托盘,无需再从 GitHub 下载安装包。 ## 形态 - **Host + Web 双半端**:host 负责部署/拉起/管理路由;浏览器半端在 **设置 → 插件 → 任务监视器** 提供状态显示与启停开关(10s 轮询、中英双语) - **脱离宿主进程**:`CREATE_NO_WINDOW` 直起 powershell(无终端窗口)、无 job 绑定——DSH 重启不影响托盘常驻 - **独立生命周期**:桌面快捷方式启动、托盘右键退出照常可用;插件停用/卸载不杀运行中的监视器 - **停止意图记忆**:托盘退出或开关停止后写 `stopped.flag`,DSH 重启不会自动拉回(崩溃/强杀仍允许自动恢复) - **单实例互斥**:监视器内置 mutex,与手动安装并存也不会双托盘 - **零依赖零构建**:`lib/` 纯手写 ESM,assets 为运行时载荷 ## 管理 API(仅 loopback POST) | 路由 | 作用 | |---|---| | `/api/dsh-task-watcher/status` | 运行状态 / pid / 已部署版本 | | `/api/dsh-task-watcher/start` | 部署(增量覆盖,`config.json` 只在缺失时写入)+ 拉起托盘 | | `/api/dsh-task-watcher/stop` | 停止托盘(只匹配 `-File <路径>DshTaskWatcher.ps1` 启动形态,绝不误伤提及该文件名的其他进程) | 宿主启动时:已有部署但未运行 → 自动拉起;全新安装不擅自部署(首次显式 start 才落盘)。 ## 安装  方式一(推荐,npm 源): ```sh dsh plugin --profile web add @yeqingtang/dsh-task-watcher-plugin ``` 方式二(GitHub 源): ```sh dsh plugin --profile web add github:YeqingTang/dsh-task-watcher-plugin ``` 重启 web 服务后生效。 ## 已知坑(实现记录) - **node spawn 旗标互斥**:`detached:true`(DETACHED_PROCESS)与 `windowsHide:true` (CREATE_NO_WINDOW)组合会让 CreateProcess 静默失败(异步 `error` 事件无输出、pid 照常分配, 极难排查)。Windows 下普通 spawn 的子进程本就能活得比父进程久,直接去掉 detached 即可。 - **stop 误杀面**:进程匹配必须锚定 `-File\s+\S*DshTaskWatcher[.]ps1` 启动形态;宽松匹配 (仅文件名)会杀掉任何命令行里提到该文件的进程(编辑器、Get-Content、测试壳)。 ## 升级监视器 插件包 assets 随 git/npm 更新;`start` 前会增量覆盖部署(`config.json` 用户文件只在缺失时写入)。
Install
dsh plugin --profile web add github:YeqingTang/dsh-task-watcher-plugin
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install yeqingtang-dsh-task-watcher-plugin from the hub
- This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.