dsh-failure-capsule

DSH PLUGIN开发与运行时

仓库 YiHarvest/dsh-failure-capsule · npm dsh-failure-capsule

开发与运行时 L5 · 运行验证通过 安全审查:低风险 可信度:金 可安装插件
安装这个插件

DSH plugin 本地优先故障证据包:自动将失败前的事件、Git 状态、运行环境与插件组合整理成脱敏 ZIP,并反解压缩栈,助力调试与事故复盘。

验证等级 L5 L5 · 运行验证通过
GitHub 星标 7 复刻 0 · 未关闭 issue 0
最近更新 2026-09-30 创建于 2026-08-14
README 11.4 KB 正文体量,越大说明说明书写得越细

安装

可安装插件
在 DSH 里执行,装完用 dsh plugin list 确认已挂上;标了 L4 / L5 的命令已在沙盒里真实跑通
dsh plugin --profile web add [email protected]
兼容 DSH 版本0.2.0-rc.2 等 12 个版本版本不匹配时安装会报错
Node.js 要求^22.19.0 || >=24.0.0来自仓库 package.json 的 engines 字段
前置依赖无需要同时安装的同级依赖
npm 包名dsh-failure-capsule可用 npm view 查看包信息

能做什么

4 项功能
字段来自项目仓库与公开索引,中文说明由本站标注

dsh-failure-capsule:DeepSeek Harness 的故障证据包插件

  • 自动采集失败证据
  • 脱敏导出 ZIP
  • 反解压缩栈帧
  • 本地优先不上传

适用场景

文件读写存储

上游标签

debuggingdeepseek-harnessdsh-pluginincident-responseobservability

验证等级与安全审查

L5 · 运行验证通过
自动化流程结论,不是人工审核
验证等级L5 · 运行验证通过在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来
安全审查低风险静态分析结论,未标注不代表已通过审查
仓库健康度活跃按仓库活跃度与最近更新时间给出
可信度金综合仓库活跃度与验证结果

上面的结论来自上游最近一次自动化验证(2026-10-08): 同一套检查会在插件发新版后重跑,页面显示的是最新一次的逐项结果。

逐项检查结果

L1 · 已找到 ✓ 通过
  • L1.0_DEFAULTED_FROM_L3 由 L3 推定 默认通过——L3 安装规范已通过(全库 L3 扫描策略)
L2 · 结构化 ✓ 通过
  • L2.0_DEFAULTED_FROM_L3 由 L3 推定 默认通过——L3 安装规范已通过(全库 L3 扫描策略)
L3 · 安装规范 ✓ 通过
  • L3.1_INSTALL_COMMAND_PARSED 安装命令已解析 方式:安装规范解析
  • L3.2_DSH_VERSION_DECLARED DSH 版本已声明 方式:DSH 版本声明
L4 · 安装已测 ✓ 通过
  • L4.1_INSTALL_EXECUTED_CONFINED 受限沙盒内执行安装 方式:沙盒安装执行
  • L4.2_INSTALL_SUCCESS 沙盒安装成功 方式:沙盒安装执行
  • L4.3_ARTIFACT_CONFIRMED 安装产物已确认 方式:沙盒安装执行
L5 · 运行已测 ✓ 通过
  • L5.1_INSTALL_PASSED_SANDBOXED 沙盒安装通过 方式:沙盒安装执行
  • L5.2_WEB_BOOT_READY Web 启动就绪 方式:Web 启动
  • L5.3_HTTP_SERVED HTTP 服务响应 方式:HTTP 请求
  • L5.4_PLUGIN_INVENTORY_ACTIVE 插件清单中已激活 方式:插件清单查询

风险详情

  • 审查结论 通过
  • 结论说明 vet 静态分析未发现可疑行为,判定为干净(clean)。
  • 风险计数 严重 0 / 高 0 / 中 0
  • 风险详情 未发现严重或警告级问题。

仓库档案

开发与运行时
字段来自项目仓库与公开索引,中文说明由本站标注
作者 / 维护方YiHarvest仓库 dsh-failure-capsule · 默认分支 main
分类开发与运行时developer
收录类型可安装插件声明了 dsh.bundle、可用 dsh plugin add 安装的条目
开发语言TypeScript仓库主语言
许可证MIT商用或二次分发前请确认条款原文
星标 / 复刻 / issue7 / 0 / 0收录时的数值,非实时
创建 / 更新2026-08-14 · 2026-09-30最后推送 2026-09-30
本站收录2026-08-14首次进入本站目录的时间

