DeepSeek Harness 原生支持侧边栏内同一工作区的会话拖拽排序,但将会话拖拽到另一个工作区时,操作会被静默忽略。本插件补上了跨工作区迁移的能力,通过拖拽或工具调用实现会话档案的移动。
插件由社区成员 PianoPrince 维护,采用 MIT 许可证。它不依赖 TypeScript 或构建步骤,直接提供纯 JavaScript 源码。
核心能力¶
- 拖拽迁移:在侧边栏分组视图中,将空闲会话行拖拽到目标工作区标题行,确认后完成移动。
- 批量迁移 / 分组合并:支持 Ctrl/Shift 多选会话后整批拖拽,或使用组标题「⋯」菜单中的「整组迁移」功能。源分组清空后可删除,两条命令即可完成分组合并。
- 真迁移·零 token:迁移不复制会话副本,保留原始会话 ID 与完整历史记录,不重新注入上下文,不消耗 token。
- 工作区搬家向导:当项目文件夹被移动或改名导致路径失效时,可使用此功能原地修复工作区分组,保持 ID、标题、排序和归档位不变,名下会话一并迁移。
- 会话救援:在设置中提供会话救援面板,可一键找回失联、未记账或挂错分组的会话。
- 回收站与备份:删除操作会进入回收站,支持还原;迁移过程会自动生成备份,可按会话恢复或清理。
- 数据保护:提供回收站与备份的份数及占用空间预览,支持「清理」操作前的预览。
- 移动历史与撤回:记录最近 100 次跨工作区移动,支持批量撤回。
- 迁移任务中心:持久化记录批量迁移任务的状态(完成/失败),失败项支持一键重试。
- 空分组清理:只列出零成员的工作区,支持打开文件夹。
- Agent 工具:提供
mover_list_sessions、mover_move_session、mover_repair_sessions三个工具,可在对话中通过自然语言触发迁移与修复。
安装¶
在 Web profile 下执行以下命令:
dsh plugin --profile web add "github:PianoPrince/dsh-workspace-mover"
安装后需要重启 dsh web。
系统要求¶
- Node.js 版本:>= 22
- DeepSeek Harness 版本:>= 0.1.5-rc.1
- 桌面 profile 与 web profile 相互独立,需各自安装一次。
使用方法¶
拖拽迁移¶
- 在侧边栏的分组视图中,按住任意空闲会话行;
- 将其拖拽到目标工作区的标题行,此时会出现虚线高亮提示;
- 松手确认,目标工作区路径会显示在弹窗中,点击「移动」即可完成。
批量迁移¶
- 使用 Ctrl/Shift + 点击 选中多个会话(当前打开的会话会自动包含在内),或使用 Esc 清空选择;
- 拖拽任意选中的会话行到目标工作区标题行,确认后全部移动;
- 或使用目标组标题的「⋯」菜单,选择「整组迁移…」,迁入后若源分组为空,可确认删除。
对话中迁移¶
在对话中直接输入指令,例如「把会话 X 挪到 Y 组」,Agent 工具会解析会话 ID 并执行迁移。此操作会触发与面板完全相同的备份回滚管线,且在执行前需经宿主审批确认。
限制与兼容性¶
- 视图限制:本插件在「扁平列表」视图下不激活,必须在分组视图下操作。
- 运行中会话:尝试移动正在运行的会话会被拒绝,操作失败会自动回滚。
- 重画侧边栏插件:与重画侧边栏的插件基本兼容,但若对方替换了官方侧边栏结构,本插件可能无法识别会话行,表现为功能不触发,但不会损坏数据。
- 同类插件:建议只启用一个会话移动器插件,避免冲突。