在 DeepSeek Harness(DSH)中,归档会话通常仅将其从视图列表中隐藏,但底层的会话日志文件(.jsonl.zstd)和记账数据保持不变,导致磁盘占用持续增长。dsh-archive-manager 插件在设置页面添加了专门的标签页,用于列出所有已归档会话并提供真正的删除能力,解决磁盘空间占用问题。
核心功能¶
设置页面集成¶
插件在设置页面添加了一个归档管理标签页,与“通用”、“模型”等设置项并列。这个标签页允许用户直接在浏览器端查看和管理已归档的数据,无需进入文件系统。
会话列表与删除¶
列表中显示已归档会话的标题、创建时间以及日志文件是否存在于磁盘。每行提供删除按钮,点击后弹出确认对话框,确认后移除会话目录、工作区会计记录和投影缓存。
安全与兼容性¶
- 严格验证:仅接受同源请求,对会话 ID 进行严格格式验证,防止路径遍历攻击。
- 环境兼容:解决了不同 PowerShell 版本下的 UTF-8 BOM 问题,确保文件读写一致。
- 持久化优先:删除操作会持久化更新
workspace.json,确保文件系统与内存状态一致。
安装与启用¶
1. 安装插件包¶
使用 npm 安装插件包:
npm install dsh-archive-manager-plus
2. 配置依赖¶
在 <profile>/package.json 的 dependencies 字段中添加依赖项:
{
"dependencies": {
"dsh-archive-manager-plus": "^0.1.0"
}
}
3. 注册捆绑¶
在 dsh.profile.bundles 数组中追加插件名称:
{
"dsh.profile.bundles": [
"dsh-archive-manager-plus"
]
}
安装完成后运行 npm install,确认包已进入配置目录,然后重启 DSH 并刷新页面。
使用步骤¶
-
归档会话
在侧边栏会话菜单中,点击任意会话行的⋯菜单,选择“归档会话”。建议先归档 1-2 个会话以进行测试。 -
打开管理页面
点击页面右上角的设置图标(齿轮),进入“设置”页面,点击“归档管理”标签页。 -
执行删除
在列表中找到已归档的会话,点击“删除”按钮。在确认对话框中点击确认。会话行将从列表中消失,对应的磁盘日志文件和缓存也会被清除。
注意事项¶
- 操作范围:插件仅提供删除已归档会话的功能,无法删除当前正在运行的会话。
- 历史保留:删除会话仅清理会话日志和记账,支出历史记录(
cost-meter/ledger.json)会被保留。 - 状态残留:删除后,内存中的状态可能短暂残留,直到下一次连接或刷新页面。
- 技术实现:浏览器端为手写 CommonJS 打包,主机端为纯 ESM 模块。
- 安全限制:插件的主机端仅接受同源请求,确保请求来源合法。
总结¶
该插件填补了 DSH 官方归档功能仅隐藏不删除的空白,提供了在设置页面直接清理磁盘占用会话的能力。通过严格的验证机制和持久化更新逻辑,保证了在清理文件的同时维持系统状态的完整性。