Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
16 lines
4.0 KiB
Markdown
16 lines
4.0 KiB
Markdown
FAIL
|
||
|
||
1. [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`。
|
||
|
||
2. [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`。
|
||
|
||
3. [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` 起。
|
||
|
||
4. [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`。
|
||
|
||
5. [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`。
|
||
|
||
6. [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`。
|