dsh-slash-new:在 DSH 桌面端用 `/new` 开新会话并继承权限与代理预设

前言

DeepSeek Harness(DSH)的会话是只追加的日志,无法在原地「清空」对话;要重新开始,只能新建会话,旧记录仍留在侧边栏。桌面端 Composer 里自带 /compact,但没有与侧边栏「新会话」或 Cmd+N 等价的斜杠命令。若手动新建会话,权限预设往往会回到 Profile 默认值,和当前会话里你选好的 read-only、ask、auto 等不一致,容易在新会话里无意放宽或收紧 Agent 行为。

下面介绍的 dsh-slash-new 是维护者 deqingLv 发布的客户端类 DSH 插件(MIT,当前 package 版本 1.0.0),只增加一条斜杠命令 /new:在当前工作区开启空白会话,并把旧会话的权限预设与代理预设(agent preset)带到新会话,避免「开新页却丢配置」。

这是什么

  • 定位:小型 DSH 插件,Host 侧注册命令,Client 侧(Web 平台)监听执行并切换会话。
  • 维护者:deqingLv;源码与说明见 GitHub 仓库,社区目录页:SkillHub 插件页(独立社区目录,与 DeepSeek / 幻方无官方从属关系)。
  • 解决的问题:在 Composer 里用 /new 完成与「新会话」相同的动作,且权限与代理预设与离开前的会话一致(在可用预设表达的范围内)。

核心功能:/new 做了什么

执行 /new 时,插件按 README 描述的顺序工作:

步骤 行为
1 读取当前会话的 permissions 投影(read-only / ask / never / danger-full-access / auto)及其 agentPreset
2 在同一工作区创建或复用空白会话,创建时传入 agent preset
3 在主面板打开该会话
4 在新会话中重放权限预设:执行宿主自带的 /permission <preset>(与 Composer 里权限芯片的调用方式相同)

旧会话的日志仍保留在侧边栏,不会被删除。

限制(资料原文):若当前会话使用的是自定义(custom)权限组合、无法对应到上述某一预设,新会话会回落到宿主默认,并在客户端控制台输出警告。

插件由 host 半(lib/index.js:在 ctx.commands 注册命令)与 client 半(client/client.js:监听 command/executed)组成;Client bundle 在应用启动时编译,改插件或 bundle 配置后需重启桌面 App。

安装与启用

安装前请自行查看仓库源码与 MIT 许可证;插件在当前 DSH 进程权限下运行,仅安装你信任的来源。

当前 README 给出的安装方式如下(尚未发布到 npm 时以本地 link 为例;发布后 README 写明可用 dsh plugin --profile desktop add dsh-slash-new,但 bundle 条目仍必填):

# 1. 让 desktop profile 指向本包(路径改为你机器上的绝对路径)
dsh plugin --profile desktop add link:/absolute/path/to/dsh-slash-new

# 2. 在 ~/.dsh/profiles/desktop/package.json 的 dsh.bundle.bundles 中加入 "dsh-slash-new"

# 3. 退出并重启桌面 App(Cmd+Q 后重新打开)

客户端 bundle 在启动时编译,安装或修改 plugin 与 bundle 任一半之后都要重启 App。

卸载:

dsh plugin --profile desktop remove dsh-slash-new

然后从 dsh.bundle.bundles 中移除 "dsh-slash-new" 并再次重启。

典型用法

在 DSH 桌面端、当前工作区的 Composer 中输入:

/new

效果等同于侧边栏「新会话」或 Cmd+N:新空白会话在当前工作区打开,且尽量继承离开前会话的权限预设与 agent preset。

开发者在 disposable 实例里做端到端验证(不碰真实 Profile)时,README 示例为:

DSH_HOME=/tmp/dshhome dsh --profile scratch --no-open --port 63002

在该实例中执行 /new 即可检查行为。

适用场景与注意事项

适合谁:经常在 DSH 桌面端「换一页对话」但希望权限芯片与代理预设不变的开发者;需要与 /compact 区分——/compact 压缩当前日志,而 /new 是新建空白会话。

兼容性(资料原文):在 DSH desktop 0.2.1-rc.3(Web renderer)下测试。Client 半依赖 sessions、workspaces、uiWorkspace(空白会话创建、会话切换)以及宿主的 /permission 命令。

冲突:不要与同样注册 /new 的插件并存(例如 README 提到的 deepseek-harness-ultra-slash)。两者都会监听 command/executed,一次 /new 可能导致切换会话两次。

生态背景:DSH 采用「一切皆插件」的扩展方式;本插件属于客户端类扩展,只增加 Composer 斜杠能力,不替代宿主内置的会话存储模型。

结尾

dsh-slash-new 用一条 /new 补齐桌面 Composer 里「新会话」的斜杠入口,并在开新会话时继承权限预设与 agent preset,减少因手动新建会话而回到 Profile 默认权限的情况。安装涉及 profile 插件命令、dsh.bundle.bundles 与重启三步,自定义权限无法预设表达时会回退默认并打控制台告警,安装前请阅读源码并注意勿与同名斜杠插件叠装。

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

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

小夜