README 全文

11.4 KB
作者原文,中文版优先;只做安全转义,不改内容

dsh-failure-capsule

在上下文消失之前,封存失败证据。

一个本地优先的 DeepSeek Harness 插件,把失败的 Agent 工作整理成经过脱敏、可审阅的证据 ZIP。




npm · GitHub Packages · 更新记录 · English

> 发布状态: 当前源码是标准 Profile Bundle,已针对 DeepSeek Harness @deepseek-ai/[email protected] 验证。它通过原生 session/event、agent/error 和 Loader inventory 接口工作,不修改 Harness 核心。采集只在本地进行,不调用模型,也没有遥测后端。

体验当前版本

Web 和 headless 是彼此独立的 profile。需要在哪个 profile 捕获失败,就在哪个 profile 安装:

dsh plugin --profile web add dsh-failure-capsule
dsh plugin --profile headless add dsh-failure-capsule

同一版本也会以 @yiharvest/dsh-failure-capsule 发布到 GitHub Packages。先使用具备 read:packages 权限的 classic personal access token 登录,再安装 scoped bundle:

npm login --scope=@yiharvest --auth-type=legacy --registry=https://npm.pkg.github.com
dsh plugin --profile web add @yiharvest/dsh-failure-capsule

确认组合层已经生效:

dsh --profile web --dump-config
# 查找:id: failure-capsule / name: dsh-failure-capsule

安装后不需要运行额外命令。继续正常使用 Harness;匹配的失败会在 Session 工作目录下写入证据包:

.dsh/failure-capsules/
└── 2026-08-31T01-23-45-678Z__tool-error_event-87.zip

核心想法

最后一行报错通常解释不了 Agent 为什么失败。真正有用的上下文散落在此前的工具调用、回合边界、仓库状态、运行环境、活动插件里,有时还藏在一段压缩后的 JavaScript 栈中。

Failure Capsule 会在这些上下文仍然存在时把它们保存下来:

  1. 监听 Harness 原生的持久化或实时失败信号。
  2. 截取有界的 Session 与环境证据窗口。
  3. 存在 JavaScript 栈时,使用本地 source map 还原源码位置。
  4. 只对导出副本中的凭据、本机路径和敏感字段进行脱敏。
  5. 写出一份确定性、自带索引、便于审阅或分享的 ZIP。

为什么还需要一个调试工具?

工具类别 通常保留什么 Failure Capsule 补充什么
终端输出 最后一条命令及其 stderr 导致失败的 Agent 时间线
Harness Session Log 持久化交互事件 Git、运行时、插件清单、排查入口和单一便携归档
错误追踪平台 上传到后端的异常 无需服务或账号的本地采集
Harness 核心埋点补丁 产品内部状态 建立在公开扩展点上的可移除 Profile Bundle
Failure Capsule 一次失败工具调用或失败回合 故障发生时的一份有界、脱敏证据包

它不是错误追踪平台、日志上传器或 AI 诊断服务。它负责准备人或其他工具进行调查所需的证据。

保持启用

Profile 安装是持久的,但各 profile 彼此独立。在 web 安装不会自动为 headless 启用,反之亦然。

默认触发范围经过刻意收敛:

信号 默认 结果
失败的 tool/result 开 每次失败工具调用生成一份 capsule
turn/end / error 开 捕获模型、传输或 Agent 回合失败
turn/end / blocked 开 捕获策略或工作流阻塞
turn/end / interrupted 开 捕获被先前进程遗留为未闭合的回合
没有持久化失败回合的实时 agent/error 开 捕获否则会消失的运行时错误
turn/end / aborted 关 用户取消只有显式启用后才会捕获

同一事件在插件生命周期内只处理一次。实时 agent/error 会短暂等待相应的持久化 turn/end,避免同一次失败生成两个归档。

使用当前插件

这个 bundle 是常驻观察型插件:安装、按需配置,然后使用普通解压和文本工具检查生成的 ZIP。

# 从 npm 安装
dsh plugin --profile web add dsh-failure-capsule

