dsh-session-management:在 DSH 里集中管理会话与真删除

前言

在 DeepSeek Harness(dsh)里,会话数量一多,侧边栏很快会变成「只能勉强归档、删不掉落盘日志」的列表。内置能力对会话主要是 Archive:可逆隐藏,不会把 JSONL 持久化目录从磁盘清掉。你要看每个会话的 cwd、冷热状态、占用体积、日志路径,或者在跑着的回合上停掉、改标题、彻底删掉某次实验留下的会话,往往得自己翻目录或写脚本。

dsh-session-management 由 Chengeat 维护,是面向 Web GUI 的客户端插件(分类:客户端)。它在设置页、侧边栏右键、/sessions 命令和 session_manage 工具上共用同一套 Host 逻辑,补上列表概览与不可逆的真删除,并在 MIT 许可证下开源(当前 package 版本 1.0.0,构建目标 @deepseek-ai/dsh 0.2.2)。

这是什么

一句话:在 dsh 里列出、归档、置顶、停止、重命名会话,并从磁盘永久删除会话日志。

与「只归档」相比,本插件的重点是可搜索的全局视图,以及经过二次确认的 delete(先停再删目录)。四个入口行为一致;界面语言随 Harness 的 English / 中文设置切换,无需重载页面。

核心功能

资料中的能力表如下,均通过同一操作核心实现:

操作 作用
list 展示标题、id、cwd、live/cold、是否运行、置顶、归档、事件数、磁盘大小、日志路径;支持文本筛选,可选显示已归档
archive / unarchive 可逆,从侧边栏隐藏且不改动历史
pin / unpin 会话固定在侧边栏顶部
stop 中断当前回合(等同用户点停止)
rename 更新 live 会话标题并写入 session log
delete 永久移除会话日志目录;各入口均需明确确认;运行中会先 stop;允许删除当前会话(内存副本在下次重启应用后消失)

内置侧边栏菜单会在原有 Archive 之上增加红色 Delete session 项。设置页路径为 Settings → Session management,是可搜索表格,每行带上述操作按钮,删除需在行内再次确认。

环境与依赖

  1. 使用带 Web GUI 的 dsh profile(标准 dsh web 组合或 Desktop)。
  2. 默认的 JSONL session-persistence 后端:需要它才能看到 cold 会话、磁盘大小,并执行 delete。若无该后端,除 delete 外对 live 会话的其它操作仍可用。
  3. 插件仅通过 Host 稳定服务注册(tools、commands、slots、context menus、web routes),运行时不导入内部包。

安装与启用

pnpm 须在 PATH 中(可用 corepack enable pnpm)。安装命令以 README 原文为准:

dsh plugin --profile <profile-name> add github:Chengeat/dsh-session-management

例如装入名为 web 的 profile:

dsh plugin --profile web add github:Chengeat/dsh-session-management

npm 包名为 dsh-session-management-t(无后缀名已被其它插件占用)。发布后也可按名安装:

dsh plugin --profile web add dsh-session-management-t

首次从 git 源安装时,若 pnpm 提示 allowBuilds 键,需把该键原样写入 profile 的 pnpm-workspace.yaml 后重跑安装命令。

安装完成后重启 dsh 并刷新浏览器。含 Host 与 Client 两半的 bundle 首次安装必须重启,模块图才能加载两半。重启后应同时出现:

  • Settings → Session management 管理页
  • 侧边栏会话右键中的 Delete session
  • /sessions 斜杠命令
  • 智能体可调用的 session_manage 工具

注意:若曾用其它名称装过同功能副本(例如 @local/dsh-session-management),应先移除,避免两个 bundle 同时注册 session_manage 在激活时冲突。

典型用法

设置页

打开 Settings → Session management,在表格中搜索会话,对单行执行归档、置顶、停止、重命名或删除(删除需点 Confirm delete)。

侧边栏

在侧边栏某会话上右键,选择 Delete session(位于 Archive session 上方),在 toast 中确认后永久删除日志。

斜杠命令

/sessions list [filter]
/sessions archived
/sessions archive <id>
/sessions unarchive <id>
/sessions pin <id>
/sessions unpin <id>
/sessions stop <id>
/sessions rename <id> <new title>
/sessions delete <id> confirm

delete 必须带尾随的 confirm 才会执行。archive / pin / stop 在 id 为空时作用于当前会话。

智能体工具

可对 agent 说例如「列出所有会话」或「删除测试会话 29d374e3」;删除时 AI 会以 confirm="confirm" 调用工具。

工具签名:session_manage(action, sessionId?, title?, confirm?, query?, includeArchived?, stop?)。

删除实现上,插件通过 sessionPersistence.list() 取得各会话 location.path(例如 ~/.dsh/sessions/--<cwd>--/<id>/session.v4.jsonl.zstd),在校验产物文件名形态后删除整个会话所属目录;持久化层无 delete API,因而是有防护的直接移除。管理页数据经 Web 服务上的 /dsh-session-management/api 提供,并做同源(Origin/Host)检查。

适用场景与注意

适合谁: 长期在 dsh Web/Desktop 下开多会话、需要清点磁盘占用、归档实验会话或合规清理日志的开发者。

权限与安全: 插件在当前 dsh 进程权限下读写会话目录与调用 Host 服务;delete 不可恢复。安装前请自行阅读 GitHub 仓库 源码与 MIT 许可证,确认与你的工作区路径、备份策略一致。

生态说明: DSH 奉行「一切皆插件」;社区目录站点(如 SkillHub 上的插件页)与 DeepSeek / 幻方无官方从属关系,本文档描述的是第三方开源插件,非官方应用商店条目。

结尾

若你需要的不仅是侧边栏归档,而是可检索的会话全景和经确认的磁盘级删除,dsh-session-management 把设置页、右键菜单、/sessions 与 session_manage 对齐到同一套逻辑,补上了 dsh 默认会话能力里缺的那一块。

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

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

Xiaoye