6 lines
1.9 KiB
Markdown
6 lines
1.9 KiB
Markdown
FAIL
|
|
|
|
apps/ely-tree/src/work.rs:233:固定文件路径后仍直接交给 `git clean -f -- <files>`;Git 会把确认时已变成目录的文件路径递归展开,删除预览外的文件,违反 TREE-13 的危险操作预览及 agents.md C13.6 的“预览后新出现的文件不动”。实际执行函数探针复现:创建 `out/early.txt`,预览得到 `files=["out/early.txt"]`;确认前把该文件替换为同名目录并创建 `out/early.txt/late.txt`;执行返回 `Ok(())`,新增的 `late.txt` 被删除。随附 Git 的独立命令也复现相同结果。R1 的既有目录内新增文件场景已通过,现有清理测试覆盖该文件变为目录的场景时失败。修复方向:保留并核对预览对象类型,以限制为具体文件的删除流程执行;类型变化时拒绝并重新预览,增加上述回归测试。副本中的类型核对修复使新增文件保留、探针通过。
|
|
|
|
apps/ely-tree/src/places.rs:91:刷新引用日志时保留旧的列表下标与 OID,`places_pane.rs:135` 再按旧下标取记录;前插同 OID 的事件会将选中状态和详情静默转移到另一条日志,违反 TREE-13 的 reflog 查看及 agents.md C13.6 的“详情显示所选那一条”。实际窗口与执行探针复现:初始提交后创建并切换到 `other`,选中 `HEAD@{1}` 的初始提交记录;从独立 Git 执行 `checkout --detach HEAD`;刷新后初始提交位于 `HEAD@{2}`,界面仍选中 `HEAD@{1}`,详情标题从 `commit (initial): original event` 变为 `checkout: moving from master to other`。原先同 OID 多行的首次选择已修复,现有 `tests/recovery.rs:389` 的测试遗漏刷新后的事件身份。修复方向:刷新时按所选事件身份重新定位,或在身份失效时清除选择和详情;覆盖同 OID 日志前插的窗口回归。副本中按原事件重新定位后,探针保留原记录并通过。
|