agentcss 0.11.5 → 0.11.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -16,6 +16,73 @@
16
16
 
17
17
  (无)
18
18
 
19
+ ## [0.11.7] - 2026-10-29
20
+
21
+ **交付物零变化,改的是"我们怎么验自己"**:外网泄漏审查此前**一个文件都没读到**
22
+ 却打印「✅ 零泄漏」,现在必须读到 100% 才下结论;同时把"哪些文件属于门禁工具"
23
+ 这条判据合并成一处,本地与外网两个扫描器口径不再分叉。
24
+
25
+ ### Fixed
26
+
27
+ - **外网审查的空跑**:`outsider-audit.py` 只走 `raw.githubusercontent.com` 一条通道,
28
+ 这条在本机被断连时每个文件都抛异常并被静默吞掉 —— 报告写「扫了 0 个文本文件」
29
+ 却接着打「✅ 零泄漏」。现在读取量必须等于分母:读到 0 个退出码即 2,
30
+ 差一个都算"未取证"并列路径。附 `--selftest`(5 组数字,专验「0 个文件必须红」),
31
+ 已进日常门禁(离线、~0ms)。
32
+ - **读取方式**:改成一次取整库快照(zipball,1 次请求 / 同一个 commit 的完整树 /
33
+ 顶层目录名自带 sha)。逐文件抓一个文件一次请求,匿名配额 60 次/小时 ⇒
34
+ 几百个文件的仓库必然 403;而且中途有人推代码就会拼出"半新旧混合体"。
35
+ 覆盖率由此从"不确定"变成 334/334,耗时从数分钟降到 4 秒。
36
+ - **同一判据两套口径**:「这是门禁工具自己的文件」原本 `leak-scan` 按目录豁免、
37
+ `outsider-audit` 按文件名豁免,于是同一个仓库本地报干净、外网报 43 处。
38
+ 判据合并到 `terms.is_tool_file()`,两边都调它;豁免数量现在写进报告
39
+ (「需扫 334 个,不计入分母 308 个(baseline 2,binary 91,tool 215)」)——
40
+ "少扫了 215 个"与"扫了全部"必须一眼可分。
41
+ - **删掉两处永远不会执行的豁免分支**(`leak-scan` 里 `rel.startswith('05-audit/')`
42
+ 的两处 `continue`:循环开头已经跳过整个目录)。它们不只是废码 ——
43
+ 读起来像"门禁目录也被扫了",正是上面那次误判的成因。
44
+
45
+ ## [0.11.6] - 2026-10-29
46
+
47
+ **文档站不再"静默丢内容"**:README 里写着的代码块,页面上必须一块不少;
48
+ 搜索从「只认结构词」改成「也认正文里的人话」,22 个真实问法命中率 10/22 → 21/22。
49
+
50
+ ### Added
51
+
52
+ - **404 页**。GitHub Pages 此前给的是裸页。新页用站内绝对路径引样式
53
+ (前缀从 `homepage` 推),所以在任何错路径下都能正常渲染 —— 这一点
54
+ 必须用它才能验证:`python -m http.server` 只会返回默认 404 页。
55
+ - **内容守恒判据**(`docs-site-gate` [9]):README 的代码块 / 表格 /
56
+ 小标题数量,必须等于页面上的 `<pre>` / `<table>` / `<h2|h3>` 数量。
57
+ 两套独立算法交叉验证,31/33 页口径一致、2 页对不上,抓的正是真缺陷。
58
+ - **搜索回归探针**(`docs-site-gate` [8b]):14 个用户真会问的词
59
+ (焦点环 / 禁用 / 错误态 / 空状态 / 对比度 / 暗色 / 打印 / 弹层 /
60
+ 阴影 / 圆角 / 读屏 / 键盘 / 分页 / 抽屉)必须都能搜到。
61
+ - **`css-independence.py`**:41 个 CSS 文件零跨组件 `@import` ——
62
+ 把「拷一个文件就能用」从口号变成被判据守住的承诺。
63
+ 注入验证过一次:给 badge.css 追加 `@import` ⇒ 精确报出第 143 行。
64
+
65
+ ### Fixed
66
+
67
+ - **列表项 / 引用块里的代码块**。此前块级解析只在行首认围栏,
68
+ 于是 `report` 的 README 里有一段两行代码**整块消失**(页面上不留空位),
69
+ `input` 的开头示例降级成一片行内代码色文字。现在容器内按"代码段 /
70
+ 文本段"切开,代码段出 `<pre>`,折行仍走中英判断(不塞满空格)。
71
+ - **搜索搜「禁用」「焦点环」「错误态」返回 0 项**。键表此前只有类名、
72
+ 属性、标题 —— 覆盖的是"结构词",而人搜的是"意思"。正文词收进键表后
73
+ 22 个真实问法命中 21(剩下「减少动效」是全局约定,不属于任何组件)。
74
+ 索引页 128KB / gzip 49KB,单次搜索 0.7–1.4ms,逐键收窄。
75
+
76
+ ### 撤掉的一个改动
77
+
78
+ 一度给每个组件页加了「还需要」列表,从 `demo.html` 的引用清单推断依赖。
79
+ 查下去发现 `drawer` 自带 `drawer__close`(不需要 button.css)、
80
+ `skeleton` 的 demo 引了 button.css 却一个 `btn` 都没用 ——
81
+ demo 里混着演示脚手架,照它出提示等于给 17 个组件发假指引。
82
+ 撤掉,改成验证过的结论:CSS 之间零依赖。
83
+
84
+ ---
85
+
19
86
  ## [0.11.5] - 2026-10-29
