dsh-session-management · DSH 会话管理
中文 | English

dsh-session-management 是 DeepSeek Harness(DSH)Web 的会话管理插件,补足官方会话管理的缺失能力。在「设置」面板内集中管理聊天会话:归档、取消归档、真正删除本地聊天记录、批量导出数据。支持中英双语,随 DSH 语言设置即时切换。

为什么需要这个插件
DSH Web 官方目前不提供完整的会话管理,长期使用会遇到三个痛点:
- 会话无法真正删除:官方只提供「归档」,归档只是把会话从侧边栏隐藏,聊天记录仍完整保留在磁盘上,没有任何入口可以真正删掉它们;
- 归档后无法恢复:官方没有「取消归档」功能,会话一旦归档就再也找不回来,只能「看不见但永远存在」;
- 导出只能逐个手动:官方导出一次只能导出一个会话,会话攒多了要逐个点击很多次。
本插件逐一补齐:真删(删除磁盘上的会话日志文件)、恢复(单个 / 按组批量取消归档)、批量导出(与官方格式完全一致的 ZIP)。
| 能力 | DSH 官方 | 装本插件后 |
|---|---|---|
| 归档会话 | 支持 | 支持,另有一键全量归档 |
| 取消归档 | 无入口 | 单个 / 按工作区 / 按月份批量 |
| 真正删除聊天记录 | 仅隐藏,不删除 | 删除磁盘日志文件,运行中会话自动跳过 |
| 导出会话数据 | 单个手动导出 | 一键批量导出,格式与官方字节级兼容 |
功能
已归档的聊天管理
点击「管理」打开管理窗口,两种分组视图随心切换:
- 按工作区:每个工作区一个分组,组内按时间排序;
- 按月份:按年月分组(
2026年8月、2026年7月…),月份自动携带年份,跨年归档一目了然。
支持按创建日期 / 更新日期排序(升序 / 降序)、分组折叠与一键展开、按组批量操作——取消归档该组、删除该组已归档的聊天(仅作用于该组的归档会话,不影响未归档记录)。
| 分组与排序 | 组头批量操作 |
|---|---|
![]() |
![]() |
归档所有聊天
一键归档全部会话:记录完整保留,仅从侧边栏列表隐藏,随时可在管理窗口取消归档。
删除所有聊天
真正删除本地聊天记录:删除磁盘上的会话日志文件(session.jsonl / session.jsonl.zstd 及对偶文件),并同步清理工作区记账与归档标记。运行中的会话自动跳过,防止日志被写回。
导出数据
一键批量导出全部会话:自动遍历所有根会话(含其子代理会话),逐个生成与官方格式一致的 ZIP 归档(dsh-session-<id>.zip),无需再一个个手动点击。
- 内容完整:会话日志、子代理会话与媒体附件一并打包;
- 格式兼容:字节级兼容官方导出格式,可直接用官方工具查看或迁移;
- 删除前备份:可先「导出数据」再「删除所有聊天」,清理的同时留住需要的数据。
中英双语
界面文案随「设置 → 通用设置 → 语言」即时切换,中英文档与界面同步维护。
安装
DSH 插件通过 profile 挂载(dsh web 对应 web profile)。安装后需重启 dsh web 生效。
前置要求:Node.js(含 npm);dsh plugin 依赖 pnpm(缺失时见下方「常见问题」)。
方式一:从 npm 安装(推荐)
插件已发布到 npm(dsh-session-management)。安装命令取决于你如何运行 dsh:
全局安装 dsh(
dsh命令可直接使用):dsh plugin --profile web add dsh-session-management通过 npx 运行 dsh(未全局安装,平时用
npx @deepseek-ai/dsh web启动):npx -y @deepseek-ai/dsh plugin --profile web add dsh-session-management
装完重启 dsh web,打开「设置」即可看到「会话管理」入口。升级:将 add 换成 update(非全局安装时同样加 npx -y @deepseek-ai/dsh 前缀)。
版本提示:若 npm/pnpm 的元数据缓存或镜像源同步延迟,导致安装到旧版本(提示
declares no dsh.bundle),请指定最新版本号重装:npx -y @deepseek-ai/dsh plugin --profile web add dsh-session-management@<最新版本号>查询最新版本:
npm view dsh-session-management version。
方式二:从 GitHub 仓库安装
git clone https://github.com/cokiscarazo-rgb/dsh-session-management.git
cd dsh-session-management
# Windows(PowerShell)
powershell -ExecutionPolicy Bypass -File scripts/install.ps1
# macOS / Linux
bash scripts/install.sh
安装脚本幂等,重复执行安全。它会完成两步:
- 复制插件包到
$DSH_HOME/profiles/node_modules/dsh-session-management/; - 在
$DSH_HOME/profiles/web/cordis.patch.yml注册 loader 条目:
- insert:
- id: dsh-session-management
name: dsh-session-management
验证与卸载
安装成功后重启 dsh web,打开「设置」出现「会话管理」即生效;也可用 dsh --profile web --dump-config(非全局安装加 npx -y @deepseek-ai/dsh 前缀)确认插件配置层已挂载。若没有新入口,多半是安装后没有重启。
卸载:dsh plugin --profile web remove dsh-session-management(非全局安装加 npx -y @deepseek-ai/dsh 前缀),重启 dsh web;手动安装的则移除 $DSH_HOME/profiles/node_modules/dsh-session-management/ 目录并删除 cordis.patch.yml 中的 insert 条目。
常见问题
提示
'pnpm' 不是内部或外部命令/pnpm: command not found:dsh plugin内部依赖 pnpm,先安装它:npm install -g pnpm或使用 Node 自带的 corepack:
corepack enable pnpm。验证:pnpm --version。安装后仍是旧版本 / 提示
declares no dsh.bundle:npm/pnpm 元数据缓存或镜像源同步延迟所致。先确认 registry 源:pnpm config get registry(若为 npmmirror 等镜像,可切回官方源pnpm config set registry https://registry.npmjs.org/),然后指定版本号重装(见上「版本提示」)。首次安装提示
ERR_PNPM_IGNORED_BUILDS:pnpm 拒绝依赖的构建脚本,按提示把相关包加入 profile 的pnpm-workspace.yamlallowBuilds后重新执行即可。设置里没有「会话管理」入口:确认已重启
dsh web;再确认$DSH_HOME/profiles/web/cordis.patch.yml中存在id: dsh-session-management的 insert 条目。
工作原理与边界
- 归档:基于官方
workspaceRegistry.archiveSession,归档集持久化于 workspace 域,客户端经官方帧机制自动同步;取消归档为官方未提供的操作,插件直接更新 workspace 域归档集合,变化经官方domain/changed事件自动广播。 - 删除即真删:定位会话日志文件(含 zstd 对偶文件)后经系统命令删除,随后清理工作区记账与归档标记;搜索索引由官方 SQLite 自动 reconcile 清理。
- 边界说明:
- 运行中的会话拒绝删除(避免日志被重新写回);
- 聊天中的图片附件采用 content-addressed 存储、可能被多会话共享,删除会话不会连带删除附件;
- 子代理会话为独立记录,删除父会话不级联删除(可单独删除)。
License
MIT © cokiscarazo-rgb
No comments yet. Be the first to write one.