前言¶
在 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 及对应槽位外,无其他依赖。
典型用法¶
- 在侧边栏某条会话上悬停,点月亮按钮;或打开该行「…」菜单 →「挂起会话」。
- 会话从主列表收起,底部出现「🌙 已挂起 N」。
- 点底部按钮展开折叠组,逐个或「全部恢复」;也可在挂起成功的提示条上点撤销。
适用场景与注意¶
适合谁:侧边栏会话较多、希望把「当前不用但还要保留」的空闲会话快速移出主列表,又能在折叠组里集中找回的 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