dsh-permission-no-confirm:切换权限模式时跳过风险确认弹窗

前言

在 DeepSeek Harness(DSH)里开发或调试智能体时,经常要在「只可查看」「工作区内修改」「完全权限」「自动审查」之间切换。选「完全权限」或「自动审查」时,原版界面会先弹出「确认启用完全权限?」一类风险确认框,还要勾选声明再点确认。对需要频繁切权限的同行来说,这一步会打断操作节奏。下面介绍社区插件 dsh-permission-no-confirm(维护者 SwufeFox,分类 admin-security):它只去掉这层确认弹窗,其余入口、文案和权限行为仍走 Harness 原有逻辑。

这是什么

dsh-permission-no-confirm 是 DSH 的 bundle 型插件(MIT 许可证,当前 package 版本 1.0.0)。一句话定位:在三个常见入口里选中「完全权限」或「自动审查」时直接生效,不再出现原版的风险确认弹窗。

Harness 原版把风险弹窗写死在权限 UI 模块里,没有对外开关。本插件通过 Cordis 补丁禁用原版 ui-permission 行,改由本包提供的浏览器端模块渲染同一套权限界面,仅在实现上移除三处「门禁」:弹层选择分支、设置行选择分支,以及 /permission 选项上的 confirmation 元数据。关闭的是确认 UI,不是权限模式本身;切到完全权限或自动审查之后,沙箱与审批仍由当前模式决定。

涉及的三个入口

资料中与原版一致、本插件仍保留的入口如下:

  • 当前会话:输入框旁的权限按钮(只可查看 / 工作区内修改 / 完全权限 / 自动审查)
  • 新会话默认:设置 → 通用 → 权限
  • 斜杠命令:/permission

在上述任一入口选择「完全权限」或「自动审查」时,原版会先弹窗;安装本插件后选择会立即调用切换函数,图标与文案不变。

安装与启用

插件以 bundle 形式安装,使用 Harness 的 plugin_manager,不要凭插件名自行拼接 dsh plugin add github:... 一类命令。资料中的安装方式为:

本地或已下载的插件目录:

plugin_manager install_bundle  target=<本目录绝对路径>

也可通过 plugin_manager install_bundle 工具,将 target 指向插件根目录。安装成功后,在 设置 → 插件 中可见名称为「权限切换免确认」的插件行。

从 GitHub 获取源码后,同样把 target 指向该目录(profile 中为目录链接,更新时可对该目录做版本同步后再使用 bundle)。仓库地址:https://github.com/SwufeFox/dsh-permission-no-confirm。

安装前请自行阅读仓库源码与 MIT 许可证;插件会在当前 DSH 进程权限下运行,与社区目录站点一样,并非 DeepSeek / 幻方官方应用商店条目,安装决策需自行评估。

典型用法

安装并完成 bundle 启用后,无需额外配置项。按平时习惯操作即可:

  1. 在会话输入框旁打开权限菜单,点选「完全权限」或「自动审查」,应直接切换,无风险确认层。
  2. 在 设置 → 通用 → 权限 中修改新会话默认,选中上述两种模式时同样免确认。
  3. 在聊天中执行 /permission,在弹层里选择对应项,选项不再携带会触发通用确认框的 confirmation 元数据。

若需验证插件产物行为,维护者在仓库中提供了 Node 测试(需在插件目录内、且已具备依赖环境时执行):

node --test test/client.test.mjs

测试加载真实 lib/client.js,断言权限插槽与 /permission 装饰注册正常,且渲染树中不存在 RiskConfirmation。

实现要点(便于排查问题)

了解实现方式有助于判断是否与当前 Harness 版本兼容:

  1. cordis.patch.yml 将原版行 ui-permission 设为 disabled: true。
  2. 同一补丁插入本包行 permission-no-confirm,由 lib/client.js 提供 UI。
  3. lib/client.js 由 scripts/build-client.mjs 从已安装的原版 @deepseek-ai/dsh-client-ui-permission-presets 派生;脚本对每处改动做行断言,原版结构变化时会构建失败而非静默产出错误文件。

因此,官方若调整权限界面(新入口、新预设或新风控),本插件不会自动跟随,需要重新运行 node scripts/build-client.mjs 并核对差异。

适用场景与注意

适合:本地或受控环境中频繁切换完全权限 / 自动审查、且你已理解高权限风险的开发者。

务必注意:

  • 不要单独停用插件行 permission-no-confirm:原版 ui-permission 已被补丁禁用,单独停用会导致权限控件从界面消失。若要恢复原版弹窗,应在 bundle 级别停用或卸载,例如:
  plugin_manager remove_bundle target=dsh-permission-no-confirm

移除后原版行恢复启用,风险确认弹窗回归。

结尾

dsh-permission-no-confirm 解决的是「切到高权限模式前多一步确认弹窗」的操作摩擦,不改变权限模式语义。若你的 workflow 需要保留官方风险提醒,请勿安装;若已安装并想回到原版交互,用 plugin_manager remove_bundle 卸载 bundle 即可。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