# 或在 npm login 后从 GitHub Packages 安装 scoped 版本
dsh plugin --profile web add @yiharvest/dsh-failure-capsule

# 验证最终组合配置
dsh --profile web --dump-config

# 测试尚未发布的本地构建
npm pack
dsh plugin --profile web add ./dsh-failure-capsule-0.2.4.tgz

相对输出路径以 Session 工作目录为基准;也可以使用绝对路径。

当前源码提供什么

已交付能力 发布证据
Harness 0.2.0-rc.2 兼容性 针对 Session V4 与已发布 Agent/Session contracts 的类型检查、真实 Cordis 集成测试,以及打包安装后的 DSH profile 启动测试
工具失败、回合失败、中断、阻塞和实时 Agent 错误触发 聚焦的分类与生命周期测试
有界时间线、Git、运行时和插件证据 确定性 ZIP 断言与命令预算测试
本地 source map 解析 栈帧解析、映射、缺失映射与大小限制测试
凭据与路径脱敏 规则级脱敏测试和归档级断言
原子写入与卸载排空 文件系统和插件销毁集成覆盖

归档 schema 仍为版本 1。运行时直接从 session/event 维护有界窗口,因此采集不再依赖同步读取完整 Session 历史。CI 还会以非阻塞 canary 检查 Harness 的 next 发布通道,但不会在 canary 失败时阻塞受支持基线的验证。

Capsule 如何工作

session/event 是持久化事实来源。失败工具结果与终止回合原因可以立即触发;agent/error 则用于兜底捕获没有生成持久化失败回合记录的实时错误。

插件启用期间,会为每个观察到的 Session 最多保留 maxEvents 条持久化事件。触发时,插件会分离该有界窗口与当前 Session header、记录 Loader inventory,并执行有界、只读的 Git 命令。如果在一个已经运行的 Session 中途启用插件,它不会同步回填更早的历史。它不会读取未跟踪文件内容,不经过 shell,不运行 Git hook,也不启用 textconv。每条 Git 命令都有独立输出预算。

如果失败携带 JavaScript 栈,插件会解析栈帧并查找相邻的本地 source map。映射文件读取有字节上限,且永不访问网络。归档同时保留结构化栈帧,以及带可用源码上下文的 Markdown 版本。

所有证据都在组装 ZIP 前经过脱敏。原始 Session Log、仓库和错误栈不会被改写。

发布路线

当前版本聚焦于忠实的本地采集和稳定的证据格式。后续工作在公开 Issue Tracker 中跟踪;可能的方向包括更丰富的失败关联、更多证据适配器,以及不削弱本地优先安全模型的阅读工具。

兼容性声明必须对应可复现测试和明确的 Harness 版本。未来的 Harness 预发布版只有在本包完成验证后才会列入支持范围。

隐私

Failure Capsule 没有网络客户端和遥测后端。正常运行时只读取本地 Session 状态、Loader 元数据、选定的运行时信息、本地 source map 和有界 Git 输出,然后把 ZIP 写入配置的本地目录。

导出副本会脱敏:

  • 敏感对象字段和环境变量赋值;
  • Bearer 与 Basic 授权值;
  • 常见 provider、GitHub、npm 与 AWS 凭据形式;
  • URL 中嵌入的凭据;
  • 私钥块;
  • 本机 home 目录路径。

脱敏报告只包含按规则统计的数量,从不保存匹配到的秘密。脱敏是纵深防御,不能证明任意源码 diff 或自由文本中绝对不存在业务秘密。把 capsule 分享到原信任范围之外前,请先人工检查。

采集限制同时保护 Agent 循环和最终产物。默认时间线最多 80 条事件,每条 Git 命令最多 512 KiB,单个 source map 最多读取 4 MiB。采集失败只产生 Harness warning,不会替换原始 Agent 错误。

配置

在后续 profile patch 中用相同 id 覆盖 bundle row:

