Files
ycode/docs/source-artifact-link-2026-10-16.md

60 lines
5.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 对话产物入口有限 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-256 `4bd92ea8c0e3677edcecbe26da4e62eaf853d0111638e2a0995e8f8470a3506a`,脚本先校验其与 REA artifact hash 一致。
- CSS:原 `artifact-slot-panel-BsA1UFez.css` SHA-256 `15c68a5a7c663776036feabff7126bbb8a4b1445cbf6b65ba3d82044289a513d`;`contexts-BkjwYSZT.css` SHA-256 `50cbd673f7f35fc7f966bdddc6c9f5677fdfe944cb904888d214619fca259380`,来源记录保留在生产 `source-artifact-link.css`。
- 主进程有限证据:`.tmp/rea-selected-main-render-flags.json`,`ev_3de1f34ca809cd2e4f98dfac960b1913db75e43cd88957d3e4f82b3b16f47fbf`;原 `main/index.js` SHA-256 `6cc9d3079aca910b7c14c37a0a3b6f6af03f2b319d5625625926dbf5ad61aec8`。字符偏移 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、实际按钮均有焦点,完整 native `keyDown Return → char CR → keyUp Return` 激活一次。只发送 keyDown/keyUp 不产生 Chromium 默认 char activation,未将该不完整输入序列当成生产缺陷。
- count 0 不渲染入口;无 renderer error。
- 当前组件 SHA-256 `cc589f276ba8c6c0b1c66df2ce066569ac864ce8b242a8d78e44586d4b7601c6`;当前 CSS SHA-256 `ac3593ad9e11ef4fb347b26fbb273add80db068e85089248583149c4c475d1e9`。
另读取 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 参数来伪造原版配置。