20
87
 
21
88
  **文档站的两个"看着能用、实际不能用"**:搜索框给的示例词在全仓库不存在;
package/CONTRIBUTING.md CHANGED
@@ -8,7 +8,7 @@ npm run gate # 全量:含浏览器类
8
8
  npm run gate:fast # 只跑静态层,不用装浏览器
9
9
  ```
10
10
 
11
- 全量是 **179 道门禁**(本机约 10 分钟)。
11
+ 全量是 **181 道门禁**(本机约 12 分钟)。
12
12
 
13
13
  ⚠️ 上面的数字写在**代码块外**是有意的:`doc-facts-gate` 会核对
14
14
  「文档里的门禁数」与 `check-all.sh` 的真实注册数,而**代码块内的内容被豁免**
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schemaVersion": "1.0.0",
3
3
  "generatedBy": "05-audit/gen-ai-contract.py",
4
- "libraryVersion": "0.11.5",
4
+ "libraryVersion": "0.11.7",
5
5
  "$comment": "机器可读的组件契约。slots = BEM 元素名(在本库里元素名就是插槽名),states.enum = 组件会在 DOM 上写出的 data-* 取值,states.legacyClass = 仍未收敛到 data 属性的历史状态类(INVARIANT I-8 未达标)。",
6
6
  "maturityCriteria": {
7
7
  "alpha": "缺 demo.html 或缺 05-audit 下的专属门禁 ⇒ 还没被机器验证过,不要用",
package/index.html CHANGED
@@ -92,7 +92,7 @@ li a:active { background: var(--surface-sunken); }
92
92
  </p>
93
93
  </main>
94
94
  <footer class="wrap">
95
- <p class="note">0.11.5 · 零第三方运行时依赖</p>
95
+ <p class="note">0.11.7 · 零第三方运行时依赖</p>
96
96
  </footer>
97
97
  </body>
98
98
  </html>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agentcss",
3
- "version": "0.11.5",
3
+ "version": "0.11.7",
4
4
  "description": "移动 Web 组件库:CSS + 可选行为脚本,零第三方运行时依赖。样式用 bundler 引入,交互行为用 script 标签引入。",
5
5
  "keywords": [
6
6
  "css",