DeepSeek Harness 升级演练命令行:静态对等图预检 + 在一次性 DSH_HOME 里做无密钥真实会话迁移与写入轮次演练。外部命令行,不是插件。
30.8/100
综合分
1
GitHub 星标
45
npm 周下载
—/5
用户评分
数据截至 2026/10/17 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add dsh-rehearsalnpm 源 · dsh-rehearsal 的发布者账号已校验与本仓库一致
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查✓ 自动检查通过展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✓npm 包dsh-rehearsal @ 0.3.16
✓Node 引擎要求 >=22.19 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/12 22:45:58
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令
查看扫描证据(共 3 处,展示前 3 条)
- 执行外部命令来自配置/变量src/lib/util.js:33
const r = spawnSync(cmd, args, { - 执行外部命令固定命令src/lib/shadow.js:24
const r = spawnSync('where.exe', ['npm'], { encoding: 'utf8', windowsHide: true }); - 执行外部命令固定命令src/lib/shadow.js:33
const r = spawnSync('which', ['npm'], { encoding: 'utf8', windowsHide: true });
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 静态对等图预检
- 无密钥会话迁移演练
- 一次性环境写入轮次演练
最近更新
在 GitHub 查看全部 →v0.3.162026-10-06
· 安装 · Install
npm install -g github:wuwaka/dsh-rehearsal#v0.3.16
也可锁定到字节 / or pinned to bytes: npm install -g(用本 Release 附带的 dsh-rehearsal-0.3.16.tgz.sha256 校验 / verify with the attached .sha256。)
---
· 变更
· npm 发布通道迁移到 OIDC trusted publishing:publish.yml 不再读取 NPM_TOKEN。npm 已开始限制 bypass-2FA 的 granular token(发布时的官方提示原文:"npm tokens that bypass 2FA are being restricted for account changes and direct publishing"),该 secret 属于被限类别。发布改由 GitHub Actions 的 OIDC 身份直接授权,npm 包侧把 wuwaka/dsh-rehearsal 的 publish.yml 登记为受信发布方;依赖该 secret 的 gate 前置任务一并移除,publish 前升级 npm 以满足 OIDC 客户端要求(≥ 11.5.1)。NPM_TOKEN secret 保留作回退通道——恢复 publish 步骤的 NODE_AUTH_TOKEN 环境变量即可退回。
---
· 变更
· npm 发布通道迁移到 OIDC trusted publishing:publish.yml 不再读取 NPM_TOKEN。npm 已开始限制 bypass-2FA 的 granular token(官方通知原文:"npm tokens that bypass 2FA are being restricted for account changes and direct publishing"),该 secret 属于受限类别。发布改由 GitHub Actions 的 OIDC 身份直接授权,npm 包侧把 wuwaka/dsh-rehearsal 的 publish.yml 登记为受信发布方;依赖该 secret 的 gate 任务一并移除,publish 前升级 npm 以满足 OIDC 客户端要求(>= 11.5.1)。NPM_TOKEN secret 保留作回退通道——恢复 publish 步骤的 NODE_AUTH_TOKEN 环境变量即可退回旧通道。
---
完整历史 / Full changelog:
v0.3.152026-10-06
· 安装
npm install -g github:wuwaka/dsh-rehearsal#v0.3.15
也可锁定到字节:npm install -g(用本 Release 附带的 dsh-rehearsal-0.3.15.tgz.sha256 校验。)
---
· 变更
· npm 包内文档与仓库对齐:README 安装 pin 更新到 v0.3.15(0.3.14 包内的 pin 停在 v0.3.13,照抄会把 GitHub tag 安装指到旧版本),安全摘要补上 URL userinfo 凭据剥离;docs/architecture 双语在写回合抑制第 2 层记录 --dump-config fail-closed 前置校验。CHANGELOG 底部链接补齐 0.3.13/0.3.14/0.3.15 三个缺失定义,[Unreleased] compare 区间重置。本版不含代码变更——发布它就是为了这件事。
---
· 变更
· 包内文档追上仓库:README 安装 pin 移到 v0.3.15(0.3.14 包仍 pin 在 v0.3.13,会把 tag 安装指向旧版本),安全摘要加上 URL userinfo 凭据一行,架构文档记录抑制第 2 层里的 --dump-config fail-closed 前置校验。changelog 底部链接定义补上缺失的 0.3.13 / 0.3.14 / 0.3.15 条目,[Unreleased] compare 区间重置。本版不含代码变更——发布它就是为了让这件事成立。
---
完整历史:
v0.3.142026-10-06
· 安装 · Install
npm install -g github:wuwaka/dsh-rehearsal#v0.3.14
也可锁定到字节 / or pinned to bytes: npm install -g
(用本 Release 附带的 dsh-rehearsal-0.3.14.tgz.sha256 校验 / verify with the attached .sha256。)
---
· 修复
· run 期间收到 SIGINT/SIGTERM/SIGBREAK/SIGHUP 不再遗留影子目录:清理此前只依赖 finally 块,而阻塞型 spawnSync 期间到达的信号会直接终止进程——明文会话副本留在磁盘上,正是 SECURITY.md『每条退出路径都会删除』的保证没有覆盖到的那一条。现在信号处理器先删除影子 home(与安装前缀)再退出;此外每次 run 启动时按 ownership 标记清扫遗留的 dsh-rehearsal-home-* 目录(名字相似从不清删,只认本工具的标记)。
· 写回合对工具抑制改为 fail-closed(src/lib/shadow.js):writeReplayPatch 此前不检查 --dump-config 是否成功,抑制 0 行只体现为一行日志。dump 命令失败、输出解析不出任何行、或请求抑制却匹配到 0 个执行器行时,写路径直接中止——阶段详情报告 replay patch fail-closed (),不再带着未经验证的执行器继续;coverage.writeRounds.toolSuppression 记录校验结果。
· 写入补丁的每个 id 都经过 JSON.stringify——disable 行此前裸拼 id,与 P2-7 起就对会话派生行加引号的规则不一致。
· 环境剥除覆盖 URL 内嵌凭据: 形态的代理与 registry 值此前能穿过名字过滤原样传给子进程。名字过滤保留的值现在会剥掉 userinfo 部分。名字过滤的"误删"方向(AUTH 同时匹配 XAUTHORITY)有意保留——错误方向是给孩子更少,绝不更多;SECURITY.md 的保证措辞已改为与实现精确一致。
· 变更
· release.yml 的 tag 改经环境变量传入 shell,不再用 ${{ }} 插值;三个 workflow 的 actions/checkout 与 actions/setup-node 全部按 commit SHA 锁定,persist-credentials: false 让用不到 git 凭据的 job 不再持有驻留凭据。
· test/fixtures/ 新增 README,说明两个 .asar 是手工构造、仅包裹事实性包清单(名称与版本号)的容器,不含官方应用的任何代码、二进制或素材——再分发疑虑就此了结。回归锁:测试数 129 → 140。
---
· Fixed
· SIGINT/SIGTERM/SIGBREAK/SIGHUP during run no longer leave the shadow home behind: cleanup used to live only in a finally block, which a signal arriving during a blocking spawnSync outflies — the process died with the plaintext session copies still on disk, the one exit path SECURITY.md's every-exit-path-deletes guarantee did not cover. The signal handler now removes the shadow home (and the prefix) before exiting; in addition, every run sweeps leftover dsh-rehearsal-home-* directories at startup, gated on this tool's ownership marker (a name that merely looks ours never authorises a delete).
· The write round is fail-closed about tool suppression (src/lib/shadow.js): writeReplayPatch used to parse --dump-config output without ch
数据来自仓库的 GitHub Release,可能与插件实际版本不一致。
README
由 DeepSeek 最新模型翻译生成dsh-rehearsal
DeepSeek Harness(dsh)升级预演工具。升级前用现有会话的副本把候选版本完整跑一遍,包括「迁移成功但写不回去」这类只读检查发现不了的故障,输出可核验的升级决策报告。
这是什么
核心是两条命令(另有 report 与 clean):
- check —— 只读预检。解析 profile、patch 叠层、锁文件与 peer 图,统计会话格式代际。不安装任何东西,不写任何会话。
- run —— 预演。把候选版本装进私有 npm 前缀,在影子 DSH_HOME 里冷启动两次,对会话副本触发 v0→…→v4 迁移,校验读侧完整性,再可选执行一次无需 API 键的写回合。
两者要区分开的核心原因:
迁移成功,不等于迁移后的会话还能正常写回。
格式迁移是惰性的、只在会话被打开时发生;只读校验对「能打开但写不进去」的数据会判通过。上游 #1229 就是一份打开正常、每个写回合都失败的会话。读侧静态检查对这类损坏在结构上无法判定(七个同类工具的逐项对照见 docs/architecture.md)。无键、以用户自身会话的迁移副本为对象、真的执行一次写回合——截至 2026-10-02 逐项核对,只有本工具同时做到这三件事。
展开完整文档(README 剩余 1 节)
dsh-rehearsal DeepSeek Harness(dsh)升级预演工具。升级前用现有会话的副本把候选版本完整跑一遍,包括「迁移成功但写不回去」这类只读检查发现不了的故障,输出可核验的升级决策报告。 这是什么 核心是两条命令(另有 report 与 clean): - check —— 只读预检。解析 profile、patch 叠层、锁文件与 peer 图,统计会话格式代际。不安装任何东西,不写任何会话。 - run —— 预演。把候选版本装进私有 npm 前缀,在影子 DSH_HOME 里冷启动两次,对会话副本触发 v0→…→v4 迁移,校验读侧完整性,再可选执行一次无需 API 键的写回合。 两者要区分开的核心原因: 迁移成功,不等于迁移后的会话还能正常写回。 格式迁移是惰性的、只在会话被打开时发生;只读校验对「能打开但写不进去」的数据会判通过。上游 #1229 就是一份打开正常、每个写回合都失败的会话。读侧静态检查对这类损坏在结构上无法判定(七个同类工具的逐项对照见 docs/architecture.md)。无键、以用户自身会话的迁移副本为对象、真的执行一次写回合——截至 2026-10-02 逐项核对,只有本工具同时做到这三件事。写回合用官方 @deepseek-ai/dsh-llm-replay 重建该会话自己录制流中的模型响应,因此不需要 API 键,也不会发起真实的模型请求。 什么时候需要它 - 升级前想知道插件与 peer 依赖会不会在新版本上坏:check 逐条列出依赖冲突,并区分「新破坏」与「既有问题」。 - 官方桌面或社区桌面(如 AnywhereLab 的 DSH Desktop)托管着会话,升级前不想手工搬 home:省略 --home,check 与 run 会自动发现并验证已登记桌面宿主的 home,报告写明来源。 - 会话历史不可替代,升级需要退路:预演全程在影子 DSH_HOME 里进行,真实安装与会话原样不动,clean 之后不留痕迹。 - 老格式的会话升级后还能不能打开、还能不能写:run 对会话副本触发迁移并验证写回,「写不进去」由此有判定,而不是靠猜。 - 升级决策要有可核验的依据:每次预演落盘 report.json 与 report.md,判定来自产物,报告写盘前脱敏。 为什么是独立 CLI,而不是插件 预演要安装候选版本、以私有 DSH_HOME 冷启动它。装在 profile 里的工具做不到这两件事:它随宿主一起被替换,也拿不到私有的影子环境。更要紧的是时机:被测试的 profile 起不来时,恰是最需要工具的时刻,工具必须还活着。这一判断出自 dsh-plugin-gating-hub(npm 包名 @noob-stupid/dsh-plugin-console,README.zh.md:282);本工具把它落成安装形态——独立 CLI,不经过 dsh plugin add。 安装 npm install -g dsh-rehearsal # npm registry npm install -g github:wuwaka/dsh-rehearsal#v0.3.16 # 或固定到 GitHub tag 两条路径都不需要 npm 账号。需要把安装内容固定到字节时,用 Release 附带的 tarball 与 .sha256(校验步骤见 PUBLISHING.md)。 快速开始 dsh-rehearsal check --candidate 0.2.0-rc.2 # 只读,秒级 dsh-rehearsal run --to 0.2.0-rc.2 --sample 20 # 会安装候选版本、会复制会话副本 dsh-rehearsal clean --yes # 清理产物 常用选项: | 选项 | 作用 | | --profile / --home | 指定 profile 与 DSH_HOME;省略 --home 时按 DSH_HOME → 默认 home → 已登记桌面宿主(官方 DeepSeek Harness Desktop、社区 DSH Desktop/DSHDesktop)的顺序发现并验证 | | --sample N / --full | 限制或放开参与预演的会话数 | | --skip-write | 跳过写回合 | | --keep | 保留影子数据用于调试(内含会话明文副本) | | --shadow-dir <dir> / --prefix-dir <dir> | 指定影子 home / 候选安装目录;两处目录不会自动清理(影子 home 内含会话明文副本),非空且无本工具 ownership 标记的目录会被拒绝写入,clean --yes 只清理带标记的默认产物目录 | | --allow-tools | 显式允许执行历史工具调用 | 其余选项以 dsh-rehearsal --help 为准。 输出长什么样 check 的实际输出(profiles 与代际分布做了省略,本机 profile 名不在其中): dsh-rehearsal check — verdict: upgrade-with-conditions [PASS ] a-inventory — home=default; profiles=[…]; live=desktop (bundles=11, patchRows=16, plugins=10, 3 non-reproducible); sessions=52 (…) [WARN ] b1-peer-graph — 10 plugins analyzed against candidate=0.2.0-rc.2 current=0.2.0-rc.2; 19 findings (0 newly-broken high, 9 pre-existing) rollback note: sessions migrated to v4 are REFUSED (not rewritten) by older hosts — downgrade after migration is not possible; rollback relies on a pre-upgrade snapshot home=default 而不是路径:报告里的 DSH_HOME 字段只写形状或来源(default / custom / desktop:<host-id>),绝对路径不进入字符串。 退出码: | 退出码 | 含义 | | 0 | 检查通过,可升级 | | 1 | 有条件升级,或结果不完整 | | 2 | 不建议升级 | | 3 | 预演本身失败 | 阶段判定来自产物,不来自候选 dsh 自身进程的退出码。 报告 每次预演输出两份文件:report.json(机器可读)与 report.md(人读摘要)。report.json 是覆盖率、阶段判定、warnings[] 与 evidence 的事实来源。 覆盖范围 迁移覆盖与写回合覆盖是两件事,不要互换引用。写回合只覆盖"录制中出现过的工具全部为只读"的会话。 一次 Windows 运行的实测(2026-10-02): | | 会话数 | 占比 | | 总数 | 52 | — | | 可预演(未迁移至 v4 且 cwd 可用) | 24 | 46% | | 通过只读工具闸门 | 5 | 全库 9.6% | 写回合占比不是迁移覆盖率。逐会话的覆盖情况由报告本身给出(coverage 节)。 安全摘要 - 候选版本装入私有 npm 前缀,DSH_HOME 指向影子目录。 - 会话副本的 cwd 重写入影子工作区。 - 真实 home 与桌面宿主安装目录只读;发现与探测只做文件解析。 - 形如凭据的环境变量全部剔除,保留变量的 URL 值再剥掉内嵌的 userinfo 凭据;遥测强制关闭。 - 历史工具调用默认不执行(fail-closed 只读允许清单)。 - 报告写盘前脱敏,脱敏未过则拒绝出报告;影子数据除 --keep 与显式 --shadow-dir 外一律清理,clean 只删除带 ownership 标记的产物目录。 准确的保证、显式危险的选项、以及范围之外,见 SECURITY.md。 兼容性 | 项目 | 状态 | | Node.js | >=22.19(需 node:zlib 的 zstd) | | run | Tested:Windows 真机会话 | | check | Tested:Windows;CI:macOS / Linux / Windows | | Desktop 托管 profile(会话迁移演练) | Tested:社区桌面托管数据,Windows(2026-10-02) | | Desktop home 自动发现 | Windows:官方默认安装与社区 bundle 实测;macOS / Linux:Inferred(按上游布局),未在真机验证 | | 桌面内置运行时探测 | 官方 Windows 默认安装实测(asar 描述文件);自定义安装目录与 Linux AppImage:Not covered | | 桌面内置运行时作为预演对象 | Not tested(预演对象是 npm 候选,报告带范围警告) | | 候选来源 | npm / 自托管的 web、headless profile | | 运行时依赖 | semver | Tested 版本:候选 dsh 0.2.0-rc.2、Node 22.22.2、Windows、会话代际 v0/v3/v4(Tested on 2026-10-02);桌面探测:Windows 官方 0.2.0-rc.2 静默安装,2026-10-05。Tested ≠ supported:未列出的组合按未测试处理。 限制 - run 预演的是自装 npm 候选,不是桌面应用内置运行时:对桌面托管的 home,判定覆盖 npm 依赖闭包与会话数据格式,桌面应用自身的更新通道不在预演范围内(警告与报告中的 coverage.host 字段写明这一范围)。 - 桌面探测只覆盖默认安装位置:官方与社区桌面的安装器都允许自选目录,自定义安装的宿主探测不到内置运行时版本,用 --current 手工指定。 - macOS 的官方/社区桌面路径按上游布局推断,未在真机验证;Linux 官方桌面是 AppImage,外部不可读,明确不支持。 - 经 anywhere-labs Recovery 自选数据目录、或 DSH_DATA_ROOT / 便携版 DSH_HOME 重定向过的桌面 home 不在自动发现范围内,用 --home 指定。 - 同机多个桌面宿主的内置运行时版本不一致时 current 判为未知(报告列 currentAmbiguous),用 --current 指定,或卸载闲置宿主;判定方向刻意保守。 - 写回合覆盖窄于迁移覆盖,见覆盖范围。 - 带 agentPreset 的会话只做格式级验证,预设组合不重建。 - 附件旁路数据(~/.dsh/attachments 等)不复制、不校验。 - 预演证明写路径可通行,不证明自由行为:replay 脚本只包含该会话录制里出现过的调用。 深入 - docs/architecture.md —— 为什么是外部 CLI、模块划分、与同类工具的分工 - docs/FAILURE_MODES.md —— 每条日志形态能证明什么、不能证明什么 - SECURITY.md · AUDIT.md · CHANGELOG.zh.md · PUBLISHING.md 开发 npm install && npm test node src/cli.js check --candidate 0.2.0-rc.2 CI 跑 npm ci + npm test,矩阵 windows / macOS / linux × Node 22.19 / 24.x。CI 不跑 run:它会安装约 500 个包并重放会话副本,在共享 runner 上既不确定也不合适。发布流程见 PUBLISHING.md。 MIT License。与 DeepSeek 无关联、未获其背书。上游 deepseek-ai/deepseek-harness(官方桌面在其 apps/desktop);社区桌面宿主与活跃缺陷跟踪 anywhere-labs/dsh-desktop。
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
wuwaka/dsh-rehearsal
DeepSeek Harness 升级演练命令行:静态对等图预检 + 在一次性 DSH_HOME 里做无密钥真实会话迁移与写入轮次演练。外部命令行,不是插件。
相关插件 · 其他
模型破甲清洗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
这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。