Skip to content

dsh-plugin-message-tree

Verified

dsh-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