xinspark/dsh-better-session-topbar:把工作区与会话切换放进 DSH 顶栏

前言

DSH 原生顶栏中央只显示当前会话标题,工作区与工作区下的会话列表都在左侧边栏。用 dsh web 时如果把侧边栏收起,每次要切换工作区或会话都得先点开侧栏。这个插件做一件事:把「工作区 / 会话」两级面包屑放进顶栏,两侧各自可展开下拉,切换、新建、重命名都不用离开顶栏。

它是社区插件,维护者是 xinspark,基于官方 deepseek-ai/deepseek-harness 构建,是纯 UI 增强,不引入新能力,也不修改任何系统源码。目录页(SkillHub)显示其分类为「客户端」,GitHub 1 stars、1 forks,License 为 MIT。下面介绍它的安装、用法和注意点。

安装与启用

插件以「组合包(bundle)」形式分发,用 dsh plugin 命令安装进 profile,会自动链接包并追加到 dsh.profile.bundles:

# 从 npm 安装(推荐,最短;已发布到 registry.npmjs.org)
dsh plugin --profile web add dsh-better-session-topbar

# 从 GitHub 安装(等价;可锁 tag 或 commit)
dsh plugin --profile web add github:xinspark/dsh-better-session-topbar#v1.5.3

需要锁定运行内容到某个提交时,把 #v1.5.3 换成 #<commit-sha>;GitHub 安装拉取的是仓库源码,tag 之后的新推送不会自动影响已安装版本。

本地目录或 tarball 安装(开发或离线环境):

dsh plugin --profile web add ./dsh-better-session-topbar
dsh plugin --profile web add ./dsh-better-session-topbar-1.5.3.tgz

然后启动 Web UI:

dsh web

首次 add 会自动用 @deepseek-ai/dsh-base 初始化 profile。卸载用:

dsh plugin --profile web remove dsh-better-session-topbar

注意 dsh plugin 认的是包名,不是仓库目录名。客户端改动刷新页面即可,host 半改动需要重启。

核心功能

多级面包屑

顶栏左侧显示「工作区 / 会话」,两侧各自展开下拉列表。进入子智能体会话时自动扩展为「工作区 / 父会话 / 子智能体会话」,祖先级可以点击跳回。

工作区下拉与会话下拉

  • 工作区下拉:列出全部工作区及其会话数,一键切换;顶部「添加工作区」直接交给宿主的目录选择(native 桌面是系统「选择文件夹」,browse 宿主是应用内面板);行内「更多」可重命名或删除工作区。
  • 会话下拉:列出当前工作区的全部会话及相对更新时间,一键切换;顶部「新建会话」;行内「更多」可重命名、分支、归档会话。

逐级自适应图标与压缩次序

顶栏空间不足时按固定次序让位:三枚原生 chip(子智能体 / 智能体团队 / 后台任务)先 full → count(文字换成 (N)),然后面包屑整条收成图标,最后 chip 再 count → icon。某一级被挤到可见宽度小于 80px(约 5 个汉字)时,只收这一级;整条溢出时全部收成图标,/ 分隔符始终保留,完整标题仍在悬停提示与可访问名里。

窄屏显示方式二选一

插件详情页提供两种窄屏行为,切换即时预览:

  • 面包屑模式(默认):保留「工作区 / 会话」层级,收成图标后仍可逐级点开切换;代价是最窄时只剩图标,标题全文要悬停或点开才看得到。
  • 标题模式:整行只留当前会话标题,子智能体会话保留「父 / 当前」;代价是工作区与切换收进下拉,极窄时父级变成上下箭头图标。

三枚 chip 与原生交互

子智能体 / 智能体团队 / 后台任务统一成「图标 · 文字 · (N) · 圆环 · 箭头」的度量。下拉卡片沿用原生菜单 token,行内度量与原生 AccountMenu 的 [role=menuitem] 一致。重命名 / 删除对话框使用原生 Menu / Modal / Button / Input,并处理了 autoFocus、全选、输入法组合 Enter 防误触、工作区重复名校验。更多菜单跟随其所在下拉同生命周期,下拉关闭时菜单一并关闭。

插件详情页与双语言

Plugins → 本插件 → 配置提供两项设置:窄屏会话标题显示选择、探针日志开关。写入 profile 的 Cordis patch,即时生效。插件内置 zh/en 双语言字典,跟随 DSH 语言切换实时生效。

典型用法

安装后打开任意会话,顶栏中央即显示「工作区 / 会话」面包屑:

1、点击工作区一侧,展开工作区下拉,顶部为「添加工作区」。
2、点击会话一侧,展开会话下拉,顶部为「新建会话」。
3、悬停列表行,行尾显示「更多」按钮,按行类型提供重命名 / 分支 / 归档等操作。
4、选择行即切换;点击空白处或按 Esc 关闭下拉。
5、顶栏挤不下时按固定次序让位;想换窄屏显示方式,去 Plugins → 更好的会话顶栏 → 配置。

适用场景与注意

适合用 dsh web 且经常在多个工作区、多个会话之间来回切换的用户,尤其是把侧边栏收起后仍需要快速定位与跳转的场景。

需要注意三点:

  • 验证基线是 DSH NEXT 2.0.20(内置 DeepSeek Harness 0.2.1-rc.3) 与 dsh web,0.2.1-rc.2、0.2.0-rc.2 仍在兼容范围内,其它版本未经验证。
  • 插件以当前 dsh 进程的权限运行,安装前应先检查源码与许可证(MIT)。
  • 这是一个社区插件,并非 DeepSeek 官方产品;它展示的都是 DSH 自己的数据与界面,只是重新组织。

结尾

这个插件解决的是顶栏信息密度与切换入口的问题:把工作区和会话的层级与切换直接放进顶栏,让侧边栏收起时也能一步跳转。如果你在多工作区、多会话场景下频繁切换,可以试用。

  • 目录页:https://www.skillhub.cn/plugins/xinspark/dsh-better-session-topbar
  • GitHub:https://github.com/xinspark/dsh-better-session-topbar
羽毛球分组比赛记分
小程序二维码

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

Xiaoye