前言¶
在 DeepSeek Harness(DSH)里长期跑智能体,侧栏会话会越积越多。宿主自带的「归档」只是把会话藏起来,磁盘上的日志和投影缓存还在;若会话状态异常,有时连归档也救不了场,你仍需要一条「删掉就是真删」的路径。社区插件 dsh-plugin-session-delete(包名 @sukjg1052/dsh-plugin-session-delete,维护者 SUKJG1052)补的就是这一步:在 Web 端与桌面客户端的 UI 里删除会话,并走 host 侧完整清理链路,避免下次 flush 又把会话「复活」。
下面按定位、功能、安装与用法说明,事实均来自仓库 README 与 package.json。
这是什么¶
一句话:在 DSH 0.2.x 界面中删除会话(非仅归档),含头部按钮、侧栏菜单、风险确认弹窗,以及 Agent 可调用的 workbench_session_delete 工具。
- 分类:客户端(注入会话头部、侧栏会话行菜单等 UI 插槽)
- 兼容:
engines.dsh为>=0.2.0-rc.1 <0.3.0-0;README 写明适用于 0.2.x,并按 0.2.1-rc.2 逐项核对验证 - 当前发布版本:v1.0.1(2026-10-19)
- 许可证:MIT
插件未发布到 npm,只通过 GitHub 发布;社区目录页:https://www.skillhub.cn/plugins/SUKJG1052/DSH-Plugin-Session-Delete,源码:https://github.com/SUKJG1052/DSH-Plugin-Session-Delete。
核心功能¶
两处 UI 入口,同一套确认流程¶
- 会话头部:标题右侧的垃圾桶(危险样式)。若会话正在运行,提示会变为「删除会话(运行中,删除将停止任务)」。
- 侧栏会话行:「…」菜单中的「删除会话」,排在宿主自带的 pin、重命名、fork、归档之后(官方槽位
sidebar.workspaces.session.menu.item,order: 500)。
两处都会打开同一个确认弹窗:展示会话名称与会话 id;运行中会额外警告;必须勾选「我已了解后果,确认删除」后,删除按钮才可用。
删除链路与列表刷新¶
删除时会先处理运行中的 Agent(停止任务再删,进行中的操作会中断)。host 侧经活动的 storageDomain 清理会话日志、投影缓存与工作区记账,使内存状态与磁盘一致。客户端删除成功后就地刷新会话列表,无需整页重载。
Agent 工具¶
注册工具 workbench_session_delete,参数 sessionId 支持裸 id 与 session- 前缀两种写法;UUID、计数器 id、自定义 id 均可(路径安全校验,拒绝非法路径字符)。
其他¶
- 文案中英双语,跟随界面语言(设置或浏览器语言)。
- 插件列表通过
locale/zh.json、locale/en.json显示本地化标题「删除会话」与说明,而非仅显示包名。 - v0.4.1 起对
webServer上的列表/删除端点增加跨站请求围栏,降低非同源浏览器误调风险。
安装与启用¶
插件只发布在 GitHub。<profile> 在 Web 端一般为 web,桌面端为 desktop;以下以 v1.0.1 为例。
先做命令行安装(须带 --profile,否则会报 required option '--profile <name>' not specified):
dsh plugin --profile <profile> add github:SUKJG1052/DSH-Plugin-Session-Delete#v1.0.1
dsh --profile <profile> --dump-config # 可选:确认配置树里出现 chameleon-session-delete
装完后重启对应 profile 生效(开启 HMR 的 profile 可能即时生效)。界面安装:侧边栏「插件」→「添加插件」→ 在「包名或地址」粘贴上述 github:...#v1.0.1 →「安装」→ 重启 DSH。
本机没有 git 或 GitHub 连通性预检失败时,可用 codeload 直链(由 pnpm 下载,跳过 git 与部分预检):
dsh plugin --profile <profile> add https://codeload.github.com/SUKJG1052/DSH-Plugin-Session-Delete/tar.gz/refs/tags/v1.0.1
桌面端若无全局 dsh,使用安装目录下的 CLI:resources/runtime/cli/bin/dsh(Windows 为 resources\runtime\cli\bin\dsh.cmd),参数相同;需先启动过一次桌面应用以初始化 desktop profile,并在执行命令前完全退出应用。
从旧包 @huanlin/dsh-plugin-session-delete(0.5.x 及更早)升级时,须先卸旧再装新:
dsh plugin --profile <profile> remove @huanlin/dsh-plugin-session-delete
dsh plugin --profile <profile> add github:SUKJG1052/DSH-Plugin-Session-Delete#v1.0.1
卸载:
dsh plugin --profile <profile> remove @sukjg1052/dsh-plugin-session-delete
典型用法¶
- 在 UI 删会话:侧栏某行「…」→「删除会话」,或进入会话后在头部点垃圾桶;勾选确认项后点删除。列表会自动更新。
- 让 Agent 删:在对话中说明要删哪个会话,Agent 可调用
workbench_session_delete(sessionId写法见上文)。 - 删运行中的会话:会先停止该会话上的任务,再执行删除。
适用场景与注意¶
适合谁:需要在 DSH 0.2.x 里定期清理会话、处理无法归档的坏会话,或希望 Agent 在授权范围内删除指定会话的开发者。
版本:不支持 DSH 0.1.x;0.2.0-rc.x 仍可用。若安装时提示不兼容,应使用与当前 DSH 版本匹配的插件版本,README 不建议随意使用 dsh plugin allow-version ... --accept-risk 豁免。
安全与信任:插件以当前 DSH 进程的权限运行,安装前请自行查看源码与 MIT 许可证,确认符合你的环境策略。社区目录 skillhub.cn 为独立站点,与 DeepSeek / 幻方无官方从属关系。
结尾¶
归档解决不了「必须从磁盘抹掉」的需求时,删除会话插件把 UI 入口、确认 consent、停 Agent、清 storage 与列表刷新串成一条链路,Web 与桌面端行为一致。需要安装包与 FAQ 时,以 GitHub README 为准;在生态里检索可打开目录页 https://www.skillhub.cn/plugins/SUKJG1052/DSH-Plugin-Session-Delete 或仓库 https://github.com/SUKJG1052/DSH-Plugin-Session-Delete。