dsh-plugin-message-tree
Verifieddsh-plugin-message-tree · v0.2.1 · MIT · Web UI
DSH 消息树:在同一个对话内编辑或回退消息、切换分支,并恢复附件。
Install
dsh plugin add dsh-plugin-message-tree Confirm the layer applied with dsh --profile default --dump-config — see the install guide.
Source
Tags
Creators
Readme
DSH-消息树
在同一个对话里回退、编辑任意用户消息,并用左右箭头切换分支。侧边栏始终只显示当前活动分支的一行,不会为每次回退多出一个新对话。
功能
- 对任意用户消息执行编辑或回退,从该消息之前分叉。
- 消息文字和附件回到当前原生输入框,不弹出独立编辑器。
- 左右箭头切换同一消息的分支,撤销回到上一个活动分支。
- 分支继承父会话的模型、工作区和 Agent preset。
- 支持恢复原消息的图片和文件,也支持在回退编辑时新增附件。
- 树级重命名、归档、删除。
- 切换分支时保持侧边栏排序不跳动。
目录
仓库根目录就是插件包,Host 和界面在同一个 bundle 内:
index.js Host:分支树、fork、发送、附件、树级操作
client.js 界面:侧边栏、消息操作条、原生输入框回退
安装
通过 npm
在 DSH 的「插件」→「添加插件」中输入包名:
dsh-plugin-message-tree
通过 GitHub
在「添加插件」中输入仓库地址:
https://github.com/zhulin4kai/dsh-message-tree
本地目录
git clone https://github.com/zhulin4kai/dsh-message-tree.git
然后在「添加插件」中填写仓库根目录的绝对路径。
安装后重新加载页面。如果界面 bundle 没有在启动时被扫描到,重启一次 DSH。
使用
- 悬停用户消息,点击铅笔图标编辑,或点击回退图标。
- 消息会进入当前原生输入框;发送后才会创建分支。
- 消息底部右侧的
‹ 2/2 ›用于切换分支。 - 会话的「...」菜单里提供整棵树的重命名、归档和删除。
实现说明
- 分支以隐藏的子会话保存;侧边栏只显示当前活动分支。
- 编辑第一条用户消息时创建干净的新分支;编辑中间消息时从目标消息之前 fork。
- 文件附件通过
fileUploads回执重新绑定到分支。 - 排序使用整棵树的最大
updatedAt,分支切换不会改变排序键。
已知限制
- 依赖 DSH 当前的原生侧边栏和消息 DOM 结构,DSH 大版本更新后可能需要适配。
- 当前没有逐分支的置顶、复制 Session ID 或拖拽排序。
- 删除活动分支时,无法永久删除的会话会回落到归档。
License
MIT