前言¶
DSH 侧边栏里的「归档对话」只是把会话从列表中隐藏,会话日志文件仍留在文件系统里。akira399/dsh-session-delete 是一个 DSH 插件,在会话行的 ··· 菜单中新增「删除对话」入口,用于把会话日志从文件系统中永久删除,而不是仅做归档隐藏。
这是什么¶
- 插件名:
akira399/dsh-session-delete - 维护者:
akira399 - 许可证:
MIT - 定位:在 DSH 侧边栏会话菜单中永久删除会话,真正的物理删除,不是归档隐藏
- 依赖:仅使用 Node 内置模块与注入的官方服务,无第三方运行时依赖
核心能力¶
1、定位并删除日志文件:通过官方 sessionPersistence.locate() 定位会话目录,并递归删除日志文件。
2、处理运行中的会话:删除运行中的会话时,会先取消当前回复,并从内存摘除,再执行删除。
3、清理记账信息:同步清理 workspace.json 的会话席位与全局归档集合。
4、即时刷新:删除后会话行立即消失,无需刷新页面。
5、二次确认:删除前弹出确认框,并提示操作不可恢复。
6、定位校验:依据快照 store、侧边栏行序和标题校验,用于定位目标会话。
7、低依赖:仅使用 Node 内置模块与注入的官方服务,没有第三方运行时依赖。
安装与启用¶
已核实资料中的安装命令如下,其中 <owner> 是资料给出的占位符,未直接给出具体替换值:
npx -p @deepseek-ai/dsh dsh plugin --profile web add <owner>/dsh-session-delete
安装完成后重启 dsh web 生效。
由于删除操作会直接处理 DSH 本地会话文件,插件以当前 dsh 进程权限运行;安装前应检查源码与许可证。该插件许可证为 MIT。
典型用法¶
1、在左侧对话列表找到目标会话,点击该会话行尾的 ··· 按钮。
2、在「归档对话」下方点击「删除对话」。
3、在确认弹窗中点击「确定」。
4、如果删除的是运行中的会话,会先中止该会话的回复,再执行删除。
5、安装完成后,需要重启 dsh web 才能使用新入口。
适用场景与注意¶
适合需要从文件系统中移除会话日志、而不只是从侧边栏隐藏会话的 DSH 场景。
需要注意以下边界:
- 删除操作不可恢复。
- 删除请求仅接受来自
localhost的访问。 sessionId严格校验为session-<uuid>格式。- 附件属于跨会话共享资源,不随会话删除。
- 子代理会话独立存储,需要逐个操作。
- 菜单注入依赖官方客户端 DOM 结构与菜单文本。
- 查询/投影缓存不强制清理,官方缓存机制会在下次读取时自愈。
链接¶
GitHub 仓库:akira399/dsh-session-delete
目录页 URL 未在已核实资料中明确出现。