chore: establish YCode replication baseline and TODO

This commit is contained in:
xiaohan.yuan committed 2026-10-17 02:43:49 +08:00
commit 6dc59f89ba
1118 files changed
+196002

No files matched your search

+86
View File
@@ -0,0 +1,86 @@
# 首页视觉审查与机器人可见参考(2026-10-16)
本次只新增审查脚本、证据派生资源和报告,没有修改 App、ChatPane、SourceHome 或既有 CSS。以下比较基于固定截图/fixture,不能宣称当前生产首页或全部场景已经 1:1。
## 固定证据与范围
| 对象 | 来源 | 范围 |
| --- | --- | --- |
| 原版首页 | REA `ev_4fd56b4f30ca87b4d7012c80195becea384ffa95582b059558a16b8d871d57a8`;`.tmp/rea-home-static-20261016/{workbuddy.png,layout.json}` | 2026-10-15T16:48:52.506Z;截图可见 WorkBuddy V5.8.2;1336×901;办公、未选空间、GLM-5.3 Flash、允许完全访问、空输入、focused input |
| 原版场景采集 | REA `ev_dcf614287152ff2d723fb4ac89f60be7162ec7f446eb81c52e466fea69cba80a`;`.tmp/rea-home-scenes-20261016/` | 2026-10-15T16:51:53.215Z;1336×901;包含已有场景连续图,本次不将其与办公 fixture 混为同一状态 |
| YCode 冻结 fixture | `.tmp/home-native-ui/index.html`;原图 `.tmp/source-home-native.png`;新增采样 `.tmp/home-visual-audit-20261016/{native.png,native-layout.json}` | 1336×901;已有冻结 bundle,保留左侧280px空间,但没有绘制实际侧栏;办公、自定义模型、未选空间、空输入、非 focused input |
| YCode 旧生产图 | `.tmp/ycode-live-main/{screen.png,layout.json}` | 1335×916,时间和状态更早,仅供历史观察;不据此给当前像素通过率 |
首页原图 SHA256:`360b076811ef19381f0670c314b24b06252310bf24fdc245f529f4894cfd7241`。场景主图 SHA256:`7e4ba766334049096df2c7b87becf1820b60184f3f070530c735db39710335c0`。脚本固定验证首页图 SHA,避免静默比较错图。
## 几何与字体残差
表中矩形为 CSS px,`[x,y,w,h]`。新 fixture 的主要纵向布局已与固定原版相同;可观察差异集中于横向基准、字体继承和绘制状态。
| 元素 | 原版 | fixture | 结论 |
| --- | --- | --- | --- |
| 标题容器 | `[405.125,158.5,800,42]` | `[403,158.5,800,42]` | 横向 -2.125,其他相同 |
| 标题文字 | `[666.375,158.5,277.5,42]` | `[664.25,158.5,277.5,42]` | 同字号30、weight600、line42、字体声明;颜色不同 |
| 场景切换外框 | `[693.125,216.5,224,36]` | `[691,216.5,224,36]` | 尺寸相同,横向 -2.125 |
| quick actions 容器 | `[405.125,316.5,800,32]` | `[403,316.5,800,32]` | 高度、padding-right120、gap8相同 |
| 制作PPT按钮 | `[675.125,316.5,81.234375,32]` | `[673,316.5,77.03125,32]` | 按钮窄4.203125;后续3项累计横向 -6.328125 |
| 输入 slot | `[405.125,364.5,800,184]` | `[403,364.5,800,184]` | 宽高和纵向相同 |
| 输入白色容器 | `[405.125,364.5,800,144]` | `[403,364.5,800,144]` | 宽高和 padding-top12相同 |
| 机器人外框 | `[1085.125,286.5,120,120]` | `[1083,286.5,120,120]` | 原几何已恢复,图像内容不同 |
| 机器人 img | `[1065.125,276.5,140,140]` | `[1063,276.5,140,140]` | 原几何已恢复,图像内容不同 |
| 推荐容器 | `[405.125,600.5,800,236]` | `[403,600.5,800,236]` | 纵向、宽高相同;文字数据不同 |
原版中心为805.125,fixture中心803;原版侧栏分界284.25,fixture保留280。4.25px侧栏差使主内容中心差2.125px。应在真实 App 的侧栏宽度/分配契约处校正,避免给首页所有元素添加补偿偏移。
原版 quick-action 按钮计算字体是 **Arial / 14px / 400 / normal**;fixture 是 **`"PingFang SC", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", sans-serif` / 14px / 400 / 22px**。已有 `source-home.css` 中 `.quick-actions__item{font-family:inherit}` 与该证据相冲突。中文纯文本按钮宽度恰好均82,不足以证明字形相同;混合拉丁字符的“制作PPT”直接暴露宽度差。
主标题声明字体、尺寸和文字宽度相同,但原版 `color:rgb(0,0,0)`,fixture继承 `rgba(0,0,0,0.9)`,白底下文字较浅。多处祖先字号/行高也不同(原13px/normal,fixture14px/22px),这些不是所有子控件的实效字号;修复应限定原版选择器,不能直接全局改字号。当前 REA 首页证据没有实际平台字体采样,所以不能将“CSS字体一致”写成“字形一致”。
## 绘制、数据与状态应分别验收
- 输入框:原版节点848带 `cr-input-container--focused`,border-top-color 为 `rgba(0,0,0,.15)`;shadow 为 `rgba(0,0,0,.06) 0px 16px 32px -8px, rgba(0,0,0,.1) 0px 2px 4px -4px`。fixture非 focused,border `rgb(230,230,230)`,shadow `none`。需在真实 UI 点击输入框,使状态相同后再判 focused 样式。非 focused 原版在本次固定图中未观察。
- 空输入 send:原版禁用灰色;冻结 fixture 显示黑色可发送。这是 fixture 的 `onSend`/disabled 交付契约差异,应验证真实 App 的空输入禁用逻辑;不能用截图中黑色按钮替原版禁用状态验收。
- placeholder:原版“今天帮你做些什么? @ 添加上下文,/调用技能与指令”;fixture“发送消息...”。这是可直接对齐的展示文本契约。
- model:GLM-5.3 Flash 与自定义模型属于数据差异。自定义模型应保留真实名称;图标、箭头、字体、间距应在相同控件状态下另测。
- voice:fixture常显“语音转写服务不可用”,原版只有mic图标。服务不可用是能力/状态差异;具体失败文案显示时机需原版对应失败态证据,不能把未观察失败态当成原版默认 UI。
- 推荐任务:两边文案不同,因此各行宽度不同不直接等于 CSS 错误;列表容器、行间距、胶囊边框和箭头可在统一文案后比较。原版真实数据来源/刷新规则未在本次运行时验证。
- 侧栏账号、任务、空间、增长卡和原生标题栏:冻结 fixture没有绘制,不能据此判断生产组件缺失;旧生产截图也不作当前通过依据。
- 场景/hover/键盘/动画/暗色:已有原版场景证据可继续逐状态测试;本次只量化办公稳定帧,不宣称开发、设计、切换动画、hover或暗色已验收。
局部像素诊断记录在 `.tmp/home-visual-audit-20261016/audit.json`。将 fixture 向右平移2整数像素仍剩0.125px raster phase,因而这些像素差只能用于定位,不能用于“零差通过”。标题区域12470像素中4228不同,RGB平均绝对差8.56;首chip区域2706中665不同,平均差16.63;直线输入框顶边7440中1240不同,平均差1.17。标题颜色、chip字体和输入focused状态分别已有计算样式证据解释,不能把整页差异都归于抗锯齿。
## 黑色机器人:已取得什么、尚未取得什么
已导出的 `default-miao-BlTmPevf.png` 是360×360透明灰/银猫(有青色单眼/星形另一眼),与原版首页截图中黑猫双竖眼不同。它是真实 fallback 源资产,不是本次运行时黑猫资产。
选中二进制导出证据:`ev_60a03f3376f0e0c04e16d12c7798e25401d1e697f33b39e4b5f7027794b09223`;ASAR root SHA `035254bc76310ea46317433e4840602094543ef323d2d5c5aff7c131729de918`;文件 `renderer/assets/default-miao-BlTmPevf.png`;资源 SHA `d164ac0e6e54438ea2a26a26e8ef622de3d911a674f55086d465ce10b011641d`。本次没有再次读取原版安装目录。
原版已由 REA 导出的 `contexts-BMeWSUHk.js`(证据 `ev_717fa5e846e64d67ac19c8925d121bff632c0d3aefb3603b10858559cabb2dcb`,SHA `5f35b7489b107e21ef452c8ee88a95265756f6fc444841eef869228bbc44768b`)说明:
1. `Wwn` 赋值从字符offset7018348开始,为 `new URL(default-miao-BlTmPevf.png,import.meta.url)`。
2. `GrowthBuddy` 所在代码从offset7027087开始,读取 `data.buddy.thumbnail_url`、`base_animated_url`;有thumbnail且没有img error时使用thumbnail,否则Wwn。hover时播放video、离开暂停,img/video opacity切换0.2s ease。
3. `useGrowthBuddy` 从offset4295749开始,使用 adapter `getGrowthBuddy()`;`pickCachedBuddy` 从4295216开始,只缓存thumbnail和animated URL。数据可能来自adapter响应或用户缓存,本次未观察具体返回值。
因此已定位资源选择逻辑,但**实际黑猫 thumbnail URL/视频URL还没有取到**。固定 REA layout 的IMG attributes为空;本地 REA视觉实现刻意未输出URL attributes,不能从该JSON逆推出URL。后续应由 REA增加明确的选中IMG src/currentSrc及已加载资源导出证据;如果指向ASAR,用REA `export-selected-artifact-binary` 定向取;如果指向远程/个性化资源,由REA读取已加载资源并记录媒体类型、SHA和来源,不走直接CDP/原版FS。
已提交可立即对比的最小参考:
- `src/renderer/src/components/source-home-assets/workbuddy-home-buddy-visible-reference.png`:**120×78静态可见片段**。
- 同名 `.json`:证据、原始截图SHA、原布局节点、crop、偏移、alpha推导、SHA和限制清单。
- 原crop `[1085,286,1205,364)`;原growth wrapper `[1085.125,286.5,120,120]`;片段相对wrapper偏移 `[-0.125,-0.5]`。alpha非零包围盒 `[21,25,79,78)`,即可见图像源坐标 `[1106,311,1164,364)`。
- 原输入框从y364.5开始,row364可能混有边缘/覆盖;**整个row364及以下均不包含**。不能补画被遮挡身体,也不能把该片段标为完整黑猫源图。
- alpha只去掉从crop边缘连通的纯白255背景,保留其他RGB及封闭的白色高光。6891像素透明,白底重新复合与原crop **0像素差**。这是白背景上成立的可见参考;不是恢复真实半透明alpha。抗锯齿边缘仍含白色matte,暗底未知。
- 若用于当前UI临时对标,应作为独立120×78片段按上述offset放入120×120wrapper,避免套140×140/top-10的原始img规则。它不含hover、动画或完整身体;使用后仍需明确记录这些未完成项。
## 验证与下一步
执行:
```powershell
node_modules/.bin/electron.cmd scripts/audit-home-native-geometry.cjs
& 'C:/Users/Administrator/.cache/codex-runtimes/codex-primary-runtime/dependencies/python/python.exe' scripts/audit-home-visuals-20261016.py
```
结果:YCode fixture采样17个元素、console errors0;原版截图SHA通过;机器人白底复合零差、资源/manifest生成成功;geometry审查17项。脚本只读取既有REA导出、YCode fixture,并写入本次报告/新资源。
主上下文可先修:真实主界面侧栏宽度中心基准、chip Arial/normal、标题纯黑、空输入placeholder/send契约,再在相同focused状态下验输入shadow/border;机器人可见片段可以先静态接入,完整源缩略图/动效仍需REA补证。重拍必须使用真实生产UI并固定尺寸、DPR、权限、模型、空间、输入焦点、菜单状态和同一文案数据。一次办公截图通过不能代替全部状态验收。