3.4 KiB
FAIL
crates/ely-lok/src/worker.rs:243 — SHEETS 与 SHOW_SHEET 直接调用当前内核视图的 getPart/setPart,未切到请求对应文档的 LOK view;同时打开多个工作簿后,切表会落空并返回成功,当前表读取也会混入另一工作簿的状态。真实 worker 复现:打开 S/T/U 三表工作簿,先显示 U,再打开只有 G 的第二个工作簿;对第一份请求显示 S,随后在第一份 C1 输入 123456 并保存 FODS,123456 仍落在 U,S 为空;第一份的 sheets.current 同时读成第二份的 0。隔离副本在加载时保存各自 view id、请求前 setView 后,逐表保存断言与双文档 current 断言均通过。修复方向:所有相关读写绑定对应文档的内核视图,校验目标表及切换结果,并补双工作簿往返切表与保存内容回归。
apps/ely-table/src/sheets.rs:161 — 等待旧输入完成的切表请求会被随后输入超越,仍未保持完整输入顺序。原 R1 的“输入后切表”回归已通过;扩展复现为两张空表、显示第一张,同一调度轮依次 run_active("cell.enter", &["42"])、show_sheet(1)、run_active("cell.enter", &["99"]),完成后保存 FODS:第一张 A1 为 99,第二张为空,42 被覆盖。隔离副本将切表请求排进 LokView 输入队列后,第一张保留 42、第二张得到 99。修复方向:切表进入与键入、命令共用的有序队列,覆盖切表前后均有输入的保存回归。
apps/ely-table/src/sheets.rs:161 — 延迟切表回调重新读取 active_tab,丢失发起请求的工作簿身份。具体复现:两份各有两张表的工作簿都显示第一张;在第一份排队输入 42 后请求显示第二张,立即选择第二份工作簿;等待完成后,第一份 extra.sheets.current 为 0,第二份变成 1。原样隔离回归失败,将切表绑定原文档并排入其输入队列后得到预期 (1, 0)。修复方向:请求保存原工作簿 id 和文档身份,完成与失败回报均作用于该工作簿,并加入等待期间切换或关闭工作簿的回归。
crates/ely-lok/src/view/scroll.rs:24 — 单元格自动滚动仍被缓存的 doc_size 截断,R1 的远处跳转缺陷继续存在。真实 ElyTable 空白工作簿在名称框输入 A100 并回车,名称框已显示 A100,画布与 AX 表头停在第 20–51 行,活动格与填充柄均在视口外;再跳 A101 仍停在同一范围。新回归 a_moved_cursor_scrolls_into_view_and_a_still_one_does_not 在 Writer fixture 上注入位于现有 doc_size 内的假 Cell,绕过了 Calc 空白区域扩展及真实跳转路径。修复方向:让 Calc 的滚动边界与工作表几何及可见区扩展一致,更新尺寸后完成目标格可见性校验;以新建空白表的真实远处跳转和连续方向键验证画布、表头与填充柄。
apps/ely-table/src/book.rs:63 — 名称框与公式栏仅在活动 LokView 发观察通知时同步,工作簿标签切换只改变 core.active,静止的目标文档留下上一工作簿的值。真实窗口复现:第一份空白工作簿光标在 A101,第二份 A1 输入 second;点击第一份工作簿标签后,画布和内容区切回第一份空表,名称框仍为 A1、公式栏仍为 second,持续保持到该视图再次产生通知。修复方向:活动工作簿变化时立即从其 LokView 同步两个字段,并覆盖两份静止工作簿反复切换及关闭当前标签后的可见值回归。