DeepSeek Harness Hub
← 返回列表

fuguier001/dsh-procguard

DeepSeek Harnessspec-screened在 GitHub 查看 ↗
未验证

DSH 进程看护管家:launchd 保活 + preflight 启动闸 + 内存哨兵 +…

尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/9/12 · 已提供中文文档

DSH 进程看护管家:launchd 保活 + preflight 启动闸 + 内存哨兵 + 断链自愈的四层防御插件(macOS 实测 / Linux 骨架 / 不支持 Windows)

综合分
29.5
GitHub 分
29.5
用户评分
★ Stars
0
周下载量
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add fuguier001/dsh-procguard
该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/16(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

dsh-procguard

DSH(DeepSeek Harness)进程看护管家:一个跑在 dsh web 进程里的 Cordis 插件,把自己的看护层安装进操作系统——launchd(macOS)/ systemd(Linux,骨架)保活、启动前依赖链校验、内存哨兵、断链自愈。进程死了有人拉起,链断了有人修,泄漏了有现场。

它解决什么问题

2026-09-12 的一次完整事故复盘(同一台机器,一夜两崩):

| 事故 | 根因 | 本包对应的层 |
|---|---|---|
| 凌晨 ~05:24 宿主崩溃 | V8 堆 59 小时缓慢泄漏至 4GB 上限 OOM,死后 2 小时无人拉起 | launchd/systemd 保活 + mem-watch 哨兵(超 2.5GB 自动抓堆快照留证) |
| 早上 07:10 重启即崩 | link: 插件 peer 依赖符号链接断链,插件树连坐,boot 失败 | preflight 启动闸(拒启+明示原因)+ 管家每 5 分钟断链自愈 |

四层防御架构

第 1 层  OS 保命     launchd agent(KeepAlive):崩溃 ≤30s 自动拉起,开机自启
第 2 层  启动闸      preflight:boot 前校验依赖链,断链拒启并明示原因(不再裸崩留堆栈)
第 3 层  内存哨兵    mem-watch:每 5 分钟采样 RSS,超阈值 kill -USR2 抓堆快照(12h 限一次)
第 4 层  管家(本包)  procguard 插件:每 5 分钟对账 8 项资产,agent 掉册自动重装、断链自动重建

关键设计:插件不负责"救自己的命"(OS 层负责),插件负责"把 OS 层维持在正确状态"。插件死了前三层还在;前三层出问题,下次插件上岗时修好。OS 看护层是本包的交付物,卸载插件不回收。

本插件零外部 import(不依赖 @deepseek-ai/* 任何包,仅 ctx 注入的 timer/shell/fs),失败面从构造上收窄:坏也只坏自己,不连坐插件树——对照 2026-09-12 imgview 的 peer import 断链连坐事故。

平台支持

| 平台 | 状态 | 说明 |
|---|---|---|
| macOS | ✅ 全链路实测 | 断链→自愈、boot 安全(3099 端口双轮测试)、live 热加载均验证 |
| Linux | 🟡 骨架未实测 | systemd user 单元同构逻辑已写;assets 脚本仍为 mac 方言(lsof 等),真机验证前请勿依赖 |
| Windows | ❌ 不支持(桩已删) | 无 POSIX 信号(SIGUSR2 快照路径不存在)、无验证手段。不做看起来像实现了的假实现 |

安装

第一步:部署 OS 看护层(只需一次)

git clone https://github.com/fuguier001/dsh-procguard.git
cd dsh-procguard/assets && bash install-os-layer.sh

部署 4 个脚本、2 个 launchd agent、桌面重启入口,全部幂等可重跑。

第二步:安装插件(web profile)

方式一:GitHub Packages(npm registry,需配一次 .npmrc)

在 ~/.npmrc(没有就新建)加两行:
@fuguier001:registry=https://npm.pkg.github.com
//npm.pkg.github.com/:_authToken=

cd ~/.dsh/profiles/web
pnpm add @fuguier001/dsh-procguard

方式二:GitHub 直装(免 registry 配置)

cd ~/.dsh/profiles/web
pnpm add github:fuguier001/dsh-procguard

第三步:挂进组合

把本仓库根目录 cordis.patch.yml 里的行并进 ~/.dsh/profiles/web/cordis.patch.yml,重启 dsh web(或等 patchReload: live 热加载)。

验证

tail -f ~/.dsh/web-restart.log        # 应出现 "[procguard] 管家上岗" 与每 5 分钟的 "对账完成"
cat ~/.dsh/procguard-status.json      # 8 项资产对账结果

升级 / 卸载

cd ~/.dsh/profiles/web && pnpm update @fuguier001/dsh-procguard   # 升级(GitHub Packages 方式)
launchctl bootout gui/$(id -u)/com.fuguier001.dsh-web             # 停用保活层(一般不需要)

已知边界

- 管家的对账资产清单(路径、agent 名)当前按作者机器写死(~/Documents/DSCli/dsh-imgview 等);换机器需改 lib/index.js 顶部 assets 常量。
- 堆快照依赖启动参数 --heapsnapshot-signal=SIGUSR2(keepalive 脚本已内置);手动 dsh web 启动的实例没有该开关,哨兵只记警情不动进程。
- 插件沙箱按实例 cwd 授权文件写入:keepalive 保证 cd $HOME,故 ~/.dsh/procguard-status.json 正常落盘;若从其他目录裸启 dsh web,状态写盘会被拒(已优雅降级:只记日志,审计与自愈不受影响,2026-09-12 3099 端口实测)。
- Linux 的 assets 脚本移植(lsof→ss、launchctl→systemctl)欢迎 PR——带上你的真机验证记录。

License

MIT

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

同作者(fuguier001)的其他插件

💬 加入 DPharness 群聊

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

点击加入 QQ 群
DPharness 群聊二维码,手机 QQ 扫码进群
扫码进群