dsh-compat: Plugin Compatibility Layer and Pre-installation Check

前言

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

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

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

Xiaoye