中文EN

dsh-better-session-topbar

ui已测通过npmMIT

更好的会话顶栏:把会话顶栏标题换成工作区与会话面包屑,可在顶栏下拉里切换工作区、会话与子智能体;添加工作区直接交给宿主的目录选择,桌面版就是系统文件夹对话框。

下载量 / Downloads
981
依赖体积 / node_modules
0.49 MB
测试时间 / Tested
2026-11-06
DSH 版本 / Version
0.2.2-rc.1

安装

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

沙箱测试结果

阶段结果
1 安装✓
2 列装✓
3 挂载✓
4 启动—

四阶段在隔离沙箱里跑:安装(有网)→ 列装 → 挂载 → 启动(后三步断网)。

README

<p align="center">

<img src="docs/screenshots/workspace-dropdown.png" alt="更好的会话顶栏 工作区下拉展示" width="100%">

</p>

<p align="center">

<img src="https://img.shields.io/github/v/release/xinspark/dsh-better-session-topbar?style=flat&amp;label=release&amp;color=08C" alt="GitHub release">

<img src="https://img.shields.io/badge/plugin-UI%20%E5%A2%9E%E5%BC%BA-47848F?style=flat" alt="UI enhancement plugin">

<img src="https://img.shields.io/badge/DSH%20Web%20GUI-Windows%20%7C%20macOS%20%7C%20Linux-4493F8?style=flat" alt="Windows | macOS | Linux">

<img src="https://img.shields.io/badge/license-MIT-2EA44F?style=flat" alt="MIT License">

<a href="https://github.com/xinspark/dsh-better-session-topbar/actions/workflows/ci.yml"><img src="https://github.com/xinspark/dsh-better-session-topbar/actions/workflows/ci.yml/badge.svg" alt="CI"></a>

</p>

<p align="center"><sub>简体中文 · <a href="README.en.md">English</a></sub></p>

<h3 align="center">把 DSH 顶栏的会话标题换成「工作区 / 会话」两级面包屑,切换入口直接放在顶栏</h3>

<p align="center"><a href="#安装"><ins><code>dsh plugin --profile web add dsh-better-session-topbar</code></ins></a></p>

更好的会话顶栏(包名与仓库名同为 dsh-better-session-topbar)是面向 DeepSeek Harness 的会话顶栏增强插件——纯 UI 增强,不引入新能力,不改任何系统源码。DSH 原生顶栏中央只显示会话标题(层级面包屑),工作区/会话的切换入口在左侧边栏;侧边栏收起时,每次切换都要额外点击。本插件把切换入口直接放进顶栏:

  • 工作区下拉 —— 展开可见全部工作区及其会话数,一键切换;可「添加工作区」(直接交给宿主的目录选择:native 桌面就是系统「选择文件夹」,browse 宿主是官方应用内面板)或删除。
  • 会话下拉 —— 展开可见当前工作区全部会话及相对更新时间,一键切换;可「新建会话」。
  • 顶栏三枚原生 chip 一并对齐 —— 子智能体 / 智能体团队 / 后台任务与面包屑用同一套度量(字号、内距、圆角、悬停、图标尺寸),并按固定次序让出宽度:chip 交数字 → 标题让位收成图标 → chip 收成图标。
  • 窄屏二选一 —— 空间真的不够时,可以选「面包屑模式」(收成图标,层级与切换都还在)或「标题模式」(整行只留会话标题);两种模式的取舍写在插件详情页的选项旁。

行内「更多」直接调用宿主的右键菜单服务:置顶 / 重命名 / 分支 / 复制 Session ID / 归档 / 删除工作区,权限门控、快捷键提示、重命名与删除对话框全部由 DSH 自己渲染 —— 与侧边栏右键菜单逐项一致,插件不再维护第二套。

支持 Windows · macOS · Linux(DSH Web GUI)——纯 JavaScript,无原生依赖,分发无需构建步骤。

验证基线:DSH NEXT 2.0.22-next(内置 DeepSeek Harness 0.2.2-rc.1) 与 dsh web。行内「更多」菜单依赖 0.2.2-rc.1 起的 contextMenus 服务;更早的内核(0.2.1-rc.4 / 0.2.1-rc.3 / 0.2.1-rc.2 / 0.2.0-rc.2)上面包屑与两个下拉照常工作,只是行尾不显示「⋯」(侧栏仍是完整入口)。其它版本未经验证。

安装

dsh-better-session-topbar 是一个组合包(bundle)——以包形式分发的配置补丁层(见 DSH 官方插件发布文档)。用 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#v2.0.1
  • 建议锁定 commit:GitHub 安装拉取的是仓库源码,tag 之后的新推送不会自动影响已安装版本;如需把运行内容严格固定到某个提交,用 github:xinspark/dsh-better-session-topbar#<commit-sha>(官方文档推荐做法)。
  • 本地目录 / tarball(开发或离线环境;本地目录名与包名现在都是 dsh-better-session-topbar):
  dsh plugin --profile web add ./dsh-better-session-topbar
  dsh plugin --profile web add ./dsh-better-session-topbar-2.0.1.tgz

然后启动 Web UI:dsh web(或 dsh --profile web)。首次 add 会自动用 @deepseek-ai/dsh-base 初始化 profile。

卸载:dsh plugin --profile web remove dsh-better-session-topbar(同时移除依赖与组合层;dsh plugin 认的是包名,不是仓库目录名)。

插件的 bundle 补丁(cordis.patch.yml)会自动注册 host 与 client 两半。客户端按请求加载:客户端改动刷新页面即可,host 改动需要重启。

主要功能

能力 · 说明

