🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI
广告☁️ 云服务器特惠阿里云首购 8 折 · 腾讯云合作特惠
DeepSeek Harness Hub
← 返回列表

frederico-kluser/dsh-goal-pause-guard

DeepSeek Harnessspec-screened扫描:低风险在 GitHub 查看 ↗
需源码安装

用于 DeepSeek Harness 的插件:在暂停正在运行的活动前弹出确认模态框。

暂不能直接安装(需源码编译或环境不满足):engines.node 要求 >=24,不满足 Node 22.19.0。 · 最近上游提交 2026/9/18 · 已提供中文文档

DeepSeek Harness (DSH) 插件:暂停正在运行的活动前的确认弹窗——暂停会立即中断当前轮次和子任务。

综合分
30.6
GitHub 分
30.6
用户评分
—
★ Stars
1
周下载量
—
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add frederico-kluser/dsh-goal-pause-guard
engines.node 要求 >=24,不满足 Node 22.19.0,改用 GitHub 源安装
信任档位:已验证本站已于 2 天前真实安装成功
是什么
dsh 原生插件 · chat
装得上吗
本站已真实安装成功(非静态推断)
安全吗
本站尚未对该插件做风险分级(暂未覆盖,不等同于无风险)
还在维护吗
活跃:最近一次提交在 7 天前

档位由下列信号合成:本站实装验证(真实安装,当前最高到 L4)· 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。下方各区块是它的证据明细。 验证判据与等级说明 →

