chore: establish YCode replication baseline and TODO
This commit is contained in:
commit
6dc59f89ba
1118 files changed
+196002
No files matched your search
@@ -0,0 +1,65 @@
|
||||
# 表格字形与滚动层诊断(2026-10-16)
|
||||
|
||||
归档的滚动层、大位移和裁剪结构已在 YCode 自有 fixture 中复现,但没有消除 3330 个差异像素。当前未证实这些 wrapper 缺失是生产字形差异的原因,也未证实原版使用 `disable-lcd-text`。
|
||||
|
||||
本轮只改 `scripts/table-ui-regression.cjs` 和本文;输出位于 `.tmp/table-ui-regression`。没有修改生产 UI、GPU 开关或用户配置,没有新增原版窗口操作。
|
||||
|
||||
## 原版依据
|
||||
|
||||
WorkBuddy 5.8.2 的归档 `.tmp/rea-assessment-initial/layout.json`、`workbuddy.png`,Evidence:`ev_d6e6920ff4e47f73a182fac5312c5f02393366a035445d18c8a6733a8c8a11ed`。本轮读取的是 REA 保存的布局、样式和文本,没有通过其他渠道查看原版。
|
||||
|
||||
祖先规则来自固定 REA `src-CyXHA0IC.css`,SHA-256:`a5e26b537bb50323aefbf25abddad52e288dd3868598be8d255d70886fe77cfe`,CSS Evidence:`ev_377c8790468b3c67dad8577aabb327f98d3140659f0fffdbabfcff5a40cc9e94`。fixture 读取前校验该 SHA。
|
||||
|
||||
## 已验证的几何与环境
|
||||
|
||||
完整 `source-scroll-flow` 场景对以下七个祖先逐项断言 bounds 与归档完全一致:
|
||||
|
||||
| 节点 | x / y / width / height |
|
||||
| --- | --- |
|
||||
| 772:viewport | 284.28125 / 94 / 526.703125 / 639 |
|
||||
| 773:scroll | 284.28125 / 94 / 526.703125 / 639 |
|
||||
| 774:content | 284.28125 / -15153 / 516.703125 / 15886.828125 |
|
||||
| 775:document | 324.28125 / -15153 / 436.703125 / 15886.828125 |
|
||||
| 776:spacer | 324.28125 / -15153 / 436.703125 / 15886.828125 |
|
||||
| 777:flow | 324.28125 / -3933 / 436.703125 / 4666.828125 |
|
||||
| 1545:末尾 item | 324.28125 / 256.328125 / 436.703125 / 477.5 |
|
||||
|
||||
scrollTop 为 `15247`,flow 的 computed transform 为 `matrix(1, 0, 0, 1, 0, 11220)`。完整场景保留 `container-type: inline-size`、原 scrollbar / overflow 规则和两层无名 flow 包裹。前置内容用等高空区表达,目标 markdown 使用 REA 中可见的前段和表格内容。
|
||||
|
||||
表格 inner/table/th/td/code 的 bounds 和 70 项选定 computed style 均匹配;行高为 `42.75 / 44.25 / 43.75`。引用按钮的原生 hover/click、表内路径解析与点击、横向滚轮边界检查继续通过。
|
||||
|
||||
fixture 使用 SwiftShader、禁用 GPU compositing;`app.getGPUFeatureStatus()` 与归档的每项 `feature_status` 一致。GPU metadata 不包含原版完整启动实参或原始 compositor 图层树,不能证明所有文本绘制条件一致。
|
||||
|
||||
## 严格像素结果
|
||||
|
||||
ROI 固定为 `x=324, y=385, width=438, height=134`,共 58,692 像素,RGB 容差为零。
|
||||
|
||||
| 场景 | 差异像素 | 最大通道差 | 结论 |
|
||||
| --- | ---: | ---: | --- |
|
||||
| baseline:大 translate、无 scroll | 3330 | 109 | 未通过完整像素 |
|
||||
| source-scroll-flow:完整归档链路 | 3330 | 109 | 未通过完整像素 |
|
||||
| source-scroll-no-container:去掉 container-type | 3330 | 109 | 未通过完整像素 |
|
||||
| source-clip-flow:手工相同位移及 overflow hidden | 3330 | 109 | 未通过完整像素 |
|
||||
| baseline + 禁用 LCD 的负对照 | 1 | 2 | 不是原版配置证据 |
|
||||
| source-scroll-flow + 禁用 LCD 的负对照 | 327 | 1 | 不是原版配置证据 |
|
||||
|
||||
前四个场景的 ROI PNG SHA 完全相同:`b2f6ea6b7d07fabea3fa3d920eea325e73e382f86e641f8cdf2eaf3a224f0398`。因此,已复现的滚动、大位移、裁剪和 container-type 组合没有改变该区域的实际绘制。
|
||||
|
||||
常规场景的 3330 个差异中,3329 位于归档文字 bounds 外扩 1px 的范围内;另一个位于 inline-code 圆角,坐标 `(508,460)`,原版 RGB `(244,244,244)`,fixture `(242,242,242)`。禁用 LCD 的负对照说明文本栅格模式能解释主要差异,但完整滚动链路下仍有 327 个通道差 1 的像素。不得将负对照写成原版 GPU 配置已恢复或完整 1:1 通过。
|
||||
|
||||
## 命令与产物
|
||||
|
||||
```powershell
|
||||
$env:YCODE_TABLE_LAYER_CASE='source-scroll-flow'
|
||||
node scripts/table-ui-regression.cjs
|
||||
$env:YCODE_TABLE_LAYER_CASE='source-scroll-no-container'
|
||||
node scripts/table-ui-regression.cjs
|
||||
$env:YCODE_TABLE_LAYER_CASE='source-clip-flow'
|
||||
node scripts/table-ui-regression.cjs
|
||||
```
|
||||
|
||||
负对照额外设置 `YCODE_TABLE_DISABLE_LCD_EXPERIMENT=1`。该变量只影响启动的隔离 fixture。脚本退出成功代表几何、样式及交互断言通过;像素结论必须读取报告的 `fullPixelParity`,当前各场景均为 `false`。
|
||||
|
||||
主要产物:`report-source-scroll-flow.json`、`report-source-scroll-no-container.json`、`report-source-clip-flow.json`、`report-source-scroll-flow-lcd-disabled-experiment.json` 和对应 `candidate-roi*.png`。
|
||||
|
||||
当前缺少原版 compositor 图层 / 绘制状态及完整文本栅格配置证据。现有结果支持继续保留源码级表格修复;没有形成因字形问题修改生产 wrapper 或全局 GPU 开关的建议。后续采集范围和生产架构由主上下文决定。
|
||||
Reference in new issue
Block a user