dsh-clear-ungrouped
DeepSeek Harness plugin: one-click clear (archive) for the sidebar's Ungrouped conversations, with confirm and undo.
- Stars
- 0
- Language
- JavaScript
- Created
- Oct 6, 2026
- Updated
- Oct 6, 2026
Introduction
dsh-clear-ungrouped
DeepSeek Harness 插件:在侧边栏「未分组」的「新建会话」按钮左边加一个「清空未分组对话」按钮(扫帚图标,悬停分组标题时出现)。
行为
- 点击后弹出确认框,显示将处理的对话数量。
- 确认后归档「未分组」中的所有对话。dsh 的 Host 没有提供删除会话的接口,归档是官方移除会话的方式;归档后的对话会从侧边栏隐藏,可在「视图选项 → 全部对话(显示已归档)」中找回并取消归档。
- 完成后的提示条带「撤销」,6 秒内可一键恢复本次归档的全部对话。
- 以下对话会保留,不归档:
- 已置顶的对话;
- 正在运行的对话(含有运行中子智能体的)。
- 如果当前打开的对话被归档,主区域会回到新会话页(与侧边栏原生归档按钮一致)。
安装
dsh plugin --profile desktop add github:winniesi/dsh-clear-ungrouped
Web profile 把 desktop 换成 web。安装后重启 dsh(或刷新页面)。
本地开发可用 link:/path/to/dsh-clear-ungrouped 代替 GitHub 地址。
实现
纯浏览器端插件(client.js),index.js 只是 Loader 需要的空壳。
- 分组标题没有 slot,所以插件注册一个常驻的
shell.overlay条目,用MutationObserver在[data-row-key="workspace:"](未分组分组)的新建会话按钮前插入一个宿主元素,再用 React portal 把按钮渲染进去;按钮复用相邻按钮的 class,自动继承悬停显示和尺寸。 - 未分组成员的计算与 ui-workspace 相同:不属于任何工作区的会话,排除子智能体会话、空白会话和已归档会话。
- 归档走
uiWorkspace.archiveSession(不存在时回退到workspaces.archiveSession),撤销走workspaces.unarchiveSession。 - 弹窗、按钮、提示条使用
@deepseek-ai/dsh-client-ui-primitives(在客户端基础模块表中,无需声明 external)。
许可
MIT