前言¶
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;机制与判据以仓库文档为准。