DeepSeek Harness (DSH) 采用插件化架构,这意味着通过插件扩展功能非常方便,但也带来了配置变更和升级可能破坏现有环境的隐患。dsh-safe-launch 是一个专注于管理安全启动的插件,它通过记录上次成功的配置、在隔离环境中进行更新试运行以及严格检查插件兼容性,来保障 DSH 实例的稳定性。
插件定位¶
dsh-safe-launch 是 DSH 的管理安全类插件,由 dHR-P 维护。它的核心价值在于为 DSH 提供一个“安全网”:在执行任何可能影响运行环境的操作(如核心升级或安装新插件)之前,先在隔离环境中验证,只有验证通过才应用到当前实例。
核心功能¶
该插件提供了以下五个主要能力:
- 成功启动配置:基于
~/.dsh/safe-launch/last-good.json记录上次成功的配置。在配置变更前,插件会自动进行备份。 - 核心更新试运行:在安装新版 DSH 核心时,先将其装入独立的
runtime/<版本>目录,利用隔离的 HOME 和随机端口启动测试。只有测试通过,才会写入新配置;失败则自动丢弃候选版本。 - 插件兼容性检查安装:安装任何新插件前,插件会复制一份 profile 到临时目录,在隔离环境安装插件,并用当前成功配置在新端口启动测试。通过后才会通过官方命令
dsh plugin add装入真实的 profile;失败则仅提示,不影响当前实例。 - 插件更新回归:批量更新插件时,先备份清单,更新后进行回归测试,通过则提交,失败则回滚。
- 安全重启:使用分离式的 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 的功能。