前言¶
在 DeepSeek Harness(DSH)里用多个工作区跑任务时,固定(Pin)会话仍分散在各工作区分组下。跨工作区找一条固定对话,往往要在侧边栏里逐个分组展开。DSH 生态里已有侧重「全局托盘」的固定方案;若你只想在官方会话列表里多一个置顶分组、不另开页面、也不改 Host 侧的固定状态,可以看一下客户端插件 dsh-pinned-panel。
这是什么¶
dsh-pinned-panel(GitHub:OuQiL/dsh-pinned-panel)由维护者 OuQiL 发布,分类为客户端插件,许可证 MIT(见仓库 package.json 与 README)。它面向 DSH Web GUI(桌面端渲染同一 Web 界面),在侧边栏会话列表最上方插入一个 Pinned 分组,汇总 Host 已有的 pinnedSessionIds;点击某一行仍通过官方 uiWorkspace.openSession() 打开,工作目录、上下文与历史与原工作区里点该行一致。
README 明确说明:没有额外面板、没有独立固定页、没有可配置的侧栏图标——只增加这一个分组。
核心功能¶
下面结构来自 README 的示意(分组默认展开,数字为会话条数示例):
Sidebar
├─ 📌 Pinned 3 ← first in the list, expanded by default
│ ├─ 🔧 Fix expired login 14:32
│ ├─ 📊 API diff report Yesterday
│ └─ 📝 Weekly draft 10-21
├─ 📁 default-workspace
│ ├─ Conversation A
│ └─ Conversation B
└─ 📁 another-workspace
已核实的能力要点如下。
- 列表首位、默认展开:Pinned 分组排在会话列表第一项;组头可折叠,偏好写入
localStorage。 - 不复制会话数据:分组读取 Host 的
pinnedSessionIds与工作区归属;固定/取消固定仍用官方 📌(悬停还有 ✕),不维护私有固定库。 - 原工作区打开:点 Pinned 里某行 = 在该会话所属工作区打开,与在对应工作区分组里点击相同。
- 来源可见:每行展示所属工作区;悬停可看完整标题。
- 行内操作:悬停出现 ⋯ 菜单,经官方调用支持 fork、复制 session ID、取消固定、归档等;仍在运行的会话归档前会提示先停止再归档。
- 原列表保留:已固定的会话仍出现在原工作区分组下;Pinned 只是额外入口,不是「搬家」。
- 视觉与主题:行高、组头、圆角等与官方会话行一致,含浅色/深色主题。
Host 端对该插件为 no-op,逻辑全在浏览器;TUI/无侧边栏的配置文件上没有挂载点。
安装与启用¶
插件以当前 DSH 进程权限在客户端运行。安装前建议浏览仓库源码与 MIT 许可证,确认符合你的环境策略。
在应用内(README 推荐)¶
- 打开 Settings → Plugins。
- 选择 Add plugin。
- 粘贴仓库 Git 地址:
github:OuQiL/dsh-pinned-panel
对话框也接受完整 https://github.com/OuQiL/dsh-pinned-panel URL、tarball 或本地绝对路径。
- 刷新页面后,会话列表顶部应出现 Pinned 分组。
命令行¶
dsh plugin add github:OuQiL/dsh-pinned-panel
# or pin a profile explicitly
dsh plugin --profile desktop add github:OuQiL/dsh-pinned-panel
卸载¶
在 Settings → Plugins 中对 dsh-pinned-panel 禁用/卸载,或执行:
dsh plugin remove dsh-pinned-panel
README 记载在已链接的本地 checkout 中修改 lib/client.js 后,刷新页面(Ctrl+R)即可加载新 bundle,无需重装。
典型用法¶
用法与官方固定一致,插件只改变「在哪里看到」已固定会话。
- 在任意工作区的会话行上使用 Host 自带的固定操作,会话进入 Host 的固定集合。
- 在侧边栏顶部的 Pinned 分组中查看所有工作区的固定会话;需要时折叠组头以减少占用。
- 点击 Pinned 中的某行进入该会话的原工作区继续对话;跨工作区切换时不必先找对应 📁 分组。
- 取消固定或归档仍在 Pinned 行或原工作区行上操作,行为与未装插件时相同。
固定状态不由插件单独存储,卸载插件不会清掉 Host 里已有的 pin 集合(仅失去顶部分组这一入口)。
与 dsh-pin 的取舍¶
README 将 dsh-pin 列为相近插件:二者均为纯客户端、挂侧边栏列表、用官方排序与打开 API。差异主要在形态——本插件是列表内一个 Pinned 分组、保留原行、复用应用单一 pin 层级;dsh-pin 提供全局托盘、可选隐藏原行、工作区 pin 与全局 pin 两级,并自有 localStorage 记录。若要托盘且可隐藏原列表行,选 dsh-pin;若要「列表里多一组、别无附加 UI」,选 dsh-pinned-panel。
适用场景与注意¶
适合:经常在多个 DSH 工作区间切换、已习惯用官方 Pin、希望固定会话在侧边栏一处汇总入口的 Web GUI 用户。
环境与限制(来自 README Requirements / Known limitations 摘要):
| 项 | 说明 |
|---|---|
| 运行面 | DSH Web GUI;需有侧边栏 |
| 测试记录 | 作者在 0.2.1-rc.2、Windows 上测试 |
| Host | 无 Host 半部逻辑 |
| 凭证/网络 | 无额外要求 |
实现上在侧边栏列表顶部插入 DOM 节点,不隐藏、不重排 Host 已有列表;若 DSH 大改侧边栏结构,分组可能无法放置(控制台会出现 [dsh-pinned-panel] sidebar list seam not found; the Pinned group cannot be placed.),插件会降级为不显示分组而非拖垮应用。「In one list」扁平视图与搜索视图下不会插入该分组。
DeepSeek Harness 社区插件目录托管在独立站点,与 DeepSeek / 幻方无官方从属关系;安装来源以仓库与目录页为准。
结尾¶
dsh-pinned-panel 在不动 Host 固定语义的前提下,把各工作区的固定会话收到侧边栏列表顶部的 Pinned 分组,点击仍回到原工作区打开。目录与源码:
- 目录页:https://www.skillhub.cn/plugins/OuQiL/dsh-pinned-panel
- GitHub:https://github.com/OuQiL/dsh-pinned-panel