dsh-session-suspend:把空闲会话收进侧边栏「已挂起」

前言

在 DSH(DeepSeek Harness)里并行开多条会话是常态:调试、写稿、对照文档往往各占一条侧边栏记录。会话一多,列表变长,真正在用的条目和「暂时不用、又不想删」的条目混在一起,只能靠滚动和记忆区分。宿主自带归档可以移出列表,但归档更偏长期收纳;若你只想把当前空闲会话从主列表里挪开、稍后再原样回到列表,缺少一个轻量、可撤销的入口。

下面介绍社区插件 dsh-session-suspend(维护者 Lqg97,分类为客户端):在侧边栏增加「挂起」模式,把暂时不用的空闲会话收进底部「已挂起」折叠组,需要时再逐个或整批恢复。挂起不会删除会话,只是借用宿主归档状态移出行列表,并在本地记录哪些项是由挂起动作产生的。

这是什么

dsh-session-suspend 是 DSH 的本地 bundle 插件(包名 @local/dsh-session-suspend,当前版本 0.1.0,MIT 许可证)。它在侧边栏会话行上增加挂起入口,在底部提供「已挂起」折叠组,并与 DSH 主题、locale、提示气泡等宿主 UI 保持一致。开发与验证所用 DSH 版本为 0.2.1-rc.5;更早版本若缺少对应扩展槽位,插件会静默不注册,不影响宿主。

目录页:skillhub.cn/plugins/Lqg97/dsh-session-suspend
源码与说明:github.com/Lqg97/dsh-session-suspend

核心功能

挂起与恢复入口

  • 会话行悬停时出现月亮按钮;或打开该行「…」菜单,选择「挂起会话」(排在「归档」之后、「复制会话 ID」之前)。
  • 侧边栏底部出现「🌙 已挂起 N」按钮;新收进会话时入口会闪一下。点开为浮层列表:点行 = 恢复并打开;行尾箭头 = 只恢复;表头「全部恢复」一次还原;Esc 或点外部收起。
  • 挂起/恢复按宿主归档状态判定;对已挂起的会话再点菜单只会取消挂起,不会重复归档。

提示与撤销

挂起成功时,底部居中显示跟随主题色的提示条(14px、带图标,对齐中间内容列)。该条可点 × 关闭,挂起成功那条带撤销;恢复操作会有「已恢复」反馈。提示条本体不拦截点击,只有「撤销 / 关闭」接收鼠标。

与宿主行为对齐

悬停提示使用与宿主图标同款气泡(500ms 延迟、下方右对齐、portal 到 body)。菜单行、行悬停按钮、折叠组入口均走宿主增量槽,不替换宿主 UI;中英文案随 DSH locale 切换,颜色走主题 token。

安装与启用

插件是「本地目录 bundle」:先把仓库放到本机任意目录,再在 DSH 里安装该目录。

资料中的获取仓库命令如下(安装前请自行审阅源码与许可证;插件在 DSH 进程权限下运行):

git clone https://github.com/Lqg97/dsh-session-suspend.git

在 DSH 中打开 插件管理 → 安装本地目录,选择克隆后的目录(例如 ~/code/dsh-session-suspend);或由 agent 调用插件管理器的 install_bundle,target 填该目录的绝对路径。

安装后刷新一次页面(Cmd+R)即可生效,无需重启。首次安装会出现在插件管理列表里,标题为「会话挂起」。

卸载:在插件管理器里卸载 @local/dsh-session-suspend,或从 profile 的 dsh.profile.bundles 中移除后刷新。

除 DSH 0.2.1-rc.5 及对应槽位外,无其他依赖。

典型用法

  1. 在侧边栏某条会话上悬停,点月亮按钮;或打开该行「…」菜单 →「挂起会话」。
  2. 会话从主列表收起,底部出现「🌙 已挂起 N」。
  3. 点底部按钮展开折叠组,逐个或「全部恢复」;也可在挂起成功的提示条上点撤销。

适用场景与注意

适合谁:侧边栏会话较多、希望把「当前不用但还要保留」的空闲会话快速移出主列表,又能在折叠组里集中找回的 DSH 用户。

只有空闲会话能挂起:会话仍在运行(回合、子代理、后台任务、定时提醒等)时,Host 会拒绝挂起,插件提示「还在运行,停止后再挂起」,不会替你停止任务(插件从不传 stopActivity)。

复用宿主归档:列表行由宿主 ui-workspace 渲染,插件没有单独「折叠行」的插入点,因此挂起借用宿主归档把行移出列表;插件只记录「由挂起动作归档」的会话。你在宿主归档筛选里手动取消归档时,折叠组里对应项会自动消失。

本地记录:挂起集合保存在浏览器 localStorage。换浏览器或清除站点数据后,折叠组记录会丢失,但这些会话在宿主里仍是归档状态,可在宿主的归档筛选里恢复。

与归档筛选的重叠:切换到「全部对话 / 仅显示已归档」时,已挂起的会话也会按宿主规则出现在列表里(置灰),这是复用归档语义的固有表现。

工作区级挂起:侧边栏工作区分组行目前没有插件插槽,Host 也没有工作区级归档/收起状态,「挂起整个工作区」尚不可用。需求已整理并提交上游讨论:deepseek-harness/discussions/11996。在宿主支持之前,可先用工作区分组标题的原生折叠能力。

结尾

dsh-session-suspend 用增量方式扩展 DSH 侧边栏:空闲会话一键收进底部「已挂起」,恢复路径清晰,并与归档、主题、locale 保持一致。安装前请阅读仓库源码与 MIT 许可证;DSH 生态强调「一切皆插件」,社区目录站点与 DeepSeek / 幻方无官方从属关系。

  • 目录页:https://www.skillhub.cn/plugins/Lqg97/dsh-session-suspend
  • GitHub:https://github.com/Lqg97/dsh-session-suspend
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