DSH 的使用场景中,编辑一条已发出的消息,或使用 DSH 自带的「在新对话中分支」按钮,都会产生新的会话版本。如果任由这些版本散落在侧栏,会话列表会迅速膨胀。dsh-tree-view 插件通过树形视图,将同一家族的对话版本组织起来,保持侧栏整洁。
插件定位为树形会话分支视图。由 Rice00 维护,基于 MIT 许可证。它允许用户在侧栏的单一入口中切换不同的对话版本、重命名分支,并将分支提升为正式会话。
安装与启用¶
在终端执行以下命令安装:
dsh plugin --profile web add dsh-tree-view
安装后,需重启 profile 或刷新浏览器以使插件生效。
核心功能¶
-
树形分支展示
插件会自动捕获编辑消息或使用分支按钮产生的会话。在会话面板切换到 Tree 标签页,可以看到以“主干”起始的分支图。每个节点代表一个会话版本。 -
视图导航与定位
- 点击跳转:点击树上的节点,会话会切换到该版本,并定位到对应的消息轮次。
- “你在这里”标记:当前阅读的节点旁有一个小三角,指示当前所在位置。刷新页面或重新进入 Tree 视图,位置记忆依然保留。
- 路径高亮:当前正在阅读的整条路径(包括共用的开头)会在树上高亮显示。
- 多线并行:右键点击节点选择「放到主对话」,可以将多个版本同时打开到侧栏,互不干扰。
-
视图管理
- 一键收起:工具栏的「收起其它分支」会将侧栏中该家族的其他版本全部收进树中。
- 长段折叠:连续且没有分叉的轮次达到设定长度(默认 8 轮)会自动折叠,保持视图整洁。
- 记住位置:离开 Tree 视图再回来时,会保持上次的平移与缩放状态。
- 隐藏空副本:只复制了对话但没有产生新回复的 Fork 不会在树中显示。
-
分支管理
- 重命名:右键节点可重命名分支。
- 版本环切换:在气泡下方通过
‹ n/m ›切换版本。 - 归档处理:被归档的分支不会从树上消失,只是变暗并标记为“已归档”。归档操作仅改变侧栏的显示,不删除数据。
使用示例¶
- 编辑分支:编辑一条已经发出的消息,新的版本会自动出现在树中。
- 切换版本:在 Tree 标签页中,点击不同的节点即可切换到该版本继续对话。
- 重命名与提升:右键节点,可以重命名该分支,或将其“放到主对话”使其成为独立的侧栏会话。
数据安全与原理¶
- 数据安全:插件是
dsh-plugin-message-edit的 fork。插件唯一触碰数据的地方是“归档”开关。它不会删除、复制或改写会话内容。 - 卸载影响:卸载插件后,所有会话数据依然保留在 DSH 中,侧栏的会话条目不会丢失。
- 依赖关系:插件依赖 DSH 的会话日志结构,与上游插件可以并存,但不依赖上游插件运行。
设置¶
在 DSH 设置中,TreeView 提供以下配置项:
- 消息操作样式:选择 DeepSeek / ChatGPT / Claude 三种按钮布局。
- 接着上次阅读:默认关闭。开启后,从别的会话回到这个家族时,会自动跳转到上次阅读的版本。
- 折叠阈值:设置长段折叠的轮次上限(如 5、8、12、20 轮)。
- 不画空副本:控制是否显示没有新内容的分支副本。
该插件适合需要频繁编辑对话、进行版本对比或多线并行开发的用户。