DSH 0.1 版本的侧边栏三点菜单只有重命名、分叉和归档,API 也没有 delete 路由,JSONL 持久层是 append-only 的。归档功能只是隐藏会话,数据仍留在磁盘上。本插件补齐了这一能力,通过顶部 Trash 按钮移除内存和磁盘数据。
插件介绍¶
这是一个给 DeepSeek Harness (dsh) 补上删除会话能力的插件,由 chuling-lingling 维护。它解决了原版 dsh 无法彻底删除会话、磁盘数据无法清理的问题。
插件注册了宿主端的删除队列,浏览器端在会话头部注册 Trash 按钮。删除操作会触发 session/disposed 事件,将会话从内存中摘除并同步给所有客户端,同时删除对应的磁盘目录 ~/.dsh/sessions/<项目>/<会话ID>/。
核心功能¶
- 删除当前会话:同时移除内存中的会话对象和磁盘目录。
- UI 入口:在会话头部工具区注册 Trash 按钮,与 Session log 按钮同排相邻。
- 安全校验:会话 ID 需通过白名单校验(
session-前缀 + 受限字符集),防止路径注入。 - 健壮性处理:延迟复查刚创建的会话目录,防止目录落盘晚于删除操作;单次队列上限 50 个,处理结果写入日志。
- 持久化表现:侧边栏实时移除,重启后不会复活。
安装与启用¶
插件依赖 @deepseek-ai/schemastery,需要 dsh 0.1.x 环境及 pnpm。
# 安装
dsh plugin --profile web add github:chuling-lingling/dsh-plugin-session-delete
# 卸载
dsh plugin --profile web remove dsh-plugin-session-delete
安装后重启 dsh web 即可生效。
典型用法¶
- 打开任意会话。
- 点击会话页面顶部标题行、Session log 按钮左边的 Trash 按钮。
- 在确认弹窗中点击确认。
执行后,当前会话会从侧边栏和磁盘上消失,正在运行的会话会被强制终止,界面会自动切换。
适用场景与注意¶
- 适用场景:需要清理本地会话存储、保持侧边栏整洁的用户。
- 不可恢复:删除操作不可逆,确认弹窗是唯一防线。
- 按钮显示:头部 Trash 按钮只在非空白会话(有对话内容的会话)显示。
- 无批量列表:插件不提供批量删除列表,需逐个打开会话进行删除。
- 入口变更:v0.3.0 版本已移除设置页入口,仅保留聊天页 Trash 按钮。
结尾¶
该插件填补了 DeepSeek Harness 在会话管理上的关键空白,提供了真正意义上的数据清理能力。更多详情可查阅插件目录或源码。