跳到主内容

dsh-turn-rewind 使用指南

为 DSH 提供按 turn 回退的项目文件恢复:每条用户消息多一个图标按钮,自动在 agent 处理前存快照,确认后精准还原。

本文为派生内容(基于 wiki / faq / compatibility_json 自动组装),非 AI 即时创作。

本文由本站基于该插件已收录的字段自动派生(wiki / faq / compatibility_json / readme),非 AI 即时创作。每节末尾标源字段。

快速上手

dsh-turn-rewind

— 源: plugin_wiki.wiki_content

安装与验证

dsh plugin --profile web add @anionex/dsh-turn-rewind

复制以上命令在 DSH Web Profile 内运行。安装完成后在「插件列表」启用即可。

— 源: plugins.install

关键要点

  • 内容寻址的恢复点 manifest;
  • Git worktree、HEAD、分支和进行中 Git 操作的状态围栏;
  • 从审阅到执行之间的 stale plan 检测;
  • 短期确认码与 DSH 人工批准双门槛;
  • 每次恢复前自动建立救援点;

— 源: plugin_wiki.readme_zh (fallback readme_raw)

常见问题

安装后需要额外配置吗?

不需要。包内已经声明 dsh.bundle.patch,cordis.patch.yml 直接挂载,装上即生效。存储目录默认 $DSH_HOME/change-ledger/v1,未设置时回退到 ~/.dsh/change-ledger/v1。

恢复会不会动 Git 的分支、HEAD、index、stash、commit?

不会。安全契约明文规定只恢复工作区文件,不修改 Git index、分支、HEAD、stash 和 commit,已审阅过的 HEAD/分支变化也不会阻止恢复,恢复后的内容表现为当前 HEAD 的未提交修改。

同一项目目录还有别的 Agent 在运行,能恢复吗?

不能,会被阻止。恢复时会扫描其他 Agent 的工作区,只要有任何 running 状态的 Session 共用同一 worktree,本次恢复就会因 WORKSPACE_IN_USE 失败。空闲 Session 不会阻止恢复。

恢复失败会自动还原吗?

是。每次执行前会先建一个 rescue 快照,执行失败时立即按 rescue 快照回滚;如果回滚也失败,操作状态记为 recovery-required 并可通过 listRecovery 找到对应的救援点人工处理。

支持哪些 Git 仓库?哪些不支持?

仅支持普通 Git worktree。sparse checkout、submodule gitlink、ignored 文件、socket/设备/FIFO 等特殊文件、扩展属性/ACL/所有者/时间戳/hard-link 拓扑、Git index 和仓库元数据都不在快照范围;遇到这些情况创建恢复点直接失败。

其他 Cordis 插件能调用这个能力吗?

可以。插件注入 ctx.changeLedger 即可调用 create / inspect / planRestore / applyRestore / listRecovery 等完整生命周期 API,完整类型从 @anionex/dsh-turn-rewind/format 导出。

DSH 中途崩溃,未完成的恢复操作会怎样?

启动时自动对账:把所有 workspace 锁未被持有的非终态操作日志标记为 interrupted,不会误判仍存活 DSH 进程的活跃锁。恢复可通过 listRecovery 找到对应的救援点。

— 源: plugin_wiki.faq_json

兼容性

  • DSH: 依赖 @deepseek-ai/cordis ^4.0.1,具体 DSH 版本未声明
  • Node: ^22.19.0 || >=24.0.0

— 源: plugin_wiki.compatibility_json

踩坑提醒

安装前请审阅上游仓库;本指南基于已收录字段自动派生,可能滞后于最新版本。如发现与官方文档冲突,请以上游为准。

— 来源:通用规则