用 dsh-archived-conversations 在 DeepSeek Harness 设置页管理归档会话

前言

DeepSeek Harness(简称 dsh)是 DeepSeek 开源的 Agent 运行时,官方仓库把设计原则写成一句话:一切皆插件(Everything is a Plugin)。模型适配、工具、会话日志、Web 界面都可以按 profile 组合,社区也可以再往上叠一层能力。本文介绍的不是官方应用商店里的条目,而是社区目录站点收录的一款插件;该目录与 DeepSeek / 幻方没有官方从属关系,安装前需要自己核对仓库和许可证。

日常用 Web 界面时,侧边栏会话行菜单里有「归档」。点下去之后,会话会从列表里消失,进入工作区注册表里的归档集合。数据还在,只是默认界面不再展示。如果之后还想翻回完整对话、把会话恢复到侧边栏,或者连本机日志一起清掉,就需要额外的入口。dsh-archived-conversations 做的就是这件事。

这是什么

dsh-archived-conversations 是一款面向 DSH Web(Cordis)的组合插件,由 hxyz486 维护,MIT 许可。社区目录把它归在「会话与消息」分类。仓库界面名称是「归档对话查看」(archived-conversation-viewer),当前 package.json 里的包名为 dsh-hxyz-archived-conversations,版本 0.1.2,并声明浏览器半身只用于 web 平台。截至 2026-08-18,目录页与 GitHub 仓库均显示 6 颗星;目录页记录最近一次推送时间为 2026-08-14。

它解决的问题很具体:在设置页列出已经归档的会话,按工作区分组,支持展开对话全文、一键恢复,以及彻底删除。插件注册在 profile 的组合配置里,所以刷新页面、重启 dsh 之后,这个入口仍然在。

核心功能

根据仓库 README 和源码(index.js / client.js),当前已核实的能力如下。

1、查看归档会话
侧边栏会话行菜单选择「归档」后,会话从侧边栏消失,进入归档集合。设置页的「归档会话」面板会按工作区把这些会话列出来;不属于任何工作区的条目归入「未分组」。每条显示标题(没有标题则回退到会话 id)和创建时间。若会话头已经读不到,行上会标「日志已丢失」。

2、按工作区分组与折叠
每个工作区是一组,组头显示标题、路径和数量。可以单独展开或收起,也可以用「全部展开 / 全部收起」。列表区域限制高度并允许上下滚动,方便归档数量较多时浏览。面板上还有「刷新」。

3、查看对话全文
点击会话行会向宿主请求该会话的日志,展开用户 / 助手 / 工具消息。宿主半身通过 sessionQuery.readSession 读取事件,把文本、思考、图片、工具调用和工具结果转成可展示的纯文本;只对仍在归档集合中的 sessionId 响应。

4、恢复
把会话 id 从归档集合里移出,并尝试按会话的工作目录(cwd)重新挂回原来的工作区。成功后会话会重新出现在侧边栏。如果本机日志已经不在,恢复会失败,源码会提示改用「删除」清理残留的归档记录。

5、彻底删除
删除不是只改一个标记。宿主会先尝试删除本机会话日志目录(README 写明对应 session.jsonl.zstd 所在目录),成功后再清掉归档记录和工作区分组归属。界面上要点两次:第一次按钮文案是「删除」,第二次变成「确认删除?」。这是不可恢复的操作。

安装与启用

目录页给出的安装命令如下,在 DeepSeek Harness 终端中运行即可。不要凭仓库名自行拼接:

dsh plugin add github:hxyz486/dsh-archived-conversations

dsh CLI 会从 GitHub 解析插件并安装到当前配置。该插件声明了 Web 客户端,应装进会启动 Web UI 的 profile(常见是 web)。若当前终端并不指向 web profile,可以按官方文档的写法显式指定:

dsh plugin --profile web add github:hxyz486/dsh-archived-conversations

目录页建议可复现安装时固定 commit 哈希。本文核实到仓库 master 在 2026-08-14 的提交为 09a9198f735a333ab57866522fde4cf8ddd4bb52,对应写法是:

