前言¶
在 DeepSeek Harness 的日常使用中,管理多个工作区与大量会话是常见场景。当对话列表过长时,快速定位正在进行的对话或关键参考内容会变得耗时。为了解决这个问题,需要一种能够将特定会话固定在侧边栏顶部的机制,以便在切换工作区时依然保持即时访问。
插件定位¶
dsh-session-pin 是由 OpenSaozi 维护的 DeepSeek Harness 网页版插件。它的核心功能是提供全局会话置顶能力,允许用户将重要的对话“钉”在侧边栏顶部,形成一个独立的置顶区域,从而在所有工作区中保持可见。
核心功能¶
该插件通过以下方式优化会话管理体验:
- 跨工作区持久化:置顶的会话会保持在侧边栏顶部区域,无论用户如何切换工作区,该列表始终可见。
- Codex 风格交互:提供类似 Codex 的快速操作,点击会话菜单即可执行“置顶/取消置顶”。
- 归档生命周期集成:置顶状态会随会话的归档操作保留。当会话被取消归档时,置顶位置会自动恢复。
- 轻量级本地存储:数据存储在
$DSH_HOME/settings.yaml的ui-session-pin.pinnedSessionIds字段中,仅记录会话 ID,无需手动编辑配置文件。 - 干净卸载:移除插件不会修改对话记录、工作区路径或凭据,卸载后所有会话将恢复到默认的列表顺序。
安装与使用¶
此插件不运行在标准的 Harness 上,安装前必须满足特定条件。
前置条件¶
需要将 patches/harness-session-pin.patch 应用于 dsh-v0.1.1-rc.2 的检出版本。未打补丁的安装会导致入口挂起且 Web UI 无法加载。
安装步骤¶
使用官方安装命令将审核过的版本添加到 Web 配置文件中:
dsh plugin --profile web add github:OpenSaozi/dsh-session-pin#<commit-sha>
使用方法¶
- 安装完成后刷新页面。
- 在左侧侧边栏的任意对话行上悬停,会出现操作菜单。
- 点击菜单中的“Pin Session”即可将该会话置顶,新置顶的会话会自动移动到列表顶部。
兼容性与隐私¶
兼容性要求¶
- 宿主环境:主机所有者需要通过设置 API 暴露
ui-session-pin配置项。如果未暴露,插件将不显示置顶控制,且不会在本地存储副本。 - DeepSeek Harness 版本:需要
@deepseek-ai/dsh-client-ui-workspace包暴露ctx.sessionPins提供者注册表。
隐私与模型交互¶
- 数据存储:插件仅持久化会话 ID 列表。它不会存储提示文本、模型响应、凭据、工作区路径或提供者请求。
- 模型可见性:模型无法感知置顶状态。请求组装过程不会读取
pinnedSessionIds字段。 - 资源消耗:该插件不产生令牌消耗,也不会影响 KV 缓存效果。
限制与注意事项¶
- 排序限制:置顶区域内部不支持手动拖拽排序。置顶操作会自动将会话移动到列表最上方;普通的拖拽排序仅适用于工作区文件夹和普通列表行。
- 依赖特定版本:由于涉及底层 UI 的注入,插件对 Harness 版本有特定要求,升级 Harness 可能需要重新检查兼容性。
总结¶
dsh-session-pin 通过轻量级的方式解决了多项目、多会话管理中的定位问题。它专注于 UI 层面的辅助,不干扰模型推理过程,适合需要频繁在特定对话间切换的用户。