DeepSeek Harness 自带“归档会话”操作,会将会话 ID 加入全局 archivedSessionIds 集合,使其从侧边栏隐藏。DSH 原生并未提供查看归档列表或恢复(取消归档)的界面。本文介绍的 dsh-archive-manager 插件正是为了填补这一缺口,它为侧边栏新增入口,列出所有已归档的会话(按工作区分组),并提供查看、恢复以及直接打开对话文件夹的能力。
核心能力¶
- 按工作区分组查看:侧边栏底部新增按钮,弹出面板列出所有已归档会话,按所属工作区归类,显示标题、ID 和更新时间。
- 恢复会话:点击恢复后,会话 ID 从归档集合中移除,会话在侧边栏恢复原位。
- 打开会话:点击打开时,插件会先执行恢复操作,然后打开该会话。
- 打开对话文件夹:直接在文件管理器中打开该会话的对话记录目录(包含
session.jsonl*日志文件)。 - 安全与轻量:代码防御性强,远程挂载失败时降级为只读面板;无编译步骤,纯 ESM/CommonJS 文件。
工作原理¶
插件通过注册一个远程服务 ctx.archiveManager 来实现核心逻辑。
- 恢复:
archiveManager/unarchive接口通过注册表的操作队列移除会话 ID,从而实现恢复。 - 打开文件夹:
archiveManager/openSessionFolder接口利用ctx.sessionPersistence定位持久化目录并在本地打开。 - 设计边界:由于 DSH 的持久化接口(
dsh-session-persistence-jsonl)不支持删除,且日志文件为追加式存储,该插件不提供物理删除会话文件的功能,仅支持从归档集合中移除(软删除)。
安装与启用¶
使用官方 CLI 安装(无需全局安装 dsh):
npx --yes @deepseek-ai/dsh plugin --profile web add https://github.com/Earnest02522/dsh-archive-manager.git
安装完成后,重启 DeepSeek Harness(或等待热更新重载配置),并刷新浏览器(Ctrl+Shift+R)。
注意事项¶
- 删除限制:根据 DSH 设计,删除对话(物理删除文件)不受支持,持久化接口本身无删除接口,因此该插件也不提供物理删除功能。
- 文件清理:若需彻底清理会话,需停止 DSH 进程,手动删除
~/.dsh/sessions/下的目录,由后续扫描索引自行清理。
相关资源¶
- 插件目录:https://www.skillhub.cn/plugins/Earnest02522/dsh-archive-manager
- 项目仓库:https://github.com/Earnest02522/dsh-archive-manager