chore(backlog): 记录 g281 完成
This commit is contained in:
@@ -2915,6 +2915,15 @@
|
||||
"status": "done",
|
||||
"domain": "tune",
|
||||
"notes": "隐藏时主动 paint(null) 而不是等下一次校验:否则用户切换选项的瞬间会留下一个「看不见的红框」,而它仍存在于 DOM 的错误区里。校验的早退放在函数首行而不是规则循环里,是为了让「隐藏 = 不参与」成为唯一判定点——两处各写一份条件迟早会漂。form 的参数表用(formItem)前缀登记子接口字段,是这套清单既有的约定,新增字段必须跟着加。"
|
||||
},
|
||||
{
|
||||
"id": "g281",
|
||||
"title": "抽出 diffKit 纯逻辑并给皮肤包加冒烟脚本",
|
||||
"motivation": "g269 把行级差异算法直接写在 diffView 的渲染函数里,于是它有「三处前缀 / 后缀 / 中间段」这种一眼看不出对错的逻辑,却没有任何断言——改一个比较符肉眼完全看不出来,只有等某次审阅漏掉一行才可能发现。皮肤包此前冒烟覆盖为 0:frame 14 条、table-core 31 条,皮肤层全靠演示页人工看。",
|
||||
"acceptance": "新增 packages/skin/ui/src/diffKit.ts(normalizeLine / toRows / alignMiddle / diffLines 四个纯函数 + DiffOp / DiffRow 类型 + DP_LIMIT 常量),diffView 只保留渲染;新增 packages/skin/ui/scripts/smoke.mjs 八条断言(相同文本全 same、纯增、纯删、尾部换行不算差异、忽略空白生效、不忽略时报差异、行内空白归一、超限退化后内容不丢),npm run smoke 串上第三段,SKIN SMOKE OK 是门禁的一部分;AGENTS.md 的 smoke 描述同步为「三段 / skin 8 条」;npm run check 全绿",
|
||||
"status": "done",
|
||||
"domain": "tooling",
|
||||
"notes": "第 6 条「不忽略空白时同一对文本必须报差异」是对照组:只测「忽略后无差异」会被「函数永远返回空」的实现骗过——每个开关类特性都该配一条反向断言。冒烟直接 import dist/diffKit.js(构建产物),因此 npm run check 里 smoke 必须排在 build 之后,这一点由 check 链顺序保证。踩坑:style 门禁要求导出类型也带 /*** ***/ 注释,抽出模块时把注释写成 // 会直接红。"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -325,3 +325,4 @@
|
||||
{"ts":"2026-10-26T23:04:20+08:00","id":"g278","result":"done","commit":"c36b507","summary":"热力图图例与网格尺寸同源(删掉样式表第二份宽高),抽查清单加 heatmap / sparkline 至十三段"}
|
||||
{"ts":"2026-10-26T23:05:23+08:00","id":"g279","result":"done","commit":"ef58a41","summary":"diffView 增加 ignoreWhitespace:比对键归一行内空白、展示仍用原文,统计条标注口径"}
|
||||
{"ts":"2026-10-26T23:06:22+08:00","id":"g280","result":"done","commit":"865477c","summary":"formItem 增加 visible:隐藏即清错误态并退出同步 / 异步校验"}
|
||||
{"ts":"2026-10-26T23:07:50+08:00","id":"g281","result":"done","commit":"82e69df","summary":"抽出 diffKit 纯逻辑 + 皮肤冒烟 8 条断言并入 check 链,smoke 变三段"}
|
||||
|
||||
Reference in New Issue
Block a user