dsh plugin add github:hxyz486/dsh-archived-conversations#09a9198f735a333ab57866522fde4cf8ddd4bb52

仓库 README 还记录了一种手工安装:把插件目录 junction / 复制到 profile 的 node_modules,再在 cordis.patch.yml 里插入插件 id,然后用 --profile web 重启。需要注意,README 示例里的 id 仍写作 archived-conversation-viewer,而当前包名已经改为 dsh-hxyz-archived-conversations。优先用目录页的 dsh plugin add;若走手工路径,安装后以设置页实际出现的插件卡片为准,不要只对照 README 里的旧 id。

启用后的确认位置:

  • 设置 → 插件 → 全部:应能看到「归档对话查看」卡片(源码里的 settings.plugin.item)。
  • 设置左下角齿轮 → 归档会话:这是管理界面(settings.section,label 为「归档会话」)。

典型用法

下面的步骤来自 README 的「使用入口」和客户端实现,可以在本机复现。

1、在侧边栏找到一条暂时不用的会话,打开行菜单,选择「归档」。该会话从列表消失。

2、打开设置,进入「归档会话」。面板标题旁会显示归档总数;会话按工作区分组,组头可点击折叠。

3、点击某一行的标题或「查看」,展开对话全文。消息会标出角色(用户 / 助手 / 工具)、时间和序号。

4、若这条对话还要继续用,点「恢复」。插件会把会话移出归档集合;能匹配到原工作区路径时,会重新挂回去,侧边栏应再次出现该会话。

5、若确定不再需要,点「删除」,按钮变为「确认删除?」后再点一次。日志目录删除成功后,归档记录和分组归属一并清掉,无法从插件里找回。

空列表时,面板会提示归档入口仍是侧边栏行菜单里的「归档」。恢复或删除成功后,客户端会调用 sessions.refresh / workspaces.refresh,让侧边栏尽快与注册表对齐,而不必整页刷新。

适用场景与注意事项

适合已经在用 DSH Web 界面、并且会把会话归档收起来的人:项目告一段落想把侧边栏留干净,过几天又要翻当时的工具调用记录;或者归档集合里堆了幽灵条目(日志没了、标记还在),需要清理。它不提供搜索、批量删除、导出 ZIP 或关闭 dsh 进程这类能力,README 和源码里都没有这些接口。

使用前有几条必须看清的边界,都来自当前源码,而不是猜测。

  • 权限与安全:插件以当前 dsh 进程的权限运行,安装时可能执行代码。安装前请阅读 GitHub 仓库和 MIT 许可证;只从自己核过的来源安装。社区目录收录不等于官方背书。
  • 删除会动磁盘deleteSession 通过 subprocess 解析 pwshpowershell,对日志目录执行 Remove-Item -LiteralPath ... -Recurse -Force。找不到 PowerShell 会直接报错并中止,会话保持原样。这条删除路径是按 Windows 环境写的;列表、阅读和恢复不走 PowerShell。
  • 运行中的会话删不掉:若该会话的 agent 状态为 running(正在处理消息),源码会拒绝删除,提示等它结束,或先恢复再处理。idle 驻留进程会尝试 flush 后摘除;摘除失败时会要求重启 dsh 再删。
  • 两次确认挡不住误操作的全部后果:界面只是把同一按钮点两次,没有额外输入会话标题之类的校验。点下去就会清日志,请先确认看的是哪一条。
  • 不要把它当成官方功能:DeepSeek Harness 官方仓库是 https://github.com/deepseek-ai/deepseek-harness 。本文插件来自社区维护者 hxyz486,目录页为独立站点 https://deepseek-harness-plugin.com/zh-CN/plugins/dsh-archived-conversations/ 。

小结

dsh-archived-conversations 把「已经归档、侧边栏看不见」的会话重新放到设置页里:按工作区分组浏览,展开全文,恢复回侧边栏,或者连本机日志一起删掉。安装命令以目录页为准:

dsh plugin add github:hxyz486/dsh-archived-conversations

目录页:https://deepseek-harness-plugin.com/zh-CN/plugins/dsh-archived-conversations/
GitHub:https://github.com/hxyz486/dsh-archived-conversations

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

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

小夜