前言¶
在 DeepSeek Harness(DSH)里做智能体或长周期开发时,侧边栏会话会按工作区不断累积。原生会话列表面向「点开一条继续聊」,缺少一次勾选多条、再统一删除、归档或置顶的路径。若只靠逐条操作,清理历史对话或整理置顶/归档状态会占用不少时间。dsh-session-multiselect 是面向 DSH Web 客户端的插件,用可搜索、可按工作区分组的多选面板,把删除、归档、置顶做成批量动作,并尽量走官方 sessions / workspaces 契约,而不是改 DSH 原生代码。
这是什么¶
dsh-session-multiselect 由维护者 xlxs123 发布,分类为客户端插件,当前 package 版本 0.10.2,许可证 MIT。它定位是:在 DSH Desktop 的会话列表旁提供入口,打开面板后多选对话,再批量删除、归档或置顶。
官方会话列表由 @deepseek-ai/dsh-client-ui-workspace 以 single slot 独占渲染,没有逐行扩展 slot,因此入口通过 DOM 注入实现:在会话列表工具栏、搜索放大镜左侧放置 28px 按钮;定位失败时,入口会退到侧边栏底部 sidebar.footer.action slot,功能不丢。面板与批量逻辑使用官方扩展面:sessions 服务、workspaces 服务(归档/置顶)、locale 与客户端 store。
兼容性方面,README 写明在 DSH Desktop 0.9.0 / 0.10.0(Harness 0.1.x / 0.1.7-rc.2)与 DeepSeek Harness nightly(Harness 0.2.0-rc.2)的 Web 客户端上开发并实测(Windows)。插件不声明 @deepseek-ai/dsh* 的 peerDependency,0.2 起的安装期/启动期 peer 校验一般不会拦它。需要 Node ≥ 20 仅针对开发;安装 bundle 本身 README 说明无需 build。
- 目录页:https://www.skillhub.cn/plugins/xlxs123/dsh-session-multiselect
- 源码:https://github.com/xlxs123/dsh-session-multiselect
核心功能¶
面板多选¶
点入口按钮打开面板,支持:
- 复选框列表:只列真实对话,自动隐藏空白会话与子智能体(
origin === "subagent")会话。 - 按工作区分组:每组标题显示完整路径(过长时省略号在左侧、保留尾部目录名),标题带「已选/总数」,点标题可整组勾选或取消;也可关闭分组,改为按时间平铺。
- 三种分组模式:按工作区 / 按日期(今天、昨天、最近 7 天、更早)/ 不分组,选择会记住。
- 快捷筛选:全部 / 运行中 / 置顶,可与「显示归档」叠加。
- 搜索:按标题、工作目录、会话 ID 过滤。
- 选择:全选、清空、反选;Shift + 点击按当前显示顺序范围选择;Ctrl/Cmd + 点击追加选择。
- 键盘:方向键移动焦点,
空格/回车勾选,Ctrl/Cmd+A全选,Delete打开删除确认;回收站视图同样支持。 - 复制清单:将当前可见对话复制为 Markdown 表格(标题 / 工作区 / 更新时间 / 状态标签),便于贴进 issue 或交接。
- 已置顶行排在最前并带「已置顶」标签;已选计数实时显示。
批量删除与回收站¶
删除走官方 session.delete 契约,但不是直接 rm -rf:会话目录(含投影缓存)移入 $DSH_HOME/trash/session-multiselect/,保留 7 天,可在面板工具栏「回收站」中查看标题、工作区、删除时间与「还剩 N 天」,支持单条恢复、永久删除、清空回收站(均有二次确认)。回收站内可多选后「恢复选中」或「永久删除选中」,并带搜索与工作区下拉筛选。
- 正在运行的对话拒绝删除,状态行会说明原因。
- 仅被打开、当前空闲的对话会进回收站;状态行会提示其中若干仍被打开,重启 DSH 后列表行消失,文件已在回收站可恢复。
- 删除确认框最多列出 3 个将被删除的标题,而非只显示数量。
归档与置顶¶
| 操作 | 说明 |
|---|---|
| 归档 / 取消归档 | 选中项全为已归档时按钮为「取消归档」,否则为「归档」。调用 workspaces 的 archiveSession / unarchiveSession,原生列表归档分组同步变化;运行中的对话会被服务拒绝并逐条报因。服务不存在时退回插件本地标记,状态行注明「仅本插件内隐藏」。 |
| 置顶 / 取消置顶 | 调用 pinSession / unpinSession;无 workspaces 服务时会明确报错,不假装成功。已归档与置顶互斥,违规操作会逐行列失败原因。 |
三个批量动作均逐 id 执行并逐个报告失败原因。
版本说明(避免与旧简介混淆)¶
插件线索里曾出现 fork、导出、汇总等字样;以 README 为准:0.2.0 起已移除 Fork、导出 MD/JSON、汇总给 AI 等;0.3.0 将归档升级为工作区控制器命令并恢复置顶;0.4.0 起移除内联勾选模式,仅保留面板模式。当前描述的能力是:批量删除(含回收站)、归档、置顶。
安装与启用¶
README 给出的标准 DSH bundle 安装方式为在插件目录执行:
dsh plugin --profile desktop add .
说明:无需 build,MIT 许可。安装前建议阅读仓库源码与 LICENSE,插件在当前 DSH 进程权限下运行,批量删除会移动会话目录到回收站或调用官方删除契约,权限与数据范围与宿主一致。
典型用法¶
- 启动 DSH Desktop(README 实测环境为 0.9.0 / 0.10.0 或 nightly 对应客户端)。
- 在侧边栏会话列表工具栏,点击搜索放大镜左侧的多选入口(若头部注入失败,使用侧边栏底部兜底入口)。
- 在面板中搜索或按工作区/日期分组,勾选目标对话;需要时用 Shift 范围选或点工作区标题整组勾选。
- 根据需求点击 删除(二次确认)、归档 或 置顶;删除后可从工具栏 回收站 恢复或永久清理。
- 需要交接列表时,使用 复制清单 得到 Markdown 表格。
适用场景与注意¶
适合:同一机器上多工作区、多会话并行,需要定期清理、归档冷对话,或批量调整置顶状态的用户。
注意:
- 子智能体会话不在面板中列出;清理其日志属于文件系统维护,非本面板职责。
- 插件依赖官方
slots/locale/sessions,可选workspaces;跨版本对装饰性契约(图标名、Button variant 等)采用多候选名与兜底策略。 - 社区目录 SkillHub 与 DeepSeek / 幻方无官方从属关系,安装来源以你信任的仓库与目录页为准。
结尾¶
dsh-session-multiselect 用「面板 + 官方服务契约」补上了 DSH Desktop 会话列表缺少的批量管理能力:分组、搜索、回收站式删除,以及与工作区控制器一致的归档与置顶。若你要在本地启用,按 README 使用 dsh plugin --profile desktop add . 安装 bundle,并从目录页或 GitHub 跟踪更新。