前言¶
在 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 中说明的能力如下,均可对照仓库文档核对。
- 布局:分栏占真实布局高度,默认展开;折叠后不浮在内容上。侧栏收成 56px 竖条时缩成时钟图标,点击可展开侧栏并显示分栏。
- 排序与过滤:按会话目录中的
updatedAt倒序,最多 8 条;自动排除子代理会话与从未提问的空白会话。 - 导航:点任意会话行调用 Client 服务
uiWorkspace.openSession(sessionId),与在侧栏点会话行等价。 - 运行中指示:正在运行的会话标题前显示 ⏳,CSS 动画旋转;系统开启
prefers-reduced-motion时停转。 - 数据与刷新:订阅 Harness 根级
useSessions会话目录快照,活动变化即时反映,不额外请求 Host。 - 持久化与主题:折叠状态键为
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,左侧栏底部即可看到「最近会话」分栏。
方式二:手动安装(高级)¶
- 在 profile 的
package.json依赖中加入 link,例如:
"@local/recent-sessions-panel": "link:C:/path/to/dsh-recent-sessions-panel"
- 将
"@local/recent-sessions-panel"加入同一文件中的dsh.profile.bundles数组。 - 在 profile 目录执行
pnpm install,然后重启 DeepSeek Harness。
卸载¶
在插件管理面板停用/移除该 bundle,或让助手执行 plugin_manager → remove_bundle,目标为 @local/recent-sessions-panel。
典型用法¶
安装并启用后,无需额外配置即可使用:
- 分栏始终在左侧栏底部;点标题行(或右侧箭头)折叠/展开,刷新后保持上次选择。
- 点列表中的会话行切回对应会话。
- 运行中的会话标题前会出现旋转的 ⏳。
- 侧栏收起时,行内为时钟按钮;点击展开侧栏并显示分栏。
若需改列表条数、列表高度上限、运行中符号、动画速度或折叠持久化键,均在 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与根级 HookuseSessions、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 启用。