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
踩坑提醒
安装前请审阅上游仓库;本指南基于已收录字段自动派生,可能滞后于最新版本。如发现与官方文档冲突,请以上游为准。
— 来源:通用规则