前言¶
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;機制與判據以倉庫文檔爲準。