dsh-quick-window-launcher:将 DeepSeek Harness 转为独立应用窗口

DeepSeek Harness (DSH) 采用插件化架构。Web 配置文件默认在浏览器标签页中运行。当需要频繁切换或管理多个实例时,标签页管理容易混乱,且缺乏对进程的直接控制。该插件通过桌面快捷方式,将 Harness 作为一个独立的 Chromium 应用窗口打开,并提供侧栏电源控制与 open_web 工具。

核心功能

该插件主要解决以下问题:

  1. 桌面快捷方式与独立窗口:生成桌面快捷方式,默认使用 Chromium 系浏览器的 --app=<url> 模式打开 Harness。该模式会去除地址栏和标签栏,提供类似原生应用的体验。若本机未安装 Chromium 系浏览器,则回退到系统默认浏览器。
  2. 侧栏电源控制:在侧栏底部新增关闭(⏻)、重启(⟳)和检查更新(⬇)按钮。
    • 关闭:优雅停止进程,释放资源并落盘会话。
    • 重启:由运行在 Harness 进程树之外的看门狗(Watchdog)负责拉起新实例,支持心跳自愈。
    • 检查更新:查询 npm 上 @deepseek-ai/dsh 的最新版本,发现新版本时可一键复制更新命令。
  3. open_web 工具:注册模型工具,允许在默认浏览器的新标签页打开指定 URL。
  4. 多信号存活判定:在启动前检查端口监听状态与任务板锁(~/.dsh/task-board/ledger-v2.lock)的所有者 PID。若旧实例未服务但存活,启动器会诊断并退出,避免重复启动导致冲突。
  5. 自动版本检查:自动检查并提示 npm 上 @deepseek-ai/dsh 的最新版本。

安装与启用

该插件仅面向 web 配置文件。安装后需重启 Harness 才能生效。

# 安装插件
dsh plugin --profile web add Yuanloss/dsh-quick-window-launcher

# 启动 Harness
dsh web

首次启动时,插件会在 %USERPROFILE%\.dsh\logs 目录下写入两个纯 Node 辅助脚本(.cjs),并创建桌面快捷方式 DeepSeek Harness.lnk。

功能详解

桌面快捷方式行为

双击桌面上的快捷方式,启动器会执行以下步骤:

  1. 检查 Harness 是否已在指定端口监听。
  2. 检查任务板锁的主人 PID 是否存活。若 Harness 进程存在但未监听端口(可能处于僵死状态),启动器会诊断并退出,防止启动冲突。
  3. 若 Harness 未运行,则通过插件自身运行所用的 Node 二进制启动它。
  4. 等待 UI 可访问。
  5. 获取认证 URL 并向隔离窗口档案签发 Cookie,确保 App 窗口免登录打开。
  6. 使用 --app=<url> 命令行参数打开窗口。

电源控制与看门狗

重启功能依赖运行在 Harness 进程树之外的看门狗进程。看门狗每秒轮询一次,处理重启请求并恢复监听,具备心跳自愈能力。

关闭功能通过优雅停止(SIGTERM)实现,确保会话数据正确落盘。

安全与杀毒软件

  • 接口限制:/api/shutdown 和 /api/restart 仅接受回环地址(localhost)和 POST 请求。
  • 杀毒软件兼容性:v0.2.6 版本起移除了所有 .ps1 脚本。旧版依赖 PowerShell 脚本会被火绒等杀毒软件按“新建 PowerShell 脚本”启发式规则隔离。新版改用纯 Node .cjs 脚本和内联 COM 调用创建快捷方式,避免被隔离。

配置项

可以通过 profile patch 覆盖以下配置:

键 默认值 说明
createShortcut true 是否生成/刷新桌面快捷方式。
desktopName DeepSeek Harness 快捷方式的基础文件名。
desktopPath (自动解析) 手动指定桌面目录(解决 OneDrive 重定向等自动解析失败场景)。解析优先级:desktopPath → Windows 注册表 → ~/Desktop。
watchdog true 是否启动重启看门狗。设为 false 后重启按钮仅退化为关闭功能。

示例配置:

- id: quick-window-launcher
  name: 'dsh-quick-window-launcher'
  config:
    createShortcut: true
    desktopName: 'DeepSeek Harness'
    watchdog: true

诊断

若遇到启动或窗口问题,可在 PowerShell 中运行以下命令进行诊断:

node "$env:USERPROFILE\.dsh\logs\dsh-launch-web.cjs" --diagnose

该命令会输出端口状态、任务板锁主人、看门狗心跳及最近日志。

总结

dsh-quick-window-launcher 提供了一种将 DSH Web 界面“桌面化”的方案。通过独立窗口和侧栏控制,减少了标签页管理的开销,并提供了优雅的进程重启与更新能力。所有辅助脚本均以纯 Node 形式运行,以兼容主流杀毒软件。

  • 插件目录:https://www.skillhub.cn/plugins/Yuanloss/dsh-quick-window-launcher
  • GitHub 仓库:https://github.com/Yuanloss/dsh-quick-window-launcher
羽毛球分组比赛记分
小程序二维码

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

小夜