dsh-safe-launch:DeepSeek Harness 安全启动器插件

DeepSeek Harness (DSH) 采用插件化架构,这意味着通过插件扩展功能非常方便,但也带来了配置变更和升级可能破坏现有环境的隐患。dsh-safe-launch 是一个专注于管理安全启动的插件,它通过记录上次成功的配置、在隔离环境中进行更新试运行以及严格检查插件兼容性,来保障 DSH 实例的稳定性。

插件定位

dsh-safe-launch 是 DSH 的管理安全类插件,由 dHR-P 维护。它的核心价值在于为 DSH 提供一个“安全网”:在执行任何可能影响运行环境的操作(如核心升级或安装新插件)之前,先在隔离环境中验证,只有验证通过才应用到当前实例。

核心功能

该插件提供了以下五个主要能力:

  1. 成功启动配置:基于 ~/.dsh/safe-launch/last-good.json 记录上次成功的配置。在配置变更前,插件会自动进行备份。
  2. 核心更新试运行:在安装新版 DSH 核心时,先将其装入独立的 runtime/<版本> 目录,利用隔离的 HOME 和随机端口启动测试。只有测试通过,才会写入新配置;失败则自动丢弃候选版本。
  3. 插件兼容性检查安装:安装任何新插件前,插件会复制一份 profile 到临时目录,在隔离环境安装插件,并用当前成功配置在新端口启动测试。通过后才会通过官方命令 dsh plugin add 装入真实的 profile;失败则仅提示,不影响当前实例。
  4. 插件更新回归:批量更新插件时,先备份清单,更新后进行回归测试,通过则提交,失败则回滚。
  5. 安全重启:使用分离式的 helper 进程接管“停旧-起新-验活”流程,父进程无需自尽。

安装与启用

安装该插件非常直接,使用 DSH 的插件管理命令即可:

dsh plugin --profile web add github:dHR-P/dsh-safe-launch

安装完成后,必须重启 DSH 以完成初始化。插件会自动从当前运行的实例引导出“成功启动配置”,无需额外步骤。重启后,插件会处于 pending 引导状态,此时它提供自动巡检、升级提示和兼容性安装功能。

典型用法

1. Web 配置面板

插件提供了一个自包含的网页管理面板,地址为:

http://127.0.0.1:3080/dsh-safe-launch/panel

在该面板中,你可以管理安全启动状态、查看插件版本与兼容性、检查清单漂移情况,以及进行重启或回滚操作。

2. 授权接管桌面启动器

默认情况下,插件仅作为增强组件运行。如果需要接管桌面快捷方式,以便通过桌面图标安全启动 DSH,需要用户明确同意。可以通过调用 API 完成:

curl -s http://127.0.0.1:3080/dsh-safe-launch/setup/desktop-launcher -d '{}'

若拒绝接管,则保持纯插件模式,调用以下命令:

curl -s http://127.0.0.1:3080/dsh-safe-launch/setup/dismiss-onboarding -d '{}'

3. 插件兼容性安装

在安装新插件前,建议使用插件的 API 进行检查。例如,安装一个来自 GitHub 的插件:

curl -s http://127.0.0.1:3080/dsh-safe-launch/install-plugin \
     -d '{"source":"github:someone/some-dsh-plugin"}'

该接口会返回一个任务 ID,随后可以通过 /job 接口轮询任务状态与日志,确认安装是否成功。

4. 启动参数自适应

插件支持自动适配不同版本的 DSH CLI 形状(例如 --profile web 与 web 参数位置的区别)。插件会通过 process.argv 捕获当前启动参数,将其模板化存入配置,确保重启和试运行时使用正确的参数格式。

适用场景与依赖

  • 适用场景:需要频繁安装新插件或升级 DSH 核心的开发者;希望保障 DSH 实例不因误操作而崩溃的环境。
  • 运行环境:依赖 Windows 操作系统、pnpm 必须在系统 PATH 中、Node.js 版本需 ≥ 20。
  • 兼容性:支持任何版本的 DSH。插件采用 default-open 兼容策略,任何 dsh 版本均可安装,且不会影响宿主启动。
  • 构建要求:本包无构建脚本(无 prepare/postinstall),不会被 pnpm allowBuilds 拦截。

总结

dsh-safe-launch 通过将高风险操作(更新、安装)前置到隔离环境进行验证,解决了 DSH 插件化管理中的稳定性隐患。它不仅是配置的备份工具,更是操作流程的安全守门员。通过其提供的 API 和 Web 面板,开发者可以放心地探索和扩展 DSH 的功能。

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

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

小夜