TOBYCAI/dsh-sessions-manager
DSH 会话管理面板插件:归档/恢复/彻底删除/跨工作区移动,带工作区标签、会话日期、批量多选与每条会话详情统计(磁盘/工具/文件/血统)。A Session Manager plugin for DeepSeek Harness: archive/restore/delete/move sessions, workspace tags, batch actions & per-session detail stats. | Platforms: macOS/Windows/Linux
项目介绍Project Overview
这是 DSH 会话管理插件,在设置面板与主页侧边栏统一归档、恢复、移动、删除会话,并查看磁盘占用、消息统计、工具使用和会话血统;侧边栏还支持标记未读与状态圆点。适合需要整理历史会话、切换工作区或批量处理记录时使用。注意:普通删除先入回收站,彻底删除或清空回收站会物理移除日志且不可恢复。
This is a DSH session-management plugin for archiving, restoring, moving, and deleting chats from the settings panel or home sidebar, with details on disk usage, message counts, tools, fetched records, files, and session lineage. It also adds unread markers and status dots. Use it to organize history, switch workspaces, or batch-process sessions. Note: normal deletions go to Trash; purging permanently removes logs.
请帮我了解并安装插件:【dsh-sessions-manager】【https://github.com/TOBYCAI/dsh-sessions-manager】
把上面这条消息直接发给当前会话里的 DSH,让它帮你了解并安装。安装命令不一定准确,发给 DSH 更稳。Send this message to DSH in your current session. CLI install commands may not be accurate across systems — DSH will figure it out for you.
或使用命令行安装(适合开发者)Or use CLI install (for developers)
命令行安装CLI Install
dsh plugin --profile desktop add "github:TOBYCAI/dsh-sessions-manager"
把 TOBYCAI/dsh-sessions-manager 加入你的 DSH 配置(web profile)即可启用。
READMEREADME
dsh-sessions-manager
中文 | English
DSH 会话管理器:在设置 → 会话管理里统一归档、移动、恢复、查看详情;在主页侧边栏直接标记未读、移动、删除会话。删除先进入回收站,可恢复或彻底清理。
一个 DSH 持久化插件(host + browser 双半)。v3.0.0 起同时覆盖「设置面板」与「主页侧边栏」两个入口,无需打开设置即可完成高频会话操作。
功能
设置面板:会话管理
- 统一面板:单一入口列出全部会话,顶部「全部 / 已归档」筛选;每行显示标题(缺失时回退首条用户消息)、活动/已归档状态、会话日期、所属工作区标签。
- 归档 / 恢复:归档把会话从侧栏隐藏;恢复取消归档并放回原工作区分组。
- 移动到工作区:任选已有工作区或新建目录路径(自动创建),新建目录支持点击 「浏览…」 调用系统目录选择窗口。会话的工作目录与日志一起迁移;即使会话处于打开状态也可安全移动。
- 会话详情:展开单条会话查看磁盘占用、轮次 / 步骤 / 用户·助手消息 / 工具调用 / 图片附件统计、工具使用分布、搜索·抓取记录、write/edit 写过的文件列表(已过滤磁盘上已不存在的路径),以及血统(父会话 / 子会话 / 子代理)。
- 批量多选:全选 / 批量归档 / 恢复所选 / 删除所选(批量删除一次二次确认)。
主页侧边栏:会话 ⋯ 菜单增强
- 标记未读:在会话的 ⋯ 菜单顶部新增「标记未读 / 标记已读」切换;也可直接点击会话左侧的状态圆点切换。进入该会话后自动取消未读标记。
- 移动会话:点击后右侧悬浮子菜单列出工作区名称,选择即移动到目标工作区;当前工作区以「当前」标注并置灰。
- 删除会话:删除会先把会话移入回收站(非立即物理删除),设置面板可回收站恢复或彻底清理。
主页侧边栏:状态圆点
每行会话左侧显示一个小圆点,颜色直接读取 DSH 原生 StateDot 状态,含义如下:
| 颜色 | 状态 | 说明 |
|---|---|---|
| 🔵 蓝 | 手动标记未读 | 通过 ⋯ 菜单或点击圆点手动标记;进入会话后自动清除 |
| 🟡 黄 | 工作中 | 会话正在运行(ongoing) |
| 🟠 琥珀 | 等待反馈 | 会话有追问,需要用户输入或确认(warning) |
| 🟢 绿 | 完成后未读 | 会话已完成(done)但你还没重新打开看过;看过一次后不再显示 |
| 🔴 红 | 出错 / 需关注 | 会话遇到错误(error) |
| 无圆点 | 完成后已读 / 空闲 | — |
圆点与 DSH 自带状态点接管对齐:插件隐藏 DSH 原生点并按上表重新渲染,避免两个点并存。
回收站
- 设置面板底部新增「回收站」区域。
- 正常删除的会话先进入回收站,不会立即从磁盘移除,也不会被归到「未分组」。
- 回收站内可对单条会话执行恢复(回到原工作区)或彻底删除(物理清理日志)。
- 支持清空回收站一键彻底删除全部内容。
- 已彻底删除的会话会被永久隐藏,不再出现在侧栏与会话管理列表。
截图




