DeepSeek Harness Hub
← 返回列表

会话级授权AnakinCao/dsh-session-allow

DeepSeek Harnessspec-screened在 GitHub 查看 ↗
未验证

在权限弹窗中一键允许本会话同级别请求,免重复确认

尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/8/31 · 已提供中文文档

DSH Web GUI 插件:审批对话框中的会话级“允许本次会话”选项(按模式持久授权,localStorage)+ 右侧面板自动打开防护

综合分
29.1
GitHub 分
29.1
用户评分
★ Stars
1
周下载量
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add AnakinCao/dsh-session-allow
该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/16(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

dsh-session-allow

English: README.md

DSH(DeepSeek Harness)Web GUI 插件:在权限确认弹窗中新增「本次会话允许」选项。

点击后,按权限级别记录一条会话级授权(localStorage 持久化,按会话 ID 隔离)。本会话内后续同级别的越权请求(sandbox_permissions 升级)会自动放行,不再反复弹窗确认;不同级别仍会正常弹窗。

效果

| 场景 | 行为 |
|---|---|
| 工具请求升级到 danger-full-access | 弹窗:拒绝 / 允许一次 / 本次会话允许 danger-full-access |
| 点击「本次会话允许」 | 当前请求放行 + 该级别记入本会话授权,弹窗消失 |
| 本会话内再次请求 danger-full-access | 静默自动放行,不再弹窗 |
| 本会话内请求 workspace-write(未授权级别) | 仍正常弹窗 |
| 弹窗底部 | 展示本会话已授权的级别 chips,可点 × 撤销 |
| 刷新页面 / 新会话 | 授权按会话 ID 保留 / 隔离,互不影响 |

原理(不修改任何核心包)

核心的审批面板注册在 conversation.composer 链式 slot(priority 1)。本插件以 priority 0 注册同名 slot、select 逻辑相同——链式 slot 按优先级取第一个命中的 entry,因此插件面板完整接管弹窗。授权记录在 localStorage["dsh.sessionAllow.v1"],匹配到授权时在客户端直接代答 allowed-once(服务端审计照常记录 approval/asked + approval/decided)。

授权键:mode:(从 reason escalate sandbox to : ... 解析);非越权格式兜底为 tool::。

安装

方式一:dsh plugin 安装(推荐)

dsh plugin --profile web add https://github.com/AnakinCao/dsh-session-allow.git

dsh 会把本包加入 ~/.dsh/profiles/web/package.json 的 dsh.profile.bundles,启动时由包内 cordis.patch.yml 自动插入 loader entry 并挂载客户端 bundle。

方式二:手动安装

1. 把仓库内容放到 ~/.dsh/profiles/web/node_modules/dsh-session-allow/(或 pnpm add)。
2. 在 ~/.dsh/profiles/web/cordis.patch.yml 末尾追加:

- insert:
- id: dsh-session-allow
name: 'dsh-session-allow'

两种方式二选一,勿重复注册(loader 会报 duplicate entry)。

生效

重启 dsh(或重载 profile)并刷新 Web GUI。触发一次越权请求(如让 agent 用 sandbox_permissions 重试被拒绝的命令),弹窗应出现三个按钮。

验证

1. 弹窗出现「拒绝 / 允许一次 / 本次会话允许 …」三个按钮。
2. 点击「本次会话允许」→ 当前请求放行。
3. 再次触发同级别越权 → 无弹窗,直接执行。
4. 弹窗底部 chips 显示已放行级别,点 × 撤销后同级别恢复弹窗。
5. 打开另一个会话 → 该级别仍然弹窗(授权按会话隔离)。

卸载

dsh plugin --profile web remove dsh-session-allow

或在 profile 的 cordis.patch.yml 中删除对应 insert,并删除 node_modules/dsh-session-allow。授权数据位于浏览器 localStorage["dsh.sessionAllow.v1"],可手动清除。

文件结构

dsh-session-allow/
├── package.json          # dsh.client / dsh.bundle 声明
├── cordis.patch.yml      # loader entry 注册
├── lib/
│   ├── index.js          # host 侧空插件(占位)
│   └── client.js         # 客户端 bundle(弹窗接管 + 会话授权)
├── test/
│   └── behavior.test.mjs # 授权/自动放行/撤销回归测试
└── README.md

License

MIT

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

同作者(AnakinCao)的其他插件

💬 加入 DPharness 群聊

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

点击加入 QQ 群
DPharness 群聊二维码,手机 QQ 扫码进群
扫码进群