Back to home@xtd1145

dsh-full-access-switch

DSH one-time Full access switch: no per-session confirmation for new workspaces/conversations

Stars
0
Language
PowerShell
Created
Aug 23, 2026
Updated
Aug 23, 2026

Introduction

⚠️ 非官方补丁:本项目是用户级的社区补丁,针对 DeepSeek Harness 的已发布 bundle 做修改, 与 DeepSeek 官方无关,不随官方版本升级自动生效(升级后请重新运行 install.ps1)。

DSH Full Access 一次性开关(不再每次确认)

给 DeepSeek Harness(DSH,v0.1.1-rc.2 的 web profile)加一个一次性开关: 打开后,新工作区 / 新对话不再需要逐个确认 Full access(danger-full-access)

它做了什么

  1. 新会话默认权限:向 $DSH_HOME/settings.yaml 写入 permission.defaultPreset: danger-full-access。DSH 会在每次创建新会话(新工作区、 新对话)时自动把会话固化为 danger-full-access + never,全程零确认。 (settings 文件有 chokidar 热发布,运行中的服务立即生效,无需重启。)

  2. GUI 风险确认门:给两处前端 bundle 打补丁,新增一个浏览器本地持久化的 "不再询问"开关(localStorage key dsh.permission.skipFullAccessConfirmation):

    • 设置 → 权限 那一行下方新增复选框 「不再询问 Full access 确认(记住我的选择)」
    • 勾选后,三处 "Enable Full access?" 弹窗全部跳过:
      • 设置页权限行的切换
      • 输入框下方的权限选择器(composer)
      • /permission 命令弹窗

安装

powershell -NoProfile -ExecutionPolicy Bypass -File .\install.ps1

脚本会自动定位 DSH 安装位置(优先 $env:USERPROFILE\.dsh\profiles\node_modules\@deepseek-ai\, 再找 npm-cache\_npx\*\node_modules\@deepseek-ai\),对每个文件:

  • 已打过补丁(含 FULL_ACCESS_SKIP_KEY)→ 跳过,幂等;
  • 未打过 → 先备份为 <文件名>.bak-<时间戳>,再应用字符串补丁;
  • 找不到目标文件或文件内容与预期不符 → 明确报错,不破坏原文件。

然后刷新浏览器页面(F5)即可生效。

兼容性:补丁针对 @deepseek-ai/dsh-client-ui-permission-presets / @deepseek-ai/dsh-client-ui-conversation0.1.1-rc.2 bundle。 其它版本脚本会提示"内容不匹配",不会误改。

卸载

powershell -NoProfile -ExecutionPolicy Bypass -File .\uninstall.ps1

从最近的 .bak-* 备份恢复被补丁的文件;settings.yaml 中的 permission.defaultPreset 也会被移除(还原为 DSH 默认)。

手动修改对应关系

文件改动
$DSH_HOME/settings.yaml新增 permission.defaultPreset: danger-full-access
.../@deepseek-ai/dsh-client-ui-permission-presets/lib/client.js一次性开关 + 三处跳过逻辑
.../@deepseek-ai/dsh-client-ui-conversation/lib/client.jscomposer 权限选择器跳过确认

详细补丁见 patches/*.diff

验证

  • 新开一个工作区或新对话 → 权限直接是 Full access,不再弹确认;
  • 设置 → 权限:默认已是 Full access,勾选"不再询问"后手动来回切换也不再弹窗;
  • 若想临时改回,把 Settings 里默认权限切回 workspace-write 即可,不影响开关本身。