dsh-sidebar-hover:悬停预览侧栏与会话历史导航

前言

在 DeepSeek Harness(DSH)里长时间切换会话和工作区时,侧栏若一直占宽,主内容区会被挤窄;若完全收起,又要靠点击展开才能看到列表。Claude Code 一类桌面客户端常用「悬停短暂预览、选中后收起、点击固定」的侧栏交互,而 DSH 原生侧栏默认是展开/折叠的点击逻辑,也不自带浏览器式的前进/后退会话栈。

下面介绍社区插件 dsh-sidebar-hover(维护者 ingeb0rga),它在 DSH 客户端 UI 上复刻这类行为:悬停窄轨预览侧栏、点击固定、选中会话后自动收起,并在 macOS 桌面版增加会话历史箭头与快捷键。插件归类为客户端扩展,当前 GitHub 星标为 0;许可证为 MIT,包版本 0.1.24。

这是什么

dsh-sidebar-hover 是 DSH 的 runtime client plugin(client-UI extension)。它不改服务端协议,而是在宿主渲染的侧栏与标题栏区域挂载逻辑:悬停折叠侧栏轨(或 macOS 上标题栏重开区)经意图延迟后,以浮层方式预览展开侧栏,不推动主内容 reflow;离开后经宽限期收起;在预览态点击侧栏开关则固定展开,直至再次点击关闭。

插件还实现 session history arrows(← →):因 DSH 本身不维护导航历史,插件在客户端记录 uiWorkspace.selection 形成最多 100 条、会话级的前进/后退栈,并通过 uiWorkspace.openSession() 跳转。该能力在 README 中标注为 macOS 桌面版可用;Web(dsh web)侧栏悬停与设置页共用同一套客户端代码,但 README 标明 Web 悬停与设置未做现场验证,且历史箭头与 ⌘[ / ⌘] 在浏览器中不可用。

核心功能

悬停预览与固定

默认开启 Hover to reveal sidebar。行为要点(与 README「Behavior」表一致):

  1. 悬停侧栏轨或(darwin)侧栏开关图标,经可配置意图延迟(默认实现为 180 ms 量级,设置范围 50–1000 ms)后进入 peek。
  2. Peek 时布局在内部仍展开侧栏,但通过 overlay 将 frame grid 钉在折叠轨道,宽侧栏以不透明填充与阴影叠在内容之上。
  3. 指针离开 peek 后 250 ms 宽限期收起;重新进入可取消收起。
  4. 在 peek 中点击侧栏 toggle → pinned;由点击打开或固定的侧栏在关闭前忽略 hover。
  5. 选中 session/workspace 行、New Session、Settings,或 peek 中按 Esc → 立即收起(行内带 stopPropagation 的控件不受影响)。
  6. Mod+B 在 peek 中可关闭;由用户或宿主触发的 Mod+B / toggle 视为外部折叠,插件不抢权。

启动时 DSH 默认侧栏展开;若首次加载偏好时功能已开启,插件会折叠一次以便悬停逻辑立即可用;会话中途才开启功能则不会强制折叠。

会话历史箭头(macOS 桌面)

默认开启 Session history arrows。← → 按钮通过 shell.overlay 放在侧栏 toggle 右侧;桌面端注册 ⌘[ / ⌘] 快捷键(无历史可去时放行给宿主)。已删除、无法打开的条目会从栈中丢弃。

设置与持久化

独立设置页:Settings → Sidebar hover,包含:

  • 「Hover to reveal sidebar」开关(默认 ON)与悬停延迟;
  • 「Session history arrows」开关(默认 ON)。

偏好写入宿主 settings 命名空间 dsh-sidebar-hover 的 volatile 字段(enabled、hoverDelayMs),经 node 半边的插件路由 POST /sidebar-hover/api/prefs.get 与 POST /sidebar-hover/api/prefs.update 读写,并落到 profile 的 cordis.patch.yml 对应 config: 块(路径形如 ~/.dsh/profiles/<name>/cordis.patch.yml)。桌面部署下渲染进程不能直接调用 settings remote,故由插件 HTTP 路由代理。

平台与测试范围

README 给出的能力矩阵摘要:

能力 Desktop (macOS) Web (dsh web)
悬停 peek 悬停 traffic lights 旁侧栏 toggle 悬停 56 px 折叠轨(未 live 测试)
历史箭头 ← → 有 无
⌘[ / ⌘] 有 无(浏览器占用)
Settings → Sidebar hover 有 同代码路径(未 live 测试)

已在 DeepSeek Harness macOS 桌面版 0.2.0-rc.2、0.2.1-rc.2 上测试。Windows / Linux 桌面构建未测试。

安装与启用

插件通过 DSH 的 Cordis bundle(cordis.patch.yml)注入客户端模块;manifest 中 client.platform 为 web,并依赖 @deepseek-ai/dsh-client-ui-sidebar、@deepseek-ai/dsh-client-ui-settings 等宿主插槽。

本次引用的 GitHub README 与 package.json 片段未给出完整的 CLI 安装命令。 安装步骤请以社区目录 SkillHub 插件页 与 GitHub 仓库 README 当前说明为准,不要自行拼接未在文档中出现的 dsh plugin add 参数。

安装并加载插件后,在应用内打开 Settings → Sidebar hover 即可开关功能并调整延迟。peer 依赖要求 @deepseek-ai/dsh-client-store 与 @deepseek-ai/dsh-client-ui-primitives 为 >=0.2.0-rc.2 <0.3.0-0,与上述测试宿主版本线一致。

典型用法

  1. 日常浏览会话列表:保持侧栏折叠以扩大编辑区;指针移到 macOS 标题栏一侧的侧栏 toggle(或 Web 上 56 px 折叠轨),稍停即可预览列表;移开指针,侧栏自动收回。
  2. 固定侧栏编辑:预览过程中点击 toggle,侧栏 pinned 展开;再次点击 toggle 或 Mod+B 关闭后,悬停预览恢复可用。
  3. 选中即走:在 peek 中点击某个 session 或 workspace,侧栏立即收起并进入目标视图。
  4. macOS 上回溯视图:用标题栏 ← → 或 ⌘[ / ⌘] 在插件维护的 selection 历史栈中前进/后退(仅限桌面版且开关开启时)。

适用场景与注意

适合:主要在 DSH 桌面客户端(尤其 macOS)工作、希望侧栏交互接近 Claude Code、且需要在多个 session/workspace 视图间快速来回的用户。

注意:

  • 插件代码在 DSH 进程权限下运行,安装前请阅读 GitHub 源码 与 MIT 许可证,并确认与当前 DSH 版本匹配。
  • 故意不修改侧栏几何、轨宽、darwin 标题栏契约、Mod+B 绑定等宿主行为;若与另一侧栏类插件同时启用,需自行验证是否冲突。
  • SkillHub 为社区插件目录,与 DeepSeek / 幻方无官方从属关系;星标与版本以仓库为准(当前 0.1.24)。
  • 非 macOS 或未测试平台上的悬停、箭头行为请以实际表现为准,必要时在仓库 Issues 反馈。

结尾

dsh-sidebar-hover 把悬停预览、点击固定、选中收起和 macOS 会话历史导航接到 DSH 客户端侧栏上,设置集中在 Settings → Sidebar hover。目录与文档链接:

更细的集成分析与 QA 矩阵见仓库内 FINDINGS.md、QA-CHECKLIST.md 与 DEVELOPMENT.md。

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

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

Xiaoye