Files
ElyOffice/tasks/reviews/R2.6-r1.md
T

8 lines
2.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
FAIL
apps/ely-pdf/src/edits.rs:102 — 编辑后的尺寸表只含前 100 页的实测值,其余页由 sizes() 填成第一页尺寸;这里将它与后台补读完整的 self.sizes 比较,混合纸张文档会进入 retire_tiles(),立即清空整屏旧图块。复现:生成 101 页 PDF,前 100 页为 612×792,第 101 页为 612×900;等尺寸补读与第一页绘制完成,在第一页添加便签。真实 worker 探针连续两次捕获 edited == 1 且 tiles.is_empty(),违反 R2.6。修复方向:保留已测量的尺寸,根据真实页面结构和几何变化决定失效,覆盖超过 100 页的混合尺寸文档。证据:/tmp/ely-r26-probes-repeat.log。
apps/ely-pdf/src/pages.rs:196 — stale 图块仍按当前布局的完整 TileKey 淘汰,scale 变化会让保留机制失效。复现:单页 PDF 使用默认适合宽度,点击便签工具,在页面点击并等右侧属性栏和图块稳定,再提交便签。refresh() 清掉 aim,属性栏收起,显示比例从 2.2026143 变为 2.72549;旧比例图块被 tiles.retain() 和 stale.retain() 淘汰,探针捕获 painting == true、tiles 为空、stale 为空的状态,页面继续闪白。加入布局稳定等待后仍复现,违反 R2.6。修复方向:处理编辑落地引起的布局变化,保留可绘制的旧页面图块直到新布局图块到达,并覆盖属性栏提交便签的实际路径。证据:/tmp/ely-r26-probes-repeat.log。
apps/ely-pdf/src/tests/input.rs:210 — 新增回归只观察缓存是否为空及 Arc 地址是否更换,无法验证旧图块实际进入绘制,也无法验证新画面的内容。隔离副本中将 pages.rs 的 Some(image) 绘制分支加上 !self.stale.contains(&key) 条件,对 stale 图块直接跳过绘制;日志确认该分支反复执行,原测试 an_edit_keeps_the_page_drawn_until_its_repaint_lands 仍通过。这个变异会在重绘期间显示纸张背景,直接破坏 R2.6。修复方向:验证重绘等待期间每帧的实际页面绘制,以及更新后批注或可视签名区域的像素;让跳过旧图块绘制的变异触发失败。基线应用和 worker 构建通过,ely-pdf 原有 115 项测试及注释检查通过;变异证据:/tmp/ely-r26-mutation.log。探针源码副本及独立 CARGO_TARGET_DIR 已在写入结论前删除。