dsh-safe:在 Harness 无法启动时从外部恢复配置

前言

DeepSeek Harness(DSH)的配置由 profile 与所选插件 bundle 共同决定。某个插件在启动阶段异常时,常见结果是进程反复崩溃,或窗口一直停在 loading。Harness 自带恢复对话框只在崩溃时出现,且选项是「禁用全部第三方插件并备份 patch 后重启」——往往会卸掉所有第三方 bundle,并拆掉整层 patch。多数时候你只想关掉刚动过的那一个插件。

dsh-safe(GitHub:osman3n/dsh-safe,维护者 osman3n,社区分类 admin-security)在应用关闭时从终端直接改 profile 文件,不依赖崩溃中的 Harness 能正常起来;Healthy 会话里还可通过插件暴露的工具查看状态、在改动前打快照。

这是什么

一句话:dsh-safe 是 DSH 插件的带外安全网,同一包内既有可安装的 Harness bundle,也自带独立 CLI 与本地恢复页面。

它解决的是:profile 因插件问题无法启动时,如何有选择地禁用 bundle、从快照回滚,以及在不动真 profile 的前提下做试启动(test-boot)。

核心功能

带外 CLI 与恢复 UI

在 DeepSeek Harness 未运行、崩溃或卡死时,在仓库 tools/dsh-safe 目录执行 dsh-safe.cmd(或 node dsh-safe.mjs)。依赖 Node.js 22+。README 说明恢复 CLI 面向 Windows(使用 tasklist、cmd.exe 与 desktop 可执行文件);Harness 内工具为普通 Node,可在 Harness 所在环境使用。

常用入口:

dsh-safe.cmd status              :: 当前 profile 路径、近期安装与崩溃线索
dsh-safe.cmd plugins             :: 编号列表 + 已装未选 bundle
dsh-safe.cmd try                 :: 沙箱内复制 profile 试启动,不改原配置
dsh-safe-ui.cmd                  :: 浏览器打开本地恢复页(应用宕机时仍可用)

恢复页监听 127.0.0.1,展示最近启动失败证据、可选插件列表、快照、试启动与「启动 Harness」等操作;watch 可在出现新的崩溃或启动失败日志时自动打开该页。

快照与回滚

snapshot 将 package.json、cordis.yml、cordis.patch.yml 复制到 $DSH_HOME/safety/snapshots/<id>/,可带 -l label。restore 会先为当前状态再打一份快照再写入所选快照;无 id 时恢复最新一份。

风险操作前建议:

dsh-safe.cmd snapshot -l before-thing-x

有选择地禁用 / 启用插件

disable / enable 支持 bundle 名称或条目 id(如 include:workflow-kit),可用 --dry-run 预览。核心 bundle(@deepseek-ai/dsh-base、@deepseek-ai/dsh-web-app)默认拒绝禁用,除非 --force。

recover 读取最新启动日志,解释哪个插件失败;recover --pick --apply 可交互勾选并应用;recover --safe-mode --apply 仅保留 dsh-base 与 dsh-web-app(profile 本体仍在)。

试启动与 open

try:克隆当前 profile 到临时名,在隔离的 DSH_HOME 中启动,探测 Web 服务后删除克隆;真 profile 只读。

open:先执行与 try 类似的流程;若启动失败则自动映射并禁用嫌疑插件后重试,再启动正式应用。

Harness 内工具(Healthy 时)

安装为插件后,模型可调用与 CLI 共用实现的工具:

工具 作用
dsh_safe_status 当前 profile、已选 bundle(含本地链接)、近期快照、最近试启动/恢复记录、最新启动失败日志及涉事插件等
dsh_safe_snapshot 写快照,可选 label、note

README 明确:禁用与恢复须在应用关闭时通过 CLI 完成;Harness 起不来时,包内任何 in-harness 逻辑都无法作为恢复路径。

若环境中存在本地插件 git-autobackup,在用户批准备份前,本插件可通过 Cordis 事件 git-autobackup/before-run 自动写入标签为 auto-backup 的快照(两插件无 import 依赖)。

安装与启用

作为 DSH 插件安装(为 Healthy 会话增加上述两个工具;CLI 文件随包分发,恢复命令仍可在关应用后使用):

dsh plugin --profile desktop add github:osman3n/dsh-safe

安装后重启 DeepSeek Harness;插件管理器中应出现 dsh-safe。package.json 当前版本为 0.2.3,许可证 MIT。

独立使用 CLI 时,README 写明无需单独安装步骤:在仓库内进入 tools/dsh-safe 后运行 dsh-safe.cmd 即可(用户自行获取源码的方式不在本文展开;任务约束下不使用 git clone 描述为标准路径)。

典型用法

启动即崩溃(Host process exited)

除非确实要清掉全部第三方 bundle,否则不要点内置「Disable third-party plugins」:

dsh-safe.cmd recover --pick --apply
dsh-safe.cmd open

一直 loading、无崩溃对话框

先查看日志中的 apply 异常插件,再交互禁用:

dsh-safe.cmd recover
dsh-safe.cmd recover --pick --apply

刚装的插件导致无法使用

dsh-safe.cmd status
dsh-safe.cmd plugins
dsh-safe.cmd disable @scope/package-name

改配置前先验证

dsh-safe.cmd try

禁错插件

dsh-safe.cmd snapshots
dsh-safe.cmd restore <id>

适用场景与注意

适合:经常试装社区插件、需要按 bundle 粒度回滚或排障的 DSH 桌面 profile 用户;尤其在 Windows 上需要与 Harness 脱钩的恢复手段时。

注意:

  1. 插件与 CLI 以你当前用户权限读写 $DSH_HOME 与 profile;安装或使用前请自行查看 GitHub 仓库 源码与 MIT 许可证,确认符合你的安全要求。
  2. 社区插件目录 SkillHub 条目 与 DeepSeek / 幻方无官方从属关系;DSH 生态强调「一切皆插件」,恢复工具本身也是可选 bundle。
  3. 内置全量禁用第三方方案仍是一把梭;dsh-safe 的价值在于快照、单项 disable、try/open 与恢复 UI,把改动范围压到你能解释清楚的一步。

结尾

当 profile 被单个插件拖垮时,从关掉的终端改配置、打快照、试启动,比依赖崩溃对话框更可控。目录页:https://www.skillhub.cn/plugins/osman3n/dsh-safe;源码与命令说明:https://github.com/osman3n/dsh-safe。

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

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

小夜