前言¶
DeepSeek Harness(DSH)通过插件系统扩展功能。在调试或使用过程中,环境配置、端口占用、残留进程以及过大的 session 常常导致问题。dsh-doctor 是一个诊断插件,它将 DSH_HOME、进程状态、端口占用、版本信息以及过大 session 的检查结果收集成一份可复制的 Markdown 报告。它不替代 Desktop 或 TUI 界面。
插件概况¶
- 名称:dsh-doctor
- 维护者:henrytian1998
- 类别:客户端
- 许可证:MIT
- 定位:这是一个 bundle,不是 profile。它安装到现有的
web/tui/ 自定义 profile 中。
安装与验证¶
安装插件需要使用官方的插件安装命令,随后重启对应的 profile。
- 执行安装命令:
dsh plugin --profile web add github:henrytian1998/dsh-doctor
- 安装完成后,重启 profile(例如
dsh --profile web)。 - 验证插件是否正确加载:
dsh --profile web --dump-config
在输出的配置中,必须包含 `id: doctor` 和 `name: dsh-doctor` 两行。如果缺少,说明 manifest 解析失败。
- 检查 Host 启动日志,应包含
doctor loaded字样。
核心功能¶
该插件在 v0.1 版本中主要检查以下内容:
- 环境与版本:读取 DSH_HOME、当前 profile 名称和 bundles 配置。检查 Node.js 版本(要求
^22.19.0 || >=24.0.0)以及 dsh 版本。 - 端口检查:默认检查端口 3080,或通过
--port参数指定的端口。它会列出当前正在监听的进程,但不会将当前进程树标记为错误。 - 残留进程:在 Windows 环境下,检查残留的 node 或 dsh 进程。它会标记可能属于该 profile 的进程,但不会终止任何进程。
- 过大 Session:检查
$DSH_HOME/sessions/**/*.jsonl和*.jsonl.zstd文件。默认阈值为 50 MiB,仅报告文件路径和大小,不会删除文件或打开事件流。
使用方法¶
安装并重启 profile 后,在 DSH 的 UI 界面中运行命令 /doctor。
生成的报告会保存到以下位置:
* $DSH_HOME/logs/doctor-<timestamp>.md
* $DSH_HOME/logs/doctor-<timestamp>.json(包含 schema: dsh-doctor/v1)
参考文档中的 docs/sample-report.md 可以了解报告的具体格式。将 Markdown 报告粘贴到 GitHub Discussions 时,结论会显示为 PASS / WARN / FAIL。
注意事项¶
- Bundle 与 Profile:请勿将其视为一个新的 profile,它是一个 bundle,需要安装到现有 profile 中。
- 权限与范围:该插件以当前 dsh 进程的权限运行。目前不检查 Desktop shell / Electron / Wails / Tauri 等框架,也不编辑官方
packages/client/*目录。 - 安全机制:v0.1 版本不会删除文件,也不会打开事件流。
- 版本依赖:安装后必须重启 profile 才能生效。
链接¶
- GitHub 仓库:https://github.com/henrytian1998/dsh-doctor
- 社区目录:https://www.skillhub.cn/plugins/henrytian1998/dsh-doctor