判定 DSH 崩溃原因并备份配置,一键还原现场
30.8/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/24 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add YokosWY/dsh-guard该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:需留意
是什么
dsh 原生插件 · other
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 11 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
⚠︎ 实装验证未通过(unknown · 2026/10/25) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 19 处,展示前 19 条)
- 写入本地文件plugin/lib/bridge.js:22
mkdirSync(dirname(DIAG_FILE), { recursive: true }); - 读取本地文件plugin/lib/bridge.js:24
if (statSync(DIAG_FILE).size > 256 * 1024) { - 写入本地文件plugin/lib/bridge.js:25
renameSync(DIAG_FILE, `${DIAG_FILE}.1`); - 写入本地文件plugin/lib/bridge.js:30
appendFileSync(DIAG_FILE, `${JSON.stringify(record)}\n`, "utf8"); - 执行外部命令固定命令plugin/lib/bridge.js:59
const child = spawn("cmd.exe", ["/c", "start", "", PYTHONW, GUARD_SCRIPT], { - 发起网络请求plugin/lib/client.js:63
fetch("http://127.0.0.1:" + port + "/diag", { - 发起网络请求plugin/lib/client.js:116
return fetch(url(port, "/state?plugin=" + PLUGIN_TAG), { - 发起网络请求plugin/lib/client.js:179
return fetch(url(hit.port, "/state"), { - 读取本地文件plugin/lib/core.js:43
if (!existsSync(file)) return null; - 读取本地文件plugin/lib/core.js:44
const raw = readFileSync(file, "utf8"); - 写入本地文件plugin/lib/core.js:54
mkdirSync(dirname(file), { recursive: true }); - 写入本地文件plugin/lib/core.js:56
writeFileSync(tmp, `${JSON.stringify(data, null, 1)}\n`, "utf8"); - 写入本地文件plugin/lib/core.js:57
renameSync(tmp, file); - 读取本地文件plugin/lib/core.js:86
age = (Date.now() - statSync(HEARTBEAT_FILE).mtimeMs) / 1000; - 读取本地文件plugin/lib/core.js:104
if (!existsSync(INCIDENT_FILE)) return null; - 读取本地文件plugin/lib/core.js:105
const fd = readFileSync(INCIDENT_FILE, "utf8"); - 读取本地文件plugin/lib/core.js:124
return existsSync(GUARD_SCRIPT); - 写入本地文件plugin/lib/loop-guard.js:124
mkdirSync(dirname(file), { recursive: true }) - 写入本地文件plugin/lib/loop-guard.js:125
appendFileSync(file, JSON.stringify({ ts: new Date().toISOString(), ...entry }) + '\n', 'utf8')
扫描于 2026/11/3(1 天前) · 范围 全包扫描 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
给 DSH 做的外部看守:判死、备份、救回来。不改 DSH 本体,不碰它的配置。
README
由 DeepSeek 最新模型翻译生成dsh-guard
dsh-guard 是给 DSH NEXT(DeepSeek Harness 桌面版)做崩溃判定与恢复的单机工具:一个 Python 命令行 + 一个界面插件,读取 DSH 的日志工作,不修改 DSH 本体。
特性
- 判定: 按 runId 聚合 UTC 分卷日志,叠加 Windows 关机事件(1074 → 6006),输出 7 类结局;对 88 次历史启动回放,漏报 0、误报 0
- 降级识别: 渲染进程 / GPU / 网络服务崩溃、子进程 OOM、10 分钟内连环崩,单独统计不混进崩溃数
- 体检: preflight.py 只读检查 BOM、JSON/YAML 语法、link: 目标、node_modules 软链、端口、基线漂移,退出码 0/1/2
- 还原: 写前三查(无 DSH 进程、目标 mtime 10 秒未变、持锁),同目录 temp → fsync → os.replace,写后重算 sha256,不符即整批回滚
- 备份: 配置快照 57 文件 / 0.83 MB 一份;会话记录走硬链接增量,第二份新增 0.00 MB
- 守护: 120 秒一轮,只记录与通知;unclean-unknown 会留现场文件(事件尾巴 + 文本日志 + 进程快照)
展开完整文档(README 剩余 1 节)
dsh-guard
dsh-guard 是给 DSH NEXT(DeepSeek Harness 桌面版)做崩溃判定与恢复的单机工具:一个 Python 命令行 + 一个界面插件,读取 DSH 的日志工作,不修改 DSH 本体。
特性
- 判定: 按 runId 聚合 UTC 分卷日志,叠加 Windows 关机事件(1074 → 6006),输出 7 类结局;对 88 次历史启动回放,漏报 0、误报 0
- 降级识别: 渲染进程 / GPU / 网络服务崩溃、子进程 OOM、10 分钟内连环崩,单独统计不混进崩溃数
- 体检: preflight.py 只读检查 BOM、JSON/YAML 语法、link: 目标、node_modules 软链、端口、基线漂移,退出码 0/1/2
- 还原: 写前三查(无 DSH 进程、目标 mtime 10 秒未变、持锁),同目录 temp → fsync → os.replace,写后重算 sha256,不符即整批回滚
- 备份: 配置快照 57 文件 / 0.83 MB 一份;会话记录走硬链接增量,第二份新增 0.00 MB
- 守护: 120 秒一轮,只记录与通知;unclean-unknown 会留现场文件(事件尾巴 + 文本日志 + 进程快照)
- 开关: 会话头部按钮写 state/control.json 的 enabled,只启停扫描与通知
前提
- Windows 10/11
- Python 3.11 及以上(仅标准库;psutil、PyYAML 可选)
- DSH 安装在同一台机器上(工具读它的 logs/、profiles/、sessions/)
- 官方版与 NEXT 可以同时装:在 config.json 的 targets 里各写一条,判定、守护、备份都按目标分开
多实例(NEXT + 官方版)
"targets": [
{ "name": "next", "home": "D:\\AI\\DSH-NEXT" },
{ "name": "official", "home": "D:\\AI\\DSH-official\\home" }
]
| 能力 | 多实例行为 |
| 判定 | python detect.py --all 逐目标输出;--home <path> 只看一个 |
| 体检 / 救援 | preflight.py --home <path> --label <name>、rescue.py --home <path> --label <name> |
| 守护 | 每轮逐个目标扫描,scan.json 按 target 分开存,首次跑只建基线不通知 |
| 备份 | 第一个目标落 lkg/、sessions-backup/(默认标签),其余落 lkg/<name>/、sessions-backup/<name>/ |
| 界面开关 | 每套 DSH 各装一次插件;两个桥读同一份 state/control.json,开关对两套同时生效 |
官方版是 0.2.1-rc.2 时实测可用:日志事件词表与 NEXT 一致(electron/run.start、desktop/host.start.start、desktop/message),头部插槽 conversation.session.header.actions 也存在。
安装
git clone https://github.com/YokosWY/dsh-guard.git <project-dir>
cd /d <project-dir>
copy config.example.json config.json
python paths.py
python paths.py 打印解析到的 dsh_home / python / pythonw 三项;任一项不对就改 config.json,或设 DSH_HOME。
快速开始
python detect.py
输出四行以内:
run 总数 84 需要处理 31 可由配置恢复 3
结局分布: {'ok': 27, 'boot-fail': 19, ...}
崩因分布: {'shell-load': 18, 'silent': 9, ...}
完整逐条用 python detect.py --list。这一步只读,不改任何东西。
日常看一眼
python guard.py --status :: 开关 / 守护 / 每个 DSH 的启动数、事故数、上次扫描
python guard.py --report :: 同上,另存一份 markdown 到 reports/
python detect.py --all --csv :: 导出 88 条启动记录,Excel 能直接打开
--status 输出示例:
开关: 开(用户从界面切换)守护: 运行中 pid=39220,心跳 4s 前
[next] D:\AI\DSH-NEXT
启动 88 次,事故 33 条,最近一次启动 10-24 15:09 结局: boot-fail=21 crash=3 ok=27 quit-forced=14 shutdown=13 unclean-unknown=9 上次扫描 2026-10-24T07:26:19+00:00(本轮新事故 0)
边界
- 不修 DSH 本体:壳页加载失败(ERR_FAILED ... dsh-app://app/)属应用内部,这里只出证据
- unclean-unknown 不猜死因,只留现场
- 不接管 DSH 自带的 recovery/:那份快照会把即将崩的配置标成 healthy,所以备份仓自建
- 计划任务仅在当前用户登录后生效;注销或关机期间不运行
文档
- 安装与卸载:建基线、装插件(三件事缺一不可)、注册任务
- 结构:数据流与五条关键口径
- 开发约定:改代码前必读的坑与检查清单
- 覆盖范围:哪些崩法能判、哪些判不了(附上游 issue 与文档出处)
贡献
改完先跑 自检.cmd(5 个测试文件 + 78 次回放 + 当前配置体检),再读 docs/DEVELOP.md。
问题走 Issues;报障请附 python detect.py --list 的输出,它不含会话内容。
许可
MIT © 2026 Yokos,见 LICENSE。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
YokosWY/dsh-guard
判定 DSH 崩溃原因并备份配置,一键还原现场
相关插件 · 其他
模型破甲清洗HunYiSage/dsh-purge
⚔️ DeepSeek Harness 网络安全红队工具dsh-purge
★ 16,993已汉化DeepSeek 客户端
73
女娲蒸馏alchaincyf/nuwa-skill
输入名人名字,提炼其思维模型与决策方式供你调用
★ 37,308已汉化DSH
72
逆向分析桥接Fanqi89/dsh-rea
REA(Reverse Engineer Anything)MCP 桥接,用来把 REA 逆向工具接入 DSH 插件
★ 51已汉化DSH
72
语音女友beiyege-01/dsh-voice-ai-girlfriend
语音 AI 女友Voice AI girlfriend for DeepSeek Harness:Whisper…
★ 888已汉化DSH
71.6
红队越狱测试套件Minglink/dsh-infinite-gen-5
DeepSeek v4.1 flash 逆向工具无限五代 求 Star 收藏 ⭐欢迎大家提交项目的改进
★ 3,759已汉化DSH
71.4
协同办公空间dream-num/univer-workspace
一个让人类与 AI Agent 共同创作、协作和审阅的开源 Office 工作空间。
★ 2,269已汉化DSH
70.8
这是你的仓库?认领条目