🟢实装验证通过· 2026/9/24
由本站实装验证器在真实 dsh 环境安装成功,非静态推断。
数据截至 2026/9/20(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
安装兼容性检查需源码安装

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✗npm 包dsh-goal-pause-guard(未发布到 npm,仅可源码安装)
✗Node 引擎要求 >=24 · 基线 Node 22.19 不满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

engines.node 要求 >=24,不满足 Node 22.19.0

验证方式:npm registry 存在性 + package.json 静态校验 · 最后验证 2026/9/21 01:59:14

用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

由 DeepSeek 最新模型翻译生成
dsh-goal-pause-guard

用于 DeepSeek Harness 的插件:在暂停正在运行的活动前弹出确认模态框。

license
node
dsh
ci
topic: dsh-plugin

暂停一个 goal 可不是个小动作:它会立即中断当前轮次以及所有正在执行的子任务。本插件会在暂停前请求确认。

暂停 goal 前的确认模态框

为什么

在 harness 中,暂停一个已武装的 goal 会触发一连串反应(由
goal-round-driver、goal/changed → agent.cancel、keepInbox 驱动):

1. 正在进行的轮次会被中止——agent 会在执行到一半时停止;
2. 正在执行的子任务也会随之停止(工具、命令、子 agent);
3. 自动继续会被解除武装——在人工执行 resume 之前不会有新的轮次。

本插件正是把这一效果挡在一道关卡之后:一次误点暂停按钮,不能关掉一个正在运行的活动。

插件做了什么

点击 "Pause goal"(人类点击,trusted)
│
▼
┌──────────────┐   在 document 上捕获(capture phase,早于 React)
│ GUARD        │   isPauseButton? ── 否 ──► 点击放行(fail-open)
└──────┬───────┘
▼ 是
确认模态框  (pt-BR / en / zh,跟随宿主的明暗主题)
├── 取消 / Esc / 背景 ──► 什么也不发生
└── 确认 ──► 对当前暂停按钮重新发起 UNTRUSTED 点击
│  (经过 guard 但不会再次拦截)
▼
GoalBar → goals.pause(Remote RPC)
▼
host:goal 暂停 + 轮次中止 + 子任务停止

- 双通道检测——按钮通过本地化的 aria-label
(Pause goal / 暂停目标,即 goal 栏的两个词典)
或通过暂停图标的 SVG path(IconPauseOutline16)来识别,且始终位于
[data-goal-bar] 内(官方 e2e 自身使用的标记)。
- 按设计 fail-open——如果按钮无法识别,点击会放行,
暂停行为与没有插件时完全一致。确认关卡绝不能破坏它所保护的操作。
- 无循环、无陈旧引用——确认时会重新定位当前的暂停按钮
再重新点击(在打开与确认之间的重新渲染,绝不会把“确认”变成“点了别的东西”);按钮被禁用或
在此期间移除 = 什么都不会发生。
- 一次只显示一个模态框 — Esc、背景和取消都会关闭它;焦点会转到
确认按钮,并在关闭时回到暂停按钮。
- 确定性 — 没有定时器、没有网络、没有存储。宿主那一半是一个
空的 apply(与 @deepseek-ai/dsh-client-ui-goal 相同的模式):不会触碰
任何 harness 状态。

安装

作为 web profile 的 bundle — 包的 dsh.bundle.patch 会自行激活该层
(自己的 insert,不会与任何其他 id 冲突):

dsh plugin --profile web add /caminho/para/dsh-goal-pause-guard
dsh web   # 重启实例;插件会在启动时加载

卸载:从 ~/.dsh/profiles/web/package.json 中移除 bundle 那一行
(dsh plugin --profile web remove dsh-goal-pause-guard)并重启。

验证

所有验证都隔离运行 — 没有任何测试会触碰真实的
DSH 实例(既不碰 3080 端口,也不碰 $DSH_HOME):

pnpm install
pnpm run typecheck   # tsc 严格模式
pnpm run build       # dist/(宿主)+ lib/client.js(浏览器,closure-factory)
pnpm test            # 23 个测试:检测器 + 行为 + 产物 e2e

| 层 | 证明 |
| --- | --- |
| 检测器(单元,jsdom) | 两个识别通道;拒绝其他一切(resume/edit/clear、栏外按钮、外来图标、相似前缀) |
| 行为(jsdom) | 人类点击会打开模态框,且永远不会到达应用;确认会以 untrusted 方式重新点击一次;取消/Esc/背景不会暂停;第二次点击被吞掉;确认时按钮被移除/禁用不会触发;disposer 会移除一切 |
| 产物 E2E | 发送的 lib/client.js 会按照 harness 的加载方式被加载(window.__ModuleLoader__.load({id, factory})),并在其上驱动整个流程 |

上面的截图是真实的:在隔离启动(临时 $DSH_HOME + 独立端口)中
用无头 Chromium 捕获,点击真正的暂停按钮
(通过 CDP 的 trusted 事件)— guard 打开了模态框,取消没有发送任何暂停。

结构

dsh-goal-pause-guard/
├── package.json             # dsh.bundle.patch + dsh.client(platform web)+ exports["./client"]
├── cordis.patch.yml         # 第 1 层(bundle):自己的 insert,没有 !!js,没有 config
├── src/index.ts             # 宿主那一半:空的 apply(Loader 入口)
├── client/
│   ├── guard-core.ts        # 全部逻辑:检测器、文本、模态框、install(0 imports)
│   ├── index.ts             # 插件主体:inject [] + 通过 ctx.effect 的 apply(ctx)
│   ├── guard.css            # 使用 --dsw-* token 的模态框(浅色/深色),gpg- 类
│   └── client.d.ts          # 子路径 ./client 的声明
├── scripts/build-client.mjs # esbuild → lib/client.js(closure-factory,内嵌 CSS)
├── test/                    # jsdom + node:test,按项目离线
└── dist/, lib/              # 构建产物(宿主那一半 / 浏览器 bundle)

兼容性

已针对 DSH 0.1.5-alpha.2 验证(已安装的活跃版本,从
源)。检测器锚定在表面上的两个稳定事实——data-goal-bar
以及 goal 字典中 action.pause 的 aria-label。如果测试框架同时更改
两者,守卫会变为 fail-open(无模态的暂停)——永远不会损坏。

许可证

MIT © Frederico Kluser

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

💬 加入社群

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

DPharness QQ 群二维码,QQ 扫码进群
QQ 扫码进群
DPharness 飞书群二维码,飞书扫码进群
飞书扫码进群