多级面包屑 · 顶栏左侧以「工作区 / 会话」展示当前位置,两侧各自展开下拉列表;进入子智能体会话时自动扩展为「工作区 / 父会话 / 子智能体会话」(祖先级可点跳回)。

逐级自适应图标态 · 某一级被挤到读不出内容(可见宽度 < 80px ≈ 5 个汉字)→ 只收这一级;整条溢出 → 全部收成图标(防止被窗口边缘裁掉)。图标按级取:工作区=文件夹、普通会话级=会话字形、子智能体级=原生 switcher 的上下双箭头;完整标题仍在悬停提示与可访问名里。窗口宽、只是标题超过该级上限时保留截断文本(比一个图标信息量大)。/ 分隔始终保留 —— 图标态下层级顺序靠它读出来。

逐级压缩 · 顶栏放不下时按固定次序让位:三枚原生 chip(子智能体 / 智能体团队 / 后台任务)先 full → count(文字换成 (N))→ 面包屑整条收成图标(统计数留着,长标题最不值钱)→ chip 再 count → icon。判据是实测的可用宽度,不记顶栏宽度做滞回 —— 标题变短、chip 消失后会自己展开回来。

窄屏显示方式 · 插件详情页二选一:面包屑模式(默认,保留「工作区 / 会话」层级,收成图标后仍可逐级点开切换,代价是最窄时只剩图标、标题全文要悬停或点开才看得到)或标题模式(整行只留当前会话标题,子智能体会话保留「父 / 当前」,长标题更完整,代价是工作区与切换收进下拉、极窄时父级变成上下箭头图标)。两种选择都在同一个折叠点上生效,切换即时预览。

三枚 chip 同构 · 子智能体 / 智能体团队 / 后台任务统一成「图标 · 文字 · (N) · 圆环 · 箭头」:12px/18 字号、3px 7px 内距、5px 间距、28px 高、14px 图标、12px 箭头、圆角与悬停填充一致;原生缺的补上(智能体团队补成员数与运行中圆环,圆环与官方 spinner 同相),原生多出来的归位(后台任务的运行圆点移到统计数之后)。

工作区下拉 · 工作区列表(含会话数元信息)、添加工作区(交给宿主目录选择,与侧栏 + 一致)、行内「更多」:重命名 / 删除工作区(宿主菜单,按权限显示)。

会话下拉 · 当前工作区的会话列表(含相对时间元信息)、新建会话、行内「更多」:置顶 / 重命名 / 分支 / 复制 Session ID / 归档会话(宿主菜单,按权限显示)。

原生一致的交互 · 下拉为自绘层,卡片沿用原生菜单 token(--dsw-elevation-prominent、--dsw-radius-lg、--dsw-menu-surface-fill + --dsw-menu-backdrop-filter、hover 填充 --dsw-alias-interactive-bg-hover);行内度量为 min-height 40 / padding 8·10 / 14px·22px(与原生 AccountMenu 的 [role=menuitem] 一致;原生 Menu.module.css 更紧凑,本插件未跟随)。键盘/ARIA 与原生 Menu 同构:打开聚焦首行、ArrowUp/Down、Home/End、Tab 收起、Esc 收起并归还焦点。行内「更多」本体是宿主的右键菜单(contextMenus 服务):条目、顺序、权限门控、快捷键键帽、重命名/删除对话框全由 ui-workspace 渲染;插件只传目标与坐标。

生命周期一致 · 宿主菜单跟随其所在下拉同生命周期:下拉关闭(点击外部 / Escape / 选择 / 切换)时一并收走,不残留孤立浮层。

插件详情页 · Plugins → 本插件 → 配置:窄屏会话标题显示选择(原生外观方块样式的二选一:面包屑模式 / 标题模式,每个选项旁写明优缺点)与探针日志开关。写入 profile 的 Cordis patch,即时生效。详情页底部一行「⭐ 用着顺手?给个 Star 支持一下」(在宿主市场来源行「查看仓库」上方;本行不重复造链接)。

多语言 · 插件自有文案全部跟随 DSH 的 8 种官方语言(中/英/日/德/西/法/葡/俄)实时切换,locale/*.json 的标题/描述也各备一份。其中日/德/西/法/葡/俄为机器翻译(人工粗校),见「已知限制」。

截图

工作区下拉展开——切换工作区、添加工作区:

会话下拉展开——切换会话、新建会话:

会话更多菜单——悬停行尾的「⋯」打开宿主会话菜单(置顶 / 重命名 / 分支 / 复制 Session ID / 归档):

子智能体层级面包屑——进入子智能体会话时自动扩展为「工作区 / 父会话 / 子智能体会话」,祖先级可点跳回,末级点开是兄弟子智能体:

窄屏 · 标题模式——顶栏放不下完整面包屑时,整行只留当前会话标题(点开仍是同一套会话列表与行内操作):

插件详情页——「窄屏会话标题显示选择」两个方块各带取舍说明,下面是探针日志开关:

使用

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

  • 点击工作区一侧:展开工作区下拉(顶部为「添加工作区」)。
  • 点击会话一侧:展开会话下拉(顶部为「新建会话」)。
  • 悬停列表行:行尾显示「⋯」—— 打开的是宿主自己的右键菜单(置顶 / 重命名 / 分支 / 复制 Session ID / 归档,按权限显示)。
  • 选择行即切换;点击空白处或按 Esc 关闭下拉。
  • 键盘:下拉打开后 ↑ / ↓、Home / `En

…(truncated)

以上内容来自 npm 上的 README,我们只做格式化,不改内容。

版本

npm 上共发布:7,最后更新 2026-11-05

链接

GitHub · Homepage · npm

同类插件