前言¶
在 DSH 的对话视图里,原生会话列表用缩进展示层级关系,一旦分支变多,下层节点就挤在一起,看不出谁从谁分叉。dsh-session-map 为 DSH 增加了一个新的标签页,用可拖拽、可缩放的径向图展示会话树,点击节点即可切换会话。
这是什么¶
dsh-session-map 是一个 DSH 客户端插件,由 qian-dsh 维护。它将会话树绘制为径向图:当前会话在中心,父会话正上方,子会话分布在下半圆,点击节点切换会话,拖拽平移,滚轮以指针为中心缩放。
核心功能¶
- 径向树图:以当前会话为圆心,父会话在上,子会话在下,连线与卡片自动调整布局。
- 点击切换:点击节点切换到对应会话,拖拽结束的点击不触发切换,避免误操作。
- 平移与缩放:拖拽平移地图,滚轮以指针为中心缩放;提供
− / +按钮和“适配全部”按钮。 - 面包屑与状态:顶部面包屑显示从当前会话到根的路径;右侧显示深度与分支数。每个节点右上角有状态点:运行(青色)、等待中(琥珀色)、完成(暗淡)。
- 全树展开:可一键展开整个树,使用径向 tidy-tree 布局和分层引导环。
安装与启用¶
安装命令:
dsh plugin --profile web add dsh-session-map
重启 DSH 后,对话视图会出现第三个标签页:对话 | 追踪 | 树图。如果未出现,检查 dsh.profile.bundles 中是否包含该插件名称。
典型用法¶
- 安装插件后,在对话视图切换到“树图”标签页。
- 当前会话位于中心,父会话在正上方,子会话在下半圆分布。
- 拖拽画布平移,滚动滚轮以指针为中心缩放,使用
− / +或“适配全部”调整视图。 - 点击任意节点,切换到对应会话。
- 点击“全树展开”查看完整的会话层级结构。
适用场景与注意¶
- 适合需要梳理会话分支关系、快速定位或切换会话的场景。
- 插件以客户端方式运行,不修改 DSH 内置代码,仅做增量添加。
- 5 个以上直接子会话时节点可能拥挤,真实数据中用户自身会话通常分支较少。
- 子代理会话也会出现在树中,当前统一展示。
- 插件未提供热更新(HMR),修改
client.js需刷新页面。
短结尾¶
dsh-session-map 用径向图补齐了 DSH 原生会话列表在分支可视化上的短板,适合需要直观查看会话树结构的开发者。插件目录页与 GitHub 仓库见下方链接。
- 插件目录:https://www.skillhub.cn/plugins/qian-dsh/dsh-session-map
- GitHub:https://github.com/qian-dsh/dsh-session-map