@@ -862,6 +862,32 @@ git commit -m "test(ui): 内联 svg 棘轮守卫与图标导出面收口"
862862- ** 图标集从 24 增至约 44** :其余图标随消费方增补(例如批 4 遇到「筛选」「排序」「折叠」「标签」时新增)。** 每增补一个都必须同步 ` paths.test.ts ` 的首付名单** ,让增长被看见。
863863- ** ` docs/product/ui-ux-system.md ` 的图标节** :规范 §八 宣称「线性 SVG 1.5–1.75px/24px」—— 本批落实为 1.75;批 8 回写规格时同步该节的措辞与图标清单。
864864
865+ ## 交接给批 3 / 批 4 的遗留项(0-B 交付后由控制方独立核实,2026-09-11)
866+
867+ > 这三项** 不是** 本批未完成的项 —— 本批的 4 条验收标准全部满足。它们影响的是** 消费方** (批 3 壳层 / 批 4 原语迁移),故写在这里而不是留在线性任务列表里。
868+
869+ ** 1. ★ ` circle ` / ` rect ` 渲染分支零测试覆盖(缺口真实,但代码正确)**
870+ ` Icon.test.tsx ` 的 10 个用例** 全部只渲染 ` name="notes" ` ** (其几何是 2 个 ` path ` ,该文件第 57 行自己断言 ` path ` 数量为 2),因此 ` Icon.tsx ` 的 ` circle ` 分支、` rect ` 分支、以及 ** ` w ` →` width ` / ` h ` →` height ` 映射** 没有任何断言。
871+ - 规模(探针实测):含 ` circle ` 的 ** 7** 个(` knowledge ` ` goals ` ` settings ` ` search ` ` more-horizontal ` ` clock ` ` image ` )· 含 ` rect ` 的 ** 4** 个(` classroom ` ` action ` ` image ` ` stop ` )⇒ ** 10 / 24(42%)个图标经由未覆盖的分支渲染**
872+ - 已逐行核对 ` Icon.tsx:41-42 ` 的映射** 是正确的** ,故** 当前无缺陷** ;风险在** 将来** :改坏映射会让 10 个图标静默渲染错,而 21 个测试全绿
873+ - ⚠️ ** T1 任务评审曾预言「T2 引入 circle/rect 后自然闭合」—— 并未闭合** :T2 引入的是** 数据** ,` Icon.test.tsx ` 自 T1 起从未被修改。** 数据存在 ≠ 渲染被验。**
874+ - ⇒ ** 批 3/4 补两条渲染用例** :各渲染一个 circle 图标与一个 rect 图标,** 断言 DOM 属性名** (` width ` /` height ` /` cx ` /` cy ` /` r ` ),而不只是数 ` path ` 的个数。批 3 的第一个消费方就会用到 ` settings ` (齿轮,圆构成)与 ` search ` (⌘K 入口)。
875+
876+ ** 2. ` Icon.tsx ` 的末分支以 ` return <rect> ` 兜底** ,而非穷尽 ` switch ` + ` never ` :将来加入第 4 种元素时** 不会编译失败** ,而是静默渲染一个坐标全 ` undefined ` 的 ` rect ` 。
877+ ⇒ ** 批 3/4 改成 ` switch ` + ` default: assertNever(el) ` ** (约 5 行)。(登记来源:T1 任务评审 Minor #4 。)
878+
879+ ** 3. ` paths.ts ` 的 ` mergeGroups() ` 重名抛错无测试** ,且** 不修改数据文件就无法构造** 该输入(全仓 ` app/src ` 下没有任何 ` toThrow ` 指向它)。
880+ ⇒ ** 控制方裁定:接受现状** —— 数据是静态的、重名只可能由人工编辑引入、且抛出即炸不会静默;把它抽成「可注入参数的纯函数」属** 成本 > 收益** 。
881+
882+ ** 4. ` src/assets/react.svg ` 是 Vite 模板遗留的死脚手架** (含 ` <svg ` ,但** 不在棘轮口径内** —— 守卫只扫 ` .ts ` /` .tsx ` ;看似无任何引用)。
883+ ⇒ ** 并入批 1(删除批)** :核实无引用后删除。此文件在建立本批基线时被发现,不是守卫的漏网。
884+
885+ ** 另记:棘轮守卫的两个已知边界** (均已登记,非缺陷):
886+ - 空基线(实测确实为空)下,第 2 个 ` it ` (基线过期项检查)** 恒真休眠** ,** 不计入当前防护力** ;批 4 迁完存量后若需特赦个别文件,它会立刻派上用场。
887+ - 排除图标目录时** 必须比较 ` ICONS_DIR + sep ` ** (提交 ` c22d2bda ` 修正):裸 ` startsWith(ICONS_DIR) ` 会把 ` ui/icons-legacy/ ` 这类** 同前缀兄弟目录静默豁免** —— 守卫看起来在守、实际有洞。
888+
889+ ** 批 3 可用性结论** :24 个图标** 恰好覆盖壳层需求** ,无缺口 —— 顶栏 8 项 = 7 域 + AI 对话(即 9 个域图标中的 8 个),第 9 个 ` settings ` 正是右上** 齿轮** ,⌘K 入口由 ` search ` 承担,溢出与采集态由 ` chevron-* ` / ` play ` ` pause ` ` stop ` 承担。其余约 20 个按规格「随消费方增补」。
890+
865891## 自审记录
866892
867893** 规范覆盖** :本计划对应规范 §4.2「图标」行(24 网格 / 描边 1.75 / 尺寸 16·20·24 / ` currentColor ` / 小圆角)与 ADR-032 决策 6。§11 验收第 4 条的「CSS 变量」部分与本计划无关(图标不是 token);第 11 条(` tsc ` /` vitest ` 全绿)在 Task 1/2/3 末尾各验证一次。
0 commit comments