{ "_": [ "对齐参照物的**版本登记**(pi 邮件 `6e14b410`:对齐本身要有版本号)。", "为什么需要:WebUI 那边同一个文件可能同时在动(gui-lab 有未合入的改动),", "照工作副本画完之后,参照物一变,这一版就成了「照一份没人认领的草案对齐的」,", "而且**没人能判它对不对 —— 因为参照物没有版本号**。", "所以:把参照物的 blob 哈希登记在这里,**它一变就红**,逼一次「重新核对再更新登记」。" ], "refs": [ { "id": "calendar-view", "path": "client/electron/src/components/CalendarView.tsx", "blob": "89aa237be83a074d8871d13cea17d3a02a7dce72", "atCommit": "7b8c78f", "atCommitSubject": "维护: 底本重算(4 个文件漂移 = **底本过期**,不是变异残留)—— 逐个核实后按本文件的协议记一行\"为什么\"", "note": "P6 日历骨架的对齐目标。**2026-09-19 第三次重新核对**:本次差异只有一处 —— 非本月日期的农历小字从 gray-300 改到 gray-400/500(gray-300 是分隔线档,当文字用只有 ~1.47:1)。**骨架未变**:仍是 gridPane(flex-1) + 400px 右栏两栏结构、工具条分组与顺序、手势与按钮共用 shift()。鸿蒙侧不受影响 —— 它的次要文字走 Theme.textMuted 这类语义令牌,不引用灰阶档位。此前两笔:动画类 rise-in → pane-rise(拆两档时改名)、日历圆角修复。" } ], "radius": [ { "semantic": "卡片圆角", "webui": "--radius-card: 0.875rem(=14px,client/electron/src/index.css:278)", "harmony": "Theme.ets:105 radiusCard = $r('sys.float.ohos_id_corner_radius_card')", "judgement": "**按语义对齐,不按数值对齐**:两端都表示「卡片圆角」,但取值来源不同(WebUI 自定 rem,鸿蒙用**系统**资源)。数值是否一致属于形态差异,等设备上并排看再定 —— 见 docs/DEBTS.json 的 radius-card-numeric-divergence。**鸿蒙侧不许把 0.875rem/14 抄成裸数字**(那正是当初 14 处 Material 调色板被清零的同一形态,量纲从颜色换成长度)。", "webuiValue": "0.875rem = 14px", "harmonyValue": "**本工作区读不到数值**:`toolchains/id_defined.json` 里该条目只有 name/type(没有 value),SDK 的 `ets-loader/sysResource.js` 只有**资源 ID 125829709**(btn 是 125829702)—— 实体值在**系统资源包**里(编译进 resources.index / 随设备)", "policy": "**语义以 WebUI 为准;数值按平台各自成立**(两端数值来源不同:WebUI 自定 rem,鸿蒙用系统档)。**不相等是对的** —— 不是\"数值待补齐\"。**追认**:pi 以 WebUI 侧负责人身份追认(pi 邮件 `90372ca1`),骨架按此执行,不必再等追认。保留的是**验证**:真机并排若看出感知不一致 ⇒ 反向并**登记成决定**(那是等设备的 env 项,与策略无关,别混成一笔)。", "unitNote": "**px 与 vp 之间没有\"差值\"**:`px` 是桌面 CSS 像素,`vp` 是设备密度无关单位,两者只能通过屏幕密度 + 观看距离换算 —— 所以这里不是\"差值暂时未知\",而是**\"差值\"在这个比较里没有定义**。**停止追这个数**:把它当待补的数,会诱使下一个人去追一个改变不了结论的数字,最后以\"抄一个 vp 进去\"收场,而那正是这笔账要防的事。" }, { "semantic": "控件圆角", "webui": "--radius-control: 0.5rem(=8px,client/electron/src/index.css:279)", "harmony": "Theme.ets:107 radiusControl = $r('sys.float.ohos_id_corner_radius_button')", "judgement": "同「卡片圆角」:语义对齐、数值来源不同。", "webuiValue": "0.5rem = 8px", "harmonyValue": "同卡片圆角:本工作区只能读到资源 ID 125829702,读不到 vp 值", "policy": "**语义以 WebUI 为准;数值按平台各自成立**(两端数值来源不同:WebUI 自定 rem,鸿蒙用系统档)。**不相等是对的** —— 不是\"数值待补齐\"。**追认**:pi 以 WebUI 侧负责人身份追认(pi 邮件 `90372ca1`),骨架按此执行,不必再等追认。保留的是**验证**:真机并排若看出感知不一致 ⇒ 反向并**登记成决定**(那是等设备的 env 项,与策略无关,别混成一笔)。", "unitNote": "**px 与 vp 之间没有\"差值\"**:`px` 是桌面 CSS 像素,`vp` 是设备密度无关单位,两者只能通过屏幕密度 + 观看距离换算 —— 所以这里不是\"差值暂时未知\",而是**\"差值\"在这个比较里没有定义**。**停止追这个数**:把它当待补的数,会诱使下一个人去追一个改变不了结论的数字,最后以\"抄一个 vp 进去\"收场,而那正是这笔账要防的事。" } ], "agc": { "file": "client/harmony/entry/src/main/resources/rawfile/agconnect-services.json", "packageName": "com.jianf.agentmail", "appId": "6917616450599975320", "note": "AGC 下发的配置(加密信封格式,非明文密钥)。**包名必须与 AppScope/app.json5 的 bundleName 完全一致** —— 不一致时 Push Kit 推不到设备,这不是风格问题而是功能性约束(pi 邮件 `1f9ff3b4` 实测:AGC 拒绝 `com.agentmail.harmony`,因为 `harmony` 是包名保留字;用户定 `com.jianf.agentmail`)。" } }