Xsdsh-purge-next:面向 DSH NEXT / rc.4 的 Xsdsh-purge 核心精簡版

前言

DeepSeek Harness 的插件模型是「一切皆插件」:宿主負責轉發模型和執行工具,插件可以在運行時改提示詞、審批門、沙箱策略。做紅隊評測的人常遇到一個麻煩——只看「模型答不答」,會把宿主層攔截誤當成模型拒絕。想在自己機器上把這兩層分開、做受控評測,就得有一個能落補丁、能還原的工具。

上游 YuJunZhiXue/Xsdsh-purge 是這條路上的成熟實現,但它釘死在官方 dsh 0.2.1-rc.5(dsh web 的 web profile、桌面 EXE 的 desktop profile)。新出的 DSH NEXT 走另一條線:core 是 0.2.1-rc.4,外殼是 DSH NEXT 2.0.21-next,補丁清單、宿主目錄結構都不一樣,上游那套 engines.dsh 精確到 rc.5 的副本用不上。

下面介紹的 Xsdsh-purge-next 就是衝着這個缺口來的:一份核心精簡版,包名 Xsdsh-purge-next,state 目錄獨立,專門給 DSH NEXT / rc.4 跑。

這是什麼

Xsdsh-purge-next 是 wodaimnd 維護的 DSH 客戶端插件,倉庫 https://github.com/wodaimnd/Xsdsh-purge-next,包版本 4.6.11-next.2,協議 MIT。倉庫 package.json 裏 author 寫作 Kewei Chen <wodaimnd@users.noreply.github.com>,倉庫創建於 2026-11-04,目前只有一次提交(chore: publish Xsdsh-purge-next v4.6.11-next.2)。

定位來自它自己的 description:

Xsdsh-purge-next 核心精簡版(DSH NEXT / rc.4 專用;獨立包名、模塊 id、狀態目錄)

三個詞各自對應 package.json 裏的具體字段:包名 Xsdsh-purge-next(與原版 Xsdsh-purge 不同)、dsh.bundle.bundle 裏的 patch 文件是本倉庫自己的 cordis.patch.yml、狀態目錄 dshNextCompat.dataDir 是 Xsdsh-purge-core。這樣做的目的是讓本副本和原版並存,互不覆蓋。

社區目錄裏把它歸爲「客戶端」分類,GitHub 星標 1、fork 1。目錄頁是 https://www.skillhub.cn/plugins/wodaimnd/Xsdsh-purge-next ,屬社區站點,與 DeepSeek 無官方從屬關係。

它爲哪個宿主改動

這部分必須寫清楚,否則容易裝錯。package.json 的 dshNextCompat 把目標環境記得很具體:

"engines": ">=0.2.1-rc.0 <0.3.0",
"verifiedRuntime": "0.2.1-rc.4",
"verifiedShell": "DSH NEXT.exe (desktopVersion 2.0.21-next)",
"dshTarget": "0.2.1-rc.4",
"flavor": "core",
"coreBuildFrom": "4.6.11-next.1",
"dataDir": "Xsdsh-purge-core",
"profileScope": "next",
"appTarget": "DSH NEXT 2.0.21-next (core 0.2.1-rc.4)"

engines.node 要求 >=18,peerDependencies 是 @deepseek-ai/cordis: ^4.0.1。

並存關係由兩個字段約定:

  • coexistence:原版跑 desktop profile(rc.5),本副本跑 next profile(rc.4);狀態目錄 Xsdsh-purge-core 與 Xsdsh-purge 物理隔離。
  • hostScope:apply 只寫當前進程所在的安裝根,避免同時改到另一份 DSH 安裝;selfInstallHandoff 保證在 Electron 裏 handoff 固定取本進程 resources/app.asar。

已經識別出的宿主缺口也寫在了字段裏:shellPatches 中 45/46/82 在 rc.4 無對應實現,83/84 的語義在 rc.4 已由 fail() 的 stopping 判定原生覆蓋,因此這些條目降級爲 optional/knownGap。

內置哪些能力

keptForCore 列出了保留的頁面:清洗、演練臺、模式提示詞、外觀、紅隊、逆向、玻璃開關。removedFeatures 則是 wallpapers、background-music、desktop-pet,對應 lib/wallpapers.js、lib/cat.js、lib/pet.js、lib/ui/pet/90-pet.js 等路徑已被移除。從上游搬過來、走核心的路子,只留評測相關的東西。

模塊入口能在 exports 裏查到,紅隊與逆向各自有獨立入口:

"./redteam": "./lib/redteam/index.js",
"./redteam/store": "./lib/redteam/store.js",
"./redteam/ui": "./lib/redteam/ui.js",
"./redteam/tools": "./lib/redteam/tools.js",
"./reverse": "./lib/reverse/index.js",
"./reverse/store": "./lib/reverse/store.js",
"./reverse/ui": "./lib/reverse/ui.js",
"./reverse/tools": "./lib/reverse/tools.js"

files 裏帶上了 agents、presets、skills、bin、cordis.patch.yml、screenshots.json。三個 bin:

