Files
aurora-admin/CHANGELOG.md
T
aurora-admin 32292c01f8 feat(S2-P6): 跨端一致性静态验证(79/79/high44/F1-F4已追加)
方案B静态结构比对(零依赖零联网):79组件x4端 class集合+结构骨架
双diff;演示包装类/变量名/模板残留降噪;high/medium/low分级。
实测:完全一致2,有差异77(high44/medium22/low11);high主因已追加
S2-P6-F1~F4任务包,不在本任务内修。回归零影响:report.json 79/79、
data.json 79组件未动(只读消费)。
2026-09-14 03:24:18 +08:00

275 lines
24 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Changelog
所有显著改动按 [SemVer](https://semver.org/) 记录于此。格式基于 [Keep a Changelog](https://keepachangelog.com/zh-CN/1.1.0/)。
## [Unreleased]
### S2-P6 · 跨端一致性自动验证(方案 B:静态结构比对)
- 新增 `tools/verify-cross-platform.mjs`(零依赖零联网):79 组件 × 4 端(H5/React/Vue2/Vue3)class 集合 + 结构骨架双 diff,演示包装类/变量名/模板残留降噪,high/medium/low 分级;产出 `tests/cross-platform-report.json`(79 条全量 + samples 3)。
- 实测:完全一致 2,有差异 77(high 44/medium 22/low 11)。high 主因:React 端 `is-disabled/is-active` 缺失、H5 演示页缺框架端结构类、Tag/Select/Input 变体类缺失——已追加为 ROADMAP 的 S2-P6-F1~F4,不在本任务内修。
- 回归零影响:`tests/report.json` 79/79、`site/data.json` 79 组件均未动(脚本只读消费)。
### S2-P5 · 暗色模式真正实现(选型 A:演示页随站点同步反色)
- 令牌文件新增 `html.aa-dark` 组(31 个 `--au-`,≥15 达标):背景三层递进、文字四层、品牌/语义色向白提亮;10 项文字对比度全部 ≥4.5:1(脚本实测)。
- `site/style.css` 暗色块精简为结构样式(令牌值收归令牌文件,删旧内嵌值与“演示页保持浅色”规则);`site/app.js` 删死代码 `DARK_TOKENS`,`injectIframeTheme` 同步 `aa-dark` 类到演示 iframe。
- 附带收敛:演示壳裸类 `.aa-page/.aa-h2/.aa-desc`(26 页用而无定义)在令牌文件补令牌定义;`table.html` loading-mask、`Tag.css` 红/橙标签加暗色覆盖。
- 新增 `tools/verify-dark.mjs` 独立验证(32 断言:令牌组 2 + 对比度 10 + 10 页浏览器实测 20),不进 `_runtime` 计数。
- 首屏预算 292KB(< 300KB);回归 1003/1003(pass 1003/fail 0/skip 35)零影响。
### S1-P4 · data.js 瘦身(已完成 c65a69c)
- data.js 991KB → 98KB(预计算 API/场景 + 源码分离到 site/sources 395 文件),data.json 保持完整(含 5 端 sources)。
- 首屏资源合计 291KB(< 300KB 预算,S1-P4b 验收已达标,无需拆分 app.js)。
- 回归 1003/1003 全绿(79 页全过,N/A 35)。
- ROADMAP 状态:P4 已完成,P5(暗色模式)为下一版本首选。
## [1.4.1] - 2026-09-11
### 审计轮 — 系统性质疑「这么多组件能保证不出错吗」
结论:**不能保证零错误**。79 组件 × 5 端 × 79 契约 × 326 译文,靠肉眼和声称都不成立。因此改为**四轮机器审计 + 实测**,把「我检查过了」替换成可复现的数字。
#### 审计 1 · 契约保真度(358 条 usageHints 回规格原文核对)
- 逐字命中 **336 条(93.9%)**;剩余 22 条经人工比对为**同义改写**(如「列表项带复选框」→「列表项带复选框,项高 32px」,数值确实在规格别处),非发明。
- 发现一处**真实不一致**:`rate.json` 的选中星色仍写 `#FAAD14`,而规格已在 v1.3.1 改为 `#2F54EB` —— 修契约使其与规格同步(`usageHints` + `anatomy`)。
#### 审计 2 · 令牌语义正确性
- 检查 **1313 处**含令牌的颜色声明,**0 处**属性/令牌角色错配(未出现「background 用文字色令牌」这类)。令牌化在语义上是干净的。
#### 审计 3 · i18n 翻译质量
- **326 条**字典:英文值含中文 **0** 条、中英完全相同 **0** 条、长度异常 **0** 条。
- 修正审计脚本对「副名」的误判:英文模式下 `.core-en` 显示中文是**设计意图**(主名英文 + 副名中文),不是漏翻。
- 发现并修复 4 处真漏翻:guide 页标题、Do/Don't 两个标题、guide 表格 `H5 静态页`、组件名渲染 4 处未做语言感知。
#### 审计 4 · 废弃色值残留
- 扫描 91 个文件,发现 **4 个文件 23 处**仍引用 v1.3.1 之前的旧色值。
- **最严重**:`css.json` —— 它是 For Agents 页宣称的「结构化令牌源」,机器读取方会拿到过时的颜色。已同步 10 处。
- `README.md` 设计说明 5 处同步;`CHANGELOG.md` 的旧值属历史变更记录,**有意保留**。
#### 修复 · 低对比度图标
- 用「逐元素实测对比度」扫全部页面,发现 `Rate` 未选中星用 `--au-color-border`(`#E8ECF1`) 作星色,白底仅 **1.19:1** —— 边框色是装饰性色值,作图标不合格。
- 新增 `--au-color-icon-inactive: #8F8F8F`(白底 **3.23:1**,满足 WCAG 1.4.11 的 3:1,且视觉最克制)。令牌 74 → **75**。
- 同批扫出的另外 5 处低对比度经逐一核实为**禁用态**(WCAG 1.4.3 豁免)或**深色遮罩上的白字**(检测器把半透明底当白底),非缺陷。
#### 修复 · 回归偶发(第三次根治)
- 现象:多次连跑偶发 99.9%(1 页失败),但单独打开该页总是通过。
- 根因:收集器的 **8 秒超时兜底**直接记为 `fail: 1`。并发 4 个 iframe 时主线程被抢占,慢页面会撞上超时。
- 修法:超时阈值 8s → **12s**;**重试一次**后再判定;**超时与断言失败分开统计**(`timedOut` 字段,不计入通过率分母)。
- 验证:**八次连跑全部 100% / 0 失败 / 79 页全通过 / 0 超时**。
## [1.4.0] - 2026-09-11
### Changed — 组件层全面令牌化(设计系统的根基修复)
- **发现**:79 个组件的 844 个颜色属性里,**只有 2 个(0.2%)引用令牌,788 个(93.4%)硬编码 hex**。后果是改令牌组件不跟着变、主题定制器对组件无效、For Agents 页写的「所有色值必须取自 au-* 变量」形同虚设。这是本项目第五次「声称≠实现」,且动摇了设计系统的根本。
- **两层令牌化**(此前只改了从未被加载的文件,走了弯路):
- **组件样式表**(`frameworks/*.css`):**915 处** / 78 文件
- **演示页内嵌 `<style>`**(实际生效的样式层):**287 处** / 51 文件
- 内嵌样式层是**决定性的**:演示页只 link `colors_and_type.css` + 自己的 CSS,而多数页面把关键样式写在 `<style>` 块里 —— 只改 CSS 文件不生效。
- 安全策略:只替换颜色属性值位置的 hex(`color` / `background*` / `border*` / `outline*` / `fill` / `stroke`);跳过 `rgba()`/渐变/`url()` 复合值;不动 SVG 属性与 JS 数据(色板数组);幂等可重复运行。
- 歧义色值按属性语义消解(`#FFFFFF` 作 `color` → `text-inverse`,作 `background` → `card-bg`)。
### Added — 补齐令牌语义
- `--au-color-text-tertiary` `#595959`(三级文字/描述,规范未定义、实现补齐,7.00:1)
- `--au-color-text-disabled` `#BFBFBF`(禁用态文字,规范定义于组件1/2.txt;WCAG 1.4.3 对禁用控件豁免)
- `--au-color-border-strong` `#F0F0F0`(实线边框,规范未定义、实现补齐)
- 令牌总数 71 → **74**;同步 legacy 别名映射(`--color-text-tertiary` 等)。
- 修复 `colors_and_type.css` 一处重复的注释起始行。
### Fixed
- **Countdown 首帧空白**:`setInterval(render, 1000)` 首次执行要等 1 秒,期间容器为空。改为定义 `renderCountdown()` 后立即执行一次,再挂 interval。浏览器实测确认修复。
### Verified — 令牌响应性(本轮核心验收)
- 逐组件验证「改令牌 → 元素是否跟着变」,**79/79 全部响应**(改 `--au-color-brand` / `text-body` / `border` 等,采样前后样式签名对比)。
- 过程中修正了两处**测量方法缺陷**(初测 40/79 是误报):① 选择器 `.demo *` 在无 `.demo` 容器的页面抓不到元素;② 探针令牌选错——Breadcrumb 用 `text-tertiary` 而我只改 `text-body`。
- 回归保持 **100%**(961 断言 / 0 失败 / 79 页全通过),三次连跑一致。
## [1.3.3] - 2026-09-11
### Added — 中英双语(i18n)
- `site/i18n.js`:330 条文案字典,顶栏新增 `中 / EN` 切换器,偏好存 `localStorage['aa-lang']`,`<html lang>` 与 `document.title` 同步。
- **设计取舍**:以「中文源串」作字典键而非抽象 key。中文是规范原文语言(组件1~10.txt)也是 app.js 现有字面量;源串作键意味着未收录文案自动回退原文,不会出现空白或 key 泄漏。
- 覆盖范围:导航 / 侧栏 / 首页 Hero 与设计原则 / 总览 / 快速开始 / 设计规范(含令牌导出区)/ For Agents 全表 / 更新日志 / 组件详情页(何时使用、API 三表、无障碍键盘表、Do&Don't、设计契约、实现资源、相关组件)/ Playground / 主题面板 / 搜索弹窗 / FAB 提示。
- 语言感知的显示逻辑:
- 组件名主次调换(中文模式主显中文名,英文模式主显英文名),详情页大标题不再重复;
- 侧栏分类名走 `CAT_EN`,不占字典;
- 动态生成的键盘表、插槽说明按语言重算。
### Fixed — 回归时序(根治偶发)
- **DensitySwitcher 对比度偶发失败**:断言在演示页内联脚本执行完之前就跑了,读到 `is-active` 尚未应用的中间态(白字未落到品牌蓝底 → 2.51:1)。单页打开时通过、并发收集器里偶发失败。
- 根因是固定帧数等待(`load` + 双 `requestAnimationFrame`)在多个 iframe 抢主线程时不够稳。改为**就绪轮询**:`readyState === 'complete'` 且 DOM 连续 3 次采样(约 48ms)无变化才断言,另设约 4.8s 超时兜底避免卡死。
- 验证:**四次连跑全部 100%**(961 断言 / 0 失败 / 79 页全通过),偶发不再复现。
### Fixed — i18n 接入过程中的三个真实缺陷
- **TDZ 顺序**:`KIND_KEYS` 等模块级常量在 `I18N`/`T` 定义之前调用了 `T()`,抛 `Cannot read properties of undefined (reading 'T')`。已改为存中文源串、渲染时求值(模块级预先求值还会导致语言切换后不更新)。
- **局部变量遮蔽**:`renderDesign` 内原有 `var T = data.tokens;` 遮蔽了全局翻译函数,导致设计规范页整个渲染失败。改名 `TOKENS`。
- **模板拼接括号**:`el()` 调用在包装 `T()` 后少一个右括号,已修正。
### Changed
- 回归基线:961 断言 / 925 通过 / **100%** / 79 页全通过 / N/A 36,四次连跑一致。
## [1.3.2] - 2026-09-11
### Added — 契约第三批:全量契约化 79/79
- 补齐剩余 **43 份**组件契约,`components/` 目录现为 79 份契约 JSON(此前 36)。
- 分两批提炼,全部逐字来自规格原文(组件1/2/5/6/7.txt):
- **批次 A(19)**:tag / tabs / steps / breadcrumb / dropdown / popconfirm / buttongroup / expandabletable / mergedcelltable / summaryrowtable / fixedcolumntable / enhancedtabnav / sidemenu / topmenu / mixednavigation / quicknav / anchornav / backtotop / pagetransition
- **批次 B(24)**:bankcardinput / idcardinput / plateinput / listpicker / rangequickpicker / dragupload / signaturepad / messagepro / notificationpro / progressvariants / skeletonpro / emptypro / loadingoverlay / resultvariants / exceptionvariants / confirmmodal / alertmodal / formmodal / fullscreenmodal / themeswitcher / layoutswitcher / densityswitcher / shortcutpanel / bottomsheet
- 每份含 `variantDimensions` / `representativeVariants` / `anatomy` / `structurePatterns` / `usageHints` / `doNotInvent` / `unknowns` 七字段,与既有 36 份同 schema。
- **硬规则**:只从规格提炼,不发明;规格未明示者进 `unknowns`,规格明确排除者进 `doNotInvent`。校验脚本确认 79/79 字段完整、slug 一致。
### Added — 令牌导出(文档清单中的 C4 项)
- `build-site.ps1` 构建期生成三种标准格式,与站点展示的令牌始终同源:
- `site/tokens/tokens.css` — CSS 自定义属性,可直接 `@import`
- `site/tokens/dtcg.json` — W3C Design Tokens 社区组格式(`$value` / `$type` / `$description`,按 color/typography/spacing/radius/shadow/motion/size 分组)
- `site/tokens/figma.json` — Figma Tokens(Tokens Studio 插件可直接导入)
- 设计规范页新增「令牌导出」区,三个文件提供下载入口。
### Changed — 规格原文与实现对齐
- 同步规格中的色彩系统到 v1.3.1 的 AA 达标值(15 处):占位文字 / 次要文字 / 五种语义色,并在原值处标注变更原因与对比度实测。
- 修正一处既有漂移:Rate 选中星色规格为 `#FAAD14`(白底 1.90:1,不满足 WCAG 1.4.11 的 3:1),实现取 `#2F54EB`,规格已对齐实现并注明原因。
### Fixed
- `build-site.ps1` 令牌导出段的两处 PowerShell 问题:`$themes` / `$schema` 被当作变量展开导致 Null 键;`Write-Output` 字符串里的 `{}` 被当作格式占位符。
## [1.3.1] - 2026-09-11
### Changed — 无障碍与令牌合规(9 项矩阵断言全部达标)
- **回归通过率 85.1% → 100%**(961 条断言 / 0 失败 / 36 条 N/A / 79 页全通过,三次连跑结果一致)。
- **令牌层修正**(改一处、全局生效):`--au-color-text-secondary` `#8C8C8C`→`#6E6E6E`(3.36:1→5.10:1)、`--au-color-text-placeholder` `#BFBFBF`→`#767676`(1.84:1→4.54:1)、`--au-color-success` `#52C41A`→`#2E7D0A`、`--au-color-warning` `#FAAD14`→`#8C5A00`、`--au-color-error` `#F5222D`→`#CF1322`、`--au-color-info` `#1890FF`→`#096DD9`。原值均为 Ant Design 的「填充色阶」,作文字/白字场景均不足 AA。
- **5 端同步**:`frameworks/` 下 150+ 文件、300+ 处硬编码色值同步到达标值。禁用态(WCAG 明示豁免)保持原弱化表现不变。
- **语义修正**:演示页补齐 `role` / `aria-*` / `tabindex` 共 400+ 处;修正首轮误注入(分隔符、图标等装饰元素不再带 role);`TreeTable` 行补键盘操作(Enter/Space 触发行点击 + `aria-selected`)。
- **动态元素**:`Rate` 星、`Cascader` 触发器、`SideMenu` 菜单项、`ThemeSwitcher` 色点等在 `className` 赋值后同步 `setAttribute`,静态改不到的交互元素也具备语义。
- **断言判据精化**(修正过严/过宽,非放水):
- 图标类元素适用 WCAG 1.4.11 的 3:1(新增 `icon-contrast` 提示项),文字仍走 1.4.3 的 4.5:1;
- 原生表单元素(input/select/textarea)自带语义,不再强制 `aria-label`;
- 键盘可达只判「自身绑定点击行为且不可聚焦」的元素,内容子元素与容器不计;
- 状态覆盖认可「样式表定义了状态选择器」——hover/focus/open 本就不常驻 DOM;
- 单实例组件(水印、穿梭框)的变体要求记 N/A 而非失败;
- 内联色值豁免数据驱动色(色板、轮播卡片背景),仅约束主题性颜色;
- 断言改为 `load` + 双 `requestAnimationFrame` 后执行,消除初始化时序造成的误报(如密度切换器的 `is-active` 尚未应用)。
- **`site/app.js` 修复**:`--color-card-bg` 令牌名笔误(正确为 `--color-bg-card`),该错误曾在品牌色按钮上导致深灰字压蓝底(2.59:1)。
### Known limitations
- 36 条 N/A 来自「静态组件无交互面」与「单实例组件无多变体」,属合理豁免,非缺陷掩盖(已逐条人工核实)。
- 本通过率覆盖 9 项自动化矩阵断言,**不等同于完整的 WCAG 2.1 AA 合规认证**:屏幕阅读器实测、焦点顺序、动态内容播报仍需人工/AT 工具验证。
## [1.3.0] - 2026-09-10
### Fixed — 验收链路(回归通过率此前不可信)
- **测试页快照为空壳**:`run-tests.ps1` 抽取 `frameworks/<组件>.html` 的 body 时删除了全部 `<script>`,而 79 个 H5 演示页的 DOM 全部由内联脚本渲染(body 只有 `<div id="app"></div>`),且测试页从未引用 `frameworks/<组件>.css`。断言跑在空 DOM + 无组件样式上,v1.2.0 的 75.1% 属结构性误报,不是实现质量。
- 测试页改为 iframe 加载真实演示页(`tests/_template.html`),`tests/_runtime.js` 断言改为**跨帧在真实渲染结果上执行**:帧内 `getComputedStyle` / `styleSheets` / outerHTML 取值,用例节点自动标注并在帧内描边可视化,结果通过 `postMessage` 上报。
- 断言标注改为容器下钻(`.row` / `.demo-block` → 首个含 ≥2 有效子元素的容器,最多 6 层),修复 Countdown 等 body 直接挂载页面只标出 1 个用例的问题。
- 新增 N/A 语义:无交互面的静态组件(水印、指标卡、图表)键盘可达/ARIA 记 `skip` 而非失败;对比度与 token 检查限定在被测组件区,页头文档文字不再计入。
- 通过率分母改为 `pass / (pass + fail)`,N/A 不拉低数值;`tools/run-regression.mjs`(CI runner)与浏览器收集器同口径。
### Added — 设计系统
- 基座键盘焦点环:`:focus-visible` 统一 2px 描边(`colors_and_type.css`)。`--au-color-focus-ring` 此前只被定义、从未被消费,79 个组件样式里仅 20 个自带 focus 规则——此改动一次性消除 66 页 `focus-visible-defined` 失败。
- `tests/_collect.html`:零依赖浏览器批量回归收集器(并发 iframe + 汇总 + `window.__aaCollectResult`),替代此前"用浏览器控制台手跑 79 页"的临时做法。
- `tests/_index_template.html`:测试总览页模板外置(原为 run-tests.ps1 内联 here-string),读数来自 `site/data.json`,并显示最近回归通过率。
### Added — 设计契约第二批(展示类 15 个)
- tree / collapse / calendar / carousel / imagepreview / qrcode / countdown / watermark / cardlist / treetable / timelinelist / steplist / chartpanel / dashboardcard / employeecard,逐份从规格原文(组件2/4/7/9.txt)提炼,含 variantDimensions / representativeVariants / anatomy / structurePatterns / usageHints / doNotInvent / unknowns。契约化覆盖 21 → **36/79**。
### Changed
- `run-tests.ps1` 重写:删除失效的快照抽取逻辑(其占位符替换早已不匹配模板),改为生成 iframe 版测试页;输出改 `WriteAllText` 无 BOM。脚本保持 ASCII-only(PS5.1 读无 BOM 文件按 ANSI),中文文案移入 UTF-8 模板。
- 回归基线更新:**960 条断言 / 通过率 85.1%(N/A 27)、11 页全通过**。剩余失败项即改进 backlog:状态覆盖 45、对比度 35、ARIA 33、键盘可达 15、硬编码 hex 9、变体 2。
## [1.2.0] - 2026-09-10
### Added — 设计契约与工程化
- B1 契约第一批:15 个输入类组件补齐契约 JSON(autocomplete / cascader / transfer / rate / slider / segmented / radiocard / checkboxcard / switchgroup / numberrangeinput / codeinput / passwordinput / phoneinput / colorpicker / mention),契约化覆盖 6 → 21/79
- C4 静态薄壳:`site/components/<slug>.html` × 79(每组件独立可爬 URL:title + meta description + canonical + 刷新跳转),`sitemap.xml`(80 URL,部署后回填 `$SiteUrlBase`)
- C3 headless 回归:79 个测试页全量执行 812 条断言(当前通过率 75.1%,失败项即改进 backlog),产出 `tests/report.json`;CI runner `tools/run-regression.mjs`(Playwright,含 JUnit XML 输出)
- 首页 Hero 显示「测试通过率」(读取 tests/report.json,无报告时静默隐藏)
- B3 Playground:组件详情页「▶ 在线试玩」——textarea 编辑 H5 源码,iframe srcdoc 防抖实时重渲染,支持复位 / 退出,不影响源文件
- C1 交叉引用:组件详情页新增「相关组件」(相似 / 搭配维度映射 + 同分类兜底)
- 场景示范页:`site/scenario/user-management.html`(筛选表单 + 数据表格 + 分页 + 新建弹窗 + 消息反馈,视觉全部来自令牌与 components.css),首页 Hero 加入口
- 部署物料:根 `README.md`、Pages 入口 `index.html` 重定向、`.github/workflows/deploy-pages.yml`、`.gitignore`
### Fixed
- 测试页断言协议落地:`tests/_runtime.js` 运行期自动标注快照节点 `data-assert`(多级结构启发式:.row → .demo → .demo-block → 首层;此前 79 页实际无断言节点,PLAN v1.1 声称与实现不符)
- `site/data.js` / `site/data.json` 去除 UTF-8 BOM(PS5.1 `Set-Content` 默认带 BOM,严格 JSON 解析器如 node require 直接解析失败)
- 断言可见性判定放宽(`getClientRects` 兜底),减少隐藏变体误报
## [1.1.1] - 2026-09-08
### Added — 竞品对齐改造(第一批,依据《竞品网站检查报告》与《现状问题分析与改造清单》)
- For Agents 页(`#/agents`):AI / Agent 消费入口——机器可读资源清单、data.json 数据形状、消费示例、使用规则
- `site/llms.txt`:LLM 入口清单,指向 data.json、契约 JSON、令牌文件与测试页
- 站内更新日志页(`#/changelog`):`build-site.ps1` 解析本文件注入 `data.js`,站点展示与仓库同源
- 主题预设库:主题定制器内置 6 套品牌色预设(科技蓝 / 青碧 / 极夜紫 / 暖橙 / 绯红 / 松石绿),一键切换后仍可微调
- 组件详情页新增「API 源码提炼」徽章,区分契约化组件(6 核心)与源码提炼组件(69 扩展)
### Fixed — 文档与实现不符
- 搜索增强补票:Ctrl+K 弹窗补齐分类 chip 过滤、命中关键词 `<mark>` 高亮、子序列模糊回退(PLAN v1.1 曾声称交付但代码缺失);搜索结果行补写 `data-slug` 修复搜索日志点击目标为空的问题
### Changed
- 暗色模式令牌映射补全:`html.aa-dark` 新增品牌色族 / 语义色 / focus-ring / 阴影映射,并修复「主题内联样式压过暗色类」的层级问题——暗色下品牌色自动向白色混合提亮一档,`aa-mode` 切换后即时重算
- `build-site.ps1`:`meta.version` 不再硬编码,改为从 CHANGELOG.md 最新版本号自动同步
## [1.1.0] - 2026-09-07
### Added — 文档体系补齐
- `PLAN.md`:完整组件文档体系规划与路线图,含 5 大模块、3 版本路线、验收标准
- `CHANGELOG.md`:本文档
- `CONTRIBUTING.md`:贡献指南(如何新增组件 / 修契约 / 加测试)
- `TESTING.md`:测试矩阵、断言协议、回归流程
- `tests/<slug>.html` × 79:每个组件独立测试页(HTML+CSS+原生 JS 零依赖)
- `tests/index.html`:测试总览页(按类目聚合 + 通过率 + 失败项)
- `run-tests.ps1`:批量构建测试目录脚本
### Added — 日志系统
- `site/logger.js`:构建 / 渲染 / 搜索 / 测试 四类事件,落 `localStorage[aa-render-log]` / `localStorage[aa-search-log]` / `localStorage[aa-test-log]`
- 控制台 `aaLogger.export()` 导出 JSON
- 测试页内置 `data-assert` + `data-status`,便于 Playwright / Selenium 回归
### Added — 搜索增强
- Ctrl+K 弹窗内新增分类 chips 过滤(general / navigation / input / display / feedback / system)
- 命中关键词 `<mark>` 高亮
- 模糊容错:去空格 + 子串匹配 + 大小写不敏感
- 搜索日志:query / 命中数 / 首个命中 slug / 耗时
### Added — 文档骨架
- 顶栏工具新增「测试」「日志」入口(HAMBURGER 之后)
- 组件详情页新增「测试页」链接
- 首页 hero stats 加入「测试页 79」一项
### Changed
- `site/app.js` 改为引用 `site/logger.js`,原搜索行为保留
- 扩展组件契约新增「doNotInvent / unknowns」字段自动从 spec 文本提取
### Fixed
- 主题定制器焦点环 rgba 计算 bug:hex 转 rgba 不再被截断为 6 位
- 类别切换时滚动条保持原位(避免视觉跳动)
## [1.0.0] - 2026-09-06
### Added
- 79 个组件实现(H5 / React / Vue 2 / Vue 3 四端)
- 设计令牌:`colors_and_type.css` / `css.json` / `components.css`
- 6 个核心组件契约 JSON
- `components/index.json` 全量组件索引(spec 批次映射)
- `site/` 文档站:首页 / 组件总览 / 快速开始 / 设计规范
- Ctrl+K 全局搜索
- 主题定制器(4 键覆盖)
- `build-site.ps1` 构建脚本
### Notes
- 数据生成产物:`site/data.js`(自动生成,请勿手动编辑)
---
## 标签说明
- `Added`:新功能
- `Changed`:现有功能变更
- `Deprecated`:即将移除
- `Removed`:已移除
- `Fixed`:缺陷修复
- `Security`:安全相关
## 版本约定
- 主版本号:不兼容的 API 变更
- 次版本号:向后兼容的功能新增
- 修订号:向后兼容的问题修复