5.8 KiB
对话产物入口有限 QA(2026-10-16)
结论:当前 SourceArtifactLink 的原版归档范围内 DOM、四组几何和 168 项 computed style 已对齐;自身 hover、native click、真实焦点下 native Enter 和空计数隐藏通过。严格像素尚未对齐:默认按钮 ROI 的 3,614 个像素中仍有 1,018 个不同,SVG 区域无差异,文字存在灰阶与 LCD 彩边差异。不得把本报告称为完整 1:1 验收。
修改范围
- 新增
scripts/artifact-link-ui-regression.cjs:仅打包当前生产组件到隔离的 YCode fixture,生成机器报告与 PNG;没有修改生产组件、CSS、GPU 设置或原版窗口。 - 新增本报告。运行产物在
.tmp/artifact-link-ui-regression/。 - Root 已将生产按钮文案改成单一 template 字符串;本 QA 直接读取当前生产组件验证,没有代写该改动。
原版证据
WorkBuddy 5.8.2,归档环境 Electron 37.10.3 / Chromium 138.0.7204.251,截图 1336×901。仅使用此前 REA 保存的实现、DOM、computed styles、SVG、截图和 GPU 元数据;本任务没有重新观察原版。
- 运行时证据:
ev_d6e6920ff4e47f73a182fac5312c5f02393366a035445d18c8a6733a8c8a11ed,文件.tmp/rea-assessment-initial/layout.json、workbuddy.png。PNG SHA-2564bd92ea8c0e3677edcecbe26da4e62eaf853d0111638e2a0995e8f8470a3506a,脚本先校验其与 REA artifact hash 一致。 - CSS:原
artifact-slot-panel-BsA1UFez.cssSHA-25615c68a5a7c663776036feabff7126bbb8a4b1445cbf6b65ba3d82044289a513d;contexts-BkjwYSZT.cssSHA-25650cbd673f7f35fc7f966bdddc6c9f5677fdfe944cb904888d214619fca259380,来源记录保留在生产source-artifact-link.css。 - 主进程有限证据:
.tmp/rea-selected-main-render-flags.json,ev_3de1f34ca809cd2e4f98dfac960b1913db75e43cd88957d3e4f82b3b16f47fbf;原main/index.jsSHA-2566cc9d3079aca910b7c14c37a0a3b6f6af03f2b319d5625625926dbf5ad61aec8。字符偏移 312856 的applyGpuDegradationIfNeeded仅在shouldDisableGpu为真时调用disableHardwareAcceleration并设置disable-gpu、disable-gpu-compositing。本文件中未发现disable-lcd-text、use-angle、font-render、force-color-profile;该观察不能排除其他模块、启动器、驱动或环境配置,不能推定原版采用某个字体开关。
几何、DOM、样式
Fixture 加载生产 typography tokens、主题 tokens、app CSS、conversation source styles/adapters 与组件自身 CSS;在 chat-pane cr-theme light 宿主下复用原 footer x/y/width、display-contents slot、actions margin-top 12。只复现按钮入口,未补造 footer 的其他 feedback 行,因此不比较整个 footer 高度。
| 节点 | REA node_index | 原版与当前 bounds [x,y,w,h] |
|---|---|---|
| actions | 1644 | [324.28125,614.578125,138.15625,25] |
| button | 1645 | [324.28125,614.578125,138.15625,25] |
| chevron | 1647 | [446.4375,619.078125,16,16] |
| SVG | 1648 | [451.65625,622.46875,5.546875,9.21875] |
四节点合计 168 项归档 computed style 全部相等,包含字体栈、15px/25px、字重 400、gap 2、padding 0、颜色、display 与 SVG display block。原 SVG attrs 为 width 5.5523、height 9.219,与实际量化 bounds 区分;viewBox、fill、path d 均精确一致。文本 查看所有产物 (13) 为单个直接 text node,与原 node 1646 一致。修正前分段 React text node 曾导致按钮宽度多 0.015625px;当前该差异已消除。
像素结果与限制
采用可见隔离 Electron 窗口、SwiftShader 和软件合成;没有添加 disable-lcd-text,没有改生产 GPU 参数。采集的 GPU feature status 与归档逐项相等,但这不足以证明字体栅格化条件完全相等。
ROI:x324,y614,width139,height26,严格 RGB tolerance 0。
| 指标 | 结果 |
|---|---|
| 总像素 | 3,614 |
| 不同像素 | 1,018 |
| 最大单通道差值 | 77 |
| 平均 RGB 差值 | 4.798930086699871 |
| SVG 区域不同像素 | 0 |
参考 crop SHA-256:1511ef946540c0f80cb86348c427273f9825cd2583dcdc6501a01803ab9dec2b。当前 crop SHA-256:b88b306136e6768b4f1bf4c5583ce11820fe6d819443638b831d0a67ef45460e。文件为 reference-roi.png 与 candidate-roi.png;机器报告保留前 12 个 RGB 差异样本,例如原灰阶 [249,249,249]、当前彩边 [238,255,254]。证据支持文字栅格差异这一现象,未证实原版具体成因或启动开关。
交互与验证
命令:node scripts/artifact-link-ui-regression.cjs,退出码 0,184/184 PASS,机器报告 .tmp/artifact-link-ui-regression/report.json。该 PASS 仅指报告中 geometry/styles/own interactions 检查;pixel.fullPixelParity 明确为 false。
- 原生 mouse move 后按钮与 chevron 均变为
rgb(0,0,0);native click 回调恰好一次。 win.focus()、webContents.focus()后分别确认窗口、webContents、实际按钮均有焦点,完整 nativekeyDown Return → char CR → keyUp Return激活一次。只发送 keyDown/keyUp 不产生 Chromium 默认 char activation,未将该不完整输入序列当成生产缺陷。- count 0 不渲染入口;无 renderer error。
- 当前组件 SHA-256
cc589f276ba8c6c0b1c66df2ce066569ac864ce8b242a8d78e44586d4b7601c6;当前 CSS SHA-256ac3593ad9e11ef4fb347b26fbb273add80db068e85089248583149c4c475d1e9。
另读取 Root 已有 .tmp/panel-integration-Capd62/report.json:66/66 PASS,范围为真实隔离 YCode App/preload/IPC/native filesystem、overview 与标签保留,无上游调用。该报告与本 fixture 分开:本 fixture 回调是计数器,不能单独证明生产 overview 行为;integration PASS 不能证明原版像素相同。
原版 hover/键盘操作画面没有对应归档,仅有源 CSS hover 规则,仍未做原版动态像素验收。默认文字差异未解决;未修改 GPU 参数来伪造原版配置。