前言¶
在 dsh Web GUI 中,一个会话通常属于当前工作区。若希望把已有上下文带到另一个工作区继续处理,手动复制日志、标题、Agent 预设和模型选择容易遗漏。下面介绍的 hucj09/dsh-move-session 是 dsh Web GUI 插件,用于把当前空闲会话复制到另一个工作区,并保留完整上下文。
这是什么¶
hucj09/dsh-move-session 是 dsh Web GUI 的跨工作区会话迁移插件,仓库 owner 为 hucj09,许可证为 MIT。
它不修改 dsh 源码,使用零依赖纯 JavaScript,源码即产物。插件会在 dsh Web GUI 中新增会话迁移入口:会话头部操作行提供 Move Session 按钮,侧边栏会话行「…」菜单可注入「迁移会话」项。
核心功能¶
下面只列已核实的插件能力:
- 在 dsh Web GUI 会话头部操作行新增
Move Session按钮。 - 侧边栏会话行「…」菜单可注入「迁移会话」项。
- 将当前会话原封不动复制到另一个工作区,保留对话日志、标题、Agent 预设和模型选择。
- 支持「保留原会话」或「归档原会话」两种模式。
- 仅支持空闲会话迁移;运行中会话会被客户端禁用,并由宿主端拒绝。
- 迁移后通过 host 事件触发侧边栏跨端自动刷新。
- 副本继承源会话的模型与 Agent 预设,并保留
parentSession血缘信息。 - 使用新会话 id 复制,不覆盖、不删除现有会话记录。
- 目标工作区存在同名会话时,自动追加
[MS<n>]区分。 - 零依赖纯 JavaScript,源码即产物,不修改 dsh 源码。
安装与启用¶
安装命令如下:
dsh plugin --profile web add @hucj/dsh-move-session
执行安装后,重启 dsh web,并在浏览器中用 Ctrl+F5 强刷页面。打开任意会话后,如果会话头部操作行出现 Move Session 或「迁移会话」入口,即表示插件已启用。
典型用法¶
1、打开一个空闲会话。
2、点击会话头部操作行的 Move Session 按钮,或从侧边栏会话行「…」菜单选择「迁移会话」。
3、选择目标工作区。列表会排除当前工作区,并显示路径与会话数。
4、选择「保留原会话」或「归档原会话」。
5、确认后侧边栏即时更新,并可打开迁移后的会话。
适用场景与注意¶
这个插件适合在多个 dsh 工作区之间复用同一会话上下文,例如把一个已整理好的会话作为另一个工作区的起点。
使用前建议注意以下边界:
- 插件会在 dsh Web GUI 中运行,安装前应检查源码与 MIT 许可证;运行时应视为以当前 dsh 进程权限使用宿主能力。
- 仅空闲会话可迁移;运行中会话会被客户端禁用,并由宿主端拒绝。
- 迁移要求源日志平衡;异常中断且未修复的日志可能被拒绝。
- 会话 id 会变化。副本使用新会话 id,血缘通过
parentSession保留。 - 副本会以 live 空闲 agent 形式驻留内存,不随本插件卸载。
- 迁移只复制会话日志,附件/文件本身不受影响。
- 「归档原会话」属于 registry 级全局归档集合;本插件不提供取消归档入口。
- 宿主需已组装
@deepseek-ai/dsh-client-runtime等标准 web 运行时。
链接¶
- 插件目录页:https://www.skillhub.cn/plugins/hucj09/dsh-move-session
- GitHub 仓库:https://github.com/hucj09/dsh-move-session