前言¶
在 DeepSeek Harness(DSH)里用久了,侧边栏「未分组」往往会堆满临时会话。原生界面可以逐条归档,但没有针对整组「未分组」的批量操作。若你经常需要清空未归类对话、又希望误操作可撤回,社区插件 dsh-clear-ungrouped 提供带确认与撤销的一键归档能力。下面介绍它的定位、行为与安装方式。
这是什么¶
dsh-clear-ungrouped 是维护者 winniesi 发布的 客户端(Web)插件,在侧边栏「未分组」分组的「新建会话」按钮左侧增加「清空未分组对话」入口(扫帚图标,悬停分组标题时出现)。点击后确认数量,将符合条件的未分组对话 归档(非物理删除);DSH Host 未提供删除会话接口,归档是官方从侧边栏移除会话的方式。
- 目录页:https://www.skillhub.cn/plugins/winniesi/dsh-clear-ungrouped
- 源码:https://github.com/winniesi/dsh-clear-ungrouped
- 许可证:MIT(
package.json版本 1.0.0,要求dsh>=0.2.0-rc.1 <0.3.0-0)
社区插件目录为独立站点,与 DeepSeek / 幻方无官方从属关系;安装前请自行查看源码与许可证。插件在 当前 dsh 进程/浏览器上下文 中运行,权限与所用 DSH 实例一致。
核心功能¶
交互与归档范围¶
- 点击扫帚按钮后弹出确认框,展示 即将处理的对话数量。
- 确认后对「未分组」内符合条件的会话调用归档;归档后会从侧边栏隐藏,可在 视图选项 → 全部对话(显示已归档) 中找回并取消归档。
- 操作完成后的提示条提供 「撤销」,6 秒内 可恢复本次归档的全部对话。
会保留、不归档的会话¶
- 已置顶的对话;
- 正在运行的对话(含有运行中子智能体的)。
与当前会话的关系¶
若当前打开的对话被本次归档,主区域会回到新会话页,行为与侧边栏原生归档一致。
安装与启用¶
Desktop 配置下安装:
dsh plugin --profile desktop add github:winniesi/dsh-clear-ungrouped
Web 配置将 desktop 换为 web:
dsh plugin --profile web add github:winniesi/dsh-clear-ungrouped
安装后 重启 dsh 或 刷新页面 使插件生效。
本地开发时,可用本地路径代替 GitHub 地址(示例):
dsh plugin --profile desktop add link:/path/to/dsh-clear-ungrouped
典型用法¶
- 安装并重启或刷新后,在侧边栏找到 未分组 分组。
- 将鼠标悬停在未分组标题区域,在「新建会话」左侧应出现扫帚按钮。
- 点击按钮,在确认框中核对数量后确认归档。
- 若需反悔,在提示条消失前(6 秒内)点 撤销;否则到「全部对话(显示已归档)」中手动取消归档。
实现要点(供开发者参考)¶
插件为纯浏览器端实现(client.js),index.js 仅为 Loader 所需空壳。因分组标题无 slot,插件注册常驻 shell.overlay,用 MutationObserver 在未分组行([data-row-key="workspace:"])的新建会话按钮前插入宿主节点,再通过 React portal 渲染按钮;未分组成员的计算与 ui-workspace 一致(不属于任何工作区的会话,排除子智能体会话、空白会话和已归档会话)。归档走 uiWorkspace.archiveSession(不存在时回退 workspaces.archiveSession),撤销走 workspaces.unarchiveSession。
适用场景与注意¶
适合:长期本地或 Web 使用 DSH、未分组会话较多、希望批量归档且保留误操作窗口的用户。
注意:
- 归档不等于删除;找回路径依赖 DSH 自带的「显示已归档」视图。
- 置顶与运行中的会话不会被清理,若「清不干净」请先检查这两项。
- 插件依赖 DSH 0.2.x RC 段版本范围,升级主版本前请核对
peerDependencies。 - 安装第三方插件前请阅读仓库 README 与
client.js,确认行为符合预期。
结尾¶
dsh-clear-ungrouped 用一个小按钮补齐了「未分组」批量整理能力:确认数量、归档隐藏、六秒内可撤销,并与 DSH 原生归档语义一致。需要时可从 SkillHub 目录页 进入说明,或在 GitHub 仓库 查看源码与更新。