Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
4.4 KiB
FAIL
-
../Ely-GPUI-Components/src/documents/tree/blocks.rs:74— [P2] Alert 按未解析的源码首行识别,与 GitHub 不同。> \[!NOTE]\n> body、> [!NOTE]\n> body在 GitHub Markdown API(POST/markdown,mode=gfm)都是 Note,本实现却显示普通引用;定义[!NOTE]: https://example.com后的> [!NOTE]\n> body在 GitHub 是引用链接,本实现反而吞掉链接并生成 Note。另有标记后的 NBSP 被trim()错误接受,纯 CR 换行的合法提示块被拒绝。应按解析后的节点、GitHub 的空白和换行规则判定并移除标记,补这些正反例。API 记录见.work/R4.3-r1-review/github-alerts-isolated.log、github-alerts.log;五个对应 Rust 探针均失败,见probes.log。 -
../Ely-GPUI-Components/src/documents/tree/blocks.rs:120— [P2] script/style 的结束位置只匹配名称前缀,隐藏范围会提前结束。<div>before<script>hidden</scriptx>also hidden</script>after</div>实际显示beforealso hiddenafter;style 遇到</style-extra>同样泄出其内容,违反 R4.3 的“不显示”。应匹配完整的、大小写不敏感的结束标签及合法名称边界,不能把前缀相同的字符串当成结束标签;补 script 和 style 的回归测试。两个探针均失败,见probes.log。 -
../Ely-GPUI-Components/src/documents/tree/blocks.rs:94— [P2] 隐藏 script/style 的状态只活在一个 mdast HTML 节点里,遇空行便丢失。输入<div>\n<script>\nfirst\n\nsecond\n</script>\n</div>时,markdown-rs 在空行处分开节点,本实现把仍在 script 内的second渲染为正文;探针实际得到Paragraph("second ")。应让隐藏范围跨越这些节点,直到真正的结束标签,再恢复普通 Markdown 的处理;为含空行的 script/style 补回归测试。证据见probes.log。 -
../Ely-GPUI-Components/src/documents/tree/blocks.rs:124— [P2] HTML 块元素仅被当作换行,没有参与元素栈的关闭,格式因此越出容器。<div><mark>x</div>y被解析为整段x\ny都带 Mark;GitHub API 输出为<div><mark>x</mark></div>y,只有x带标记,kbd 也有同样的边界。应在关闭块元素时按 HTML 的栈规则结束其内部元素,仅重开规则允许重开的格式元素,并覆盖这些跨容器用例。API 记录见github-blocks.log,失败的样式范围断言见probes.log。 -
../Ely-GPUI-Components/src/documents/document/place.rs:198— [P2] 目录保存旧解析结果的字节位置,跳转却直接在当前编辑器文本中解释它。以 Split 模式打开[toc]\n\n# A\n\ntext\n\n## B\n,在源码开头插入 20 行inserted,等待解析期间点击仍显示的 B:实际插入点落到第 3 行,目标 B 已在第 27 行。现有普通块打开路径会检查解析是否对应当前文本,这条新路径没有。应将目录目标与产生它的文本修订绑定,在提交编辑或解析更新后重新定位目标,不能直接沿用旧字节位置。GPUI 点击探针稳定失败,见toc-probes.log。 -
../Ely-GPUI-Components/src/documents/tree/blocks.rs:120— [P2] HTML 扫描会反复处理已经检查过的数据,复杂度为平方。每个 script/style 都对全部剩余文本调用to_ascii_lowercase();此外words()在每个标签前调用in_code(),会重复遍历不断增长的元素栈。直接引用本提交解析代码的发行优化探针中,重复闭合 script 的 272,011 字节耗时约 75 ms,1,088,011 字节约 1.25 s,2,040,011 字节约 4.58 s;40,000 个<b>组成的 120,005 字节输入约 336 ms,仍落在文档主线程即时解析的 128 KiB 范围内。当前“线性时间”测试没有覆盖这两条路径。应只扫描未消费的字节,并避免反复搜索整个已开元素栈;补重复闭合标签和大量已开格式标签的增长测试。证据见release-parser-final.log,探针源码见parser-main-source.log。
清理残留:WSL 的审查源码副本、独立解析探针及两个目标目录均已删除。.work/R4.3-r1-review/misdirected-target 仍留有约 1.4 GB 构建产物;它是本次被 WSL 提前展开路径变量而误建到项目上一级、随后移回项目内的目标目录。自动审批两次拒绝清理,只返回 blocked by policy。项目上一级已无本次创建的目录;没有操作共享的 tasks/reviews/.pane。除该残留外,本次 .work/ 仅保留小日志。