dsh-more-session-operations:DSH Web 会话菜单的未读、复制 ID 与删除增强

前言

在 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 侧边栏整理会话,可以按上面的步骤装上试试。

羽毛球分组比赛记分
小程序二维码

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

小夜