DSH 本机维护插件:预检 → 快照 → 原子写入 → 冲突检测回滚;含提示词管理与设置面板。基于…
46.4/100
综合分
20
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/11/1 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
相关生态插件(非 dsh 原生,按其对应运行时安装)
git clone https://github.com/HRuiCcc/RuiC-dsh-purge.git状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:仅索引
是什么
生态插件
可安装,未声明 dsh 能力
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 3 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查⚠ 装前注意未发布到 npm registry,仅可从源码安装
展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✗npm 包ruic-dsh-purge(未发布到 npm,仅可源码安装)
✓Node 引擎要求 >=22 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/31 02:20:44
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令发起外部网络请求
查看扫描证据(共 2 处,展示前 2 条)
- 发起网络请求client.js:14
const response = await fetch(prefix + op, { - 执行外部命令来自配置/变量lib/paths.js:14
prefixes.push(execFileSync(process.platform === 'win32' ? 'npm.cmd' : 'npm', ['prefix', '-g'], {
扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
展开完整介绍(75 字)↓
DSH 本机维护插件:预检 → 快照 → 原子写入 → 冲突检测回滚;含提示词管理与设置面板。基于 ZiPengWei/dsh-purge(MIT)。
README
由 DeepSeek 最新模型翻译生成RuiC DSH Purge
让 DSH 真正按你的项目规则办事,而且每一步都能退回。
DSH 本机维护插件 · 预检 → 快照 → 原子写入 → 冲突检测回滚
基于 ZiPengWei/dsh-purge 重写 · MIT · 独立社区项目
它是什么
一个跑在你自己机器上的 DSH 插件。DSH 默认把项目里的 AGENTS.md 称为「仅供参考、不覆盖系统指令」,也默认走审批与沙箱拦截。RuiC Purge 按需改掉这些默认值——并且把整个改动做成一次可撤销的事务:
- 先看清楚:status / plan 告诉你当前宿主版本、命中了哪几个目标、改动前后的 SHA256;
- 再动手:写入前必定落快照,逐文件原子 rename,失败尝试恢复;
- 随时能回去:revert 前全量比对哈希,你自己后来改过的文件不会被覆盖;
- 改坏了有据可查:prepared / applying / reverting / recovery_required 每个阶段都留在快照里。
它只改你指定路径下 DSH 包里的少量字符串常量和默认值:不改签名 app.asar、不重签名、不自动重启、不联网、不上传任何东西。
展开完整文档(README 剩余 1 节)
RuiC DSH Purge
让 DSH 真正按你的项目规则办事,而且每一步都能退回。
DSH 本机维护插件 · 预检 → 快照 → 原子写入 → 冲突检测回滚
基于 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 取 ruic-dsh-purge-1.0.2.tgz,在对应 DSH 实例的 CLI 上装:
dsh plugin --profile desktop add ./ruic-dsh-purge-1.0.2.tgz
Web 实例用 --profile web
装完手动重开对应的 DSH 实例,在设置里找到 RuiC Purge。
四个坑先说清:
- 系统 PATH 里没有 dsh 时,用 DSH 自带的命令行入口。不要为了装它另外装一个旧版全局 DSH——会和现有桌面实例打架。
- 已有 profile 需要先由 DSH 初始化过。
- 官方桌面客户端的 profile 归 Electron 应用独占,CLI 可能报 profile "desktop" is managed exclusively by the Electron application。这时改用你实际在跑的实例对应的 profile 名和它的 $DSH_HOME,例如第三方外壳 DeepSeek Bot 的 --profile ds-bot:DSH_HOME=<该实例的 home> dsh plugin --profile <名> add ./ruic-dsh-purge-1.0.2.tgz。装完同样要重开那个实例。
- 本项目没有发布到 npm registry,npm install -g ruic-dsh-purge 不是安装方式。已下载的 tgz 可以本地全局装 CLI:npm install -g ./ruic-dsh-purge-1.0.2.tgz。
从源码
git clone https://github.com/HRuiCcc/RuiC-dsh-purge.git
cd RuiC-dsh-purge
npm test
npm pack --ignore-scripts
dsh plugin --profile desktop add .
使用
不装全局 CLI 也能跑:
node bin/ruic-dsh-purge.js status --json
node bin/ruic-dsh-purge.js plan --base '/Applications/DeepSeek Harness.app' --json
只在明确指定的解包宿主上写入;先看 dry-run
node bin/ruic-dsh-purge.js apply --base /path/to/node_modules/@deepseek-ai --dry-run --json
node bin/ruic-dsh-purge.js apply --base /path/to/node_modules/@deepseek-ai --json
node bin/ruic-dsh-purge.js snapshots --json
node bin/ruic-dsh-purge.js revert <snapshot-id> --base /path/to/node_modules/@deepseek-ai --dry-run
node bin/ruic-dsh-purge.js revert <snapshot-id> --base /path/to/node_modules/@deepseek-ai
| 命令 | 做什么 | 会写盘吗 |
| status / selfcheck | 宿主布局、版本、补丁证据、未完成操作 | 否(默认行为) |
| plan | 目标路径、匹配结果、前后 SHA256 | 否 |
| apply --dry-run | 完整预检 | 否,连锁和快照都不建 |
| apply | 备份校验后逐文件原子写入 | 是 |
| snapshots | 列出保留的快照与操作状态 | 否 |
| revert <id> | 全量哈希冲突检查后还原 | 是 |
| prompt | 读取独立提示词 | 否 |
| prompt --file rules.md | 导入 UTF-8 提示词(≤ 128 KiB) | 是 |
退出码不等于生效。 ok:false 或异常一律退出码 1;pending(待应用)和 sealed(归档只读)可以是 ok:true——不要拿退出码 0 当成「补丁已生效」,要看 state。
| 选项 | 说明 |
| --base <path> | DSH 包目录、.app、Resources 或 ASAR;也可用 DSH_BASE |
| --home <path> | 数据目录,默认 ~/.dsh;也可用 DSH_HOME |
| --shim-dir <path> | 仅 Windows 旧版 npm shim 需要 |
| --json | 机器可读输出,失败退出码非 0 |
显式路径给错时会报错退出,不会悄悄换一个安装去改。
Windows 旧版 npm 布局要显式传 --shim-dir <npm-prefix>,dsh.cmd 和 dsh.ps1 两份都存在且都匹配才并入同一快照;回滚时传同一个目录。已有的 DSH_PERMISSION_MODE 环境变量会被保留。
在 DSH 里还有两个入口:
- 聊天命令:/ruic-purge status|plan|apply|snapshots|revert <id>
- 模型工具:ruic_purge_status、ruic_purge_plan、ruic_purge_apply、ruic_purge_snapshots、ruic_purge_revert
设置面板
装好后在 DSH 设置里打开 RuiC Purge:
- 顶部一行状态:已应用 4/8、待应用、宿主不兼容、桌面归档 · 只读检查、需要恢复……一眼看出停在哪;
- 逐条展示匹配明细,点开能看计划中的前后内容;
- 独立提示词编辑框:草稿没保存时刷新不会覆盖你的内容,保存带版本冲突检查,失败可重试;
- 快照列表可直接选一条回滚。
面板的 HTTP 接口只接受本机直连:拒绝代理转发与跨站请求,需要远程就用命令行。
兼容性
针对实际 DSH Desktop 0.2.1-rc.2 / Cordis 4.0.5 发行包做过检查与隔离测试:
| 场景 | 支持范围 |
| 桌面签名 app.asar | 自动发现、只读预检、独立提示词、插件命令与工具、权限默认值观察 |
| 第三方 Electron 外壳 | 运行时打包在归档根 node_modules/@deepseek-ai 时同样只读预检;Electron 的 asar 路径拦截与 macOS 兜底路径已处理 |
| 0.2.1 解包目录 | 精确匹配新版 4 个提示词目标、快照应用、冲突检测回滚 |
| 旧版 npm 布局 | 保留上游 8 条补丁;所有目标精确匹配后才写入 |
| 新版会话权限 | 用 DSH 原生 /permission;不把文件标记当成当前会话权限 |
| 未知版本 | 报告实际版本和匹配结果,不凭版本号宣称兼容 |
怎么自己复核
不用信这张表,在源码检出里跑一条命令(发行包不含 scripts/):
npm run verify:desktop # 从安装包里取真实源文件,在临时副本上跑完整 apply/回滚
npm run verify:desktop -- --full # 再解出整个运行时,跑真实 Cordis/DSH 模块集成测试
它会打印宿主版本与逐项步骤,并核对签名包的 size/mtime 在验证前后未变。2026-10-23 对 0.2.1-rc.2 的结果:4/4 新版锚点命中、补丁 5–8 为 native_setting、回滚字节级一致、原包未被改动、运行时集成套件通过。
不会直接改写签名 ASAR、修改 app 签名或自动退出/重启 DSH。归档内补丁能匹配只证明预检通过,不表示已经写入或运行生效。完整的 Desktop UI、登录会话与 Windows/macOS 签名换包不在本版本验证范围内。
逐条证据与不覆盖范围见 docs/COMPATIBILITY.md(含实测文件 SHA256)。
与上游 dsh-purge 的差异
上游 ZiPengWei/dsh-purge(MIT,原作者小杨,基于 commit 084b10d)。本版重写了事务层,保留其补丁定义思路。
| 方面 | 上游 | RuiC Purge |
| 写入失败 | 可能半成功 | 整次中止;写入中失败尝试恢复并留状态 |
| 命中判定 | 短 marker | 完整替换内容核对,保留 CRLF |
| 快照 | 备份文件 | 含 SHA256 与操作阶段,可查 prepared/applying/reverting |
| 回滚 | 按记录还原 | 全量冲突检查,冲突即拒绝,无强制覆盖开关 |
| 并发 | — | 进程间锁 |
| 新版适配 | — | 常量改名、personaPrefix、Cordis 生命周期、字面提示词模板 |
| 设置面板 | 基础面板 | 刷新不覆盖草稿、保存版本冲突检查、错误可重试 |
| 数据 | 共享命名空间 | 独立命名空间,不接管、不删除其他 Purge 的备份 |
旧插件与 RuiC 同时开启会重复注入提示词、并可能争抢同一批宿主文件。迁移前先在 DSH 里停用旧插件。RuiC 不自动卸载其他插件,也不读取旧快照。
数据与迁移
$DSH_HOME/ruic-dsh-purge/
├── prompt.md
└── snapshots/<uuid>/
├── manifest.json
└── 0.bin, 1.bin, ...
默认 ~/.dsh;测试或并行实例请显式 --home。旧的 prompt-inject.md 不会被读取、覆盖或删除,要迁移就手动导入:
node bin/ruic-dsh-purge.js prompt --file /path/to/prompt-inject.md
快照不自动清理,按需归档。
出问题怎么办
node bin/ruic-dsh-purge.js selfcheck --json # 先看是哪一条没匹配
node bin/ruic-dsh-purge.js snapshots --json # 看有没有 prepared/applying/recovery_required
1. 操作异常退出时锁不会自动过期:确认原进程已结束后,手动删掉目标包目录下的 .ruic-dsh-purge.lock。
2. snapshots 里找 prepared / applying / reverting / recovery_required 的记录,显式 revert <id>。
3. 遇到 Rollback conflict:保留当前文件和快照,先比对两者。本版没有强制覆盖开关。
逐文件 rename 是原子的,但多文件操作不是整个文件系统事务。不承诺断电零风险,也不承诺抵抗外部进程在「检查」与「写入」之间修改目标;恢复依据是保留的阶段日志与备份。
开发与验证
npm run check # 静态检查
npm test # node --test,全程临时目录
npm run smoke # 打包冒烟
npm run verify:desktop # 对已安装的 DSH 做只读实机验证(副本上 apply/回滚)
npm run verify:desktop -- --full # 另跑真实 Cordis/DSH 模块集成套件
已有解包好的运行时时,也可以直接指向它
DSH_RUNTIME_ROOT=/path/to/node_modules/@deepseek-ai npm test
verify:desktop 默认探测 /Applications/DeepSeek Harness.app,也可以 --app <path> 指定 .app、app.asar 或解包目录;加 --json 输出机器可读结果。
测试从不针对真实安装执行 apply。需要发行包的真实 API 集成测试在缺失时会跳过——CI 绿不等于 Desktop 端到端验收通过,所以本项目给了 verify:desktop 让你在真机上复核,而不是只给一句"兼容"。
本次发布未启用 GitHub Actions。跨平台工作流模板在 Release 源码压缩包的 .github/workflows/checks.yml,需要 workflow 写权限后自行推送启用。
边界与免责
- 这是你自己的机器、你自己的安装上的维护工具。它改的是宿主默认值与提示词,装之前请确认你接受这些变化(旧版布局尤其注意第 7、8 条)。
- 不绕过 DSH 签名校验、不替换 app.asar、不分发 DSH 本体、账号数据、凭据或解包源码。
- 与 DeepSeek 无隶属关系,未获其背书;DSH 不在本仓库内。
- 只改字符串常量与默认值这一层;模型行为、服务商策略、账号风控都不在本项目的可承诺范围内。
关键词:DSH 插件 · DeepSeek Harness · Cordis · 补丁管理 · 事务化写入 · 快照回滚 · 冲突检测 · 提示词管理 · 本机维护 · patch · snapshot · rollback
致谢
补丁定义与设置槽位集成源自 ZiPengWei/dsh-purge(原作者小杨 / YuJunZhiXue)。署名与许可证保留在 LICENSE 与 NOTICE。
另外参考了同源的 Purge Community,README 的版式和"先自检、再应用"的思路借自它,未复制其代码。
MIT © 原作者小杨及 RuiC。独立社区项目,与 DeepSeek 无隶属关系。
如果这个工具帮到了你,可以请我喝杯咖啡 ☕
微号:hrc_rch(说明来意)预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
HRuiCcc/RuiC-dsh-purge
DSH 本机维护插件:预检 → 快照 → 原子写入 → 冲突检测回滚;含提示词管理与设置面板。基于…
相关插件 · 其他
模型破甲清洗HunYiSage/dsh-purge
⚔️ DeepSeek Harness 网络安全红队工具dsh-purge
★ 16,993已汉化DeepSeek 客户端
73
女娲蒸馏alchaincyf/nuwa-skill
输入名人名字,提炼其思维模型与决策方式供你调用
★ 37,308已汉化DSH
72
逆向分析桥接Fanqi89/dsh-rea
REA(Reverse Engineer Anything)MCP 桥接,用来把 REA 逆向工具接入 DSH 插件
★ 51已汉化DSH
72
语音女友beiyege-01/dsh-voice-ai-girlfriend
语音 AI 女友Voice AI girlfriend for DeepSeek Harness:Whisper…
★ 888已汉化DSH
71.6
红队越狱测试套件Minglink/dsh-infinite-gen-5
DeepSeek v4.1 flash 逆向工具无限五代 求 Star 收藏 ⭐欢迎大家提交项目的改进
★ 3,759已汉化DSH
71.4
协同办公空间dream-num/univer-workspace
一个让人类与 AI Agent 共同创作、协作和审阅的开源 Office 工作空间。
★ 2,269已汉化DSH
70.8
这是你的仓库?认领条目