openxiangda 2.21.1 → 2.21.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.
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Ant Design Mobile measures px values while its component modules evaluate.
3
+ * Install only the required document-level mechanics before those modules load;
4
+ * the reviewed visual defaults remain scoped in mobile-base.css.
5
+ */
6
+ export declare function initializeAntdMobileRuntimeGlobal(target?: Document | undefined): void;
7
+ //# sourceMappingURL=mobile-runtime-global.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mobile-runtime-global.d.ts","sourceRoot":"","sources":["../../src/browser/mobile-runtime-global.ts"],"names":[],"mappings":"AAaA;;;;GAIG;AACH,wBAAgB,iCAAiC,CAC/C,MAAM,GAAE,QAAQ,GAAG,SAA+B,QAQnD"}
@@ -0,0 +1,27 @@
1
+ const MOBILE_RUNTIME_STYLE_ID = 'openxiangda-antd-mobile-runtime-global';
2
+ const MOBILE_RUNTIME_STYLE = `div.adm-px-tester {
3
+ --size: 1;
4
+ height: calc(var(--size) / 2 * 2px);
5
+ width: 0;
6
+ position: fixed;
7
+ left: -100vw;
8
+ top: -100vh;
9
+ user-select: none;
10
+ pointer-events: none;
11
+ }`;
12
+ /**
13
+ * Ant Design Mobile measures px values while its component modules evaluate.
14
+ * Install only the required document-level mechanics before those modules load;
15
+ * the reviewed visual defaults remain scoped in mobile-base.css.
16
+ */
17
+ export function initializeAntdMobileRuntimeGlobal(target = globalThis.document) {
18
+ if (!target || target.getElementById(MOBILE_RUNTIME_STYLE_ID))
19
+ return;
20
+ const style = target.createElement('style');
21
+ style.id = MOBILE_RUNTIME_STYLE_ID;
22
+ style.textContent = MOBILE_RUNTIME_STYLE;
23
+ (target.head || target.documentElement).appendChild(style);
24
+ target.addEventListener('touchstart', () => { }, true);
25
+ }
26
+ initializeAntdMobileRuntimeGlobal();
27
+ //# sourceMappingURL=mobile-runtime-global.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mobile-runtime-global.js","sourceRoot":"","sources":["../../src/browser/mobile-runtime-global.ts"],"names":[],"mappings":"AAAA,MAAM,uBAAuB,GAAG,wCAAwC,CAAC;AAEzE,MAAM,oBAAoB,GAAG;;;;;;;;;EAS3B,CAAC;AAEH;;;;GAIG;AACH,MAAM,UAAU,iCAAiC,CAC/C,SAA+B,UAAU,CAAC,QAAQ;IAElD,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,cAAc,CAAC,uBAAuB,CAAC;QAAE,OAAO;IACtE,MAAM,KAAK,GAAG,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAC5C,KAAK,CAAC,EAAE,GAAG,uBAAuB,CAAC;IACnC,KAAK,CAAC,WAAW,GAAG,oBAAoB,CAAC;IACzC,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,eAAe,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAC3D,MAAM,CAAC,gBAAgB,CAAC,YAAY,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,IAAI,CAAC,CAAC;AACxD,CAAC;AAED,iCAAiC,EAAE,CAAC"}
package/dist/react.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import './browser/mobile-runtime-global';
1
2
  export * from './browser/application';
2
3
  export * from './browser/authentication';
3
4
  export * from './browser/admin-contributions';
