dsh-safe-install:DSH 插件安全安装全流程自动化

DSH 生态以插件化为核心,直接安装插件存在风险:加载器重复可能导致崩溃,工具名冲突会导致功能失效,版本不匹配可能破坏运行环境,且安装后需手动重启。dsh-safe-install 将“装插件”这一操作封装为标准流程:先做四重安全检查,确认无冲突后打快照,执行安装,最后自动重启 DSH。

插件简介

dsh-safe-install 是由 goodaiaiai 维护的自动化工具。它集成在 DSH 进程中,通过自动化流程规避安装风险。其核心价值在于将手动排查和操作转化为可复用的指令,确保插件环境的稳定。

核心功能

该插件主要包含以下能力:

  1. 四重安全检查:在安装前并行执行,涵盖版本兼容性、patch 冲突、工具名冲突及供应链安全。
  2. 阻断机制:根据检查结果返回 block 或 warn。block 会直接拒绝安装并说明原因;warn 仅提示风险但不阻断。
  3. 快照与回退:安装前自动调用 dsh-undo-savepoint 创建快照,若安装失败或配置错误,可随时回退。
  4. 自动重启:安装完成后自动重启 DSH 进程,确保新插件立即生效。
  5. 状态追踪:记录最近的检查、安装和重启状态,重启后仍可查询。

安装

通过官方命令行安装:

dsh plugin --profile web add github:goodaiaiai/dsh-safe-install#master

安装后需重启 DSH 生效。

典型用法

插件注册了三个工具,可在对话中直接调用。

  1. 安全检查
    仅执行四重安全检查,不进行实际安装。
    safe_install_check { pkg: "dsh-startup-guard" }
  1. 安全安装
    执行检查、安装并自动重启(默认 restart: true)。
    safe_install { pkg: "dsh-better-sidebar", source: "github:omdsh-dev/DSH-better-sidebar" }
  1. 状态查询
    查询上次的检查、安装和重启状态。
    safe_install_status

四重安全检查机制

检查分为四个维度,判定标准如下:

  1. 版本兼容:检查插件 peerDependencies 中 @deepseek-ai/* 的版本要求(minor, patch, rc)是否 ≤ 当前 DSH 版本。
  2. Patch 冲突:检查 cordis.patch.yml 中的 insert id 是否与核心保留 ID(如 storage)或已装插件重复。
  3. 工具名冲突:检查插件注册的工具名是否与已装插件或内置工具重复。
  4. 供应链:检查 npm 包是否已发布、维护是否活跃(<30天)以及许可证是否清晰。

注意:未提供 source 参数时,无法完整执行 ②③ 检查,仅返回 warn。建议总是提供 GitHub 源。

注意事项与限制

  • 网络与权限:插件运行在 DSH 进程中。dsh plugin add 在 workspace-write 沙箱下可能因权限问题报 EPERM,需 danger-full-access。网络请求内置 NODE_TLS_REJECT_UNAUTHORIZED=0(用于解决本地 CA 链不完整问题)并包含重试逻辑(2次)。
  • 检查依赖:②③ 检查依赖 GitHub 源,npm 包在未下载时无法读取其 patch 和源码内容。
  • 清单刷新:工具名清单为内置快照 + 启动时扫描,新装插件后需重启以刷新清单。
  • 运行时依赖:本插件仅检查安装时的版本和冲突,不覆盖 dsh-client-ui-slots 等核心模块的运行时依赖完整性(建议配合 dsh-startup-guard)。

插件通过自动化流程降低了 DSH 插件管理的复杂度与风险。如需回滚误操作的安装,可使用 dsh-undo-savepoint。

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

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

小夜