README.md

August 21, 2026 · View on GitHub

dsh-plugin-debug

DSH(DeepSeek Harness)调试插件:崩溃隔离、事故取证、Trace 分析、快照恢复、任务守护。

CI CodeQL License Version DSH Node

快速开始 · 兼容版本 · 它能做什么 · 验证到什么程度 · 文档

这是什么

写 DSH 插件或折腾 DSH 环境时,出问题往往不知道从哪查:插件装完不生效、页面白屏、任务跑飞、Profile 改坏。这个包把排查要用的东西凑齐了:启动失败自动隔离可疑插件(最多重启一次,绝不无限自愈)、事故现场打包取证、Session 脱敏报告、known-good 检查点回滚,外加一个只观察不干预的任务守护。

单包发布在 packages/dsh-plugin-debug,MIT,不发 npm。面向 Windows,建议 pwsh 7 + Node 22 以上。

快速开始

装好 Node.js 22+,在 PowerShell 进仓库根目录:

Set-Location .\packages\dsh-plugin-debug
.\Start-DSH-Debug.ps1 -Profile debug -Port 3081 -NoInstall -NoBrowser

看到 JSON 输出后打开 http://127.0.0.1:3081-NoInstall 表示不联网,要求本机已有 DSH runtime;没有就去掉它,启动器会按 lockfile 精确安装 pinned runtime。

不想启动、只想先验货:

npm test
.\Test-DSHStandalone.ps1

更新已装到 Profile 的插件:先用 .\tools\Stop-DSH.ps1 停旧实例,再加 -ForcePluginInstall 重启。

报告状态怎么读:PASS 通过;UNAVAILABLE 是本机没有对应服务,不是错误;PARTIALWARN 表示只有部分证据;FAIL 才是失败。

兼容版本

版本
插件0.8.5
pinned runtime@deepseek-ai/dsh 0.1.1-rc.2
peer 兼容范围dsh-tools >=0.1.0-rc.6 <0.2.0

0.8.5 相对 0.8.4 的主要变化:适配 DSH 0.1.1-rc.2,重建 runtime lockfile(516 个锁定条目,补齐上游改为 peerDependencies 声明的 29 个内部包)。详见 CHANGELOG

它能做什么

查问题:插件健康检查、事故取证打包、客户端诊断时间线、Trace 循环/递归分析、两份诊断报告对比、依赖图检查。

救现场:Crash Guard 启动隔离、Profile/Workspace 快照与 known-good 回滚、受限自修复(前后哈希校验,文件被改过就拒绝覆盖)、只读的第三方插件二分计划。

看清楚:鼠标来源追踪、Agent/Session 脱敏报告(Token、工具调用、风险、内置估算费用)、热切换能力探测(只探测合同,从不执行切换)。

管住任务:observer-only 任务守护,发现重复 Tool Call 或过深的 Agent/Workflow 递归时给提示,不终止任务、不杀进程、不禁插件。

注册到 Host ToolRuntime 的四个工具:plugin_checkplugin_hotswap_checkplugin_hotswap_preflightdsh_agent_report

验证到什么程度

v0.8.5 在真实环境验证过:GitHub fresh clone 重跑全部测试(95/95),用 pinned runtime 启动真实 DSH 0.1.1-rc.2,Web 页面识别为 DSH、host.describe 正常、140 条 inventory 中观察到本插件 active。发布边界检查 108 文件全过。

没验证过的也直说:成功模型响应、真实 Token 账单、模型生成的 Tool Call、生产环境第三方安装、跨平台运行。想自己复核一遍:

pwsh -File .\tools\Test-DSHCompatibility.ps1 -ConfirmRealDsh -StartPinnedRuntime -RuntimeRoot .\tools\runtime

它会在临时 DSH_HOME、Profile 和端口里启动真实 runtime,结束时只清理自己启动的东西。

文档

安全边界

默认只收集元数据:Tool 参数、结果正文、Cookie、密钥、.env 内容一律不落盘,不上传日志,不访问插件商店。Guardian 只读事件、发提示。会动手的部分(Crash Guard、修复、恢复)各有闸门:核心包不动、敏感文件不碰、回滚前校验哈希、最多一次受控重启。Host API 默认只接受 loopback,远端地址必须显式白名单。

逐条细则见包内 README 的安全边界一节。

本地开发

# 包目录
npm ci --ignore-scripts
npm test        # 95 项离线回归
npm run check   # 构建 + 生成物一致性 + 语法 + workflow pin + 测试

# 仓库根目录
.\scripts\Verify-Publication.ps1   # 发布边界检查

大部分回归不需要真实 DSH;需要本机服务的项会诚实返回 UNAVAILABLE,不会拿静态 fixture 冒充真实验证。升级 pinned runtime 时同步重建 tools/runtime/package-lock.jsonInstall-DSH-Agents.ps1 固定清单和 SBOM,再重跑全部门禁。

License

MIT © shine-233