dshChatHisGroup:在 DSH Web 界面按工作区、时间与自定义分组浏览历史会话

前言

在 DeepSeek Harness(DSH)里长期跑多个工作区、多条会话时,侧栏能打开最近会话,但要在「全部历史」里按项目或时间段找一条旧对话,往往要反复滚动或依赖工作区切换。框架本身把会话目录和工作区快照投影给前端,却没有单独的「历史会话」聚合视图。

dshChatHisGroup(npm 包名 dsh-session-history)由 chaosxu1 维护,分类属于社区目录中的「记忆」类插件。它在会话页签行(对话 / 轨迹 / 上下文 / 编队 之后)增加「历史会话」页签,在右侧主区域列出全部可见历史会话,并支持按工作区、按时间或按自定义分组浏览,点一行即可进入该会话。实现是纯浏览器侧:不新增 Host 服务、不写 DOM、不追加会话事件。

这是什么

一句话定位:给 DSH Web UI 注册 conversation.view 页签(id = history),用框架已有的 useSessions 与 useWorkspaces 快照渲染列表与分组,分组定义和视图状态保存在本机浏览器 localStorage。

维护者与来源:

  • GitHub:https://github.com/chaosxu1/dshChatHisGroup
  • 社区目录页:https://www.skillhub.cn/plugins/chaosxu1/dshChatHisGroup

Host 半边 index.js 为空实现;可见性口径与侧栏一致(隐藏子代理来源会话、隐藏未开始的空白会话)。

核心功能

入口

打开任意会话,在页签行最右侧点「历史会话」,右侧主区域即显示全部历史会话列表。

三种分组方式

工具条可切换,当前选择会记住(保存在 localStorage 键 dsh.session-history.view.v1):

分组方式 说明
按工作区(默认) 按工作区成组,组内按最近活动排序;不属于任何工作区的会话归入「未分组」
按时间 今天 / 昨天 / 近 7 天 / 近 30 天 / 更早
按分组 自建命名分组,把会话移进去;未归组的进「未分组」

当前分组方式以蓝色文字与蓝色下划线标示,未选中项为三级灰度,样式与上方页签 token 一致。

按分组与归类

  • 仅在「按分组」视图有 + 新建分组:输入名称回车创建。
  • 分组标题悬停可 重命名 / 删除(删除需二次确认,组内会话回到「未分组」)。
  • 任意分组视图下,会话行悬停可出现「移动到分组」;菜单支持 新建分组并移入。
  • 在「按时间」「按工作区」页,已归类会话行尾显示分组小标签;点标签会跳到「按分组」页并只保留该组会话且自动展开。
  • 「按分组」页工具条有 全部分组 下拉,可按组名过滤;选中某组时自动展开。

分组方式、选中的分组、显示已归档、折叠状态为全局设置(切换会话或刷新后仍保留);仅搜索框为临时输入。

搜索、归档与打开会话

  • 搜索框即时按会话标题、工作区名过滤。
  • 显示已归档 默认隐藏已归档会话;勾选后以灰色显示并标「已归档」,不可点击打开(与侧栏一致)。
  • 点分组标题可折叠/展开,状态与视图一并本地保存。
  • 点击一行打开该会话;若目标会话上次也停在「历史会话」页签,会自动切回「对话」。

安装与启用

须通过 dsh 的 plugin_manager 安装,不要手改 profile 的 package.json / cordis.patch.yml。插件在 dsh 进程权限下加载,安装前建议阅读仓库源码与 MIT 许可证。

框架要求:package.json 中 dsh.engines.dsh 为 >=0.2.1-rc.3(当前插件版本 1.1.0)。

先在本地取得源码目录(README 示例为 clone 到本机),再在 plugin_manager 中:

plugin_manager → install_bundle
target = <克隆目录的绝对路径>

pnpm 会记成 link: 依赖,修改 client.js 后刷新页面(F5)即可生效。

方式 B:打包 tgz 再装(适合固定版本)

在插件目录执行:

cd dshChatHisGroup
npm pack

然后:

plugin_manager → install_bundle
target = <克隆目录>\dsh-session-history-<version>.tgz

tgz 为实体拷贝,装完后与源码目录是否仍存在无关。

升级、停用与卸载

版本号不变时 pnpm 可能沿用 node_modules 里旧条目;应先 remove_bundle 再 install_bundle,或改版本号后重新打包。

停用在 profile 最后一个 patch 层的 cordis.patch.yml:

- id: session-history
  disabled: true

重启 dsh。彻底卸载:plugin_manager → remove_bundle,目标 dsh-session-history。

典型用法

1、安装并启用后,打开任意会话,点页签行「历史会话」。

2、默认「按工作区」查看;若今天刚开的对话多,可切到「按时间」找「今天 / 昨天」。

3、跨项目长期跟踪某几条会话时:切到「按分组」→ + 新建分组 → 在列表行用「移动到分组」归类;之后在「按工作区」页也可点行尾分组标签,快速跳到该组的「按分组」筛选视图。

4、侧栏已归档的会话默认不显示;需要核对旧归档时勾选 显示已归档(灰色、不可点开,与侧栏行为一致)。

5、开发插件本身可在仓库根目录运行冒烟测试(不依赖浏览器):

npm test

适用场景与注意

适合谁:在同一 DSH 实例里会话数量多、工作区切换频繁,希望在主内容区用搜索、时间桶或自建分组找会话,而不是只在侧栏里翻列表的开发者。

数据边界:分组与视图状态仅本机本浏览器,不写入会话日志,不同步到其他机器。会话只能归档不能删除,插件不提供删除入口。

已知限制(README 原文):视觉主要在浅色主题与常规窗口宽度下确认;深色主题与极窄窗口未逐一验证。大版本升级后若 conversation.view 等四处框架接口变化,需对照新版本改 client.js 后重新安装。

生态说明:DSH 社区插件目录(如 skillhub.cn)为独立站点,与 DeepSeek / 幻方无官方从属关系;安装第三方插件前请自行审阅源码与权限影响。

结尾

dshChatHisGroup 把框架已有的会话目录与工作区快照做成可搜索、可分组的历史视图,改动集中在浏览器 client.js,Host 无额外服务。需要长期跟进可 link 安装,需要固定版本用 npm pack 后 install_bundle。

  • 目录页:https://www.skillhub.cn/plugins/chaosxu1/dshChatHisGroup
  • 源码与说明:https://github.com/chaosxu1/dshChatHisGroup
羽毛球分组比赛记分
小程序二维码

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

Xiaoye