agentcss 0.11.2 → 0.11.3

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
@@ -14,7 +14,29 @@
14
14
 
15
15
  ## [Unreleased]
16
16
 
17
- (本轮无未发布改动 —— 0.11.2 的条目见下方。)
17
+ (无)
18
+
19
+ ## [0.11.3] - 2026-10-28
20
+
21
+ **只改文档,不改任何代码。** 0.11.2 是第一个真正回到 registry 的版本,
22
+ 而它打包进去的 README 安装段还写着「registry 上没有可安装版本」——
23
+ 装下来的人第一眼就会读到一句自我否定的话。这一版把这句话改成事实,
24
+ 顺带把发布路径本身写清楚。
25
+
26
+ ### Fixed
27
+
28
+ - `README.md`「安装」段:改为 `npm install agentcss`(真实可用),
29
+ 并把 GitHub Release 附件、`github:` 两条降级路径降为**备选**而不是唯一。
30
+ - `docs/RELEASING.md`「发布受阻时」:标注该节的适用状态与解除条件,
31
+ 并补记这次的根因(见下)。
32
+
33
+ ### 文档
34
+
35
+ - 记下这次排查的真结论:账号 2FA **只登记了一把 security key,没有 TOTP 设备**
36
+ ⇒ 「打开验证器 App 看 6 位码」这条路从一开始就不存在(本次实况:Tokens 页面
37
+ 两个 token 均在 10-25 过期,2FA 页只列出 `agentc` 一把 security key)。
38
+ 可用的做法是网页端生成 **bypass-2FA 的 granular token**,
39
+ 它让 CLI 发布不再需要一次性验证码。
18
40
 
19
41
  ## [0.11.2] - 2026-10-28
20
42
 
package/README.md CHANGED
@@ -40,21 +40,27 @@
40
40
 
41
41
  ## 安装
42
42
 
43
- **当前状态:npm registry 上没有可安装版本。** 包名 `agentcss` 归本账号
44
- (0.9.0 曾发布成功、两分钟后被误删,见 `ERRORS.md` E55;0.11.2 的发布卡在
45
- 账号 2FA 的一次性验证码上,见 `docs/RELEASING.md`「发布受阻时」)。
46
- 所以现在有两条**真实可用**的路:
43
+ **已发布到 npm registry。** 包名 `agentcss`(scoped 名不需要,直接用下面这条):
47
44
 
48
45
  ```bash
49
- # ① 装**和我们验证过的那一份逐字节一致**的包(GitHub Release 附件,v0.11.2)
50
- npm install https://github.com/owain323/frontend-lib/releases/download/v0.11.2/agentcss-0.11.2.tgz
46
+ npm install agentcss
47
+ ```
48
+
49
+ 装出来的目录名就是 `agentcss`,`dist-tags.latest` 指向当前版本。
50
+
51
+ 另外两条**同样真实可用**的路(内容与 registry 上那一份同源):
52
+
53
+ ```bash
54
+ # ① 钉住某一版、且拿到与我们验证过的那一份**逐字节一致**的 tarball
55
+ npm install https://github.com/owain323/frontend-lib/releases/download/v0.11.3/agentcss-0.11.3.tgz
51
56
 
52
- # ①b 想跟着 master 走
57
+ # ② 想跟着 master 走(未发布的最新提交)
53
58
  npm install github:owain323/frontend-lib
54
59
  ```
55
60
 
56
- 装出来的目录名仍是 `agentcss`,导入写法与将来发 npm 后**完全一致** ——
57
- 换回 `npm install agentcss` 时不用改任何代码。
61
+ > 历史说明:0.9.0 曾发布成功、两分钟后被误删(`ERRORS.md` E55);此后一段时间
62
+ > registry 上没有可安装版本,靠 GitHub Release 附件分发(`docs/RELEASING.md`
63
+ > 「发布受阻时」)。自 0.11.2 起这条通路已恢复。
58
64
 
59
65
  **② 源码复制**(不想装依赖):把 `01-tokens/` 和需要的组件目录复制进你的项目。
60
66
  ⚠️ 复制 `dist/` 里的版本,**别复制源码版** —— 源码版有一半以上是给人和 AI 读的注释
