记录宿主崩溃前的心跳与堆栈,供下次启动排查
28.4/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/9/18 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add shenhuanageshei/dsh-death-forensics该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:待复验
装得上吗[实装验证]—
曾在 dsh 0.2.0-rc.2 下真实安装成功,但当前 dsh 已更新至 0.2.1-rc.5,本站尚未在新版下复验
L4 · 真实安装等级说明 →数据截至 2026/10/07·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件
查看扫描证据(共 10 处,展示前 10 条)
- 写入本地文件lib/index.js:23
mkdirSync(dir, { recursive: true }); - 读取本地文件lib/index.js:31
const v = JSON.parse(readFileSync(statePath, 'utf8')); - 写入本地文件lib/index.js:42
writeFileSync(statePath, JSON.stringify(s, null, 2)); - 写入本地文件lib/index.js:50
appendFileSync(crashPath, JSON.stringify(record) + '\n'); - 写入本地文件lib/index.js:74
appendFileSync(heartbeatPath, heartbeatLine(new Date(), state.bootId, state.pid) + '\n'); - 读取本地文件lib/index.js:79
const lines = readFileSync(heartbeatPath, 'utf8').split('\n').filter(Boolean); - 写入本地文件lib/index.js:82
writeFileSync(heartbeatPath, kept.join('\n') + '\n'); - 读取本地文件lib/index.js:148
for (const line of readFileSync(heartbeatPath, 'utf8').split('\n')) { - 读取本地文件lib/index.js:184
const recs = readFileSync(crashPath, 'utf8').split('\n').filter(Boolean).slice(-config.reportTailLines); - 读取本地文件lib/index.js:194
const tail = readFileSync(deathLog, 'utf8').split('\n').filter(Boolean).slice(-config.reportTailLines);
扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-tools@deepseek-ai/schemastery给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 记录崩溃前心跳
- 保存崩溃堆栈
- 结束类型自检
README
由 DeepSeek 最新模型翻译生成dsh-death-forensics
用于 DeepSeek Harness(dsh)宿主的进程内死亡黑匣子。一个 Cordis 插件(bundle 格式),记录宿主死亡之前发生了什么——心跳窗口、崩溃堆栈,以及下次启动时的结束类型自检。
为什么
dsh web 进程可能毫无痕迹地死亡(外部杀死、事件循环冻结、
崩溃)。外部启动器可以记录进程如何死亡(退出码 / stderr / 运行时长),但只有进程内部的东西才能记录之前发生了什么:最后一次心跳是什么时候、崩溃堆栈是什么,以及上一次启动是否优雅结束。
本插件是进程内的那一半。将其与外部启动器配对(参见 DESIGN.md)以获得完整图景。
展开完整文档(README 剩余 1 节)
dsh-death-forensics
用于 DeepSeek Harness(dsh)宿主的进程内死亡黑匣子。一个 Cordis 插件(bundle 格式),记录宿主死亡之前发生了什么——心跳窗口、崩溃堆栈,以及下次启动时的结束类型自检。
为什么
dsh web 进程可能毫无痕迹地死亡(外部杀死、事件循环冻结、
崩溃)。外部启动器可以记录进程如何死亡(退出码 / stderr / 运行时长),但只有进程内部的东西才能记录之前发生了什么:最后一次心跳是什么时候、崩溃堆栈是什么,以及上一次启动是否优雅结束。
本插件是进程内的那一半。将其与外部启动器配对(参见 DESIGN.md)以获得完整图景。
功能
| 功能 | 机制 |
| 心跳 | 每 heartbeatIntervalMs(默认 15 秒,文件有界)向 /death-forensics/heartbeat.log 追加 JSONL |
| 结束类型自检 | SIGTERM/SIGINT 记录 graceful;exit 事件记录中性的 exit;崩溃/被杀留下 running → 下次启动检测到非优雅结束并向 crash.log 追加一条记录 |
| 崩溃堆栈 | uncaughtException(包括通过 Node 默认抛出链产生的未处理 rejection)记录完整堆栈,然后重新打印并 exit(1) —— 宿主行为与无插件情况逐字节一致 |
| 报告工具 | death_forensics_report —— 当前启动、上一次结束类型、死亡窗口(最后一次心跳 → 下次启动)、崩溃日志尾部、外部启动器日志尾部(如果存在) |
数据文件(/death-forensics/)
- state.json —— 当前启动身份 + 上次结束类型(单一事实来源)
- heartbeat.log —— 仅追加的 JSONL,在 maxHeartbeatLines 处截断
- crash.log —— 仅追加的 JSONL 记录(崩溃 + 检测到的非优雅结束)
安全契约
- 零子进程 —— 从不生成任何东西;只进行文件写入。
- 热路径是带 try/catch 降级的同步写入 —— 失败会禁用黑匣子,而绝不会禁用宿主。
- 钩子仅为附加监听器,在插件 dispose 时清理。
- 不对宿主服务进行 monkey-patching。
安装
添加到 dsh profile(例如 profile/profiles/web/package.json):
"dependencies": {
"dsh-death-forensics": "link:/path/to/dsh-death-forensics"
},
"dsh": {
"profile": {
"bundles": [ ..., "dsh-death-forensics" ]
}
}
然后重启 dsh。bundle 补丁会插入条目 id death-forensics。
或者,通过 CLI:dsh plugin --profile web add /path/to/dsh-death-forensics。
构建
需要一个携带 @deepseek-ai/* 包的 dsh checkout 或 profile 安装(通过 $DSH_CHECKOUT,或 $HOME/dsh-harness、$HOME/dsh、 $HOME/.dsh/dsh-harness 解析),外加 typescript:
离线安装 devDependency(来自任意 pnpm store)
node install --store-dir= --prefer-offline \
--config.node-linker=hoisted --config.auto-install-peers=false
编译 src/ → lib/ bash scripts/build.sh # Windows 上的 Git Bash;node 必须在 PATH 中
node lib/selftest.js # 17 个纯逻辑断言
已发布的 lib/ 已提交,因此该插件可直接从普通克隆中运行。
配置
| 键 | 默认值 | 描述 |
| heartbeatIntervalMs | 15000 | 心跳间隔(最小 5000) |
| maxHeartbeatLines | 20000 | 心跳文件行数上限 |
| reportTailLines | 40 | 报告工具显示的尾部行数 |
| dataDir | /death-forensics | 数据目录覆盖 |
文档
- DESIGN.md — 完整设计(中文):状态机、钩子语义、验收标准。
- 死亡窗口解释:[上一次启动的最后一次心跳,本次启动的开始]。
许可证
MIT — 参见 LICENSE。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
shenhuanageshei/dsh-death-forensics
记录宿主崩溃前的心跳与堆栈,供下次启动排查
相关插件 · 开发 / 工程
隐私简历生成器reactive-resume/reactive-resume
Reactive Resume 已迁至 GitHub 上的…
★ 45,288已汉化MCP
71.7
长时任务执行闭环AMAP-ML/LongHorizon-Harness
面向 Computer-Use Agent 的 Loop Engineering
★ 1,764已汉化DSH
70.5
多代理编排运行时Enderfga/claw-orchestrator
面向编程智能体的运行时。把 Claude Code、Codex、Antigravity、Grok…
★ 586已汉化MCP
69.4
记忆进化插件csyangwen/dsh-memory-evolve
dsh-memory-evolve 使用场景指南
★ 461已汉化DSH
67.9
原生编程智能体paean-ai/deeptide
由 DeepSeek 打造,为 DeepSeek 而生。
★ 1,107已汉化DSH
67.7
多引擎接力台emo-xiaoyu/harness-mix
macOS/Linux 已加入源码构建与启动适配;目标系统的完整桌面验收仍需在对应机器执行。安装方式、Linux…
★ 419已汉化DSH
66.8
这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。