- Inicio
- Plugins
- Mejoras de UI
- dsh-session-manager
dsh-session-manager
xinanzzz/dsh-session-manager
Nested session folders for the DSH sidebar: create folders per workspace, nest them and drag to reorder, move sessions by drag or context menu, click a folder activity count to open the matching sessions, and tag sessions with a header tag filter. Undo, rename, archive, search and keyboard navigation work on the tree.
Instalar
dsh plugin --profile web add github:xinanzzz/dsh-session-managerREADME
DSH Session Manager
DSH 侧栏插件:在工作区里用嵌套文件夹整理会话。
文件夹只是界面上的分组,数据存在本机 DSH 的 host 端。会话本身、DSH 安装目录、工作区成员关系都不会被修改;关闭插件后回到原生列表,分组数据保留。
功能
- 文件夹:工作区下可建任意层级的文件夹。单击展开/折叠,双击或 F2 重命名,右键打开操作菜单。图标按层级循环三种颜色,可在设置 → 会话管理中自定义。
- 快速归档:悬停会话行时,更多按钮旁有归档按钮(已归档会话显示恢复)。
- 移动:把会话或文件夹拖到文件夹或工作区行上。Ctrl/Cmd 点选、Shift 范围选,可以批量拖动。只能在同一工作区内移动。
- 文件夹排序:拖动文件夹时,落在文件夹行上/下四分之一处会插到它前/后(显示插入线),中间仍是移入;落在会话行上则插到该会话所在文件夹的后面(与该文件夹同级;根级会话则放到根级文件夹末尾)。多个文件夹一起拖时保持原有相对顺序。会话仍按置顶和时间排序。
- 撤销:焦点在侧栏树上时,Ctrl/Cmd+Z 撤销最近的移动或排序(本次页面内最多 30 步)。改名、展开、创建、删除不进入撤销历史。
- 置顶:置顶只在所在文件夹内生效,会话不会被拉到工作区根目录。
- 活动摘要:文件夹右侧显示子孙会话中等待处理、运行中、完成未读的数量;工作区行显示该工作区全部会话的汇总(折叠时也显示);顶部「工作区」标题显示所有工作区(含未分组)的总数。全部空闲时不显示,不计归档会话、独立子代理和空白草稿。点击某个计数可跳到对应会话:只有 1 个时直接打开,多个时弹出菜单列出标题和所在位置(按最近更新排序,底部显示空闲数和总数)。跳转会展开它所在的工作区和文件夹并滚动定位。侧栏很窄时只显示优先级最高的一项。
- 会话标签:在会话的「更多操作」→「标签…」或右键菜单里勾选标签,可连续勾选多个;多选会话后可批量打标签。会话行在时间前显示最多 2 个色点(多出的显示「+n」),悬停卡片列出标签名。顶部筛选按钮按标签过滤,只显示带该标签的会话及其所在文件夹。新建标签时可勾选「一次性」:从侧栏打开该会话后自动清除。默认提供 TODO 和一次性的「待回看」,可在设置 → 会话管理中编辑或删除。
- 分页:每个文件夹默认显示 5 个会话,可逐次展开更多。正在运行、待处理、完成未读和当前打开的会话会优先显示。
- 归档:顶部 more →「已归档」让归档会话以灰色混入原位置,恢复后才能打开。
- 搜索:顶部搜索或 Ctrl/Cmd+K,在标题、工作区名和会话正文中检索,Esc 返回树。
- 删除文件夹:连同子文件夹一起删除,会话可以选择移回工作区根目录,或者先归档再删除。运行中的会话不会被强制停止。
- 键盘:方向键/Home/End 移动焦点,Enter 打开或展开,左右键折叠/展开文件夹。
新建会话、打开会话、重命名会话、归档、恢复、置顶都调用 DSH 原生功能。
安装与更新
dsh plugin add @yuxhangz/dsh-session-manager
也可以在 Desktop 左侧「插件」→「安装第三方插件」里填包名。从源码开发时,改成填仓库根目录(package.json 所在目录)的本地路径;本地目录安装会链接到源码目录,启用期间不要移动或删除它。
更新:dsh plugin update @yuxhangz/dsh-session-manager,或重装一次。从源码开发改完代码后先运行 node build.cjs,再完全退出 Desktop(包括托盘)并重启,否则会继续使用旧模块。
想临时回到原生列表:设置 →「会话管理」→ 关闭「使用树状列表」。分组数据保留,可随时切回。
数据
数据存在 DSH host 端的 ~/.dsh/session-manager/storage.json(设置了 DSH_HOME 时在其下),本机所有连到这个 DSH 的窗口(DSH Desktop、DeepSeek Harness、浏览器)共用同一份:
| 键 | 内容 |
|---|---|
dsh.session-manager.v1 | 文件夹(ID、所属工作区、父文件夹、名称)、会话 ID → 文件夹映射、展开状态 |
dsh.session-manager.tree-view | 是否使用树状列表 |
dsh.session-manager.folder-colors | 自定义文件夹层级颜色 |
dsh.session-manager.tags | 标签定义(名称、颜色、是否一次性)和会话 ID → 标签映射;键不存在时显示默认标签 |
- 数据只在这台机器的 DSH 内有效,不跨设备同步。
- 数据不含会话内容。已不存在的会话不显示,但映射保留,不会自动清理。
- 窗口重新获得焦点时会载入其他窗口的修改。如果写入时发现其他窗口已经改过,当前修改会被撤回并显示最新数据,需要重试。
- 读不到 host 数据或数据损坏时插件保留原生列表,不覆盖已有数据。
限制
- 适配的是 DSH 0.2.2。重命名和归档通过原生侧栏 slot 内部取得回调,DSH 升级后可能失效;失效时插件会自动退回原生列表。
- 树状列表是插件自己渲染的,没有原生会话行的全部装饰和扩展菜单。需要这些功能时请切回原生列表。
- 「未分组」(不属于任何工作区的会话)只能浏览,不能建文件夹,也不能接收拖动。
- 批量归档不是事务:中途失败时,已归档的会话保持归档,文件夹和映射保留。
开发说明见 AGENTS.md。
Plugins relacionados
dsh-web (dsh-task-board)
zhu1090093659/dsh-web
dsh-web (dsh-web-all)
zhu1090093659/dsh-web
dsh-TUI
ccch1mneyyy/dsh-tui
dsh-web-ui (dsh-task-board)
zhu1090093659/dsh-web-ui