lanbaolu/dsh-fail-soft1

@lanbaolu/dsh-fail-soft

自动隔离损坏插件,让 DSH 在坏插件面前照常启动:坏插件被禁用、其余插件正常装配,提供隔离管理与一键恢复 UI。

AI 分析

核心用途是防止因单个插件损坏导致整个 DSH 服务崩溃无法启动。适合安装了较多第三方插件、需要系统高可用性和容错保护的用户。支持分类隔离与一键恢复。

包名
@lanbaolu/dsh-fail-soft
版本
0.1.15
最近更新
2026年8月22日

安装

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:lanbaolu/dsh-fail-soft

使用

  • 自动隔离:坏插件激活失败 → 诊断打印 + 写 - id: \n disabled: true(带 # quarantined by @lanbaolu/dsh-fail-soft 注释)到 profile 的 cordis.patch.yml → 剔除重试挂载 → 服务照常起。 写入经 mergePatchBlock 合并(0.1.2 起):patch 是空数组 [](DSH 默认 无补丁形态)时用条目块替换而非追加,产出始终是单个合法 YAML 数组——隔离器 自己不会再写坏 patch。 0.1.14 起分类隔离:只隔离"真坏插件"。瞬态环境错误(EADDRINUSE 端口被占等)与官方核心组件(@deepseek-ai/*)失败不写持久隔离, 改为抛回原始错误 fail-loud——避免把端口冲突误判成坏插件、把官方 webserver 永久隔离导致"服务活着但 GUI 消失"。
  • 工具(模型可直接调用):fail_soft_status / fail_soft_list / fail_soft_restore / fail_soft_quarantine / fail_soft_repair
  • HTTP APIGET /api/fail-soft/statusGET /api/fail-soft/listPOST /api/fail-soft/restore {id}POST /api/fail-soft/quarantine {id,name,reason}POST /api/fail-soft/repair
  • 修复引擎(0.1.8+)fail_soft_repair 一键修复——补丁丢失自动重打; 官方改结构自动回滚到官方原版(挂载兜底不生效但服务能起)并给适配指引; 同时去重 profile patch 里重复的 entry id(集成 dsh-fix / dev_fix_patch 能力)。
  • UI 面板:web 会话侧栏 conversation.view 显示隔离列表与恢复按钮。
  • 恢复:修复插件后删除 patch 文件里对应条目(或用 restore 工具/UI)。