@@ -1 +1 @@
1
- {"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../src/react.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,0CAA0C,CAAC;AACzD,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,OAAO,EAAE,sBAAsB,EAAE,KAAK,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AACrG,cAAc,kCAAkC,CAAC;AACjD,cAAc,iBAAiB,CAAC;AAChC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2BAA2B,CAAC;AAC1C,OAAO,EACL,6BAA6B,EAC7B,KAAK,iBAAiB,EACtB,2BAA2B,EAC3B,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,GAC3B,MAAM,2BAA2B,CAAC;AACnC,YAAY,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAC3E,cAAc,qDAAqD,CAAC;AACpE,cAAc,oDAAoD,CAAC;AACnE,cAAc,qDAAqD,CAAC;AACpE,cAAc,qDAAqD,CAAC;AACpE,cAAc,qCAAqC,CAAC;AACpD,cAAc,qDAAqD,CAAC;AACpE,mBAAmB,6DAA6D,CAAC"}
1
+ {"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../src/react.ts"],"names":[],"mappings":"AAAA,OAAO,iCAAiC,CAAC;AAEzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,0CAA0C,CAAC;AACzD,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,OAAO,EAAE,sBAAsB,EAAE,KAAK,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AACrG,cAAc,kCAAkC,CAAC;AACjD,cAAc,iBAAiB,CAAC;AAChC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2BAA2B,CAAC;AAC1C,OAAO,EACL,6BAA6B,EAC7B,KAAK,iBAAiB,EACtB,2BAA2B,EAC3B,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,GAC3B,MAAM,2BAA2B,CAAC;AACnC,YAAY,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAC3E,cAAc,qDAAqD,CAAC;AACpE,cAAc,oDAAoD,CAAC;AACnE,cAAc,qDAAqD,CAAC;AACpE,cAAc,qDAAqD,CAAC;AACpE,cAAc,qCAAqC,CAAC;AACpD,cAAc,qDAAqD,CAAC;AACpE,mBAAmB,6DAA6D,CAAC"}
package/dist/react.js CHANGED
@@ -1,3 +1,4 @@
1
+ import './browser/mobile-runtime-global';
1
2
  export * from './browser/application';
2
3
  export * from './browser/authentication';
3
4
  export * from './browser/admin-contributions';
package/dist/react.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"react.js","sourceRoot":"","sources":["../src/react.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,0CAA0C,CAAC;AACzD,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,OAAO,EAAE,sBAAsB,EAAmC,MAAM,4BAA4B,CAAC;AACrG,cAAc,kCAAkC,CAAC;AACjD,cAAc,iBAAiB,CAAC;AAChC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2BAA2B,CAAC;AAC1C,OAAO,EACL,6BAA6B,EAE7B,2BAA2B,GAG5B,MAAM,2BAA2B,CAAC;AAEnC,cAAc,qDAAqD,CAAC;AACpE,cAAc,oDAAoD,CAAC;AACnE,cAAc,qDAAqD,CAAC;AACpE,cAAc,qDAAqD,CAAC;AACpE,cAAc,qCAAqC,CAAC;AACpD,cAAc,qDAAqD,CAAC"}
1
+ {"version":3,"file":"react.js","sourceRoot":"","sources":["../src/react.ts"],"names":[],"mappings":"AAAA,OAAO,iCAAiC,CAAC;AAEzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,0CAA0C,CAAC;AACzD,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,OAAO,EAAE,sBAAsB,EAAmC,MAAM,4BAA4B,CAAC;AACrG,cAAc,kCAAkC,CAAC;AACjD,cAAc,iBAAiB,CAAC;AAChC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2BAA2B,CAAC;AAC1C,OAAO,EACL,6BAA6B,EAE7B,2BAA2B,GAG5B,MAAM,2BAA2B,CAAC;AAEnC,cAAc,qDAAqD,CAAC;AACpE,cAAc,oDAAoD,CAAC;AACnE,cAAc,qDAAqD,CAAC;AACpE,cAAc,qDAAqD,CAAC;AACpE,cAAc,qCAAqC,CAAC;AACpD,cAAc,qDAAqD,CAAC"}
@@ -68,10 +68,10 @@ MCP 服务随项目根包一起安装,AI 客户端的 stdio 连接仍需配置
68
68
  以下命令的版本占位符由随包资料替换为该根包的精确版本。网站源码阅读者应先确认要使用的发行版本。
69
69
 
70
70
  ```bash
71
- pnpm dlx openxiangda@2.21.1 skill install --force
72
- pnpm dlx openxiangda@2.21.1 auth status --base-url <平台地址> --json
73
- pnpm dlx openxiangda@2.21.1 login --cwd my-app --base-url https://platform.example.com
74
- pnpm dlx openxiangda@2.21.1 create my-app --base-url https://platform.example.com
71
+ pnpm dlx openxiangda@2.21.3 skill install --force
72
+ pnpm dlx openxiangda@2.21.3 auth status --base-url <平台地址> --json
73
+ pnpm dlx openxiangda@2.21.3 login --cwd my-app --base-url https://platform.example.com
74
+ pnpm dlx openxiangda@2.21.3 create my-app --base-url https://platform.example.com
75
75
  cd my-app
76
76
  pnpm openxiangda context --json
77
77
  pnpm openxiangda dev
@@ -174,9 +174,9 @@ MCP 的 `docs_read` 可以读取本说明,当前没有独立的源码操作 MC
174
174
  无需本地工作区,使用本 Skill 随包精确版本或已安装的对应 CLI:
175
175
 
176
176
  ```bash
