dsh-tree-view:会话分支的树形视图

DSH 的使用场景中,编辑一条已发出的消息,或使用 DSH 自带的「在新对话中分支」按钮,都会产生新的会话版本。如果任由这些版本散落在侧栏,会话列表会迅速膨胀。dsh-tree-view 插件通过树形视图,将同一家族的对话版本组织起来,保持侧栏整洁。

插件定位为树形会话分支视图。由 Rice00 维护,基于 MIT 许可证。它允许用户在侧栏的单一入口中切换不同的对话版本、重命名分支,并将分支提升为正式会话。

安装与启用

在终端执行以下命令安装:

dsh plugin --profile web add dsh-tree-view

安装后,需重启 profile 或刷新浏览器以使插件生效。

核心功能

  1. 树形分支展示
    插件会自动捕获编辑消息或使用分支按钮产生的会话。在会话面板切换到 Tree 标签页,可以看到以“主干”起始的分支图。每个节点代表一个会话版本。

  2. 视图导航与定位

    • 点击跳转:点击树上的节点,会话会切换到该版本,并定位到对应的消息轮次。
    • “你在这里”标记:当前阅读的节点旁有一个小三角,指示当前所在位置。刷新页面或重新进入 Tree 视图,位置记忆依然保留。
    • 路径高亮:当前正在阅读的整条路径(包括共用的开头)会在树上高亮显示。
    • 多线并行:右键点击节点选择「放到主对话」,可以将多个版本同时打开到侧栏,互不干扰。
  3. 视图管理

    • 一键收起:工具栏的「收起其它分支」会将侧栏中该家族的其他版本全部收进树中。
    • 长段折叠:连续且没有分叉的轮次达到设定长度(默认 8 轮)会自动折叠,保持视图整洁。
    • 记住位置:离开 Tree 视图再回来时,会保持上次的平移与缩放状态。
    • 隐藏空副本:只复制了对话但没有产生新回复的 Fork 不会在树中显示。
  4. 分支管理

    • 重命名:右键节点可重命名分支。
    • 版本环切换:在气泡下方通过 ‹ n/m › 切换版本。
    • 归档处理:被归档的分支不会从树上消失,只是变暗并标记为“已归档”。归档操作仅改变侧栏的显示,不删除数据。

使用示例

  • 编辑分支:编辑一条已经发出的消息,新的版本会自动出现在树中。
  • 切换版本:在 Tree 标签页中,点击不同的节点即可切换到该版本继续对话。
  • 重命名与提升:右键节点,可以重命名该分支,或将其“放到主对话”使其成为独立的侧栏会话。

数据安全与原理

  • 数据安全:插件是 dsh-plugin-message-edit 的 fork。插件唯一触碰数据的地方是“归档”开关。它不会删除、复制或改写会话内容。
  • 卸载影响:卸载插件后,所有会话数据依然保留在 DSH 中,侧栏的会话条目不会丢失。
  • 依赖关系:插件依赖 DSH 的会话日志结构,与上游插件可以并存,但不依赖上游插件运行。

设置

在 DSH 设置中,TreeView 提供以下配置项:

  • 消息操作样式:选择 DeepSeek / ChatGPT / Claude 三种按钮布局。
  • 接着上次阅读:默认关闭。开启后,从别的会话回到这个家族时,会自动跳转到上次阅读的版本。
  • 折叠阈值:设置长段折叠的轮次上限(如 5、8、12、20 轮)。
  • 不画空副本:控制是否显示没有新内容的分支副本。

该插件适合需要频繁编辑对话、进行版本对比或多线并行开发的用户。

羽毛球分组比赛记分
小程序二维码

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

小夜