dsh-permission-panel
DSH(DeepSeek Harness)的工作区权限面板:一页看完所有会话的权限,想改哪个点哪个,还能一次改一批。
同一份源码同时支持 Web 与 Desktop 两种载体。
本项目的代码、测试、文档与提交信息等产物均由 AI 生成,作者只提供想法与方向。详见文末 AI 生成声明 与 免责声明。
它解决什么问题
DSH 里每个会话都有自己的权限预设(仅可查看 / 工作区内修改 / 完全权限),但这些设置散在各处:要改一个会话得先进那个会话,想确认「到底哪几个会话是完全权限」就得一个个翻。
这个面板把所有会话的权限收进一张表:按工作区分组、可搜索、可按权限等级筛、可勾选批量改。它不存任何权限状态——读的是宿主当前的权限,改也是走宿主的原生命令,所以面板显示的和会话里实际生效的永远是同一个东西。
安装
# 从 npm 安装(推荐)
dsh plugin --profile <profile> add dsh-permission-panel
# 需要固定某一版时
dsh plugin --profile <profile> add dsh-permission-panel@3.3.0
--profile是必填项,没有默认 profile。--profile desktop只能用 DSH Desktop 自带的dsh;普通@deepseek-ai/dsh会拒绝。- 卸载:
dsh plugin --profile <profile> remove dsh-permission-panel。 - 装完重启 DSH(Desktop 重启应用,Web 重启
dsh web)。之后在 设置 → 插件 能看到「权限面板」与「工作区权限」两页。
从源码或 tarball 安装、以及包内字段的说明,见 docs/COMPATIBILITY.md。
使用
打开面板
两个入口,看到的是同一份数据:
- 会话头部的「权限」按钮:在会话里直接点,省掉「设置 → 插件 → 工作区权限」三步。
- 设置 → 插件 → 工作区权限:完整页面,适合一次整理多个会话。
看懂这张表
每个会话一行:彩色首字头像、标题、工作目录,正在运行的带绿点。子代理会话不列。
按工作区分组,默认收起。组头显示工作区名、路径、会话数和已选数,点组头可单独折叠;不属于任何工作区的会话落在末尾「未分组」。工具栏有「展开全部 / 折叠全部」。
某个会话的权限还没读出来时,那一行会显示「待读 / 读取中 / 失败」。面板是在向宿主查询,不会把会话打开或激活,所以可以放心让它在后台读;实在读不出来点一下刷新。
找到你要改的会话
- 搜索:按标题、目录、工作区名匹配,边打边出结果,实时显示「匹配 N / 总数」。有搜索词时会自动展开所有分组,免得匹配项藏在折叠里被当成没有结果。
- 按权限等级筛选:工具栏一排标签,点「完全权限」就只剩完全权限的会话。标签上带数量,数量会跟着搜索一起变。
- 定位当前会话:从会话头部打开时,点这个按钮会清掉挡路的搜索词和筛选、展开它所在的分组,把这一行滚到屏幕中间并高亮一下。
搜索和筛选可以叠加使用。
改权限
权限预设就三档:仅可查看、工作区内修改、完全权限。
改单个:点这一行右边的下拉,选一档,立刻生效。
改一批:勾选要改的会话,底部出现批量条,选预设后点「应用到所选」。部分失败会告诉你哪几个没改成,不会假装全部成功。
筛选只作用于看得见的行:被搜索或筛选藏起来的行会自动从选中里去掉——批量操作只对眼前这些行生效,不会悄悄改到你没看见的会话。折叠不影响已勾选:把组收起来,之前勾的还在。
切到完全权限会先确认:勾选风险提示才能继续。批量切也只问一次,不会问十遍。
新会话的默认权限
面板里有「新会话默认权限」一项,改的是之后新建的会话用哪个预设,已经存在的会话不受影响。
顶部那张卡片:当前会话实际生效什么
从会话头部打开时,面板顶部会显示当前会话的标题、它现在实际生效的预设,以及宿主对这个预设的原文说明。这里的值不是面板自己记的,是现场从宿主读回来的——所以在别处改过权限,重开面板或点「重新读取」就能看到最新值。
这张卡片只在会话头部入口出现。设置页没有「当前会话」这个概念,DSH 也没有受支持的接口能回答主视图里是哪个会话,所以设置页不猜,直接告诉你从会话头部进。
快捷键
| 命令 | 默认键位 | 载体 |
|---|---|---|
| 重启 DSH(权限面板) | Ctrl+Shift+R(macOS Cmd+Shift+R) |
仅 Desktop |
它注册进官方快捷键服务,所以直接出现在 设置 → 快捷键 里,可以像官方命令一样改键、恢复默认、参与冲突检测。浏览器里没有应用可重启,所以这个键位只在 Desktop 存在。
按下后先弹出一张居中的确认卡片(毛玻璃 + squircle 圆角),点「立即重启」DSH 就会关掉并自动重新启动;按 Esc、点「取消」或点卡片外部都不会重启。正在运行的任务会随重启中断,所以这里始终先问一句。
不弹官方对话框是刻意的:DSH Desktop 没有提供「静默重启」的接口,插件这套机制改成了自己起一个脱离进程树的助手——它先等 Electron 主进程退出,再把应用重新拉起,所以既不会有崩溃提示,也不需要手动点确认。浏览器(Web)载体里没有应用可重启,所以这个键位只在 Desktop 存在。
在 设置 → 插件 → 权限面板 里可以关掉这个快捷键;关掉只是按下不执行,键位和冲突检测都不受影响。
几点需要知道
- 归档会话不会出现在列表里,卡片底部会写跳过了几个——归档的会话宿主已经不允许再为它执行操作,给你一个按了没用的开关不如不给。
- 面板不保存任何权限状态。你在别处改过某个会话的权限,重新打开或点刷新就能看到最新值。
- 完全权限是个大权限,所以切换前一定会让你确认,批量切也是。
给开发者
| 文档 | 内容 |
|---|---|
| docs/DEVELOPMENT.md | 测试怎么跑、每个测试守着什么、调试工具、以及一些设计取舍的原因 |
| docs/COMPATIBILITY.md | DSH 0.2.x 哪些接口能用、插件字段的含义、从旧包名迁移 |
| docs/RELEASING.md | 发版流程、npm 可信发布者登记、发布后验收、失败恢复 |
| AGENTS.md | 改动代码前必读的规则(分支、提交规范、检查命令) |
版本
当前 3.3.0。3.x 主要节点:3.0.x 修掉归档流锁死刷新、注入缺失、冷读失败静默丢弃、切换后不回写等一批缺陷;3.1.0 增加搜索、两级全选、按工作区分组与当前会话策略卡片;3.2.0 把工作区分组改为默认折叠并补上展开/折叠全部与折叠组已选计数;3.3.0 增加按权限等级筛选与定位当前会话按钮。
更早的记录可在 git 提交里查到。
AI 生成声明
本项目的代码、测试、文档、提交信息等全部产物均由 AI 生成,作者只提供想法、方向与验收标准。AI 生成的内容可能包含错误、遗漏或不适用于你的环境的假设;请把它当作需要你自己复核的草稿,而不是权威实现。
免责声明
本项目仅供个人学习和研究使用。
- 本项目与 DeepSeek 官方无关,不是官方产品,也不受官方支持。
- 软件按「现状」提供,不附带任何明示或暗示的担保,包括但不限于适销性、特定用途适用性与非侵权担保。
- 使用本软件造成的任何直接或间接后果(包括但不限于权限配置错误、数据丢失、系统损坏)由使用者自行承担。
- 请勿将本项目用于任何违反当地法律法规或服务条款的用途。
No comments yet. Be the first to write one.