@ninkch/dsh-infinite-canvas 0.17.4 → 0.17.6

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/docs/release.md CHANGED
@@ -2,15 +2,19 @@
2
2
 
3
3
  > 维护者向导:如何从"本地改动"走到"公众可用的 npm 版本"。
4
4
  > 铁律见 §0;测试三层漏斗见 §1;日常操作 §2–§5;更新检查逻辑 §6。
5
+ > **发版红线与标准流程以仓库根目录 [`RELEASING.md`](../RELEASING.md) 为准绳**(npm 已绑定 GitHub,
6
+ > 发布走 GitHub Release → OIDC 自动发布)。
5
7
 
6
8
  ## 0. 铁律(不可违反)
7
9
 
8
- 1. **未经用户明确批准,绝不 `npm publish`、绝不合并 main、绝不 `git push origin main`。**
9
- 2. **绝不自动重启 Harness、绝不自动刷新页面。** 更新/安装后只提示(横幅/文案),何时生效由用户决定。
10
- 3. **beta 版本号绝不复用**(npm 本身也禁止覆盖已发布版本);**正式版本号只在 main 上诞生**。
11
- 4. **版本单一来源 = `package.json`**。改版本一律用 `npm version …`,不手改;Host 运行时读取它,禁止在代码里硬编码版本号。
12
- 5. **版本号一律按 0.0.x(patch)递增**(如 0.17.3 → 0.17.4),不做 minor/major 升级——新功能同样走 patch 号。
13
- 6. npm token 只通过命令行注入,**绝不写入任何文件**。
10
+ 1. **未经用户明确批准,绝不发版**(不建 GitHub Release、不打 v 标签、不合并 main、不 `git push origin main`)。
11
+ 2. **本机绝不手动 `npm publish`**——本机默认 registry 是淘宝镜像(必 404),npmjs 令牌也无发布权限;
12
+ 发布只走 GitHub Release → Actions OIDC(见 `RELEASING.md` 与 `.github/workflows/publish.yml`)。
13
+ 3. **绝不自动重启 Harness、绝不自动刷新页面。** 更新/安装后只提示(横幅/文案),何时生效由用户决定。
14
+ 4. **beta 版本号绝不复用**(npm 本身也禁止覆盖已发布版本);**正式版本号只在 main 上诞生**。
15
+ 5. **版本单一来源 = `package.json`**;Host 运行时读取它,禁止在代码里硬编码版本号。
16
+ 6. **版本号一律按 0.0.x(patch)递增**(如 0.17.5 → 0.17.6),不做 minor/major 升级——新功能同样走 patch 号。
17
+ 7. npm token 只通过命令行注入,**绝不写入任何文件**(且经典令牌已不能发布,仅存档)。
14
18
 
15
19
  ## 1. 测试三层漏斗
16
20
 
@@ -43,60 +47,49 @@ node scripts/smoke-render.mjs # 渲染冒烟:抓渲染期 ReferenceError(
43
47
  - index.js 改动 → 需手动重启 Harness
44
48
  - 测完切回正式版:依赖改回版本号 → `pnpm install` → 重启
45
49
 
46
- ## 3. 发布前校验(两个脚本都必须绿)
50
+ ## 3. 发布前校验(脚本全绿才算过)
47
51
 
48
52
  ```
49
53
  node scripts/check-pack.mjs # 打包清单 + 元数据核对(npm pack --dry-run)
50
54
  node scripts/smoke-render.mjs # 渲染冒烟:假 React 走真实组件树
51
55
  node scripts/test-update.mjs # 更新检查功能测试(真实 registry 比对)
56
+ node scripts/test-tools.mjs # 对话工具 schema 校验(标准 JSON Schema,防方言错误)
57
+ node scripts/test-mentions.mjs # @引用解析单测(解析/高亮转义/设定集匹配/[图N]绑定/命名)
58
+ node scripts/audit.mjs # 机械化体检(i18n 键对齐/CSS 类/节点类型覆盖/RPC 与工具一致)
59
+ node scripts/test-host-hardening.mjs # Host 加固回归(读流错误接管/项目合并与墓碑/来源校验等)
60
+ node scripts/test-llm-stream.mjs # LLM 流式与推理模型重试(思考实时推送/按配置上限重试)
61
+ node scripts/test-sync-bible.mjs # 同步合并回归(设定集拉回/边墓碑防复活)
62
+ node scripts/test-user-scenarios.mjs # 用户实测场景定向复验(轮询无损/自动连线/设定集读写)
52
63
  ```
53
64
 
54
65
  `check-pack` 防的三类事故:漏打包(如 locale/icon 没进包)、多打包(`.github`/`scripts` 混入)、元数据漂移(版本/exports/`dsh.bundle.patch`)。
55
66
 
56
- ## 4. 层②:Beta 集成测试
67
+ ## 4. 层②:Beta 集成测试(已随令牌时代退场,存档)
57
68
 