@@ -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.2",
4
+ "libraryVersion": "0.11.3",
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/docs/RELEASING.md CHANGED
@@ -271,5 +271,41 @@ npm install https://github.com/owain323/frontend-lib/releases/download/v<ver>/ag
271
271
  2. **上传后独立核一次**:`gh api repos/.../releases/tags/v<ver>` 看 asset 的 `size`
272
272
  与本地一致;再**从另一台机器**下载算 sha256。本机网络会把它拖成半截
273
273
  (实测 739,543 字节只下到 48,418 就断了,而 `curl` 退出码仍是 0)。
274
- 3. **README 必须写"registry 上没有"**,不能因为发了 Release 就写成已发布 ——
275
- 那是下一个人装错东西的起点。
274
+ 3. **README 必须写真实状态**(两个方向都算):没能发上去就不能写成已发布;
275
+ 发上去了也不能继续挂着"registry 上没有"。本次就是后半句踩过的坑 ——
276
+ 0.11.2 已经上了 registry,包内 README 却还写着"没有可安装版本",
277
+ 装下来的人第一眼读到一句自我否定的话(0.11.3 修)。
278
+
279
+ ### 本节状态:**已解除**(0.11.2 起)
280
+
281
+ 这一节保留是因为降级路径本身仍然有效(GitHub 被墙时 npm 也可能挂),
282
+ 但它不再是**唯一**通路。
283
+
284
+ **真根因(此前判断错了两次)**
285
+
286
+ | 我当时的判断 | 实际 |
287
+ |---|---|
288
+ | "npm 登录失效(401)" | 登录没问题;本机 token 在 **10-25 到期**(granular 默认 7 天) |
289
+ | "账号开了 TOTP,找用户要 6 位码" | 2FA 页只登记了**一把 security key**(`agentc`),**没有 TOTP 设备** —— 手机上任何验证器都不会有 npm 条目,"等推送"永远等不到 |
290
+ | "新建 token 也要 2FA ⇒ 闭环" | 网页端生成 **bypass-2FA 的 granular token** 只需要在网页里勾选,CLI 侧不需要任何一次性码 |
291
+
292
+ **现在怎么做**(可重复,不依赖任何人给验证码)
293
+
294
+ 1. 网页 `Settings → Access Tokens → Generate New Token`
295
+ (直达:`/settings/<user>/tokens/granular-access-tokens/new`)
296
+ 2. 勾 **Bypass two-factor authentication (2FA)**
297
+ 3. Packages and scopes → 权限选 **Read and write (publish and stage)**
298
+ → Select packages 选 **All packages**
299
+ 4. Generate token → 把 `npm_…` 写进 `~/.npmrc`:
300
+ `//registry.npmjs.org/:_authToken=npm_…`
301
+ 5. `npm whoami` 必须回账号名,再 `npm publish <tarball> --ignore-scripts`
302
+ 6. **轮询 registry 直到目标版本出现**(本次实测:第 7 次、约 50 秒后出现;
303
+ 前 6 次都只有旧版本)。不要在第一次查询就下结论。
304
+
305
+ **当前机器上的凭据**(0.11.2 / 0.11.3 就是用它在发):
306
+ `~/.npmrc` 里的 `agentcss-publish`,创建于 2026-10-28,**到期 2026-11-04**(npm 对带写权限的 token 默认只给 7 天,上限 90 天)。
307
+ 到期前重新生成一枚(同样勾 bypass + Read and write + All packages),
308
+ 否则 CICD 会以 `401` 的形式失败 —— 而 `401` 很容易被误读成"没登录"。
309
+
310
+ ⚠️ npm 公告:**带 bypass-2FA 的 token 直接发布能力将在 2027 年 1 月移除**
311
+ (之后要改走 stage + 2FA 审批)。届时本节要重写,不能照抄。
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agentcss",
3
- "version": "0.11.2",
3
+ "version": "0.11.3",
4
4
  "description": "移动 Web 组件库:CSS + 可选行为脚本,零第三方运行时依赖。样式用 bundler 引入,交互行为用 script 标签引入。",
5
5
  "keywords": [
6
6
  "css",