前言¶
在 DSH 的 web profile 里,如果你需要把某个已归档会话在 $DSH_HOME/sessions 下的磁盘目录清理掉,而不是只在界面上保留它的记录,dsh-archive-manager 提供了一个侧边栏入口。它列出已归档会话,要求二次确认,然后删除对应会话目录。
下面介绍它是什么、能做什么、如何安装,以及使用前需要注意的限制。
这是什么¶
dsh-archive-manager 由 zimixvx 维护,采用 MIT 许可证。它是一个 out-of-tree 的 DeepSeek Harness Web Cordis plugin,面向 web profile。
它不改 DSH 核心安装,也不改 profile 配置;唯一对 $DSH_HOME 的持久影响,是删除用户确认后的 $DSH_HOME/sessions 下所选会话目录。
插件分成两半:
- host half 注册
POST /archive-manager/delete; - client half 注册
sidebar.footer.action,其中id: archive-manager,order: 80。
核心功能¶
1、在侧边栏 footer 增加归档管理动作。宽模式下显示 已归档 N,窄边栏只显示归档图标。
2、打开弹窗后,只列出 archivedSessionIds 中仍有 session summary 的会话 id,并显示 displayTitle(或 id)、cwd 和 updatedAt。
3、每一行提供 trash 按钮。删除前要求第二次确认,明确提示会永久删除会话目录且不可恢复。
4、删除成功后,插件刷新 sessions 和 workspaces。本地 deleted-id set 也会立即隐藏该行。
安装与启用¶
从 GitHub 安装¶
把插件加入 web profile:
dsh plugin --profile web add "github:zimixvx/dsh-archive-manager"
从本地路径安装¶
如果插件目录在:
D:\Code\DeepseekHarness\plugins\dsh-archive-manager
可以执行:
dsh plugin --profile web add "D:\Code\DeepseekHarness\plugins\dsh-archive-manager"
这条命令会写入 dependencies。随后需要在 $DSH_HOME/profiles/web/package.json 的 dsh.profile.bundles 中加入 dsh-archive-manager:
{
"name": "dsh-profile-web",
"private": true,
"dependencies": {
"dsh-archive-manager": "file:D:/Code/DeepseekHarness/plugins/dsh-archive-manager"
},
"dsh": {
"profile": {
"bundles": [
"@deepseek-ai/dsh-base",
"@deepseek-ai/dsh-web-app",
"dsh-archive-manager"
]
}
}
}
这里的重点是 bundles 列表;dependencies 的具体条目由 dsh plugin --profile web add 写入。
重启 web profile¶
运行中的进程不会读取新的 bundle 行,因此安装或卸载后都需要重启 web profile:
dsh web
刷新页面后,侧边栏 footer 会出现归档管理动作。
典型用法¶
1、在已重启的 web profile 页面中,点击侧边栏 footer 的归档管理动作。
2、在弹窗中选择一个已归档会话。列表只包含 archivedSessionIds 中仍带有 session summary 的会话 id。
3、点击该行 trash 按钮,并在第二次确认中确认永久删除。
4、插件会发起同源 POST /archive-manager/delete。成功后,刷新 sessions 和 workspaces;即使后续刷新失败,本地 deleted-id set 也会立即隐藏该行。
适用场景与注意¶
适合需要在 DSH web profile 中手动清理已归档会话磁盘目录的开发者。它只处理已归档会话,不替代 workspace registry 管理,也不处理共享附件。
使用前务必检查源码和许可证。该插件会以当前 dsh 进程的权限运行;安装前请确认你信任代码,并了解它删除的目录位于 $DSH_HOME/sessions。
限制如下:
- 仅允许删除
workspaceRegistry.archivedSessionIds中存在的会话;live session 会被拒绝,返回 HTTP409。 - 需要 raw-artifact backend:
supportsRawArtifacts === true,且locate()返回{ kind: 'jsonl', path };否则路由返回501。 - 删除只是对会话目录执行递归
rm,force: false,不可恢复,没有 trash 或 restore 路径。 - 不修改 workspace registry、archived markers、projection cache,或 content-addressed attachments / shared attachments。
- 删除成功后,
archivedSessionIds中的标记按设计保留。因为弹窗只列出仍有 session summary 的已归档 id,物理删除会移除 summary,所以重载后不会再次出现。 - 插件没有自有 durable state。卸载时从
dsh.profile.bundles和dependencies中移除dsh-archive-manager,然后重启即可。
链接¶
- GitHub:https://github.com/zimixvx/dsh-archive-manager
- 社区目录页:https://www.skillhub.cn/plugins/zimixvx/dsh-archive-manager