177
- pnpm dlx openxiangda@2.21.1 auth status --base-url <平台> --json
178
- pnpm dlx openxiangda@2.21.1 source resolve <仓库URL> --base-url <平台> --json
179
- pnpm dlx openxiangda@2.21.1 source clone <仓库URL> <新目录> --base-url <平台> --json
177
+ pnpm dlx openxiangda@2.21.3 auth status --base-url <平台> --json
178
+ pnpm dlx openxiangda@2.21.3 source resolve <仓库URL> --base-url <平台> --json
179
+ pnpm dlx openxiangda@2.21.3 source clone <仓库URL> <新目录> --base-url <平台> --json
180
180
  ```
181
181
 
182
182
  登录缺失或站点不匹配时,先按该平台执行 login。resolve 根据平台已经登记的绑定返回
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "schemaVersion": "openxiangda.documentation/v1",
3
- "version": "2.21.1",
3
+ "version": "2.21.3",
4
4
  "topics": [
5
5
  {
6
6
  "id": "getting-started",
7
7
  "title": "安装与开始开发",
8
8
  "file": "getting-started.md",
9
- "sha256": "2d77e554cfc59d096ce2380d0e3f374985957d1e5a580b1a817bdcb53dea6fd1"
9
+ "sha256": "3a8bba5dda470da470fd8cd1b6571b8c24b24f604cd646c31d649be918b5f848"
10
10
  },
11
11
  {
12
12
  "id": "product-design",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "openxiangda",
3
- "version": "2.21.1",
3
+ "version": "2.21.3",
4
4
  "description": "OpenXiangda 2.0 的统一命令、应用 SDK、MCP 与中文 AI 技能资料。",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -60,13 +60,13 @@
60
60
  "antd-mobile": "5.42.3",
61
61
  "dayjs": "1.11.18",
62
62
  "docx-preview": "0.3.7",
63
- "openxiangda-cli": "2.5.0",
64
- "openxiangda-contracts": "2.16.1",
65
- "openxiangda-devkit-core": "2.19.0",
63
+ "openxiangda-cli": "2.5.2",
64
+ "openxiangda-contracts": "2.16.2",
65
+ "openxiangda-devkit-core": "2.19.1",
66
66
  "openxiangda-legacy": "npm:openxiangda@1.0.269",
67
- "openxiangda-mcp": "2.0.32",
68
- "openxiangda-nest": "2.4.6",
69
- "openxiangda-skill-kit": "2.3.5",
67
+ "openxiangda-mcp": "2.0.33",
68
+ "openxiangda-nest": "2.4.7",
69
+ "openxiangda-skill-kit": "2.3.6",
70
70
  "xlsx": "https://github.com/1377385356/openxiangda/releases/download/vendor-mirror/xlsx-0.20.3.tgz"
71
71
  },
72
72
  "peerDependencies": {
@@ -132,39 +132,34 @@
132
132
  },
133
133
  "openxiangdaRelease": {
134
134
  "schemaVersion": "openxiangda.release-notes/v1",
135
- "version": "2.21.1",
135
+ "version": "2.21.3",
136
136
  "status": "reviewed",
137
- "title": "OpenXiangda 2.21.1:工作区平台绑定查看与显式换绑",
138
- "summary": "新增 `openxiangda link` 命令:只读查看工作区绑定的平台、登录态匹配与 git origin 归属,并通过 `link rebind --base-url` 提供此前缺失的受支持换绑路径,替代手改 `.openxiangda/link.json`;同时补齐应用交接与跨站点发布的使用说明。",
139
- "newFeatures": [
140
- "新增 `openxiangda link` 命令:默认只读展示工作区平台绑定(appCode、平台地址、环境列表)、当前登录态匹配情况和 git origin 归属提示。",
141
- "新增 `openxiangda link rebind --base-url <平台>` 显式换绑:只改写本地绑定文件(appCode 取自工作区声明、地址归一化、清空旧站点环境列表),不调用平台 API、不修改 git remote、不迁移登录凭据;绑定属于其他应用时拒绝执行,目标与当前一致时幂等,换错可随时 rebind 回退。",
142
- "文档新增「跨站点与平台换绑」章节,覆盖应用交接给其他开发者、A 站点开发发布到 B 站点、发布永久切换站点与回退的完整步骤。"
143
- ],
137
+ "title": "OpenXiangda 2.21.3:移动运行时全局机制初始化",
138
+ "summary": " OpenXiangda React 运行时在移动组件加载前初始化 Ant Design Mobile 所需的 px 测量与触摸激活机制,消除业务应用无法跨包导入 antd-mobile/es/global 时的启动告警,并继续保持视觉样式的作用域隔离。",
139
+ "newFeatures": [],
144
140
  "fixes": [
145
- "`login`、平台会话校验与错误恢复目录中「平台不一致」的提示全部改为指向显式换绑命令,避免使用者手改 link 文件绕过检查。",
146
- "随车发布此前评审的 Skill 文档一致性审计:声明速查表回填行级策略条目,补齐 `/view`、`/dev` 浏览器入口、mutationOwner 错误族、events.timers 等平台能力与授权来源声明文档。"
141
+ "openxiangda/react 会在 Ant Design Mobile 组件求值前安装唯一且最小的 px tester 样式和 touchstart 机制,不再要求业务应用直接依赖 antd-mobile。",
142
+ "初始化只包含上游运行时机械规则,不引入 html、body、链接或按钮的全局视觉重置;移动默认样式仍由 openxiangda/react/styles.css 的作用域文件提供。"
147
143
  ],
148
144
  "affectedUsers": [
149
- "在多个站点之间迁移或发布 OpenXiangda 2.0 应用、以及把应用交接给其他开发者的开发与维护会话。"
145
+ "使用 OpenXiangda 2.0 React 运行时或标准移动字段,并在开发控制台看到 antd-mobile Global px tester 告警的应用开发与维护会话。"
150
146
  ],
151
147
  "upgradeSteps": [
152
- "将应用精确依赖升级到 openxiangda 2.21.1,按锁文件安装,并执行 `pnpm openxiangda skill install --force` 刷新本地 Skill。",
153
- "需要切换发布站点时,先运行 `openxiangda link` 查看当前绑定,再按文档执行 `openxiangda link rebind --base-url <新平台>`,随后登录新平台并运行 `openxiangda create <目录> --base-url <新平台>` 幂等初始化。"
148
+ "将应用对 openxiangda 的精确依赖升级到 2.21.3,并按锁文件重新安装依赖。",
149
+ "保留现有 openxiangda/react/styles.css 导入后重新启动开发服务器;业务应用不应新增 antd-mobile antd-mobile/es/global 依赖。"
154
150
  ],
155
151
  "knownLimitations": [
156
- "换绑只切换本地绑定,不在新平台创建应用或源码仓库;新平台的应用初始化与源码接入仍由 create source 命令完成。",
157
- "站点之间流动的只有代码(git);应用的数据库数据、发布历史与环境配置不会自动迁移。"
152
+ "本修复只拥有 Ant Design Mobile 的运行时测量与触摸机制,不改变应用主题、移动页面布局或业务组件样式。"
158
153
  ],
159
154
  "issues": [],
160
155
  "compatibility": {
161
156
  "node": ">=24",
162
157
  "workspaceGenerations": "v2",
163
- "platform": "无需服务端、数据库或平台容器升级。",
158
+ "platform": "无需 platform-server 配套升级;浏览器应用需使用本版本的 openxiangda/react。",
164
159
  "v1": "V1 工作区与维护引擎不受影响。"
165
160
  },
166
- "sha256": "a9e73cc57ddbb5febded6000c8c88a0fc83a64802d29bd82572fe6b65422e715",
167
- "url": "https://github.com/1377385356/openxiangda/releases/tag/v2.21.1"
161
+ "sha256": "61702a65c0e2780fda10622a33023c7123a695be39f0ac2379097c21bad19381",
162
+ "url": "https://github.com/1377385356/openxiangda/releases/tag/v2.21.3"
168
163
  },
169
164
  "scripts": {
170
165
  "build": "node ../../scripts/prune-package-dist.mjs && tsc -p tsconfig.json && node scripts/copy-assets.mjs",
@@ -0,0 +1,34 @@
1
+ {
2
+ "schemaVersion": "openxiangda.release-notes/v1",
3
+ "version": "2.21.2",
4
+ "status": "reviewed",
5
+ "title": "OpenXiangda 2.21.2:后端镜像分片 gzip 传输",
6
+ "summary": "为平台托管的 OCI 后端镜像上传增加可协商的 gzip 分片传输,解决部分测试环境中 VPN 或 HTTP 内容检测设备误断开特定 OCI 配置内容的问题,同时保持镜像原始字节、摘要、断点续传和 registry 所有权不变。",
7
+ "newFeatures": [
8
+ "平台可通过 backendImageUpload.chunkEncoding 声明 gzip 分片传输;新版 Devkit 仅在平台明确声明时压缩请求体,并发送 X-OpenXiangda-Chunk-Encoding: gzip。"
9
+ ],
10
+ "fixes": [
11
+ "后端镜像上传不再因测试环境明文 HTTP 路径对特定 OCI 配置字节的内容检测误杀而反复 ECONNRESET;未声明该能力的平台继续使用原始 octet-stream 分片。",
12
+ "修正 workflow 标识校验测试的 contract digest 绑定,使发布验证能够到达并断言预期的 workflow 专用错误。"
13
+ ],
14
+ "affectedUsers": [
15
+ "通过 OpenXiangda 2.0 向启用了平台托管镜像上传、且网络路径会检测明文 HTTP 内容的测试环境部署 Nest 后端的开发与维护会话。"
16
+ ],
17
+ "upgradeSteps": [
18
+ "先部署支持 backendImageUpload.chunkEncoding 的新版 platform-server,再将应用精确依赖升级到 openxiangda 2.21.2 并按锁文件安装。",
19
+ "重新执行 openxiangda deploy;新版客户端会从平台 capability 自动选择 gzip 或兼容的 raw 分片路径,无需应用代码配置。"
20
+ ],
21
+ "knownLimitations": [
22
+ "gzip 只用于兼容受约束的测试环境 HTTP 传输路径,不替代 TLS;生产环境仍必须使用 HTTPS。",
23
+ "平台未声明 chunkEncoding 时客户端不会主动启用 gzip,因此只升级客户端不能修复不支持该能力的旧平台。"
24
+ ],
25
+ "issues": [],
26
+ "compatibility": {
27
+ "node": ">=24",
28
+ "workspaceGenerations": "v2",
29
+ "platform": "要使用 gzip 分片,需配套升级到声明 backendImageUpload.chunkEncoding=gzip 的 platform-server;旧平台保持 raw 分片兼容。",
30
+ "v1": "V1 工作区与维护引擎不受影响。"
31
+ },
32
+ "sha256": "30f2bf73b459663800abcd53f6f951d6a0d50d6090eec1692be05ba321db2e24",
33
+ "url": "https://github.com/1377385356/openxiangda/releases/tag/v2.21.2"
34
+ }
@@ -0,0 +1,31 @@
1
+ {
2
+ "schemaVersion": "openxiangda.release-notes/v1",
3
+ "version": "2.21.3",
4
+ "status": "reviewed",
5
+ "title": "OpenXiangda 2.21.3:移动运行时全局机制初始化",
6
+ "summary": "由 OpenXiangda React 运行时在移动组件加载前初始化 Ant Design Mobile 所需的 px 测量与触摸激活机制,消除业务应用无法跨包导入 antd-mobile/es/global 时的启动告警,并继续保持视觉样式的作用域隔离。",
7
+ "newFeatures": [],
8
+ "fixes": [
9
+ "openxiangda/react 会在 Ant Design Mobile 组件求值前安装唯一且最小的 px tester 样式和 touchstart 机制,不再要求业务应用直接依赖 antd-mobile。",
10
+ "初始化只包含上游运行时机械规则,不引入 html、body、链接或按钮的全局视觉重置;移动默认样式仍由 openxiangda/react/styles.css 的作用域文件提供。"
11
+ ],
12
+ "affectedUsers": [
13
+ "使用 OpenXiangda 2.0 React 运行时或标准移动字段,并在开发控制台看到 antd-mobile Global px tester 告警的应用开发与维护会话。"
14
+ ],
15
+ "upgradeSteps": [
16
+ "将应用对 openxiangda 的精确依赖升级到 2.21.3,并按锁文件重新安装依赖。",
17
+ "保留现有 openxiangda/react/styles.css 导入后重新启动开发服务器;业务应用不应新增 antd-mobile 或 antd-mobile/es/global 依赖。"
18
+ ],
19
+ "knownLimitations": [
20
+ "本修复只拥有 Ant Design Mobile 的运行时测量与触摸机制,不改变应用主题、移动页面布局或业务组件样式。"
21
+ ],
22
+ "issues": [],
23
+ "compatibility": {
24
+ "node": ">=24",
25
+ "workspaceGenerations": "v2",
26
+ "platform": "无需 platform-server 配套升级;浏览器应用需使用本版本的 openxiangda/react。",
27
+ "v1": "V1 工作区与维护引擎不受影响。"
28
+ },
29
+ "sha256": "61702a65c0e2780fda10622a33023c7123a695be39f0ac2379097c21bad19381",
30
+ "url": "https://github.com/1377385356/openxiangda/releases/tag/v2.21.3"
31
+ }
@@ -4,7 +4,7 @@
4
4
  {
5
5
  "name": "openxiangda-v2",
6
6
  "description": "使用 OpenXiangda 2.0 从模糊业务想法、已有资料或具体变更出发,通过对话发现模块、完成详细产品设计,由当前 AI Agent 按需用 Image 2.5 等图片能力形成视觉参考,直接实现真实页面并在浏览器修正,再检查和交付应用;维护 1.x 应用时使用对应的 1.x 技能。",
7
- "sha256": "da8d59598a9fbd9217f7df8e730e9dafa32716144676b29d669c8022bef4070b"
7
+ "sha256": "f3239c46f13e67b63847e04d03ba3b4b12b113a0dc3a036c3a5f3fa0f3f82855"
8
8
  }
9
9
  ]
10
10
  }
@@ -40,10 +40,10 @@ AI 接到新应用、页面或改版任务时,在同一个 OpenXiangda 工作
40
40
  未创建工作区时使用本 Skill 随根包发布的精确版本:
41
41
 
42
42
  ```bash