"bin": {
  "Xsdsh-purge-next": "bin/Xsdsh-purge.js",
  "dsh-locate-harness": "tools/deepseek-harness-locator.mjs",
  "dsh-locate-harness-cmd": "tools/find-deepseek-harness.cmd"
}

客戶端注入目標是 @deepseek-ai/dsh-client-connection、dsh-client-locale、dsh-client-ui-slots、dsh-client-ui-settings 四個包,平臺字段是 web。源碼樹裏有 test/ 下的 asar-swap-restart、reverse-preset、redteam-auth 等用例,yarn gate/gate:fast 這類腳本用來跑 lint、typecheck、UI 邊界檢查和打包校驗。

安裝與啓用

先說明一點:這個 fork 沒有改寫 README,倉庫裏的 README.md / README.zh-CN.md 仍是上游 YuJunZhiXue/Xsdsh-purge 的全文(含贊助、違規商用公示、法律免責聲明)。所以下面這段代碼是上游 README 給 Xsdsh-purge 的命令,針對官方 dsh,不是本副本的部署方式,引用時務必注意。

dsh plugin --profile web add Xsdsh-purge
dsh plugin --profile desktop add Xsdsh-purge

而本副本自己聲明的安裝來源在 package.json 的 dsh.install:

"install": {
  "preferred": "tarball",
  "tarball": "https://github.com/YuJunZhiXue/Xsdsh-purge/archive/refs/heads/master.tar.gz",
  "zip": "https://github.com/YuJunZhiXue/Xsdsh-purge/archive/refs/heads/master.zip",
  "git": "https://github.com/YuJunZhiXue/Xsdsh-purge.git"
}

也就是說,聲明值指向的是上游倉庫,而不是 wodaimnd/Xsdsh-purge-next 這個 fork。裝之前要對照着看:如果按 preferred: tarball 走,拿到的是上游 master 包;要裝這個精簡副本,得自己把包換成本倉庫的產物(比如本地 tar 打包或 add . 這類方式,具體命令倉庫裏沒寫)。作者在這一行沒有留下可復現的安裝文檔,這是目前最大的信息缺口。

典型用法

倉庫本身沒有寫 fork 專屬的用法章節。可覈實的框架是下面幾點:

1、apply 動作走 patch 清單 cordis.patch.yml,寫入位置由 hostScope: current-install 決定,只改當前進程所在的安裝根。
2、補丁應用後宿主需要重啓;還原、卸載也在同一套機制裏,residueAutoClear: true 用於清理殘留。
3、紅隊與逆向模塊通過 exports 裏的 ./redteam/*、./reverse/* 加載,keptForCore 列的「清洗 / 演練臺 / 模式提示詞 / 外觀 / 紅隊 / 逆向 / 玻璃開關」是可見入口。
4、宿主定位用 dsh-locate-harness / dsh-locate-harness-cmd,這是 tools/ 下的兩個可執行入口。

這四條來自字段和文件清單,不是手測結果。

適用場景與注意

適合的人:想在 DSH NEXT(core 0.2.1-rc.4 / 桌面 2.0.21-next)上覆用 Xsdsh-purge 紅隊與逆向能力、又不想打擾本機那份 rc.5 官方安裝的用戶。也適合想拿 cordis.patch.yml 當補丁清單參考、自己做宿主適配的人。

必須注意的幾件事:

  • 權限:插件以當前 dsh 進程權限運行。dirMode 是 resources/app dir patched in place for dsh-desktop-next,apply 直接改當前安裝目錄並會重啓宿主。裝之前把源碼和 cordis.patch.yml 逐條過一遍,不要用就裝上。
  • 來源覈對:星標 1、只有一個提交、文檔沿用上游,屬早期副本。dsh.install 默認指向上游 master,實際安裝前要確認拿到的到底是哪個倉庫。
  • 署名與授權:上游 README 明確要求借用名稱、思路、代碼或提示詞必須署名並寫明來源倉庫,商用、轉賣、賣課即「許可當場作廢」。本 fork 沿用了這套條款。
  • 合規邊界:README 聲明本項目只作用於使用者自己本機已安裝的官方 Harness,禁止對公網目標和未經授權系統掃描、探測、攻擊,也禁止在中國大陸、香港、澳門網段運行。用之前自己讀一遍那十條免責聲明。
  • 這是社區維護的第三方副本,README 裏已寫明與 DeepSeek 官方無隸屬、無商業合作、無官方背書。

小結

Xsdsh-purge-next 做的事很收斂:把 Xsdsh-purge 削成核心精簡版,換獨立包名、模塊 id 和狀態目錄,讓它在 DSH NEXT / rc.4 上跑,同時和本機那份 rc.5 的原版並存。要拿它做評測,先花時間覈對安裝來源和 cordis.patch.yml 的每一條改動。

  • 目錄頁:https://www.skillhub.cn/plugins/wodaimnd/Xsdsh-purge-next
  • 倉庫:https://github.com/wodaimnd/Xsdsh-purge-next
  • 上游項目:https://github.com/YuJunZhiXue/Xsdsh-purge
羽毛球分组比赛记分
小程序二维码

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

小夜