前言¶
DSH 在智能体开发过程中会产生大量会话数据。当会话目录被移动到其他盘符,或者原位置仅保留 junction/符号链接引用时,常规清理往往无法定位真实文件。dsh-session-delete 插件通过注入侧栏与工作区菜单项,提供了一套受控的删除流程,确保数据被彻底清除。
插件简介¶
该插件由 Baboo-ming 维护,采用 MIT 许可证。它解决了 DSH 会话数据残留的问题,支持侧栏单条删除与工作区批量删除,并提供七阶段流水线保证清理的完整性。
核心功能¶
插件提供两种删除模式,底层共用一套七阶段流水线:
-
侧栏会话删除
- 在侧栏会话行的菜单中注入红色“删除会话”危险项。
- 点击后弹出二次确认模态框,展示会话 cwd、占用大小、归档状态及运行状态。
- 确认后执行流水线,完成后刷新侧栏列表。
-
工作区批量删除
- 在工作区行的菜单中提供“删除所有会话”选项。
- 支持批量预览、后台任务执行与进度/失败明细查看。
- 单个会话失败不影响批次其他会话的删除,任务完成后汇总结果。
技术实现¶
插件包含以下关键能力:
* 七阶段流水线:依次执行校验、运行保护、工作区挂账移除、归档集合清理、磁盘日志删除、内存摘除、广播事件。任一阶段失败仅告警并降级继续,不会中断整体流程。
* 穿透删除:支持穿透 junction 和符号链接定位真实文件。
* 内存摘除:通过 sessions.flush 和 detachEntered 释放 JSONL writer 和内存引用。
* 彻底清理:永久删除,无法撤销。
安装¶
安装前需要退出 DSH 桌面端,否则 CLI 写入 profile 时会阻止服务启动。
dsh plugin --profile desktop add github:Baboo-ming/dsh-session-delete#v0.2.2
若需升级,需切换到新的 tag 并重跑上述命令。
使用方法¶
- 删除单个会话:在 DSH 侧栏的会话行点击
...菜单,选择红色高亮的“删除会话”。 - 删除工作区所有会话:在工作区行点击
...菜单,选择“删除所有会话”。
注意事项¶
- 永久性:删除操作是永久性的,无法撤销,请谨慎使用。
- 权限限制:部分 junction/符号链接用例需要 Windows 符号链接权限,在受限沙箱环境中可能会失败。
- 时序影响:在内存摘除后,如果重扫投影缓存,可能会导致磁盘日志被重新写入。
结语¶
该插件为 DSH 提供了标准化的会话清理方案,适用于需要彻底清理工作区或管理大量会话的场景。更多细节可参考官方文档。