DeepSeek Harness (DSH) 的默认会话管理仅支持重命名、分叉和归档操作。归档操作仅是隐藏会话,数据仍然保存在磁盘上。长期使用会导致存储空间膨胀。dsh-session-delete 插件在会话行菜单中增加了“删除会话”选项,支持永久移除磁盘上的日志文件,并内置了防止误删运行中会话的安全机制。
核心功能¶
该插件在 DSH 会话行上下文菜单中添加了“删除会话”入口,与重命名、分叉和归档功能并列。
- 持久删除:永久移除磁盘上的会话日志目录。
- 运行保护:禁止删除运行中或当前打开的会话(前端禁用 + Host 侧二次校验)。
- 路径安全:严格校验目录名必须等于会话 ID,防止路径逃逸。
- 请求校验:仅接受同源 POST 请求。
- 操作确认:删除前需进行两步确认。
- 自动归档:删除后会话自动归档,侧边栏即时隐藏。
安装与启用¶
- 安装插件:
dsh plugin --profile web add github:Yicijiuhaobala/dsh-session-delete
- 启用插件:将
"dsh-session-delete"加入~/.dsh/profiles/web/package.json的dsh.profile.bundles数组,然后重启dsh web。 - 本地开发:若进行本地开发,需将源码
client/client.js和lib/index.js同步到~/.dsh/profiles/web/node_modules/dsh-session-delete/,或重新运行pnpm install以触发热更新。
典型用法¶
- 标准操作:鼠标悬停在任意会话行上,点击右下角的
⋯(三个点),选择“删除会话”。 - 删除归档会话:若需删除已归档的会话,可从
~/.dsh/storages/workspace.的archivedSessionIds中移除该 ID,或直接删除目录~/.dsh/sessions/<workspace-dir>/<session-id>/。
技术说明¶
由于 DSH 中的共享 UI 原语被 Object.freeze 冻结,组件级补丁会静默失败,该插件采用 DOM 级注入的方式实现。插件遵循 MIT 许可证。