2.7 KiB
FAIL
apps/ely-pdf/src/edits.rs:102 — 上一轮混合尺寸缺陷仍可在第 101 页自身可见时复现:refresh() 将已测量的后续页尺寸重置为第一页尺寸,backdrop.rs:84 因尺寸不符跳过旧底图,:111 随即释放它。生成 101 页 PDF,前 100 页为 612×792,第 101 页为 612×900;等待尺寸补读完成,以单页模式显示第 101 页并等待绘制完成,然后在该页添加便签。真实 worker 探针连续两次捕获 edited=1、tiles=0、backdrop=28、当前尺寸变成 612×792,随后尺寸恢复 612×900 时 backdrop 已为 0,页面出现空白,违反 R2.6。现有新增测试只在第一页添加便签。修复方向:依据页面身份和真实几何更新尺寸,批注等保持页面结构的操作保留已知实测尺寸,并覆盖第 101 页实际可见时的编辑路径。证据:/tmp/ely-r26-r2-probes.log、/tmp/ely-r26-r2-probes-repeat.log。
apps/ely-pdf/src/view.rs:145 — retire_all() 遗漏新增的 backdrop,关闭标签时这些已绘制图像无法进入窗口的释放队列,违反 PERF-08。复现:等待单页 PDF 绘制完成,添加便签,在编辑完成、旧底图等待重绘时通过实际 release_tab() 路径关闭标签;连续两次探针均记录关闭前后 backdrop=28,丢弃 PdfView 引用并推进后续帧后,window.has_image_atlas_entry(old) 仍为 true。每次在此阶段关闭标签都会将该批旧图块留在仍打开的窗口图像缓存中。修复方向:将 backdrop 中的全部图像随其他图块一起移交关闭时的 Retired 队列,增加关闭后核对图像缓存释放的回归。证据:/tmp/ely-r26-r2-probes.log、/tmp/ely-r26-r2-probes-repeat.log。
apps/ely-pdf/src/tests/input.rs:197 — 上一轮实际绘制验证缺陷仍存在:never_bare() 仅检查 pieces() 返回列表,:234 仅检查 Arc 地址更新,无法验证旧图块被画到窗口及编辑后的画面内容。隔离副本中让 pages.rs 的 drawn_tile() 对 backdrop 图像直接跳过 window.paint_image();该漏绘分支执行 109,864 次,包含三项新增回归在内的原有 118 项测试仍全部通过,重绘等待期间旧页面图像可直接漏绘。修复方向:断言等待新图块期间实际帧中的页面覆盖及原有内容,并核对落地后的批注或可视签名区域像素,使跳过旧图块绘制的变异触发失败。证据:/tmp/ely-r26-r2-mutation.log。独立基线应用与 worker 构建、118 项测试、注释检查均通过;上一轮属性栏提交便签导致缩放变化的复现场景通过,比例 2.2026143→2.72549 全程保留可绘制底图。写入本结论前已核对原有受跟踪文件散列一致,删除探针源码副本、独立 CARGO_TARGET_DIR 和增量缓存,仅保留小型日志。