2.7 KiB
FAIL
crates/ely-lok/src/commands.rs:66 — 修订校验仅识别 Index 与 nTabNumber,notes.set 的 Part 等状态相关编号跳过 EXPECT,违反 PRD §17.2。真实 LOK worker 打开 One、Two、Three,在修订 2 保留指向 Two 的备注请求;删除 One 后修订为 3,再用旧句柄执行 notes.set("B edit applied to C", "1") 返回 Ok,Three 的备注实际被覆盖。修复方向:完整识别状态相关编号,并在 worker 操作前校验读取时的修订;加入删除前序幻灯片后旧备注请求被拒、目标备注保留的回归测试。原始及临时修复探针分别见 /tmp/ely-c171-r3-probes.log、/tmp/ely-c171-r3-notes-fixed.log。
apps/ely-table/src/sheets.rs:298 — 重命名对话框只保存工作表编号,确认时 run_in 重新取最新 read_at,把旧编号绑定到结构编辑后的新修订,绕过过期保护,违反 PRD §17.2。真实 worker 加 GPUI 探针建立 A、B、C,B 为当前;删除 A 的命令入队后、落地前打开 B 的重命名框,待后台重读得到 B、C,再确认 Renamed B,实际工作表变为 B、Renamed B,C 被改名。修复方向:对话框保存编号对应的 Doc 修订,确认时用 run_on 提交该句柄,并测试对话框期间结构编辑的竞态。证据:/tmp/ely-c171-r3-rename.log;临时修复后同一探针通过。
crates/ely-lok/src/view/lane.rs:114 — 请求失败时丢失 worker 已递增的修订:worker/revision.rs:64 在执行前加一,input::run 在错误路径提前返回,视图与应用缓存继续保留旧修订,后续编号命令持续被 stale 拒绝。真实 worker 加 GPUI 探针在空白工作表 A1 执行 cells.split;拆分失败后 worker 修订为 1,视图及缓存仍为 0,再重命名第一张工作表为 Plan 被拒,工作表仍叫 工作表1。修复方向:失败路径也在后台取得并交回实际修订,驱动缓存重读,同时保留原始操作错误;加入失败之后继续执行编号命令的回归测试。证据:/tmp/ely-c171-r3-split.log;临时修复后同一探针成功改名。
crates/ely-lok/src/view.rs:279 — 新增的编号命令拒绝规则阻断 ElyDoc 删除现有制表位;apps/ely-doc/src/props.rs:166 的属性栏仍调用 view.run,paragraph.tab 的删除参数 Index=0 每次都会立即报错。真实 worker 加 GPUI 探针先通过属性栏添加 1134 的制表位,再沿删除按钮相同路径提交 ["0", "0", "true"],得到 "paragraph.tab names something by number; run it at the state it was read",制表位保留。修复方向:属性栏按所展示制表位对应的视图修订调用 run_at,并覆盖添加后删除现有制表位的完整调用链。证据:/tmp/ely-c171-r3-tabs.log;临时修复后同一探针通过。