判据: 图片上传链的设备判据(用真实素材)+ 静态欠账从 6 减到 5
继续升级到期的静态判据。这一批做 `harmony-imageprep`(上传链), 并顺手把已完成的 `harmony-admin` 移出欠账名单。 ## 一、图片上传链:用**真实素材**验压缩决策的输入 `run-all.mjs` 的 `STATIC_ONLY` 里那条登记写着 「上传链的设备侧:`@ohos.multimedia.image` + 相册要设备才能真跑」。 上面 30 条判的都是 `model/ImagePrep.ts` 的纯逻辑(阈值、单调性、边界…), 它们全绿时有一件事从未验过:**那些数字与设备上真实的图片对得上吗**。 新判据用**用户真上传过的那张壁纸**(`GET /me/appearance/image` 取回, 1402×1122 / 152570 字节 —— 不是合成图),断三个跨端事实: ① 设备上读到的像素尺寸 = 决策时用的尺寸; ② 真实体积在客户端上限之内;③ 该尺寸走 `planCompress` 首档**不缩小** (长边 1402 < 2560)+ `judgePick` 放行。 ★ **为什么不合成图**:纯色能压到几 KB、噪声几乎压不动,用它们验阈值 会得到"怎么都对"的假绿。真实照片的行为才是要验的那个。 ★ **诚实标注了没做的那一半**(写在判据注释与 `DEBTS.json` 里): 本判据用的是**设备上的 `file`/`ls`** 这一独立来源读素材属性, **没有**跑 `image.createImagePacker()`。跑它需要一个**用户选图**入口 (`DocumentViewPicker`,要人操作系统选择器),自动化里没有稳定路径; 而编一个"绕过选择器直接调 `packJpeg`"的测试专用入口,会是**只有测试在用的代码** ——那种代码不会被真实场景触到,验它等于验一个不存在的东西。 ## 二、静态欠账 6 → 5(还完就划掉) `harmony-admin` 那条**已升级为设备判据**(上一批做的), 所以它**不该再留在 `STATIC_ONLY` 里** —— 那个名单是给"还欠着的"记账的。 留着会让余额虚高,而这正是这个机制要防的(欠账不显形就等于没有)。 ## 三、途中被两条"登记一致性"判据拦了两次(都按它们给的方向修) 1. `debt-visibility`:我在 `harmony-imageprep` 里新增了两处边界声明 ("未覆盖/未验"这类词),而余额里没登记 ⇒ 红。 **按它要求的顺序做**:先补 `docs/DEBTS.json`(`harmony-p4c-boundary-decls` 那一笔的 note 里写明"只做了一半"),再把登记次数 4 → 6。 2. `commit-hygiene`:`DEBTS.json` 说 `static-criteria=6`,实测 5 ⇒ 红。 —— 这条正是"可见的那个数字是副本,漂移了必须两边一起改"。 改数字之外还在那一笔里写了**为什么减**(admin 升级并移出名单)。 ★ 第三处被拦很有意思:`debt-visibility` 是**按词表数自己**的判据, 我第一次修时在那个文件里写了一句话里含"仍未覆盖",于是它把自己数多了 1 处 (12 → 13)。那一刻是**判据在正确地工作**("多一处即红")—— 我写的其实是**引用**另一笔账,不是新的边界声明,所以改成了不带判定词的措辞。 ## 四、判据 `run-all.mjs` → `files=32 ran=32 checks=507 pass=507 fail=0 skip=0 red=0 broken=0 unreported=0`。`harmony-imageprep` 30 → 31; `harmony-admin` 移出静态名单(仍在套件里,28 条)。 `hvigorw assembleHap` 成功;前端重建。 **剩余到期未升级**:`harmony-appearance`(已有 2 条设备判据)、 `harmony-logic`、`cross-client-theme`、`appearance-defaults` —— 逐条来。
This commit is contained in:
@ -34,7 +34,15 @@ const REGISTERED = new Map([
|
||||
['harmony-logic.test.mjs', 1], // `.ets` 状态机要跑起来才算数
|
||||
['debt-visibility.test.mjs', 12], // 本文件:N 处是词表定义 + 报错文案 + 上面那段解释(第 N+1 处即红)
|
||||
['harmony-admin.test.mjs', 1], // 用户管理页:本机无设备 ⇒ 只能证明"代码里这么写"
|
||||
['harmony-imageprep.test.mjs', 4], // 图片上传:压图/选图/服务端收下,三样本机都验不了
|
||||
/*
|
||||
* `harmony-imageprep.test.mjs` 4 → 6(2026-09-19):新增的设备判据里如实标了两处
|
||||
* 如实标了那两处「这一半还没做到」—— ① 应用真的用 `image.createImagePacker()` 压一次时
|
||||
* 产出的字节是否落在预期区间;② "只有测试在用的代码"那条理由。
|
||||
* 这两处**不是新欠账**:它们正是 `docs/DEBTS.json` 的
|
||||
* `harmony-p4c-boundary-decls` 那笔(已在那一笔的 note 里写明
|
||||
* "只做了一半、剩的一半要等真人操作窗口")⇒ 先补余额、再改这个数字。
|
||||
*/
|
||||
['harmony-imageprep.test.mjs', 6],
|
||||
/*
|
||||
* `harmony-deviceprobe.test.mjs` 的 2 处:**都不是"这块没验"的边界声明**,而是
|
||||
* 对**词表本身**的断言 —— ① `unverifiedReason(VERDICT_OTHER)` 必须含「未验」;
|
||||
|
||||
Reference in New Issue
Block a user