在 DeepSeek Harness (DSH) 中,暂停一个正在运行的目标是一个不可逆的操作:它会立即中止当前的轮次,停止所有正在执行的子任务(包括工具调用、命令执行和子代理)。为了避免误触导致的工作流中断,需要引入确认机制。dsh-goal-pause-guard 是一个为此设计的插件,它在检测到用户点击暂停按钮时,拦截操作并弹出确认模态框。
核心功能¶
该插件通过以下机制实现功能:
- 双重检测机制:通过识别
aria-label(支持 pt-BR、en、zh 语言)或 SVG 图标路径(如IconPauseOutline16)来定位暂停按钮。定位范围限定在[data-goal-bar]内部。 - 确认模态框:在用户点击暂停后,拦截操作并显示确认窗口。
- 确定性行为:插件不依赖定时器、网络请求或本地存储,确保行为完全可预测。
- Fail-open 机制:如果无法识别按钮(例如页面结构变更),点击操作会直接通过(fail-open),确保插件永远不会导致原本正常的暂停操作失败。
- 动态重定位:在确认时,插件会重新定位当前激活的暂停按钮,防止因页面重渲染导致点击目标错误。
安装与启用¶
该插件作为 web 配置文件的 Bundle 插件运行。安装后无需额外配置,插件会在启动时自动激活。
- 进入插件所在的目录。
- 执行安装命令:
dsh plugin --profile web add /caminho/para/dsh-goal-pause-guard
- 重启 DSH Web 实例以加载插件:
dsh web
典型用法¶
- 触发暂停:在运行中的 Goal Bar 上,用户点击 “Pause goal” 按钮。
- 模态框弹出:Guard 捕获点击事件,打开确认模态框(支持 Cancel、Esc 或点击背景关闭)。
- 确认或取消:
- 确认:用户点击 Confirm。插件重新定位按钮并执行一次未信任的点击,触发 DSH 的
goals.pauseRPC,导致目标暂停及当前轮次中止。 - 取消:用户点击 Cancel、Esc 或背景。模态框关闭,目标继续运行,没有任何副作用。
- 确认:用户点击 Confirm。插件重新定位按钮并执行一次未信任的点击,触发 DSH 的
注意事项与兼容性¶
- 兼容版本:该插件已验证兼容 DSH 0.1.5-alpha.2。
- 无状态设计:插件不包含定时器、网络请求或存储逻辑,符合轻量级工具的定义。
- 许可证:遵循 MIT 许可证。
- 目录链接:更多详情和源码可参考插件目录页或 GitHub 仓库。