前言¶
在 DeepSeek Harness(DSH)里跑会话,Web 侧边栏的会话行「…」菜单是日常操作入口。但官方菜单提供的动作有限:跑完的会话想稍后再看,没有「标为未读」;想把会话 ID 贴进脚本,只能自己到界面上找;归档一点就执行,误触没有缓冲。会话一多,这些小事每次都要绕一下。
DSH 的理念是「一切皆插件」,界面层的这类补缺正适合用插件来做。dsh-more-session-operations 就是这样一个插件:它在会话行「…」菜单里新增「标为未读」「复制会话 ID」「删除会话」三个操作,并给官方归档加上二次确认。下面按功能、安装、典型用法的顺序介绍。
这是什么¶
dsh-more-session-operations 是一个 DSH 客户端插件,由 Ruiming-cn 维护,许可证为 MIT,当前版本 0.3.1。一句话定位:DeepSeek Harness Web 侧边栏会话行「…」菜单增强插件。
插件分两端:
1、宿主端注册删除端点 POST /__dsh-more-session-operations/delete,负责会话删除;
2、客户端负责 DOM 注入菜单项、拦截归档操作、弹出确认框。
运行环境要求:客户端面向 web 平台(dsh.client.platform: web),注入依赖 @deepseek-ai/dsh-client-runtime;宿主端要求 Node >= 20,peerDependencies 为 cordis >=4.0.0-rc <5。
核心功能¶
标为未读¶
在「复制会话 ID」上方新增「标为未读」操作。点击后复用官方「已完成但未打开」的绿色提醒点;进入或选择该会话后自动清除,不需要再手动标回已读。未读标记与官方完成提醒一样,是会话运行期状态,不额外落盘。
复制会话 ID¶
点击后把会话 ID 写入剪贴板,菜单项上短暂显示「已复制」。
删除会话¶
点击后先弹二次确认弹窗,确认后通过宿主端 POST /__dsh-more-session-operations/delete 物理删除会话。删除链路包括:
- 停止运行中的 agent;
- 刷新/分离会话;
- 删除日志目录与 projection/workspace 记账。
同时递归同步删除所有后代子代理会话;普通分叉会话保留。
同源保护¶
删除端点校验 Origin / Sec-Fetch-Site,拒绝跨源浏览器请求。
归档会话二次确认¶
拦截官方「归档会话 / Archive session」菜单项:点击后先弹确认弹窗,确认后调用官方 __workspacesSvc.archiveSession(sessionId) 完成归档,取消则不做任何操作。
安装与启用¶
先在插件仓库目录打包:
npm pack # prepack 会自动构建 lib/
npm pack 会生成一个 tgz 包,再用官方插件安装命令装进 web profile:
dsh plugin --profile web add <生成的 tgz>
典型用法:本地开发与运行时注入¶
如果你在改这个插件,或者参考它写自己的插件,可以先构建,再在已加载 dsh-super-injector 的 web 会话中注入本地仓库,省去每次打包安装:
npm run build # 把 src/ 同步到 lib/
然后在 web 会话里执行:
dev_inject_plugin {"dir": "<本仓库绝对路径>"}
适用场景与注意¶
适合长期在 DSH Web 界面里同时跑多个会话、需要在侧边栏快速整理会话的开发者。
使用前注意:
1、插件以当前 dsh 进程的权限运行,「删除会话」是物理删除,且会递归删除所有后代子代理会话,安装前建议先检查源码与许可证(MIT);
2、插件只面向 web 平台,其他平台不适用;
3、宿主端删除逻辑复用/裁剪自 lsz-asd/dsh-plugin-session-delete,仅保留 HTTP 端点,不注册模型工具。
小结¶
这个插件做的事情不复杂:把会话菜单里缺的几个高频操作补上,再给危险操作加一道确认。如果你经常在 Web 侧边栏整理会话,可以按上面的步骤装上试试。
- GitHub:https://github.com/Ruiming-cn/dsh-more-session-operations
- 社区插件目录:https://www.skillhub.cn/plugins/Ruiming-cn/dsh-more-session-operations(独立社区站点,与 DeepSeek / 幻方无官方从属关系)