dsh-header-controls:会话右上角电源控制

前言

在 DeepSeek Harness(DSH)的开发预览阶段,频繁的进程重启与退出是日常开发的一部分。目前官方界面尚未提供直观的电源控制入口,开发者通常需要依赖命令行或系统任务管理器来结束进程。dsh-header-controls 是一个静态 Web 插件,它在会话日志左侧注入了「重启」与「注销」胶囊按钮,复刻了官方版式的交互体验,旨在解决这一痛点。

核心功能

该插件提供以下具体能力:

  1. 重启一键直达:无需二次确认。点击按钮后,当前 dsh 进程会优雅退出,由纯 Node.js 助手根据配置重新拉起服务,页面会自动轮询并刷新,无需手动打开新标签页。
  2. 注销两步确认:点击注销按钮后,按钮状态会变红进入确认态,需再次点击才真正关闭整个 dsh 进程,防止误触。
  3. 纯 Node 重启助手:重启逻辑通过 lib/relaunch-helper.cjs 实现,不依赖 PowerShell 或任何第三方库,直接读取系统环境进行操作。
  4. 皮肤感知:插件能检测页面的 data-dsh-maid-atelier 属性,在对应皮肤下自动切换为深海蓝配色,否则使用默认样式。
  5. 安全校验:宿主路由仅允许 loopback 访问,并强制校验自定义请求头 x-dsh-header-controls: 1,以防止 CSRF 攻击。

安装与启用

安装过程需要手动操作,不依赖现有的插件管理器。

  1. 克隆仓库到本地:
    git clone https://github.com/kgwdonkey/dsh-header-controls.git
  1. 在 DSH 的 profile 目录下创建插件链接。以 Windows 为例(需管理员权限或开发者模式):
    mklink /J "%USERPROFILE%\.dsh\profiles\node_modules\dsh-header-controls" "<克隆到的路径>"
Linux 或 macOS 用户请使用 `ln -s` 命令进行软链接。
  1. 在 profile 目录的 cordis.patch.yml 文件末尾追加注册项:
    - $insert: node_modules/dsh-header-controls/lib/index.js
  1. 重启 DSH,在会话页右上角(Session log 左侧)即可看到新增的按钮。

使用方法

重启和注销的操作逻辑如下:

  • 重启:直接点击胶囊按钮。系统会退出当前进程,随后自动拉起并刷新页面,整个过程耗时约 10~30 秒,取决于启动速度。
  • 注销:点击按钮后按钮变红,此时为确认态;再次点击即可关闭 dsh 进程。关闭后需通过桌面快捷方式重新启动。

配置与注意事项

插件依赖于 DSH 的启动配置文件来执行重启操作。

  1. 配置读取:重启助手会读取 %LOCALAPPDATA%\DeepSeekHarness\launcher.config.json,从中获取 node(执行路径)、repo(仓库路径)、profile、port 和 host 等参数。
  2. 默认回退:若缺少配置文件或文件内容缺失,插件会使用默认回退值(如 node=process.execPath、profile=web 等)。
  3. 系统垫片:如果 DSH 没有预构建产物,插件会回退使用系统安装的 dsh 命令垫片来启动服务。
  4. 适用环境:该插件目前适用于 DSH 的 dev preview 版本(0.1.0-rc.x,web profile)。

结语

dsh-header-controls 通过极简的代码实现了对 DSH 进程的精细控制。如果你正在使用 DSH 的 web profile 进行开发,且习惯通过界面按钮而非命令行来管理服务状态,这个插件能显著提升开发效率。

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

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

小夜