DSH 插件市场DeepSeek Harness 社区插件目录

RuiC-dsh-purge

已验证 会话与消息 ★ 26 1.0.2

RuiC DSH maintenance plugin: preflight, transactional patches, verified snapshots and conflict-aware rollback.

一句话定位

RuiC DSH maintenance plugin: preflight, transactional patches, verified snapshots and conflict-aware rollback.

安装方式

在 DSH 的 web profile 中执行下面的命令;装完刷新页面即可。

$ dsh plugin --profile web add 'git+https://github.com/HRuiCcc/RuiC-dsh-purge.git#7fc595b957dcf567f5431ee09769a03a2baa253c'

兼容的 DSH 版本

未声明

作者与热度

HRuiCcc · ★ 26 · 更新于 2026-11-01

关于这个插件

RuiC DSH Purge

让 DSH 真正按你的项目规则办事,而且每一步都能退回。

DSH 本机维护插件 · 预检 → 快照 → 原子写入 → 冲突检测回滚

基于 [ZiPengWei/dsh-purge](https://github.com/ZiPengWei/dsh-purge) 重写 · MIT · 独立社区项目

---

它是什么

一个跑在你自己机器上的 DSH 插件。DSH 默认把项目里的 AGENTS.md 称为"仅供参考、不覆盖系统指令",也默认走审批与沙箱拦截。RuiC Purge 按需改掉这些默认值——并且把整个改动做成一次可撤销的事务:

  • 先看清楚:status / plan 告诉你当前宿主版本、命中了哪几个目标、改动前后的 SHA256;
  • 再动手:写入前必定落快照,逐文件原子 rename,失败尝试恢复;
  • 随时能回去:revert 前全量比对哈希,你自己后来改过的文件不会被覆盖;
  • 改坏了有据可查:prepared / applying / reverting / recovery_required 每个阶段都留在快照里。

它只改你指定路径下 DSH 包里的少量字符串常量和默认值:不改签名 app.asar、不重签名、不自动重启、不联网、不上传任何东西。

设计原则

| 原则 | 含义 |

| --- | --- |

| 本机优先 | 逻辑全在本机跑;不碰云端账号,不发提示词和配置出去 |

| 可见 | 每个动作都有状态与证据,不靠"应该生效了吧" |

| 可回滚 | 写入前自动快照;回滚前逐个核对哈希,冲突就拒绝 |

| 不猜 | 锚点必须精确匹配;版本号相同也要匹配上才算兼容 |

| 不越界 | 不递归扫描家目录、不接管其他 Purge 的备份、不自动卸载插件 |

它到底改了什么

一共 8 条补丁,分两层。新版 DSH 只打其中 4 条,剩下 4 条交回 DSH 自己的权限机制。

| # | 层 | 补丁 | 改什么 | 旧版布局 | 新版 0.2+ |

| --- | --- | --- | --- | --- | --- |

| 1 | 提示词 | WORKSPACE_CONTEXT_INTRO | "仅供参考"→"本次会话强制生效" | 应用 | 应用(常量改名,按新名匹配) |

| 2 | 提示词 | REPLACEMENT_WORKSPACE_CONTEXT_INTRO | 同上,替换式基线 | 应用 | 应用(同上) |

| 3 | 提示词 | SCOPE_INTRO | 作用域免责→强制措辞 | 应用 | 应用 |

| 4 | 提示词 | SYSTEM_PROMPT_PERSONA | persona 追加会话指令 | 应用 | 应用(克制版:照项目约定做完、保留用户改动) |

| 5 | 提示词 | APPROVAL_NEVER_SENTENCE | 审批提示句 | 应用 | native_setting |

| 6 | 代码 | SANDBOX_DENY_FILE_WRITE | 沙箱 deny file-write*→allow | 应用 | native_setting |

| 7 | 代码 | SANDBOX_MODE_DEFAULT | 默认模式→danger-full-access | 应用 | native_setting |

| 8 | 代码 | APPROVAL_POLICY_DEFAULT | 默认策略→never | 应用 | native_setting |

> ⚠️ 旧版布局(< 0.2)8 条全打,其中第 7、8 条会把沙箱默认模式改成 danger-full-access、审批策略改成 never——这是全局默认值,影响之后所有会话。只在自己的机器上用,装完先看 status 再决定留不留。

为什么新版不打权限补丁了

不是偷懒,是实测结论:新版 never 策略仍然会拒绝需要审批的请求,光把提示词改成"全权限"改变不了它;而只改 macOS Seatbelt 也同步不了内建文件工具的权限。所以新版改用官方开关:

/permission
/permission danger-full-access

permission.defaultPreset 管的是未来会话的默认值,已恢复的会话可能保留自己的权限——面板会标出这个证据边界,不替你切。

为什么是事务,不是脚本

大多数"补丁脚本"是 sed 一下、失败再说。这里把流程当成一次数据库事务:

flowchart TD
    A["status / selfcheck只读预检"] --> B["plan目标路径 + 前后 SHA256"]
    B --> C{"apply --dry-run完整预检"}
    C -->|不通过| Z["整次中止不建锁、不建快照"]
    C -->|通过| D["落快照manifest.json + 二进制备份"]
    D --> E["逐文件原子 rename"]
    E --> F{"全部成功?"}
    F -->|是| G["sealed归档只读"]
    F -->|否| H["恢复已写文件"]
    H --> I{"恢复成功?"}
    I -->|是| J["rolled_back"]
    I -->|否| K["recovery_required"]
    G --> L["revert全量哈希冲突检查"]
    L -->|全部匹配| M["还原"]
    L -->|任一冲突| N["拒绝覆盖保留现状与快照"]

具体保证:

  • 预检即承诺——锚点缺失、同一锚点出现多次、备份失败,任一发生就不写入;
  • 完整替换内容核对,不用短 marker 判命中(避免假阳性),CRLF 原样保留;
  • 进程间锁避免两个实例同时写同一份宿主文件;
  • 回滚是全量的——只要有一个目标被改过或宿主升级过,整次拒绝,而不是"能还的先还了";
  • 不猜锁过期——异常退出后锁不会自动失效,需要你确认原进程结束后手动移除。

安装

从 [Releases](https://github.com/HRuiCcc/RuiC-dsh-purge/releases/latest) 取 ruic-dsh-purge-1.0.2.tgz,在对应 DSH 实例的 CLI 上装:

同分类对比

同一分类下 Star 最高的 5 个,便于横向比较。

插件作者 Star版本更新
dsh-purge kingcharleslzy-ai 6.3K 1.6.86 2026-11-08
dsh-unrestricted yexi-by 1.1K 0.2.8 2026-11-05
dsh-univer-office dream-num 707 0.4.0 2026-11-03
dsh-synapse liangmianya 697 0.5.7 2026-11-04
dsh-qqbot tencent-connect 570 0.5.5 2026-11-08