Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
4.0 KiB
FAIL
-
[P2]
../Ely-GPUI-Components/src/documents/tree/html.rs:119— 字符引用扫描反复搜索整个剩余字符串,使新增短码处理退化为平方复杂度,即使文本没有短码。优化构建实测:连续&构成的 128 KiB 段落,仅emoji扫描就需约 260 ms;1 MiB 需 16.1 秒,而 markdown-rs 解析该 1 MiB 仅需约 230 ms。文档不超过 128 KiB 时走同步解析,已超过 PRD 的 100 ms 主线程阻塞上限。应按字符引用的合法字符及长度界限扫描,遇非法字符即停止,避免对每个&重扫后缀,并覆盖长文本的增长行为。数据见.work/R4.2-r2/probes.log。 -
[P2]
../Ely-GPUI-Components/src/documents/tree/html.rs:117— HTML 属性复用了 CommonMark 字符引用规则,上一轮的普通&案例已修复,但合法 HTML 地址仍会解错。<a href="https://x.test/?q=one&page=2">result</a>的地址仍含&page=2,应为&page=2;<a href="/€">result</a>得到/�,HTML 应为/€。Typora 将属性交给 DOM 解析。应区分 HTML 属性与 Markdown 正文的解码规则,覆盖无分号数字引用及 HTML 的控制码映射;保留正文短码的转义语义。失败断言见.work/R4.2-r2/confirmed-probes.log,独立 HTML5 解析结果见html-oracle.log。 -
[P2]
../Ely-GPUI-Components/src/documents/tree/html.rs:194— 直接使用emojis的短码表,未覆盖 Typora 1.14.10 的默认名称和含义。实测:blonde_man:、:person_with_blond_hair:、:person_with_pouting_face:、:person_frowning:全部保持源码,Typora 分别输出 👱、👱、🙎、🙍;:cricket:则由 Typora 的板球 🏏 变成昆虫 🦗。应对齐指定版本的短码映射,并对这些名称及含义建立回归断言。证据见.work/R4.2-r2/confirmed-probes.log与typora-tokenizer.log,原表在frame.js:22342起。 -
[P2]
../Ely-GPUI-Components/src/documents/tree/mod.rs:124— HTML 关闭标签只能匹配当前 Markdown 容器内的打开标签,配合先解析 Markdown 的顺序,会忽略有效的</u>并让样式延伸至段落末尾。实测a <u>*text</u> outside* end显示为a text outside end,text outside被斜体化,连end都带下划线。Typora 的underline规则先匹配整对<u>...</u>:应显示a *text outside* end,仅*text带下划线。应按该规则处理标签与 Markdown 的解析优先级,确保关闭位置及字面标记正确,并加入交叉边界测试。两侧结果见.work/R4.2-r2/confirmed-probes.log、typora-tokenizer.log。 -
[P2]
../Ely-GPUI-Components/src/documents/tree/html.rs:85— 无引号属性值以所有 Unicode 空白为分隔符,会截断 HTML 允许出现在值内的字符。在/a与b之间放实际的 U+00A0:See <a href=/a b>result</a>.,实测链接目标只剩/a;Typora 的标签规则和 HTML5 解析均保留完整/a b。应按 HTML 的 ASCII 空白规则读取、跳过属性分隔符,保留其余 Unicode 字符,并断言完整地址。证据见.work/R4.2-r2/confirmed-probes.log、html-oracle.log。 -
[P2]
../Ely-GPUI-Components/src/documents/tree/mod.rs:114—br的开始和关闭标签都无条件追加换行。实测before<br></br>after变成两次换行,多出空行;Typora 的br规则将<br></br>合成一个换行词元。应按该规则处理紧随的关闭标签,避免重复换行,并补配对写法的回归测试。失败断言及原分词结果见.work/R4.2-r2/confirmed-probes.log、typora-tokenizer.log。
清理例外:自动审批审查拒绝了已校验路径的 PowerShell 删除命令,仅返回 blocked by policy。已通过 cargo clean 删除两个独立构建目录;仍留有项目内 .work/R4.2-r2/source/、parser/、html-oracle/、tmp/、source.tar、typora-tokenizer.cjs。本轮完整库测试 1878 项通过,原生及 WebAssembly Clippy、格式检查通过;上一轮原始失败断言全部通过,记录在 .work/R4.2-r2/validation.log。