- id: failure-capsule
name: dsh-failure-capsule
config:
outputDir: .dsh/failure-capsules
maxEvents: 80
maxGitBytes: 524288
captureGit: true
capturePlugins: true
triggerOnToolError: true
triggerOnTurnFailure: true
triggerOnAborted: false
triggerOnAgentError: true
resolveSourceMaps: true
maxSourceMapBytes: 4194304
字段 默认值 接受范围
outputDir .dsh/failure-capsules 非空相对或绝对路径,不得包含 NUL
maxEvents 80 1..10000 的整数
maxGitBytes 524288 1024..16777216 的整数
captureGit true 布尔值
capturePlugins true 布尔值
triggerOnToolError true 布尔值
triggerOnTurnFailure true 布尔值
triggerOnAborted false 布尔值
triggerOnAgentError true 布尔值
resolveSourceMaps true 布尔值
maxSourceMapBytes 4194304 1024..67108864 的整数

无效配置会让插件加载失败,不会静默改变行为。

Capsule 内容

failure-capsule.zip
├── manifest.json              schema、触发点、文件索引与脱敏统计
├── failure.json               结构化失败身份
├── timeline.jsonl             截止失败点的有界事件窗口
├── diagnosis.md               确定性、无模型的排查入口
├── runtime.json               Node、OS、架构与项目包信息
├── plugins.json               Loader 条目、启用状态与 fiber 阶段
├── redaction-report.json      安全的规则替换计数
├── stack-trace.json           可用时的解析与源码映射栈帧
├── stack-trace.md             可读栈帧与源码上下文
├── session/header.json        Session cwd、谱系与格式版本
└── git/
├── head.txt
├── branch.txt
├── status.txt
├── recent-commits.txt
├── working-tree.patch
└── index.patch

参与贡献

需要 Node ^22.19.0 || >=24.0.0。本地验证命令:

npm install
npm run check
npm pack --dry-run

npm run check 会执行严格类型检查、单元与集成测试、生产构建,以及真实的打包安装 DSH profile E2E。创建包前,prepack 会重复同一组检查。

许可证

MIT © 2026-present YiHarvest
LINUX DO: https://linux.do/latest

常见问题

8 问
答案由本站依据条目字段整理,不引用上游原文
dsh-failure-capsule 怎么安装?

在 DSH 里执行 `dsh plugin --profile web add [email protected]` 即可。对应的 npm 包名是 `dsh-failure-capsule`。

dsh-failure-capsule 的验证等级是什么意思?

L5 · 运行验证通过。在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来

dsh-failure-capsule 安全吗?

低风险。vet 静态分析未发现可疑行为,判定为干净(clean)。

dsh-failure-capsule 支持哪些 DSH 版本?

上游记录的兼容版本包括 0.2.0-rc.2、0.2.0-rc.1、0.1.7-rc.2、0.1.7-rc.1、0.1.6-alpha.2、0.1.6-alpha.1、0.1.5-rc.2、0.1.3-alpha.2。版本较多,只列出前 8 个。

dsh-failure-capsule 需要什么运行环境?

Node.js ^22.19.0 || >=24.0.0。环境不满足时安装会失败,建议先确认本机版本。

dsh-failure-capsule 用的是什么许可证?

上游标注为 MIT。商用或二次分发前请到仓库确认许可证原文。

dsh-failure-capsule 有哪些功能?

自动采集失败证据、脱敏导出 ZIP、反解压缩栈帧、本地优先不上传。

这条记录的数据可靠吗?

本站按仓库名去重后合并整理,字段以作者仓库与 npm 元数据为准;安装命令、仓库地址与 README 保持原文,带 L4 / L5 标记的安装命令已在隔离沙盒里真实跑通。

开发与运行时
按星标排序,可作替代方案

rea

rea

L4 · 沙盒安装通过 2.6 万 星

dsh-TUI

dsh-TUI

Claude Code 风格全屏终端 UI:像素鲸鱼顶栏、实时工作状态行、思考流式展开。

L4 · 沙盒安装通过 4,292 星

mirage

mirage

把文件系统与 bash 提供者换成 mirage 虚拟工作区:文件工具与 shell 命令作用于挂载的资源(RAM、S3、Redis、Sla

L3 · 安装规范通过 3,681 星

dashi-taskboard

dashi-taskboard

把当前已安装并运行中的 Codex Taskboard 嵌入 DeepSeek Harness 侧边栏,并通过 Launcher 运行时描述

L4 · 沙盒安装通过 3,311 星

插件的元信息来自作者仓库;分类、验证等级与安全结论的中文说明为中文整理,最近核验 2026-10-08。