43
- pnpm dlx openxiangda@2.21.1 auth status --cwd <应用目录> --base-url <平台地址> --json
44
- pnpm dlx openxiangda@2.21.1 login --cwd <应用目录> --base-url <平台地址>
45
- pnpm dlx openxiangda@2.21.1 create <应用目录> --base-url <同一平台地址>
46
- pnpm dlx openxiangda@2.21.1 skill install --force
43
+ pnpm dlx openxiangda@2.21.3 auth status --cwd <应用目录> --base-url <平台地址> --json
44
+ pnpm dlx openxiangda@2.21.3 login --cwd <应用目录> --base-url <平台地址>
45
+ pnpm dlx openxiangda@2.21.3 create <应用目录> --base-url <同一平台地址>
46
+ pnpm dlx openxiangda@2.21.3 skill install --force
47
47
  ```
48
48
 
49
49
  创建前把产品要求的目标平台明确带入命令,不从旧登录态推断站点。已有工作区从原绑定恢复,平台不一致时先解决登录与目标,不改 link 文件跨站创建。
@@ -68,10 +68,10 @@ MCP 服务随项目根包一起安装,AI 客户端的 stdio 连接仍需配置
68
68
  以下命令的版本占位符由随包资料替换为该根包的精确版本。网站源码阅读者应先确认要使用的发行版本。
69
69
 
70
70
  ```bash
