TRAE 式「回退到本轮对话发起前」插件:按轮次建立检查点(10 轮滑动窗口),同时回滚工作区文件与原位截断模型上下文,保持同一 session id。回退只能由人发起:/rollback 命令或每轮的 Web 回退按钮(被中断的轮次也可用),弹窗逐条列出受影响文件及其动作(恢复/找回/删除/跳过)。
安装
# npm 包(预构建)
dsh plugin --profile web add @domitor-syh/dsh-rollback
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:domitor-syh/dsh-rollback
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本——pnpm 默认拦截,所以安装可能停在 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 或 ERR_PNPM_IGNORED_BUILDS;dsh 会打印出需要添加的确切键名,把它加进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 下,重跑一次即可装上。放行构建本身就是一次信任判断:请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
dsh-rollback · TRAE 式「回退」插件
中文 · English
为 DeepSeek Harness(DSH)Web 端提供按轮次回退:恢复已跟踪的文件变更,同时撤回对应的模型可见对话,继续使用原会话。
功能
- 按轮次回退:选择最近保留的 10 轮检查点,通过按钮或
/rollback发起。 - 文件与对话同步恢复:恢复旧内容、找回删除的文件、撤销新建;首尾状态相同的文件不做操作。
- 确认后执行:弹窗展示受影响文件及外部修改警告。
- 草稿回填:通过确认弹窗回退后,尝试将原消息和可恢复附件放回输入框。
- 恢复进度保留:失败后可重试或尝试补偿文件操作。
安装
Web 端(dsh web):
dsh plugin --profile web add @domitor-syh/dsh-rollback
桌面端(官方渠道)——在插件的安装处填入包名 @domitor-syh/dsh-rollback,或使用等价命令:
dsh plugin --profile desktop add @domitor-syh/dsh-rollback
安装后:Web 端重启 dsh web 并刷新页面;桌面端重启桌面应用。从 DSH 源码运行时,在上述命令前加 pnpm。
当前适配目标为 DSH 0.2.1-rc.3。该版本对插件使用的主机 API 无行为变化,客户端改动仅为新增导航自定义、埋点和 Tooltip 自适应放置,因此无需修改插件代码。声明的兼容范围仍为 >=0.1.5-rc.2 <0.2.0-0 || >=0.2.0-rc.2 <0.3.0-0(已覆盖 0.2.1-rc.3),旧版本在本次适配中未重新验证。
0.5.1 修复了切换会话工作目录后,相对路径文件可能捕获到原目录同名文件的问题;回退继续使用修改时记录的目标路径。
使用
提供三种使用方式:
- 回退按钮:点击已结束轮次中的「回退」按钮 → 查看受影响文件 → 确认回退。
/rollback:输入不带参数的/rollback→ 打开轮次选择弹窗 → 选择目标轮次 → 查看受影响文件并确认回退。/rollback+ Space(空格):手动输入/rollback后按空格 → 打开子命令菜单 → 选择命令或参数 → 按回车执行。选择菜单项只补全参数,不立即执行;preview会打开轮次子菜单,按 Esc 可返回。
| 命令 | 用途 |
|---|---|
/rollback |
选择轮次并打开确认弹窗 |
/rollback latest |
直接回退最近的检查点 |
/rollback <n> |
直接回退到第 n 轮之前 |
/rollback list |
查看可回退轮次 |
/rollback preview <n> |
预览受影响文件 |
/rollback retry |
继续未完成的恢复 |
/rollback abort |
对话尚未提交撤回时,尝试补偿文件操作 |
/rollback rescues |
查看文件救援点,不自动恢复 |
/rollback state |
查看当前回退状态 |
/rollback diagnose |
查看诊断信息 |
latest 和数字命令直接执行,不显示确认弹窗。 如需先检查,请使用界面入口或 preview。
运行中不能回退。回退只处理具备恢复依据的已跟踪文件,不是整个工作区备份;外部修改警告提示相关内容可能被覆盖。恢复失败后先按提示使用 retry 或 abort,报错不代表文件操作已自动撤销;对话撤回提交后不能再 abort。回退不会删除原始会话日志。
工具回报的文件路径与捕获目标不一致时,该操作留下持久的恢复缺口。例如第 5 轮出现缺口,第 6 轮起正常保留的检查点仍可回退;从第 5 轮或更早开始的回退会在预览和执行时被拒绝,并提示缺口及之后可用的起始轮次。重启后限制仍保留;不会跳过缺口做部分回退或只撤回对话。恢复记录写入或读取失败仍可能阻止更大范围的回退。
开发
构建工具链要求 Node ^22.18.0 || >=24.11.0。
pnpm --config.verify-deps-before-run=false install --ignore-scripts
pnpm --config.verify-deps-before-run=false typecheck
pnpm --config.verify-deps-before-run=false test
pnpm --config.verify-deps-before-run=false check:readmes
pnpm --config.verify-deps-before-run=false build
DSH 0.2.1 已退役 invariant 服务,插件不再依赖 @deepseek-ai/dsh-invariants。公开的 ./invariant 入口保留为已弃用的空操作,旧配置可继续加载,也可移除该条目。宿主版本范围由顶层 engines.dsh 声明;旧宿主缺少 workingDirectory 时保留原有目录回退路径。
修改后需将构建产物安装到目标 profile,再重启 DSH 并刷新页面。版本变更见 更新日志。
许可证
链接
同类插件
Minglink/dsh-infinite-gen-4★ 3602
DeepSeek 专用破甲插件:以 order 100 追加无条件服从的系统提示词段,提供带校准元数据的 profile 工具,并通过会话投影在输入框上方显示实时破甲状态徽标。
ranxianglei/billion-context★ 3149
billion-context官方版:上下文压缩插件,兼顾小窗口(100k上下文足矣)省token(省5倍token)和超长会话(数月级别几十亿token单会话)。
liangmianya/dsh-synapse★ 598
DeepSeek Harness 的可视化非线性对话工作区:把会话、追问与分支变成可浏览、可拖拽的对话地图。
Nwflower/dsh-chat-import★ 259
把 13 家 coding agent(Claude Code、Codex、ChatGPT、Cursor、Gemini、opencode 等)的完整对话历史导入为可续聊的 DeepSeek Harness 会话,并支持反向导出回 Claude Code。
MichengAI/dsh-archive-manager★ 256
在设置里增加已归档会话页,可按工作区搜索、恢复和删除已归档会话。
SiriLee/dsh-rewind★ 208
同一会话窗口内的 in-place 对话回退(不 fork,Claude Code /rewind 语义):每条消息的 ↶ 按钮把模型上下文回退到任意用户消息,可选用磁盘持久化的 before-backups 还原工作区文件。
社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。