dsh-doctor
qiaoda2021/dsh-doctor
Check your DSH setup and fix supported problems after you approve.
Instalar
dsh plugin --profile web add github:qiaoda2021/dsh-doctorREADME
DSH Doctor
DSH 环境诊断与用户确认修复插件。安装启用后自动体检运行时、安装、profile 配置、插件、工作区、日志和网络接入点,并提供有证据的建议。
默认扫描不修改用户配置。修复先预览具体方案,再由用户同意,之后才备份、执行和复检。 诊断本身使用本地规则,不要求配置本插件作者的 GPT、DeepSeek 或其他模型 API key。
当前候选版本:0.9.0-beta.8.ui.1。预发布包用于验证通用安装与修复闭环;已验证与待验证的边界见下文。
安装与首次使用
-
从本仓库的 GitHub Releases 下载
dsh-doctor-0.9.0-beta.8.ui.1.tgz,保留为文件,无需自行编辑 DSH 的 profile 清单或 lockfile。 -
在 DSH 的插件管理入口安装该本地包并启用。支持插件管理工具的会话也可使用下列参数,将占位路径替换为下载文件的绝对路径:
{ "action": "install_bundle", "target": "file:/ABSOLUTE/PATH/dsh-doctor-0.9.0-beta.8.ui.1.tgz" }Windows 的 file 路径使用正斜杠。升级以插件管理器的结果为准;若提示重启,重启 DSH;已打开的 GUI 还应刷新页面。
-
启用后插件会自动做首轮体检。打开侧栏 DSH Doctor 查看结果;“刷新体检数据”会等待实际重采集完成。
-
插件自动发现当前用户的 DSH home、profile、工作区和 Web 地址,没有预置作者的用户名、盘符、代理端口或域名绕过例外。
安装前核对 Release 的版本与
SHA256SUMS.txt。升级使用原生插件管理器,保留此前安装包以便回退。
普通用户的修复流程
自动体检 → 问题及证据 → 对应修复入口 → 准备并预览 → 用户确认
↓
本地备份 → 执行 → 复检 → 结果/回滚
- 「概览」和「问题」页会标出具体异常。支持处理的条目旁显示「修复」按钮,点击在该条目下准备并预览对应方案;需要代理地址时先由你填写。其它条目提供「查看建议」,不显示虚假的自动修复承诺。
- 点击「修复」只进入输入/预览,不直接写文件;仍需核对方案、勾选同意并确认执行。「问题」页底部保留执行记录与回滚入口。
- 预览展示目标文件、操作、改动大小、风险和重启要求,不展示配置正文或密钥值。
- 准备和预览不修改配置。用户勾选同意当前方案并点击确认后才执行;取消只关闭预览。
- 面板确认凭据绑定方案或执行记录,最多 5 分钟有效且只能使用一次。重新准备、预览或方案变化后须重新确认。
- 从智能体调用
dsh_repair apply/rollback时,单纯填写confirm也不会视为用户同意;插件另向真实用户发起确认问题。缺少用户答复通道时保留原配置。 - 本人主动输入
/doctor repair apply <planId> --yes或回滚命令,是另一条人类命令入口,不把模型生成的命令当作自动同意。 - 文件修复写前校验并备份,复检失败会尝试回滚;插件启用则保存原状态并提供显式回滚。后续文件变化、活动日志等情况可能使回滚受阻,结果会明确显示。
- 配置写入可能要下次启动才生效。“文件已复检通过”和“当前进程已经采用新配置”分别展示。
目前支持的执行动作
| 动作 | 修改范围 | 用户输入/限制 |
|---|---|---|
proxy-env | 当前 DSH home 的 .env 中代理路由变量 | 用户明确提供 HTTP(S) 代理 URL;不猜地址、不读取代理密码,不覆盖既有 NO_PROXY 和其他配置 |
strip-bom | 当前 profile 的 package.json 或 cordis.patch.yml | 仅去掉开头的 UTF-8 BOM;不重序列化 JSON、不扩大到其他文件 |
secret-cleanup | 受支持的本地 DSH 日志 | 先列范围,延后近期活动文件;覆盖不完整则显示 partial,不宣称全部清净 |
plugin-enable | 原生管理器中一个可寻址的禁用前端条目 | 仅在 bundle 仍启用且有明确前端声明时提供;target 使用真实 entryId;不自动重装、降版或重启 |
备份可能包含修复前的敏感配置或日志,只保留在本地,不要连同备份、执行记录或原始诊断目录上传 GitHub。提交问题时优先使用插件生成的脱敏导出,并自行检查导出内容。
对话与命令
dsh_doctor:扫描、分组报告、脱敏导出与导出历史。问题数据携带适用的修复准备动作。dsh_repair:list / prepare / preview / apply / rollback / history;apply 和 rollback 走真实用户确认。/doctor:本人命令体检;/doctor history看导出记录;/doctor export json导出脱敏 JSON。
在对话里可直接说:“检查 DSH 环境,把支持修复的问题先列方案,等我确认再执行。”
准备快照 15 分钟后过期。代理地址含账号密码、越界目标、链接目标、计划篡改和写前文件漂移都不会直接执行,需先核对并重新准备。
提示如何分级
- 普通信息:缺少可选的市场兼容资料、只缺手动命令但已找到宿主安装命令文件。它们保留说明,不计故障,也不冒充安装或兼容性已验证通过。
- 提醒:手动 pnpm 不可用且宿主安装通道尚未核实,或已批准精确版本豁免后仍需注意的加载要求。
- 故障:宿主安装命令所需文件缺失,或实际
engines.dsh/ DSH peer 要求不满足。市场展示字段与真实加载冲突分别判断,不用填写了多少元数据来推断插件坏没坏。 - 内置安装器按宿主提供的命令事实核对文件,本次体检不执行安装,也不读取或回显其环境变量值。只看到配置或文件存在,不等于运行测试成功。
网络、诊断与隐私
- 接入点探测执行 DNS → TCP → TLS → HTTP,不发送 Authorization、cookie、模型凭据或 completion。
- 匿名 401/403 表示端点有响应,不证明 key、额度或模型可用。429、5xx、超时、DNS/TLS 等分别说明,不用一条短超时断言“没有代理”。
- HTTP 路由由实际 Node 版本、环境代理开关和宿主 dispatcher 决定;DNS/TCP/TLS 是独立连接,不预设四步同一路径。
- 默认每目标配置 12000ms 总预算、3000ms 单步;可配置预算,单步上限 4000ms。预算是调度目标,不是严格 SLA;重试和响应体读取可能增加实际耗时。
- 自动首轮体检之后,面板/工具按需刷新并使用短缓存;这是按需诊断,不是常驻高频后台扫描器。未知、未完成、旧快照与失败分开显示。
- 模型凭据仅检查存在性;日志泄露扫描只显示类型、数量和路径,不把命中值输出给面板。脱敏导出与含原内容的本地备份是两类不同文件。
- 环境健康分不是测试通过率或开发进度;根因的证据分也不是经过真实故障语料校准的概率。
支持与验证边界
- Node 声明:
^22.19.0 || >=24.0.0;需要支持 Cordis 插件、工具与 Connection 的 DSH。能力缺失时对应入口降级,不开放匿名修复路由。 - 界面与主要诊断文案为中文。缺少系统代理环境变量时不会假定其他应用的系统代理已被 Node 使用;目前不自动发现注册表、钥匙串或系统代理密码。
许可证
Apache License 2.0,标准正文来源为 Apache 官方许可证。本项目不是 DeepSeek 官方产品。
Plugins relacionados
deepseek-harness
deepseek-ai/deepseek-harness
dsh-web (dsh-plugin-manager)
zhu1090093659/dsh-web
dsh-market
dsh-market/dsh-market
dsh-web
zhu1090093659/dsh-web