3.8 KiB
FAIL
apps/ely-mark/web/src/code.js:32 — 异步结果只核对 Mermaid 请求编号,代码块切换语言后旧请求仍有效,导致 Rust 代码块显示旧 Mermaid 图。复现:真实 CEF 页面显示 graph TD\n A --> B 的 Mermaid 代码块,渲染完成前用 ProseMirror 的 setNodeMarkup 将语言改为 rust;等待后文档属性和语言按钮均为 rust,旧 SVG 仍可见,checkVisibility(...) 为 true,预览面板仍显示。修复方向:将当前代码块的语言、原文和存活状态纳入结果校验,在语言变化、清空和销毁时使旧渲染失效。证据:/tmp/ely-c141-r2-logs/recheck-summary.log、logic.log。
apps/ely-mark/web/src/code.js:45 — 主题观察器把正在渲染、尚无 data-diagram 元素的有效请求当作已脱离页面的记录删除,随后旧主题 SVG 仍能回填,违反 §17.3 的主题同步要求。复现:真实 CEF 中开始显示 Mermaid,在副本中仅将生成 SVG 到回填之间延迟 800 毫秒以固定交错;此时把 --ely-surface 改为 #ff00ff,最终节点填充仍为旧色 rgb(27, 25, 23),渲染记录已被删至 0。上一轮的已显示图形换主题场景通过,本场景覆盖首次渲染期间换主题。修复方向:按代码块生命周期区分待渲染和已销毁状态,主题变化使旧主题结果失效并调度当前源码重绘。副本修复后同一交错得到 rgb(255, 0, 255)。证据:/tmp/ely-c141-r2-logs/recheck-summary.log、repair-summary.log。
apps/ely-mark/web/src/code.js:61 — 全局 drawn 强引用每次渲染的源码和回调,编辑器销毁及模式切换缺少相应释放;清理依赖下一次主题变化,导致固定主题下持续积累失效记录,违反 PERF-08 的资源释放要求。复现:真实 CEF 页面连续 20 次显示 Mermaid 预览并切回源码,等待所有渲染结束后缓存由 2 项增至 22 项,22 项对应的图均已脱离 DOM;回调和源码继续由 Map 持有。修复方向:让每个编辑器或代码块拥有其渲染记录,在替换、清空和销毁时释放源码及回调,并取消失效任务。副本加入生命周期释放后,同一 20 次循环回到 0 项。证据:/tmp/ely-c141-r2-logs/recheck-summary.log、repair-summary.log。
tests/scripts/mark-content.sh:14 — EXIT trap 在 set -e 下终止已经由 wait 回收的探针,kill 返回 1 使成功验收变成失败,并跳过临时目录清理。复现:独立构建后运行原脚本,全部内容断言通过,打印 ok: mark content (background share 0.9422),最终退出码为 1,工作目录仍存在;最小 Bash 复验同样在打印 success 后返回 1,清理语句未执行。修复方向:只终止仍在运行的探针,保证清理总能执行,并保留验收本身的退出状态。证据:/tmp/ely-c141-r2-logs/gate.log、gate-report.log、trap.log。
tests/scripts/mark-content.sh:72 — 块公式验收只检查 KaTeX 节点存在,整块公式完全透明仍满足“公式已显示”的断言,属于 C14.1 的弱测试。复现:在独立副本中仅修正上述 EXIT trap,再给样式追加 .milkdown-code-block .preview .katex { opacity: 0; };三种模式的内容检查全部通过,脚本退出 0,打印 ok: mark content (background share 0.9427),预览中的块公式实际不可见。隐藏整个正文的变异已按预期失败,背景占比为 0.9991。修复方向:将块公式滚入视口后核对实际可见性,并要求隐藏块公式的变异触发失败。证据:/tmp/ely-c141-r2-logs/hidden-math-gate.log、hidden-math-report.log、hidden-body-gate.log;cargo test -p ely-mark 独立运行通过,当前为 0 项单测,打包构建及内容比对通过。审查副本、独立构建目录和本轮 CEF 缓存均已删除,原始范围内 22 个文件散列保持一致,见 verification.log。