安装
# 方式一:Git 依赖直装(推荐,无需本地 clone,重启 DSH 生效)
dsh plugin --profile desktop add "github:TOBYCAI/dsh-sessions-manager"
# web 端(若你也用 dsh web):
dsh plugin --profile web add "github:TOBYCAI/dsh-sessions-manager"
# 方式二:本地 link(开发调试)
git clone https://github.com/TOBYCAI/dsh-sessions-manager.git
dsh plugin --profile desktop add link:/path/to/dsh-sessions-manager
装完重启 DSH(或刷新页面重新加载 bundle)后,设置 → 会话管理 / 主页侧栏 ⋯ 菜单 即可用。
卸载
dsh plugin --profile desktop remove dsh-sessions-manager
dsh plugin --profile web remove dsh-sessions-manager
结构
package.json npm 元数据 + dsh.bundle.patch + dsh.client(浏览器半注册)
cordis.patch.yml 向 profile bundle 插入本插件行
src/index.js host 源码(/archived-sessions/* JSON 路由)
src/client/index.jsx client 源码(React,settings.section + 侧栏 DOM 增强)
build.mjs esbuild 构建脚本(本地开发时生成 lib/)
lib/index.js 预构建 host(ESM)
lib/client.js 预构建 client(ModuleLoader CJS handshake)
lib/ 已预构建,clone 下来即可直接用、无需 esbuild。若要改源码,运行 npm i -D esbuild && npm run build 重新生成 lib/。
Host 路由
| 方法 | 路径 | 说明 |
|---|---|---|
| POST | /archived-sessions/sessions |
列出全部会话(含已归档标记),供「会话管理」面板 |
| POST | /archived-sessions/list |
列出归档会话(跳过已删除/不存在者) |
| POST | /archived-sessions/archive |
归档(隐藏)单个会话 |
| POST | /archived-sessions/archive-many |
批量归档 |
| POST | /archived-sessions/restore |
取消归档单个 |
| POST | /archived-sessions/restore-many |
批量取消归档 |
| POST | /archived-sessions/delete |
删除单个会话——移入回收站(非立即物理删除) |
| POST | /archived-sessions/delete-many |
批量移入回收站 |
| POST | /archived-sessions/trash/list |
列出回收站中的会话 |
| POST | /archived-sessions/trash/restore |
从回收站恢复会话 |
| POST | /archived-sessions/trash/purge |
彻底删除回收站中的单个会话 |
| POST | /archived-sessions/trash/purge-many |
清空/批量彻底删除回收站会话 |
| POST | /archived-sessions/workspaces |
列出可选目标工作区 |
| POST | /archived-sessions/move |
把会话移动到目标工作区 { sessionId, targetPath } |
| POST | /archived-sessions/details |
会话详情(磁盘/统计/工具/fetch/文件/血统){ sessionId } |
删除会话默认进入回收站,只有回收站内的「彻底删除」才会物理移除日志。被彻底删除的会话由前端永久隐藏,避免 DSH 运行时缓存使其重新出现在侧栏或「未分组」中。
兼容性
- 适配系统:跨平台(macOS / Windows / Linux)——只要 DSH 能在该系统运行即可;本插件 host 基于 Node(约
^22.19或>=24)、浏览器端为 React,不依赖特定操作系统 API。 - DSH Desktop / web 均可(同一套 host + client)。
- peerDependencies 见
package.json;react、@deepseek-ai/*由 DSH 运行时提供。
License
MIT © TOBYCAI
nexu-io/open-design
freestylefly/awesome-gpt-image-2
anywhere-labs/dsh-desktop
walkinglabs/learn-harness-engineering
awesome-dsh-plugin/awesome-dsh-plugin
MemTensor/MemOS