71
- pnpm dlx openxiangda@2.21.1 skill install --force
72
- pnpm dlx openxiangda@2.21.1 auth status --base-url <平台地址> --json
73
- pnpm dlx openxiangda@2.21.1 login --cwd my-app --base-url https://platform.example.com
74
- pnpm dlx openxiangda@2.21.1 create my-app --base-url https://platform.example.com
71
+ pnpm dlx openxiangda@2.21.3 skill install --force
72
+ pnpm dlx openxiangda@2.21.3 auth status --base-url <平台地址> --json
73
+ pnpm dlx openxiangda@2.21.3 login --cwd my-app --base-url https://platform.example.com
74
+ pnpm dlx openxiangda@2.21.3 create my-app --base-url https://platform.example.com
75
75
  cd my-app
76
76
  pnpm openxiangda context --json
77
77
  pnpm openxiangda dev
@@ -174,9 +174,9 @@ MCP 的 `docs_read` 可以读取本说明,当前没有独立的源码操作 MC
174
174
  无需本地工作区,使用本 Skill 随包精确版本或已安装的对应 CLI:
175
175
 
176
176
  ```bash
177
- pnpm dlx openxiangda@2.21.1 auth status --base-url <平台> --json
178
- pnpm dlx openxiangda@2.21.1 source resolve <仓库URL> --base-url <平台> --json
179
- pnpm dlx openxiangda@2.21.1 source clone <仓库URL> <新目录> --base-url <平台> --json
177
+ pnpm dlx openxiangda@2.21.3 auth status --base-url <平台> --json
178
+ pnpm dlx openxiangda@2.21.3 source resolve <仓库URL> --base-url <平台> --json
179
+ pnpm dlx openxiangda@2.21.3 source clone <仓库URL> <新目录> --base-url <平台> --json
180
180
  ```
181
181
 
182
182
  登录缺失或站点不匹配时,先按该平台执行 login。resolve 根据平台已经登记的绑定返回