dsh-compat:插件兼容層與裝前體檢

前言

DeepSeek Harness(dsh)採用「一切皆插件」的架構:能力通過 profile 裏的插件疊加。實際使用時,一個插件加載失敗往往會讓整頁白屏、應用起不來;在 Termux 等移動端,彈層還可能透明或半透明,動畫也會拖慢觸屏體驗。裝新插件前也缺少統一手段,判斷「能不能在這臺機器、這個 dsh 上裝」。

dsh-compat 是社區維護的客戶端類兼容層插件,由 Starsky16 維護,倉庫見 GitHub,目錄頁見 SkillHub。它不替第三方插件修業務邏輯,而是讓插件在 Termux / Linux 等環境上更易「裝得上、崩了不連坐、壞了看得見」,並在 Windows 等平臺上提供 L3 墊片與 L4 體檢能力(L2 隔離補丁在 Windows 官方 dsh 上不可用,見下文平臺表)。

這是什麼

一句話:dsh 插件兼容層——L2 加載器隔離補丁、L3 客戶端墊片(polyfill + 全局 CSS)、L4 安裝門禁 doctor。

症狀 組件 效果
壞插件導致 dsh 整頁白屏 L2 加載器隔離補丁 僅停用壞插件並給出原因,其餘插件與頁面照常
彈層透明或半透明 L3 客戶端墊片 彈層恢復實色,自動適配深淺色
觸屏上 UI 動畫卡頓 L3 客戶端墊片 觸屏設備自動關閉高開銷模糊與動畫
裝前不確定能否安裝 L4 doctor 體檢 檢查平臺聲明與依賴,裝不了會說明原因

當前 package 版本爲 0.1.1(見倉庫 package.json),許可證 MIT。

核心功能

L2:加載器隔離

單個插件加載失敗時,默認行爲可能拖垮整個 dsh 啓動。dsh-compat 的 L2 補丁在支持的平臺(Termux 上的 termux-dsh、可探測到的 Linux / macOS 桌面環境)上隔離失敗插件,避免「連坐」白屏。升級 dsh 後若出現「L2 補丁未就緒」,按提示重跑補丁即可;不影響啓動,但隔離能力需重打補丁後恢復。Windows 官方 dsh 核心在 app.asar 內不可改,L2 不支持。

L3:客戶端墊片

通過 Cordis bundle patch(cordis.patch.yml)注入 polyfill 與全局 CSS。彈層樣式與觸屏性能優化隨插件啓停;卸載插件即還原。Windows 桌面與 Termux / Linux 均標註支持 L3。

L4:doctor 體檢

裝前檢查 profile 內插件的平臺聲明與依賴,失敗原因可見。可單獨運行,不必把 doctor 當作 profile 插件安裝。

倉庫還提供 bin/patch.mjs、bin/selfcheck.mjs 等 CLI(dsh-compat-patch、dsh-compat-selfcheck、dsh-compat-doctor),用於補丁、自檢與體檢;細節見倉庫 CONTRIBUTING.md 與 docs/compat.md。

各平臺支持

平臺 L2 隔離補丁 L3 墊片 L4 doctor
Termux(termux-dsh) 支持 支持 支持
Linux / macOS 桌面 自動探測,無相關組件則靜默跳過 支持 支持
Windows 桌面 不支持 支持 支持

安裝與啓用

環境要求:dsh(官方版或 termux-dsh);Node ≥ 24.2。

任選一種方式安裝進 profile,裝完重啓 dsh 後生效(插件在啓動時注入),無需手工改配置:

# ① 一行命令直裝(推薦,自動跟隨 GitHub 倉庫)
dsh plugin --profile <你的profile名> add https://github.com/Starsky16/dsh-compat.git

# ② 鎖定版本:從 https://github.com/Starsky16/dsh-compat/releases 下載 .tgz 後
dsh plugin --profile <你的profile名> add ./dsh-compat-0.1.1.tgz

# ③ 本地開發:clone 後指向目錄
git clone https://github.com/Starsky16/dsh-compat.git
dsh plugin --profile <你的profile名> add ./dsh-compat

doctor 單獨使用(不必裝進 profile):克隆倉庫後執行:

git clone https://github.com/Starsky16/dsh-compat.git
node dsh-compat/bin/doctor.mjs        # 逐個報告 profile 裏插件的體檢結果

或在倉庫根目錄:npm run doctor(等價於 node bin/doctor.mjs)。

典型用法與開關

裝完無效果時,先確認已重啓 dsh;Termux 用戶應使用 termux-dsh 提供的 dsh。

關閉或撤銷部分能力:

  • 環境變量 DSH_COMPAT_DISABLE_L2_SELFCHECK=1:關閉 L2 補丁自檢。
  • L3 彈層與性能相關行爲:卸載本插件即還原。
  • L2 補丁撤銷:bin/patch.mjs --revert(見 README 進階說明)。

適用場景與注意

適合:經常在 Termux / 桌面 dsh 上疊加多個社區插件、需要裝前體檢、或遇到過白屏 / 透明彈層 / 觸屏卡頓的開發者。

務必知曉:插件與 dsh 同進程、同權限運行;安裝任何 profile 插件前,應自行審閱源碼與許可證(本倉 MIT,第三方歸屬見 NOTICE)。SkillHub 等社區目錄爲獨立站點,與 DeepSeek / 幻方無官方從屬關係。

本倉庫代碼與文檔在 AI 輔助下編寫,經人工審閱與測試(見 README 聲明)。

結尾

dsh-compat 把「單插件失敗」從整應用不可用,收窄爲可定位、可回滾的兼容與門禁問題;Termux 上還可配合 L2 隔離。需要鎖定版本時從 releases 取 .tgz;機制與判據以倉庫文檔爲準。

羽毛球分组比赛记分
小程序二维码

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

小夜