DeepSeek Harness (DSH) 插件:dsh-temp-session

前言

DeepSeek Harness (DSH) 采用“一切皆插件”的架构。默认情况下,如果未选择工作区,会话输入框会被内核判定为不可用(inert)。dsh-temp-session 插件通过引入“工作区可选化”和“免工作区临时会话”的概念,打破了这一限制。它允许用户在没有固定工作区上下文的情况下启动会话,每个临时会话独占一个独立的目录,重启后空白会话会自然消失。

核心功能

该插件主要包含以下能力:

  1. 工作区可选化:在 Hero 工作区入口显示“选择工作区(可选)”。点击按钮进入选择菜单,点击按钮其他区域仍可正常选择工作区。
  2. 免工作区临时会话:未选定工作区时,点击侧边栏“新建会话”将创建临时会话。
  3. 独立目录会话:临时会话独占目录 $DSH_HOME/tmp-sessions/session-<uuid>(默认即 ~/.dsh/tmp-sessions/…)。会话的 cwd、沙盒写边界、侧边栏归组(Ungrouped)均基于该目录。
  4. 内核客户端补丁:对内核客户端进行补丁处理,移除 workspaces.phase === "ready" 的条件限制,使无工作区会话的输入框保持可用状态。
  5. 屏蔽桌面客户端功能:屏蔽桌面客户端(dsh-tauri >= 0.15.9)自带的“未分组”新建会话功能,防止冲突。

安装与启用

安装该插件需要将依赖写入配置文件,并重启 Harness 进程。

  1. 安装插件:
    使用官方安装命令,插件会被写入 ~/.dsh/profiles/web/package.json 的依赖与 dsh.profile.bundles。
    dsh plugin --profile web add dsh-temp-session
  1. 配置清单:
    确保 ~/.dsh/profiles/web/package.json 中的 dsh.profile.bundles 包含该插件名称。

  2. 生效:
    修改配置后必须重启 Harness 进程才能生效。桌面版需退出并重新打开 App,Web 界面需重启内核。

用法说明

安装并重启后,体验与原生行为有所区别:

  • 工作区入口交互:

    • 未选定工作区:Hero 工作区入口显示“选择工作区(可选)”。
    • 已选定工作区:鼠标悬停在按钮上时,箭头自动变为 ×,点击 × 取消选择;点击按钮其他区域仍打开工作区选择菜单。
  • 新建会话:

    • 在侧边栏点击通用“新建会话”按钮(未指定工作区时),默认创建临时会话。
    • 工作区行内的 + 仍创建该工作区的会话,保持原行为不变。
  • 临时会话目录:
    临时会话位于 $DSH_HOME/tmp-sessions/session-<uuid>。重启 Harness 后,未发送消息的空白临时会话会自动消失。

兼容性与注意事项

  • 版本兼容:仅兼容 dsh 版本 0.1.2-rc.x ~ 0.1.7-rc.1。升级到 0.1.7-rc.1 后需要重启进程以应用依赖变更。
  • 桌面客户端限制:桌面客户端(dsh-tauri >= 0.15.9)自带的“未分组”新建会话功能会被本插件屏蔽,侧边栏和分组行的 + 会改走本插件逻辑。
  • 沙盒边界:临时会话的 workspace-write 写边界为该会话的独立目录。读取边界不设限(dsh 默认行为),隔离主要依靠目录隔离实现。

总结

dsh-temp-session 插件通过内核补丁和目录隔离机制,为 DSH 用户提供了更灵活的会话管理方式。它在不破坏现有工作区逻辑的前提下,支持在无工作区上下文下进行临时开发。相关源码与文档可参考其 GitHub 仓库或生态目录。

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

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

小夜