File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 8484
8585** 过程中纠正的计划错误(6 处,均由实施者或评审者实测抓出)** :ADR 相对链接层级写错 · 生成器「有第二份 WCAG 公式」的不实描述 · 漂移测试逐字节比对在新检出会假阳性 · 对比度守卫测硬编码常量而非底色 · 两处 ` normalizeEol ` 已分叉 · 断言计数不符。
8686
87- ### 批 0-B · 图标集(2026-09-11,` 25bd5d99..c22d2bda ` ,14 个提交)
87+ ### 批 0-B · 图标集(2026-09-11,` 25bd5d99..2fbf81d4 ` ,21 个提交)
8888
8989** 交付** :` app/src/ui/icons/ ` —— ` types.ts ` (几何契约,** 三种** 元素白名单 ` path ` /` circle ` /` rect ` 、无颜色字段)· ` paths.domain.ts ` (域 ** 9** )+ ` paths.action.ts ` (对象与动作 ** 15** )= ** 24 个自绘图标** · ` paths.ts ` (合并注册表 + 启动期** 重名检测** + ** 零列名字面量联合 ` IconName ` ** )· ` Icon.tsx ` (唯一渲染入口:` currentColor ` / 默认 ` aria-hidden ` / 有 ` label ` 时角色转为 ` img ` )· ` index.ts ` (导出面 10 项)· 三个测试文件共 ** 21 例** · ** 内联 ` <svg> ` 棘轮守卫** ` no-inline-svg.test.ts ` · ` app/src/node-builtins.d.ts ` 扩写(无 ` @types/node ` 前提下的最小环境声明,不用 ` any ` )。
9090
9191** 验收** :` tsc --noEmit ` 0 错 · vitest ** 103 files / 809 tests 全绿** (图标层 21/21)· ** ` cargo test ` exit 0** (2337 passed / 0 failed / 6 ignored;本批零 Rust 改动,属回归确认)· ` docs-check ` ✅ · ** 零新增依赖** · ** 界面外观零变化** (本批** 只定义不消费** :未改任何组件、未替换任何 emoji,消费在批 4)。
9292
93+ ** 终局全分支评审(2026-09-11):` READY_WITH_FOLLOWUPS ` —— 0 Critical / 0 Important。批次验收 4 条经评审者逐条独立判定,4/4 满足;三个历史静默缺陷(网格测试空转、` IconName ` 塌回 ` string ` 、棘轮同前缀漏判)均已闭合并由评审者独立复现。未发现新的 Critical/Important 级静默失败模式。** 评审提出的 follow-up 已全部写进计划「交接给批 3 / 批 4 的遗留项」节,无需本批返工。
94+
95+ ** 评审新发现的代码缺陷(1 处,已修 ` ecbaf364 ` )** :` paths.ts ` 的重名检测 ` if (merged[name]) ` ** 走原型链** —— 名为 ` constructor ` 的图标(命名规范恰好放行)即使毫无重名也会抛「图标重名」,属误导性的启动期崩溃。修为 ` Object.prototype.hasOwnProperty.call(...) ` (** 不用 ` Object.hasOwn ` ** :它是 ES2022,而本仓 ` target/lib ` 为 ES2020)。已用真实模块探针自证:插入 ` constructor ` 图标后模块** 正常导入** (旧代码则导入期抛错、全灭)。
96+
9397** 两项关键实测结果** :
94981 . ** 24 组几何数据零转录漂移** —— 与计划数据逐字比对(域 9/9、动作 15/15,键序一致),并用变异探针证明该比对非空转。
95992 . ** 棘轮基线为空** —— ` src/**/*.ts(x) ` 共 327 个文件,` src/ui/icons/ ` 之外** 没有任何内联 ` <svg> ` ** ⇒ 棘轮语义实际为「** 一个都不许新增** 」(比「不许增加」更强,且无需特赦任何存量文件)。守卫已用探针证明会真实失败。
96100 ⚠️ 其第 2 个断言(基线过期项检查)在空基线下** 休眠** ,不计入当前防护力。
97101
98102** 过程中纠正的计划错误(10 处,逐条见批台账)** :` index.ts ` 的真实 TS2459 · ` IconName ` 偏差裁定** 撤回** 并改为立即修 · ` ACTION_ICON_PATHS ` 用了计划自己明令禁止的宽注解 · ` DOMAIN_ICON_PATHS ` 缺 ` satisfies ` · 「` as const satisfies ` 会 TS1360」不成立(实测不报错)· 圆越界举例方向写反 · 类型断言片段缺 ` void ` (` noUnusedLocals ` 下 TS6133)· Task 3 的守卫探针位置无效(写在被设计性排除的目录内)· Task 3 守卫代码在本仓编译不过(缺声明,` tsc ` exit 2)· ** 棘轮守卫用裸字符串前缀排除图标目录 ⇒ 同前缀兄弟目录(` ui/icons-legacy/ ` )被静默豁免** (计划原文如此,由终局任务评审用双针实测抓出,见提交 ` c22d2bda ` )。
99103
104+ ** 另有 2 处「控制方在交接单里给出的结论」被终局评审推翻并已更正** (记录在案,勿重犯):① 「` mergeGroups ` 重名不可测 ⇒ 接受现状」——** 错** ,评审者用 ` vi.doMock + vi.resetModules ` 在不动数据文件下即复现该抛错(本仓已有 46 个测试文件用 ` vi.mock ` ),结论改为** 可测、应补** ;② 「` Icon.tsx ` 的 ` <rect> ` 兜底会静默渲染坐标全 ` undefined ` 」——** 错** ,向联合加入第 4 种元素必然 ** 5×TS2339 编译失败** ,故 ` switch + assertNever ` 只是可读性收益、** 批 3/4 不必排期** 。两处已改写进计划交接单。
105+
100106### 批 0 其余部分(未落地)
101107
102108规格 §10 的批 0 还包含:** ADR-033~ 035** (当前 ` docs/adr/ ` 最高为 ADR-032)· 豁免表纠偏 · 拆 4 个 >600 行文件 · 原语三层。** 这些不在 0-A / 0-B 范围内** ,后续子批次另行立计划。
You can’t perform that action at this time.
0 commit comments