前言¶
在 DeepSeek Harness(DSH)里归档会话,本质上只是视图层面的处理:侧栏在「View options → Archived」设为显示时,仍会渲染已归档行,归档搜索结果里也会出现它们,没有「永远不显示」的开关。另一方面,DSH 客户端工作区与 dsh-session-persistence 并未提供会话删除接缝,已归档会话会在磁盘上一直累积。若你希望归档项不再挤占会话列表,又需要一条可确认的永久擦除路径,社区插件 dsh-archive-purge(维护者 joyboy-yy,SkillHub 分类:记忆)针对的就是这两处缺口。npm 上的 dsh-archive-manager 是另一个无关插件,不要混淆。
这是什么¶
dsh-archive-purge 在侧栏会话列表中强制隐藏所有已归档会话,并提供统一管理面板:可搜索、多选、批量取消归档,或对已归档会话执行永久删除。删除范围覆盖会话日志目录、投影缓存、工作区注册表中的归档与置顶记录,并通过宿主事件让浏览器侧栏移除对应行。面板文案支持英文与中文,配色跟随宿主 --dsw-alias-* 主题令牌。当前 package 版本为 1.0.2,许可证 MIT,要求 Node.js >= 22。
核心功能¶
侧栏:归档行始终不可见¶
无论「归档显示」菜单如何设置,已归档会话在侧栏对话列表中都不会出现。插件在 shell.overlay 注册组件,对注册表 archivedSessionIds 中的每个 id 写入 [data-row-key="session:<id>"]{display:none},并用可访问描述作为后备规则,覆盖归档搜索结果中的行。
视图过滤器复位¶
浏览器持久化的 dsh.workspace.view.v5 中,archivedFilter 会被重置为出厂默认(default,即隐藏归档),避免菜单仍显示「全部对话(显示归档)」而列表实际为空的不一致状态。
管理面板¶
侧栏图标与中央列面板列出全部已归档会话,展示工作区、路径、磁盘占用、创建时间与子会话数量;支持搜索、多选与批量取消归档。
永久删除与边界¶
单次或批量删除前会弹出确认对话框,写明会话名称、体积以及将移除的内容。一次删除会移除四部分:
- 会话日志目录:
<DSH_HOME>/sessions/<project>/<encoded-session-id>/(含该目录下各代格式与会话本地产物); - 投影缓存:
<DSH_HOME>/storages/session_projcache/sessions/<id>.json; - 工作区注册表中的归档与置顶记录(
archivedSessionIds/pinnedSessionIds); - 浏览器侧栏行:通过会话控制器定义的
api-session/removed远程事件(@mode emit)通知客户端移除,避免可点击的「幽灵行」。
刻意保留: 附件文件。附件为内容寻址,可能与其他会话共享,不在删除范围内;面板底部会说明。若磁盘上日志已不存在,仅清理登记记录,按钮文案为「Clear record」(清除记录)。
删除前会先做拒绝检查,批量操作会分项报告:已删除及释放空间、无日志可删、或因原因被拒绝的会话。典型拒绝条件包括:目标不在归档集合中(跳过);该会话在本进程仍有 agent(live);workspace/session-activity 瀑布仍报告进行中的工作(active);目标目录不在配置的 sessions 根目录内或目录名与编码后的 session id 不一致(outside-root)。仅被浏览器加载进内存不作为拒绝理由,与 DSH 归档门控一致。
已知残留: 工作区成员数组 tables.workspaces.<id>.sessionIds 在删除后可能仍保留 id,宿主无「移除成员」操作,DSH 在派生行时会跳过找不到的摘要,一般不表现为 UI 问题。在当前 DSH 进程中刚归档的会话,若 agent 仍存在,需重启 DSH 后才能被本插件删除。
安装与启用¶
将 desktop 换成你实际使用的 profile 名(例如 web):
dsh plugin --profile desktop add dsh-archive-purge
安装后在 Settings → Plugins 中开启,列表里显示为 dsh-archive-purge。关闭插件会同时停用宿主路由与浏览器面板,不会改动已有会话数据。
典型用法¶
- 按上述命令安装并启用插件。
- 在 DSH 中照常归档不需要留在主列表的会话;归档后它们将不再出现在侧栏列表(与「归档显示」开关无关)。
- 点击侧栏归档管理入口,打开中央面板,用搜索定位会话,多选后批量取消归档,或选择永久删除并在确认框中核对名称与体积后执行。
- 若批量删除中有项被拒绝,在面板中查看逐项原因;对
live类拒绝,结束相关 agent 或重启 DSH 后再试。
适用场景与注意¶
适合长期用 DSH、归档会话较多、希望主列表干净且需要可控磁盘回收的开发者。永久删除不可恢复,操作前请确认会话不再需要。
插件以当前 DSH 进程的权限读写 <DSH_HOME> 下的会话与存储;安装前建议阅读 GitHub 仓库 源码与 MIT 许可证,并在可信环境使用。社区目录 SkillHub 插件页 与 GitHub 无 DeepSeek / 幻方官方从属关系,属 DSH「一切皆插件」生态中的第三方扩展。
结尾¶
dsh-archive-purge 把「归档仍可见」和「无法真正删会话」两处空白补上:列表侧强制隐藏归档项,面板侧统一恢复或按明确边界擦除日志与相关登记。需要安装说明与行为细节时,可看 SkillHub 目录页 与 GitHub README。