@lanbaolu/dsh-fail-soft
自动隔离损坏插件,让 DSH 在坏插件面前照常启动:坏插件被禁用、其余插件正常装配,提供隔离管理与一键恢复 UI。
AI 分析
核心用途是防止因单个插件损坏导致整个 DSH 服务崩溃无法启动。适合安装了较多第三方插件、需要系统高可用性和容错保护的用户。支持分类隔离与一键恢复。
安装
$
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:lanbaolu/dsh-fail-soft说明文档
阅读完整 README ↗使用
- 自动隔离:坏插件激活失败 → 诊断打印 + 写
- 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 API:
GET /api/fail-soft/status、GET /api/fail-soft/list、POST /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)。