# 回退前查看文件清单并确认

[README](../README.md) · [English](rewind-preview.md)

0.3.0 的文件预览功能，依赖 `filesnap ^0.5.0`；覆盖消息旁回退按钮和 `/rewind`，保留原有分支与 `/redo` 行为。

1. 点击 assistant 轮次旁的回退按钮，打开预览对话框。
2. 查看目标轮次和完整文件清单：**写回 / 恢复**包括覆盖现有文件、恢复缺失文件；**删除**表示移除目标快照明确记录为不存在的文件。未变化文件不列出。
3. 点击“确认回退对话和文件”执行；点击“取消”或按 Esc 关闭。Tab 切换控件，Enter 激活当前按钮。

没有文件差异时，仍需确认对话回退。读取失败、清单不完整或引擎版本不足时，确认按钮不可用，可重新预览。

命令行同样分两步：

```text
/rewind 3
/rewind <预览输出的 point id> --confirm <预览输出的 token>
```

第一步只展示清单；不输入第二条命令就是取消。令牌仅适用于本会话、本恢复点，五分钟过期，使用一次即失效；重启后需要重新预览。`--into` 不会绕过确认要求。

预览会在快照存储中保存恢复检查点，但不恢复工作区文件、不创建对话分支。确认前会再次捕获并比较当前状态；文件、轮次或忽略规则改变会拒绝执行，要求重新预览。这不是对外部编辑器或其他进程的工作区锁；最终检查与实际写入之间仍有并发窗口。

浏览器确认后通过宿主创建分支，再执行文件恢复。若此时宿主拒绝恢复，错误显示在弹窗中，原会话仍在当前视图；宿主已创建的子会话可能保留在列表中。部分文件恢复失败会留在浮层中显示结果；救援点与未完成状态保留，请从设置的中断恢复面板继续或回滚，再执行其他回退。不向对话追加操作记录。

当前只展示将操作的路径和动作，不是逐行内容 diff，也不提供逐文件勾选、仅回退对话模式或新的全局快捷键。未捕获文件不会因有预览而获得保护；使用 `/rewind status` 查看覆盖范围。