58
- ```
59
- # 1) 打 beta 号(每轮自增,绝不复用;dev 分支上操作)
60
- npm version 0.17.3-beta.0 # 显式指定;或 npm version prerelease --preid=beta
61
-
62
- # 2) 提交 beta 号变更到 dev
63
- git add package.json && git commit -m "chore: v0.17.3-beta.0" && git push origin dev
69
+ > 旧流程靠手动注入 npm 令牌发 `--tag next`;经典令牌已不能发布,且发布统一走 OIDC 后
70
+ > beta 需要工作流加 prerelease 分支(`--tag next`)才能不占 `latest`——尚未实现。
71
+ > 当前集成测试以"dev link 态 + 全量回归脚本 + 重启实测"替代;要发 beta 先在对话里与维护者确认方案。
64
72
 
65
- # 3) 经用户批准后发布到 next 标签(绝不占 latest)
66
- npm publish --tag next --access public --registry=https://registry.npmjs.org '--//registry.npmjs.org/:_authToken=<TOKEN>'
73
+ ## 5. 层③:正式发布(需用户批准版本号;流程细则见 `RELEASING.md`)
67
74
 
68
- # 4) 安装测试
69
- # 在插件管理安装 @ninkch/dsh-infinite-canvas 精确版本 0.17.3-beta.0
70
- # → 手动重启 Harness → 冒烟:RPC ping + 页面渲染 + 核心流程
71
-
72
- # 5) 回滚(任何问题):安装回正式精确版本 → 重启,零残留
73
75
  ```
76
+ # 1) 确认 package.json version 已是目标版本(版本号的单一来源,发版前自查)
77
+ # dev 分支自测全绿 + 用户明确批准版本号
74
78
 
75
- 说明:
76
-
77
- - prerelease 排序低于同号正式版,安装器不会把 beta 当"更新"推给正式用户;beta 留在 registry 无害。
78
- - 清理 next 标签(可选):`npm dist-tag rm @ninkch/dsh-infinite-canvas next`
79
-
80
- ## 5. 层③:正式发布(全部需用户批准)
81
-
82
- ```
83
- # 1) 合并
79
+ # 2) 合并(Release 只能打在 main 上;工作流 main 守卫会拒绝 dev 上的发布)
84
80
  git checkout main
85
81
  git merge dev
86
- git push origin main
87
-
88
- # 2) 出正式号(在 main 上打)
89
- npm version 0.17.3
90
- git push origin main --follow-tags # npm version 会自动打 git tag vX.Y.Z
82
+ git push origin main dev
91
83
 
92
- # 3) 发布(两条路任选)
93
- # a. GitHub Actions Trusted Publishing(首选,无 token):GitHub 建 Release vX.Y.Z → Actions 自动发布
94
- # b. 手动注入:
95
- npm publish --access public --registry=https://registry.npmjs.org '--//registry.npmjs.org/:_authToken=<TOKEN>'
84
+ # 3) 建 GitHub Release 触发自动发布(无令牌、无 OTP):
85
+ # GitHub → Releases → Draft a new release → 选/建 tag vX.Y.Z(指向 main)→ Publish release
86
+ # (或 API:POST /repos/NINKCH/dsh-infinite_canvas/releases,tag_name=vX.Y.Z, target_commitish=main)
87
+ # tag 必须与 package.json version 一致(工作流第二步守卫,不一致直接失败)
96
88
 
97
- # 4) 验证
98
- npm view @ninkch/dsh-infinite-canvas version # 应为新版
99
- GET /infinite-canvas/api/rpc ping # 安装重启后 version 应为新版
89
+ # 4) 验证(三件套,缺一不可)
90
+ # a. GitHub Actions 的 publish 运行绿
91
+ # b. npm view @ninkch/dsh-infinite-canvas version --registry=https://registry.npmjs.org # 应为新版
92
+ # c. 重启 Harness 后画布功能正常
100
93
  ```
101
94
 
102
95
  发布完成汇报模板:**"已发布 vX.Y.Z,重启 Harness 后生效"**(绝不替用户重启)。
@@ -117,8 +110,9 @@ GET /infinite-canvas/api/rpc ping # 安装重启后 version 应为
117
110
  ## 7. 发布日检查清单
118
111
 
119
112
  - [ ] dev 全部改动已提交并推送
120
- - [ ] `node --check` × 2 + `smoke-render` + `check-pack` 全绿
121
- - [ ] beta 版实测通过(层②)
122
- - [ ] **用户明确批准发布**
123
- - [ ] 合并 main → `npm version` → publish → 确认 registry
113
+ - [ ] 10 项回归脚本全绿(§3 清单)+ 涉及 UI 的重启实测通过
114
+ - [ ] `package.json` version = 目标版本号(自查,勿依赖守卫)
115
+ - [ ] **用户明确批准版本号**
116
+ - [ ] 合并 main 并推送 → 建 GitHub Release `vX.Y.Z`(指向 main)
117
+ - [ ] Actions 绿 + `npm view`(官方源)版本正确
124
118
  - [ ] 汇报版本号 + "重启 Harness 后生效"