前言¶
在 DeepSeek Harness(DSH)的开发预览阶段,频繁的进程重启与退出是日常开发的一部分。目前官方界面尚未提供直观的电源控制入口,开发者通常需要依赖命令行或系统任务管理器来结束进程。dsh-header-controls 是一个静态 Web 插件,它在会话日志左侧注入了「重启」与「注销」胶囊按钮,复刻了官方版式的交互体验,旨在解决这一痛点。
核心功能¶
该插件提供以下具体能力:
- 重启一键直达:无需二次确认。点击按钮后,当前 dsh 进程会优雅退出,由纯 Node.js 助手根据配置重新拉起服务,页面会自动轮询并刷新,无需手动打开新标签页。
- 注销两步确认:点击注销按钮后,按钮状态会变红进入确认态,需再次点击才真正关闭整个 dsh 进程,防止误触。
- 纯 Node 重启助手:重启逻辑通过
lib/relaunch-helper.cjs实现,不依赖 PowerShell 或任何第三方库,直接读取系统环境进行操作。 - 皮肤感知:插件能检测页面的
data-dsh-maid-atelier属性,在对应皮肤下自动切换为深海蓝配色,否则使用默认样式。 - 安全校验:宿主路由仅允许
loopback访问,并强制校验自定义请求头x-dsh-header-controls: 1,以防止 CSRF 攻击。
安装与启用¶
安装过程需要手动操作,不依赖现有的插件管理器。
- 克隆仓库到本地:
git clone https://github.com/kgwdonkey/dsh-header-controls.git
- 在 DSH 的 profile 目录下创建插件链接。以 Windows 为例(需管理员权限或开发者模式):
mklink /J "%USERPROFILE%\.dsh\profiles\node_modules\dsh-header-controls" "<克隆到的路径>"
Linux 或 macOS 用户请使用 `ln -s` 命令进行软链接。
- 在 profile 目录的
cordis.patch.yml文件末尾追加注册项:
- $insert: node_modules/dsh-header-controls/lib/index.js
- 重启 DSH,在会话页右上角(Session log 左侧)即可看到新增的按钮。
使用方法¶
重启和注销的操作逻辑如下:
- 重启:直接点击胶囊按钮。系统会退出当前进程,随后自动拉起并刷新页面,整个过程耗时约 10~30 秒,取决于启动速度。
- 注销:点击按钮后按钮变红,此时为确认态;再次点击即可关闭 dsh 进程。关闭后需通过桌面快捷方式重新启动。
配置与注意事项¶
插件依赖于 DSH 的启动配置文件来执行重启操作。
- 配置读取:重启助手会读取
%LOCALAPPDATA%\DeepSeekHarness\launcher.config.json,从中获取node(执行路径)、repo(仓库路径)、profile、port和host等参数。 - 默认回退:若缺少配置文件或文件内容缺失,插件会使用默认回退值(如
node=process.execPath、profile=web等)。 - 系统垫片:如果 DSH 没有预构建产物,插件会回退使用系统安装的
dsh命令垫片来启动服务。 - 适用环境:该插件目前适用于 DSH 的 dev preview 版本(0.1.0-rc.x,web profile)。
结语¶
dsh-header-controls 通过极简的代码实现了对 DSH 进程的精细控制。如果你正在使用 DSH 的 web profile 进行开发,且习惯通过界面按钮而非命令行来管理服务状态,这个插件能显著提升开发效率。