dsh-session-mng:在 DSH 设置里统一管理全部会话

前言

DeepSeek Harness(DSH)按 profile 与工作区维护大量 Agent 会话。侧栏只能看到当前上下文里的一部分,归档会话、冷会话标题、跨项目归属往往要翻目录或依赖零散操作。社区插件 dsh-session-mng(维护者 ZilongYang,分类:客户端)在 设置 → 会话管理 提供一个总览页:列出当前 profile 下的活跃与已归档会话,并支持生成标题、归档/恢复、跨工作区移动、彻底删除已归档会话。插件为 Host + Web Client 双半结构,无运行时 npm 依赖,不注册模型可见工具,正常对话不增加 token 开销。

这是什么

dsh-session-mng 的定位是:用一个 Settings 页面管理该 profile 下的全部 DSH 会话。官方简介为:Session management for DeepSeek Harness — unified list, titles, archive/restore, cross-workspace move, permanent delete.

DSH 生态强调「一切皆插件」;SkillHub 等目录为社区站点,与 DeepSeek / 幻方无官方从属关系。

核心功能

下列能力均来自项目 README,写操作需在界面中明确确认后才会落盘。

统一会话总览

按工作区分组展示当前 profile 的全部会话(活跃 + 已归档)。每条记录包含标题、路径、会话 id、大小、最后活动时间,以及运行 / 已打开 / 已归档 / 已置顶 / 分支 / 子代理等标记。支持搜索、工作区筛选、排序、刷新与批量选择。

从某条会话 fork 出来的分支会话默认与主会话一样可见:缩进挂在父会话下,父行显示「N 分支」,分支行标注「↳ 来自:父标题」;搜索父标题也能命中分支。委派产生的 子代理会话 默认隐藏,可勾选「显示子代理会话」查看。

会话数超过 100 时默认折叠工作区;每个工作区默认展示 50 条,可通过「加载更多」展开。侧栏不显示的 blank 空会话默认隐藏,勾选「显示空会话」后可见,并提供「清理空会话(N)」等快捷操作。

生成标题

对任意选中会话(含已归档冷会话)读取整段对话,由模型给出可编辑的标题提案;确认后才写入。活跃会话走官方 sessionTitle.rename;冷会话按官方 session/title 事件形状追加,无需先恢复 Agent。

归档与恢复

调用官方 workspaceRegistry.archiveSession / unarchiveSession。若会话仍在运行,会先提示,用户二次确认后再停止并归档;恢复后回到原工作区原位置。

跨工作区移动

将 冷会话 真正迁到目标工作区:改写会话日志 header 的 cwd、迁移日志目录、同步 workspace 账本。SessionId、归档与 pin 状态不变,事件正文不改写(仅重写 header frame)。移动需要 Node 对 Zstandard 的支持(Node >= 22.15;移动/删除仅支持本地 JSONL 后端)。

彻底删除已归档会话

删除前预览范围(根会话、子代理、目录、字节数);确认后移出 store 并清理账本,不可恢复。子代理随父级联删除;普通分支会话不会随父删除级联,需单独勾选。

其他

  • 不恢复会话即可预览最近 10 条用户/助手消息。
  • 归档集合中存在但磁盘已无日志的 id,会以横幅提示并允许清理。
  • 中英双语;浅色/深色主题跟随宿主。

安装与启用

桌面版(DeepSeek Harness.app)

desktop profile 由应用独占,命令行无法用 dsh plugin --profile desktop … 接管。请在应用内 设置 → 插件(Plugins) 搜索 dsh-session-mng 安装,然后在 设置 → 会话管理 打开。

Host 半为进程内模块:安装后若看不到页面,重启一次 dsh/应用再刷新;Client 半刷新页面即可。

命令行管理的 profile(web / main / 自建)

# 从 npm 安装(发版后)
dsh plugin --profile <profile> add dsh-session-mng

# 从 GitHub 源码安装
dsh plugin --profile <profile> add github:ZilongYang/dsh-session-mng#main

# 本地开发:把本仓库直接链接进去
dsh plugin --profile <profile> add link:/绝对路径/dsh-session-mng

典型用法

  1. 打开 设置 → 会话管理。
  2. 顶部 tab 切换 全部 / 活跃 / 已归档;用工作区下拉、搜索框、排序缩小范围。
  3. 点进某条会话:生成标题、打开、归档/恢复并打开、移动到其他工作区、彻底删除(仅已归档)。
  4. 列表中勾选多条会话,可批量归档、恢复、移动、删除;批量删除同样先展示范围确认。
  5. 标题提案阶段不写任何数据;所有写操作都要在对话框里点击确认。

可选配置可在 profile 的 patch 里覆盖(节选):

- id: session-mng
  name: 'dsh-session-mng'
  config:
    maxBatch: 50
    maxMoveBatch: 20
    titleTimeoutMs: 30000
    allowRemote: false

适用场景与注意

适合谁:在同一 DSH profile 下会话数量多、需要集中归档、补标题、把冷会话迁到另一个工作区,或安全清理已归档数据的开发者。

兼容性(README 声明):实测宿主 DSH 0.2.1-rc.2、0.2.1-rc.3;Node >=20.3 可运行总览/标题/归档/删除。已知限制包括:已打开(live)会话不能移动或彻底删除(需重启 DSH 后重试);有子代理后代的会话不能单独移动;分支会话暂不能单独移动;大规模列表时 state 仍一次拉全量(Host 侧分页为 0.2.0 规划方向)。

安全与权限:插件以当前 dsh 进程权限读写会话 store;API 默认仅 loopback 或宿主 webRuntime.trustedHosts。安装前应阅读源码与 MIT 许可证,确认符合你的环境策略。

结尾

dsh-session-mng 把分散在侧栏与各工作区账本里的会话操作收拢到一个设置页:总览、标题、归档、跨区移动与不可恢复的归档删除,且刻意不占用 Agent 工具槽位。进一步了解可访问 SkillHub 目录页 与 GitHub 仓库。

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

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

Xiaoye