前言¶
DeepSeek Harness(DSH)可以把会话归档:归档 id 写入 ~/.dsh/storages/workspace.json,日志仍留在磁盘,侧栏里也能通过 archivedFilter 翻到已归档条目。但宿主默认不提供完整的管理界面,也没有安全的删除路径——想清掉归档会话,往往只能手改注册表并手动删目录,还容易和运行中的宿主内存状态冲突。归档错了也谈不上回收站。
下面介绍社区插件 dsh-archive-desk(维护者 LumiDesk,分类:记忆)。它在 DSH 侧栏提供「归档工作台」整页管理,并注册 Agent 可调用的 archived_conversations 工具,把「看得见、恢复得了、删得掉」补在原生「归档」之后。
这是什么¶
dsh-archive-desk 是面向 DeepSeek Harness 的归档会话工作台:浏览带预览的归档列表、取消归档、删除(默认进回收站)、从回收站恢复或彻底删除,支持搜索、排序、分页与批量操作;删除走注册表 API 与事务化文件操作,并与 workspace/session-activity 对齐活动判定。
- 目录页:skillhub.cn/plugins/LumiDesk/dsh-archive-desk
- 源码与文档:github.com/LumiDesk/dsh-archive-desk
- npm 包名:
dsh-archive-desk(README 标注当前 npm 版本可通过包页查看;仓库package.json为 1.0.1) - 许可证:MIT
插件无 settings.json、无配置页、无环境变量开关;列表每页条数、排序等由页面控件决定,默认 20 条、按最近活动,且不持久化。
核心功能¶
界面与列表¶
侧栏点击「归档工作台」进入整页:「已归档」与「回收站」两个页签。列表展示标题、摘要、项目、时间、体积与状态;支持按标题 / 摘要 / 项目 / cwd / id 搜索,按最近活动、体积、标题或归档顺序排序;分页可选每页 10 / 20 / 50,删除后自动校正页码。多选支持当前页全选或「选择全部筛选结果」,可批量删除或取消归档。首次加载显示骨架屏,刷新时保留旧数据。
状态与删除边界¶
| 状态 | 判定 | 删除相关行为 |
|---|---|---|
| 运行中 | DSH workspace/session-activity 报告有活动 |
可删,但会先停止 turn / job / 定时任务 / 子 Agent |
| 失效 | 归档 id 存在,但 sessions/ 下无对应目录 |
只能移除归档引用,不动文件 |
| 正常 | 目录存在且无宿主活动 | 常规删除或取消归档 |
「运行中」不把「会话已加载进宿主进程内存」当作用户仍在使用;删除前对真有活动的会话会先发 workspace/session-stop。运行中的会话不参与批量勾选,需通过行内「…」菜单或 Agent 工具单独处理。
删除默认移入 ~/.dsh/archive-desk/trash/;彻底删除需主动切换模式并勾选「不可恢复」。回收站支持分页、批量恢复 / 彻底删除 / 清空;缺 meta 或 payload 的损坏条目仍可见,仅允许删除。顶部可一键清理「失效引用」(日志已删但归档 id 仍在)。
取消归档只从 archivedSessionIds 移除 id,不移动或删除会话文件,侧栏行回到原项目。已归档会话的「…」菜单多一行「删除」,会打开与管理页相同的确认弹窗。
删除执行顺序(概要)¶
确认删除后,插件按固定顺序处理,任一步失败会留下可解释状态:
- 有活动则
workspace/session-stop; - 会话目录移入回收站或彻底删除;
- 删除
storages/session_projcache/sessions/<id>.json; - 从 workspace 成员列表移除;
- 从
archivedSessionIds移除; - 发出
api-session/removed。
~/.dsh/attachments 永不触碰。停不下来的会话会被跳过并提示稍后重试。
Agent 工具¶
工具名:archived_conversations。支持 list、unarchive、delete(进回收站,需 confirm)、trash、restore。彻底删除不开放给工具,留给人在面板中操作。
{ "action": "list", "query": "登录", "limit": 10 }
{ "action": "unarchive", "ids": ["session-…"] }
{ "action": "delete", "ids": ["session-…"], "confirm": true }
{ "action": "trash", "limit": 20 }
{ "action": "restore", "trashIds": ["2026…-session-…"] }
依赖与兼容¶
依赖 DSH 的 workspaceRegistry 与 workspace/session-activity;宿主缺少相关能力时,破坏性操作会返回 archive/unsupported。插件为本地用户态:无账号、无网络请求、无遥测。
安装与启用¶
Web 端(推荐,DSH 会把参数转发给 pnpm):
dsh plugin --profile web add dsh-archive-desk
桌面端将 web 换成 desktop:
dsh plugin --profile desktop add dsh-archive-desk
也可从 GitHub 安装:dsh plugin --profile web add github:LumiDesk/dsh-archive-desk;从本地目录安装前需先 pnpm build(dist/ 不入库)。条目亦收录于 dsh-plugin.org 插件市场,安装命令与 README 一致。
安装后在「设置 → 插件」可见,侧栏出现「归档工作台」图标。
典型用法¶
- 侧栏打开「归档工作台」→「已归档」查看全部归档会话,「回收站」查看待清理项。
- 勾选会话 →「删除」→ 选择「放入回收站」或「彻底删除」→ 确认;或点「取消归档」仅移出归档集合。
- 关注顶部失效引用提示,按需一键清理。
- 在回收站单行或批量恢复、彻底删除,或清空回收站。
- 让 Agent 用
archived_conversations列清单、取消归档或删到回收站;不可恢复的彻底删除仍由人在界面完成。
适用场景与注意¶
适合长期在 DSH 里积累大量归档会话、需要搜索排序与批量整理,或希望 Agent 在受控范围内管理归档(仅到回收站)的开发者。
插件以当前 dsh 进程的用户权限读写 ~/.dsh/sessions/、~/.dsh/storages/(经注册表 API)与 ~/.dsh/archive-desk/。安装前建议阅读源码与 MIT 许可证,确认行为符合你的数据保留策略。DSH 生态强调「一切皆插件」;skillhub、dsh-plugin.org 等为社区目录,与 DeepSeek / 幻方无官方从属关系。
结尾¶
原生 DSH 负责「归档」;dsh-archive-desk 补上预览、恢复、回收站与彻底删除,并把列表与删到回收站的能力交给 Agent。需要安装或源码时,见 目录页 与 GitHub 仓库。