dsh-session-manager:DSH Web 会话管理插件

前言

在 DeepSeek Harness(DSH)里跑智能体,会话会随工作目录、归档状态和运行状态不断累积。官方侧边栏能打开和切换会话,但删除往往只是归档隐藏,回收站、统计、暂停回合、工作区分组等操作分散在不同入口,或需要直接翻日志目录。长时间使用后,列表臃肿、误删难恢复、上下文压缩时机不可控,是常见痛点。

下面介绍社区插件 dsh-session-manager(维护者 dream12347)。它在不改动 DSH 核心的前提下,在设置页与对话顶部提供统一的会话管理界面,覆盖删除与回收站、统计、继续/暂停、日志目录、工作区分组排序,以及全局上下文压缩阈值。

这是什么

dsh-session-manager 是 DSH 的客户端插件platform: web),通过官方插槽向 Web UI 注入「会话管理」分栏和对话顶部快捷入口。Host 层注册删除、恢复、彻底删除、暂停、打开文件夹、压缩阈值等路由;Client 层订阅 useSessions / useWorkspaces 等标准数据源,自绘列表与抽屉。

插件不修改系统提示词、不新增模型工具,对 token 与模型行为无额外影响。当前版本 v0.2.2,适配 DSH 0.1.1-rc.1

  • 目录页:https://www.skillhub.cn/plugins/dream12347/dsh-session-manager
  • GitHub:https://github.com/dream12347/dsh-session-manager

核心功能

设置页「会话管理」分栏

安装后,设置页左侧会出现与 Notifications 同级的 会话管理 分栏。主列表展示未归档会话(标题、工作目录);底部折叠区单独列出 已归档会话,支持一键恢复。

每行可操作:

  1. 继续会话 — 打开并进入对话,同时关闭面板
  2. 暂停 — 停止正在运行会话的当前回合
  3. 统计 — 居中弹窗展示近期活动(轮次、用户消息、助手消息、全部工具调用、活动窗口)
  4. 文件夹 — 在系统文件管理器中打开该会话日志目录
  5. 删除 — 会话移入回收站(非运行中均可删;当前打开且空闲的会话也可删)

回收站保留最近 10 条删除记录,超出自动清除最早一条。回收站内可 恢复(回到会话列表)或 彻底删除(永久清除,不可恢复)。删除时先走官方归档通道,侧边栏会立即隐藏该会话。

对话顶部快捷入口

任意对话页右上角(Session log 左侧)新增三个入口:

  • 对话管理 — 打开右侧会话管理抽屉(完整列表 + 已归档 + 回收站);图钉可固定常驻,点击外部自动收起
  • 回收站 — 打开抽屉并直接展开回收站
  • 删除本对话(红色) — 确认后将当前对话移入回收站

抽屉行内「更多」菜单收纳统计、文件夹、新聊天中继续(调用官方 sessions.fork fork 子会话并打开)。

未读 / 已读状态

会话行标题旁圆点表示四种状态:

颜色 / 形态 含义
蓝色 手动标记未读
琥珀 官方等待输入
绿色 官方完成提醒
转圈 运行中

点击琥珀或绿色点可 就地标记已读(不跳转);点击蓝色点清除未读;点击空白处标记未读;打开会话自动已读。官方侧边栏对应会话行旁同步显示蓝色未读点(按标题文本匹配;重复标题的会话会共享该点,抽屉内按真实 id 精确标记)。手动未读集保存在浏览器 localStorage 的共享 key dsh.session-unread.v1,与其他会话管理插件互通。

工作区分组与排序

会话按工作区分组展示,组内按最后使用时间排序,可切换 最新在前 / 最旧在前。拖拽工作区标题可调整顺序:放到某组上方或下方插入、放到标题上交换、拖到最下方移到末尾。悬停工作区标题出现 置于顶部重命名删除(二次确认;按官方定义仅移出列表,文件夹与会话记录保留,会话归入「未分组」)。

上下文压缩阈值

设置 → 通用设置 中新增「上下文压缩阈值」滑块(17%–90%)。当对话上下文用到模型窗口(100 万 token)的设定比例时自动压缩,每次压缩保留最近 16% 原文。保存后立即生效(含已打开会话),对所有 Agent 预设的会话统一生效,重启后依然有效。阈值持久化在 DSH 存储域;Host 在 agent/pre-step 钩子里写入各预设的压缩引擎配置。

子代理与删除限制

子代理(subagent)会话在非运行状态下支持删除,包括主会话已删除后的「孤儿子代理」。不能删除正在思考的会话(按钮禁用);多标签页场景需先确认该会话已在别处停止。live 会话删除后,内存状态在 DSH 重启时彻底清理。

安装与启用

从 GitHub 安装(官方 README 命令):

dsh plugin --profile web add 'github:dream12347/dsh-session-manager#v0.2.2'

Windows CMD:

dsh plugin --profile web add github:dream12347/dsh-session-manager#v0.2.2

从本地目录:

dsh plugin --profile web add /absolute/path/to/dsh-session-manager

从 tarball(先 pnpm pack):

dsh plugin --profile web add /absolute/path/to/dsh-session-manager-0.2.2.tgz

安装完成后 重启 dsh web(host 插件与客户端 bundle 需重启加载)。

典型用法

设置页清理与恢复会话

  1. 打开侧边栏底部 设置(齿轮图标)
  2. 左侧点击 会话管理
  3. 对不需要的会话点 删除 → 进入底部 回收站 折叠区
  4. 误删则在回收站内 恢复;确认无用则 彻底删除
  5. 展开 已归档会话 可恢复曾被官方归档的会话

对话中快速管理

在对话页右上角点 对话管理 打开抽屉,用图钉固定后可持续浏览全量列表;点 回收站 直接处理最近删除项;红色 删除本对话 一键移入回收站。

调整压缩时机

  1. 设置 → 通用设置
  2. 调整「上下文压缩阈值」至 17%–90%
  3. 保存后立即生效,无需逐个会话配置

适用场景与注意

适合谁: 长期在 DSH Web 界面维护多个工作区、多会话的开发者;需要回收站式删除、活动统计、暂停回合、fork 子会话、工作区排序,或统一控制上下文压缩比例的用户。

运行权限: 插件以当前 dsh 进程权限运行。删除、打开文件夹、读写 ~/.dsh/storages/dsh_delete_session.json~/.dsh/dsh-delete-session-trash/ 等操作均受此权限约束。安装前应阅读源码与许可证(仓库含 LICENSE),确认符合本机安全策略。

兼容性: 当前适配 DSH 0.1.1-rc.1,依赖 settings.sectionconversation.session.header.utilities 等插槽及 ctx.sessionPersistencectx.workspaceRegistryctx.agents 等服务。DSH 升级后若 API 变化,需等待插件同步适配。

已知限制: 不能删除运行中会话;侧边栏未读点按标题匹配,重复标题会话共享蓝点;已彻底删除的会话 id 会留在浏览器 localStorage(防止刷新「复活」),属无害残留。

结尾

dsh-session-manager 把 DSH Web 里分散的会话操作收拢到设置分栏与对话顶部抽屉:删除带回收站、统计与暂停、工作区分组排序、全局压缩阈值,均在不改核心的前提下通过官方插槽实现。若你日常会话量大、需要可恢复的删除与更细的列表管理,可按上文命令安装 v0.2.2 并重启 dsh web

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

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

小夜