dsh-recent-sessions-panel:DSH Web 侧栏「最近会话」分栏

前言

在 DeepSeek Harness Web 里,工作区和会话往往集中在侧栏中部的浏览区。会话一多,要回到「刚才还在聊的那条」,通常得在长列表里翻找,或依赖记忆去对标题。侧栏自带的浏览能力足以管理会话,但对「最近互动过的几条」缺少一个固定在视野里的快捷入口。

下面介绍社区客户端插件 dsh-recent-sessions-panel(维护者 LoneyKnight):在 Web 界面左侧栏底部、Settings 正上方,常驻一块可折叠的「最近会话」分栏,按最近活动时间列出最多 8 条会话,点一行即可切回,展开/折叠状态会记在浏览器本地。

这是什么

  • 定位:DeepSeek Harness Web 插件(Client bundle),无 npm 依赖、无构建步骤。
  • 分类:客户端(仅 Web GUI 生效;纯 CLI 或无浏览器环境不显示)。
  • 仓库:LoneyKnight/dsh-recent-sessions-panel
  • 许可证:MIT(package.json 版本 1.0.0)。

插件注册到侧栏 footer 的 additive 席位 sidebar.footer.action,不替换 Harness 自带的工作区/会话浏览区。

核心功能

README 中说明的能力如下,均可对照仓库文档核对。

  1. 布局:分栏占真实布局高度,默认展开;折叠后不浮在内容上。侧栏收成 56px 竖条时缩成时钟图标,点击可展开侧栏并显示分栏。
  2. 排序与过滤:按会话目录中的 updatedAt 倒序,最多 8 条;自动排除子代理会话与从未提问的空白会话。
  3. 导航:点任意会话行调用 Client 服务 uiWorkspace.openSession(sessionId),与在侧栏点会话行等价。
  4. 运行中指示:正在运行的会话标题前显示 ⏳,CSS 动画旋转;系统开启 prefers-reduced-motion 时停转。
  5. 数据与刷新:订阅 Harness 根级 useSessions 会话目录快照,活动变化即时反映,不额外请求 Host。
  6. 持久化与主题:折叠状态键为 localStorage 的 dsh.recent-sessions.collapsed(1 折叠 / 0 展开);中英文文案与明暗主题跟随界面,样式使用 --dsw-alias-* token。

侧栏底部展开时示意:

┌─ 左侧栏 ────────────────────┐
│  品牌 / 新建会话              │
│  工作区与会话浏览(原有区域)   │
│                             │
├─────────────────────────────┤
│ 🕐 最近会话             8 ⌄  │
│ ⏳ 项目重构方案讨论     3 分钟前 │
│    数据库迁移脚本       2 小时前 │
│    周报整理            昨天     │
├─────────────────────────────┤
│ ⚙  设置                      │
└─────────────────────────────┘

安装与启用

环境要求

  • 已安装 DeepSeek Harness 的 Web GUI;作者在 0.2.2-rc.1 上验证,0.2.1-rc.5 亦可运行。

插件以当前 DSH 进程权限运行。安装前建议浏览 client.js、index.js 与 cordis.patch.yml,并确认 MIT 许可证是否符合你的合规要求。

方式一:让 Harness 助手安装(推荐)

先把仓库落到本机,再在对话里让助手用 plugin_manager 的 install_bundle 指向该目录的绝对路径:

git clone https://github.com/LoneyKnight/dsh-recent-sessions-panel.git

示例提示(路径按你的环境替换):

用 plugin_manager 的 install_bundle 安装 C:\path\to\dsh-recent-sessions-panel(填克隆下来的绝对路径)

安装成功应返回 application: applied,左侧栏底部即可看到「最近会话」分栏。

方式二:手动安装(高级)

  1. 在 profile 的 package.json 依赖中加入 link,例如:
"@local/recent-sessions-panel": "link:C:/path/to/dsh-recent-sessions-panel"
  1. 将 "@local/recent-sessions-panel" 加入同一文件中的 dsh.profile.bundles 数组。
  2. 在 profile 目录执行 pnpm install,然后重启 DeepSeek Harness。

卸载

在插件管理面板停用/移除该 bundle,或让助手执行 plugin_manager → remove_bundle,目标为 @local/recent-sessions-panel。

典型用法

安装并启用后,无需额外配置即可使用:

  1. 分栏始终在左侧栏底部;点标题行(或右侧箭头)折叠/展开,刷新后保持上次选择。
  2. 点列表中的会话行切回对应会话。
  3. 运行中的会话标题前会出现旋转的 ⏳。
  4. 侧栏收起时,行内为时钟按钮;点击展开侧栏并显示分栏。

若需改列表条数、列表高度上限、运行中符号、动画速度或折叠持久化键,均在 client.js 中调整(例如 MAX_ROWS 默认 8,.dsh-recent-list 的 max-height 默认 224px,COLLAPSED_KEY 对应上述 localStorage 键)。

本地开发时,通过 link 安装后修改 client.js 保存即可;dsh-client-hmr 约在 1 秒内热加载。提交前可做语法检查:

node --check client.js
node --check index.js

适用场景与注意

适合:长期在 DSH Web 中切换多条会话的开发者,希望在不改侧栏主浏览区的前提下,固定看到「最近互动」短列表。

限制与兼容性(来自 README):

  • 依赖 Client 槽位 sidebar.footer.action 与根级 Hook useSessions、uiWorkspace;Harness 大版本升级后若接口变化,可能需要小幅适配。
  • 未提供自动化测试,UI 行为依赖人工验证。
  • 仓库未使用 dsh plugin add github:... 一类一键命令;安装以 clone + install_bundle 或 profile link 为准。

DSH 生态强调「一切皆插件」;社区目录站点 SkillHub 插件页 与 GitHub 仓库由社区维护,与 DeepSeek / 幻方无官方从属关系。

结尾

dsh-recent-sessions-panel 在 Web 侧栏底部增加一块可折叠的最近会话列表,用目录快照排序、一行直达切换,并兼顾运行状态与主题。若你正在使用 DSH Web GUI,可按 README 克隆仓库并通过 install_bundle 或 profile link 启用。

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

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

Xiaoye