dsh-auto-preset:按会话记住并恢复上次手动选择的权限预设

前言

在 DeepSeek Harness(DSH)里,每个会话的权限预设(例如 workspace-write、danger-full-access,以及实验性的 Auto 即 auto review)是按会话保存的。进程默认推断出的「会话默认预设」在重启后可能和你在界面上最后一次选的不一致;实验性的 Auto 预设还不能被配置成全局默认——@deepseek-ai/dsh-permission-presets 里对 auto 作为 default 会直接报错。若你经常在 Web 端把某个会话切到 Auto review 或 Full access,重开会话后又要再点一次,这类摩擦正是本插件要减掉的。

下面介绍社区插件 dsh-auto-preset(维护者 heyuanliu3-byte,目录分类:记忆)。它监听你在会话里手动切换的 permission preset,写入本地状态;再次打开同一会话时,若与当前值不同则写回你上次的选择。

这是什么

dsh-auto-preset 是体量很小的 DSH 插件(核心逻辑约 130 行,见仓库 lib/index.js)。一句话:每个 session 记住你最后一次手动选的 permission preset,重开会话时恢复;不会用存储的值覆盖你之后在新会话里新做的选择——始终跟你的「最新一次手动选择」。

仓库自述状态为 early / experimental,依赖 DSH 实验性的 permissionPresets API;作者在 @deepseek-ai/dsh 0.2.1-rc.2 与 0.2.1-rc.3 上测过(两者 permission-presets 相关代码一致)。未来 DSH 版本若改 API,插件可能失效。许可证 MIT(npm 包版本 0.1.0)。

行为说明

README 中的行为可以概括为四条:

  1. 第一次打开某会话:插件不做任何事,沿用系统默认。
  2. 你把会话切到 Auto review → 被记住;重开该会话会恢复 Auto review。
  3. 再切到 Full access → 被记住;重开保持 Full access,插件不会强行改回 Auto。
  4. 之后再切回 Auto review → 再次记住;插件始终跟随你最后一次手动选择,不会覆盖你已做的选择。

状态保存在插件目录旁的 state.json,DSH 重启后仍保留。要清空所有记忆,删除该文件即可。

工作原理(简要)

插件通过 Cordis 生命周期与事件工作(细节以 README 为准):

  • session/created:会话进入 store 时触发(新建与重开都会)。
  • session/event 中类型为 permission/preset 的事件:记录用户选中的 preset;在会话完成初始 pin 之前的事件会被忽略;插件自己调用 presets.set() 时通过重入标志忽略,避免循环。
  • 重开会话时,若本地有存储且与当前 preset 不一致,调用 permissionPresets.set(session, storedChoice) 写回。

仅观察 permission/preset 事件;未表示为 preset 的自定义 sandbox/approval 组合不会被恢复。

安装与启用

插件以当前 DSH 进程权限运行;安装前请自行查看仓库源码与 MIT 许可证。作者说明在其环境中主要为 Web profile 使用;desktop profile 不依赖非官方插件,但未在正文中展开其他 profile 的支持范围。

加载顺序:必须在 @deepseek-ai/dsh-experimental-auto-review 之后加载,否则 auto preset 不存在。

从源码安装

git clone https://github.com/heyuanliu3-byte/dsh-auto-preset.git
dsh plugin --profile web add link:/absolute/path/to/dsh-auto-preset

将 "dsh-auto-preset" 加入对应 profile 的 bundle 列表(package.json → dsh.profile.bundles),然后重启 DSH Web 服务。

从 npm 安装

包发布到 npm 后:

dsh plugin --profile web add dsh-auto-preset

典型用法

没有单独的 CLI「示例命令」;用法即:在 Web 会话里按需切换权限预设(Auto review / Full access / 其他已有 preset),关闭或重启 DSH 后再次打开同一会话,应看到上次手动选择的 preset 被恢复。若行为不符合预期,可先检查 bundle 顺序是否满足 experimental auto review,再查看或删除 state.json 做对照。

适用场景与注意

适合:长期在 DSH Web 里维护多个会话,且希望每个会话在重开后仍保持你上次手动选的 Auto review 或 Full access 等 preset,而不依赖进程默认推断。

务必留意:

  • 实验性 API,DSH 升级后可能损坏,升级前留意 release note。
  • 只恢复「preset 级别」的选择,非 preset 的自定义组合不会恢复。
  • 插件处于 early / experimental,生产环境使用前请自行评估。

链接

  • 社区目录页:https://www.skillhub.cn/plugins/heyuanliu3-byte/dsh-auto-preset
  • 源码与 README:https://github.com/heyuanliu3-byte/dsh-auto-preset

DSH 生态强调「一切皆插件」;SkillHub 等目录为社区站点,与 DeepSeek / 幻方无官方从属关系。若你需要会话级 permission preset 的「最后一次手动选择」可持久恢复,可以在核对版本与 bundle 依赖后试用 dsh-auto-preset。

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

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

小夜