dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
English | 中文
DeepSeek Harness 兼容卫士。
dsh-upgrade-guard 监视 DSH 宿主版本。升级后首次启动时,它会检查所有已安装插件与新宿主的兼容性,并在你确认后升级、修复、禁用插件,或在必要时回滚到上一个宿主版本——避免一个不兼容的社区插件把整个 harness 留在"起不来"的状态。
DSH 处于开发者预览阶段,破坏性变更会持续发生。这个插件针对的是预期内的失败,而不是边缘情况。
engines.dsh 与 peerDependencies,与解析出的宿主/core 版本比对,沿用生态的方向性策略(低于下限、显式上界 = 风险;隐式 caret 上界 = 警告)cordis.patch.yml 的重复 entry id / 失效 patch 目标,重复项可一键整理(改动前自动备份)dsh.compat.probe,守卫在隔离子进程里执行并汇总通过/失败@latest)→ 安装;不行则修复本地安装;再不行则禁用一个包,三部分:
| 部分 | 位置 | 职责 |
|---|---|---|
| 宿主插件 | DSH profile bundle | 版本基线、扫描、修复链、HTTP API、settings 命名空间 |
| 客户端 UI | DSH Web 客户端 | 设置页面板、插件卡片、开关、浮层弹窗 |
| Supervisor | 独立 Node 进程 | adopt 宿主、快照宿主版本、崩溃救援、回滚、执行重启 |
运行数据在 ~/.dsh/upgrade-guard/。
cordis.patch.yml:重复的顶层 - id:、dsh --dump-config 报出的失效 patch 目标;面板顶部显示「组合诊断」,有重复项时提供「整理重复项」(保留最后一次,改动前备份)。dsh-market,守卫会读取它的只读诊断接口并把重复/失效/多版本/peer 不匹配合并进同一块(市场不可用或需要授权时自动跳过,不影响巡检)。{
"dsh": {
"compat": {
"probe": { "file": "./lib/probe.js", "export": "probe", "timeoutMs": 20000 }
}
}
}
// lib/probe.js —— ctx: { hostVersion, profile, dshHome, pluginDir }
export async function probe(ctx) {
const ok = await checkSomethingAgainst(ctx.hostVersion)
return { ok, message: ok ? '正常' : '与当前宿主不兼容的原因' }
}
dsh plugin --profile web add \
https://github.com/zzy6-a/dsh-upgrade-guard/releases/download/v0.2.0/dsh-upgrade-guard-0.2.0.tgz
也可以从 Releases 页面下载 .tgz 后安装本地文件:
dsh plugin --profile web add /path/to/dsh-upgrade-guard-0.2.0.tgz
dsh plugin --profile web add dsh-upgrade-guard
dsh plugin --profile web add link:/path/to/dsh-upgrade-guard
然后重启一次 DSH(设置 → 升级守卫 → 重启 DSH,或用你的启动器)。之后守卫作为 profile bundle 常驻。
pnpm install、有构建脚本则重建);否则cordis.patch.yml 写入 disabled 覆盖行(可在面板恢复)如果插件树加载失败,任何宿主内插件都救不了——这时由宿主外 supervisor 兜底:
failed to apply loader entry <entry> (<package>)dsh --dump-config(只读)把包名映射成 entry id,备份 patch,写入 disabled: true,重启~/.dsh/upgrade-guard/host-snapshots/<version>/ 启动上一个宿主版本,并记录回滚incidents/,下次成功启动后由插件弹窗展示快照是宿主目录的完整拷贝(每份约 300MB,保留最近 2 份)。
设置 → 插件 → 插件配置 里的升级守卫卡片:
cordis.patch.yml 支持组合层默认配置:
- id: dsh-upgrade-guard
config:
autoScanMs: 0 # 自动扫描间隔(毫秒),0 = 仅启动/升级/手动
supervisor: true # 宿主外救援 / 回滚 / 重启
snapshotHost: true # 保留宿主快照用于回滚
仅限本机同源:
GET /dsh-upgrade-guard/api/statePOST /dsh-upgrade-guard/api/checkPOST /dsh-upgrade-guard/api/repair { name?, dryRun? }POST /dsh-upgrade-guard/api/toggle { name, enabled }POST /dsh-upgrade-guard/api/uninstall { name, allowSelf? }POST /dsh-upgrade-guard/api/config { enabled?, autoScan? }POST /dsh-upgrade-guard/api/patch-fix(整理重复 patch entry,返回备份目录)POST /dsh-upgrade-guard/api/restartPOST /dsh-upgrade-guard/api/alert/ack | alert/ack-all>= 0.1.5-rc.1>= 22.19windowsHide;Windows 下重启用 taskkill /PID <pid> /T /F 杀进程树~/.dsh/upgrade-guard/ 日志提 issuenpm install
npm run typecheck
npm test
npm run build # host: tsc -> lib,client: tsdown -> lib/client.js
npm pack # 产出 dsh-upgrade-guard-<version>.tgz
Supervisor 源码在 scripts/supervisor.mjs,构建时复制进 lib/。
cordis.patch.yml,修复过程中会调用包管理器命令;每次写入前都备份到 ~/.dsh/upgrade-guard/backups/