openxiangda 2.75.2 → 2.75.4

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.
@@ -298,11 +298,31 @@ await businessData.transaction({
298
298
  ```
299
299
 
300
300
  引用约束:引用对象只含 `operationIndex`(0..99 的整数)与 `field: 'id'` 两个键;
301
- 只能指向索引更小的 create 操作;引用不得嵌套在数组或对象里。违反形状报
301
+ 只能指向索引更小的 create 操作;普通字段引用不得嵌套在数组或对象里,关联资源字段的快照见下节。违反形状报
302
302
  `OPENXIANGDA_NATIVE_DATA_TRANSACTION_REFERENCE_INVALID`,嵌套报
303
303
  `..._NESTED`,目标不可解析报 `..._UNRESOLVED`。任一操作失败时整个事务回滚,
304
304
  不会留下无成员的 club。
305
305
 
306
+ ### 关联资源字段保留快照
307
+
308
+ `resource-ref.single` 字段仍需要资源代码、显示标签和 `value`。用 Nest 的
309
+ `resourceSnapshot` 将前序 create 引用放在唯一受支持的快照 `value` 位置;
310
+ 裸 UUID 引用不能代替资源字段快照:
311
+
312
+ ```ts
313
+ import { resourceSnapshot } from 'openxiangda/nest';
314
+ const operations = [
315
+ { operation: 'create' as const, resourceCode: 'orders', data: { name: '订单' } },
316
+ { operation: 'create' as const, resourceCode: 'order-lines', data: {
317
+ order: resourceSnapshot('orders', { operationIndex: 0, field: 'id' }, '订单'),
318
+ } },
319
+ ];
320
+ ```
321
+
322
+ 快照的 `resourceCode` 必须与前序 create 的资源一致。只允许既有快照元数据,
323
+ `value` 之外的对象、数组和 `snapshot` 中仍不接受事务引用;平台继续验证目标字段、
324
+ 引用和实际授权。字符串 ID 的 `resourceSnapshot` 调用保持原行为,助手不提交或重试请求。
325
+
306
326
  ## 业务动作与普通查询 {#business-action}
307
327
 
308
328
  `OpenXiangdaDataApiService` 按当前用户的普通资源、行和字段权限执行。具名业务动作使用 `OpenXiangdaBusinessDataApiService`:入口先检查该动作 capability,平台在精确应用和环境内以受信任后端执行,并保留发起人与动作审计。业务动作不能接受任意模型/字段/用户 ID 后不做业务校验;应用负责该动作的输入约束和业务不变量。
@@ -68,10 +68,10 @@ MCP 服务随项目根包一起安装,AI 客户端的 stdio 连接仍需配置
68
68
  以下命令的版本占位符由随包资料替换为该根包的精确版本。网站源码阅读者应先确认要使用的发行版本。
69
69
 
70
70
  ```bash
71
- pnpm dlx openxiangda@2.75.2 skill install --force
72
- pnpm dlx openxiangda@2.75.2 auth status --base-url <平台地址> --json
73
- pnpm dlx openxiangda@2.75.2 login --cwd my-app --base-url https://platform.example.com
74
- pnpm dlx openxiangda@2.75.2 create my-app --base-url https://platform.example.com
71
+ pnpm dlx openxiangda@2.75.4 skill install --force
72
+ pnpm dlx openxiangda@2.75.4 auth status --base-url <平台地址> --json
73
+ pnpm dlx openxiangda@2.75.4 login --cwd my-app --base-url https://platform.example.com
74
+ pnpm dlx openxiangda@2.75.4 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
@@ -221,9 +221,9 @@ MCP 的 `docs_read` 可以读取本说明,当前没有独立的源码操作 MC
221
221
  无需本地工作区,使用本 Skill 随包精确版本或已安装的对应 CLI:
222
222
 
223
223
  ```bash
224
- pnpm dlx openxiangda@2.75.2 auth status --base-url <平台> --json
225
- pnpm dlx openxiangda@2.75.2 source resolve <仓库URL> --base-url <平台> --json
226
- pnpm dlx openxiangda@2.75.2 source clone <仓库URL> <新目录> --base-url <平台> --json
224
+ pnpm dlx openxiangda@2.75.4 auth status --base-url <平台> --json
225
+ pnpm dlx openxiangda@2.75.4 source resolve <仓库URL> --base-url <平台> --json
226
+ pnpm dlx openxiangda@2.75.4 source clone <仓库URL> <新目录> --base-url <平台> --json
227
227
  ```
228
228
 
229
229
  登录缺失或站点不匹配时,先按该平台执行 login。resolve 根据平台已经登记的绑定返回
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "schemaVersion": "openxiangda.documentation/v1",
3
- "version": "2.75.2",
3
+ "version": "2.75.4",
4
4
  "topics": [
5
5
  {
6
6
  "id": "getting-started",
7
7
  "title": "安装与开始开发",
8
8
  "file": "getting-started.md",
9
- "sha256": "368891ebe87fb713fa821eae3840df131d8b3758f1d9678e000f2bb228583271"
9
+ "sha256": "b422cf542c35b0ddff8ab14562411a2a834fe4911fb10e329a0bd43043f52fbe"
10
10
  },
11
11
  {
12
12
  "id": "product-design",
@@ -102,7 +102,7 @@
102
102
  "id": "backend",
103
103
  "title": "按需后端与业务动作",
104
104
  "file": "backend.md",
105
- "sha256": "7c776eb18511e7dfcb58acbc20f7cc296871ca6360581ee72413c3aca4439fbf"
105
+ "sha256": "6662e54114190c883efa6b902afc3c62d05cd545000f75a871a4600b70c6203e"
106
106
  },
107
107
  {
108
108
  "id": "agent-cards",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "openxiangda",
3
- "version": "2.75.2",
3
+ "version": "2.75.4",
4
4
  "description": "OpenXiangda 2.0 的统一命令、应用 SDK、MCP 与中文 AI 技能资料。",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -95,13 +95,13 @@
95
95
  "dayjs": "1.11.18",
96
96
  "docx-preview": "0.3.7",
97
97
  "elkjs": "0.12.0",
98
- "openxiangda-cli": "2.11.14",
99
- "openxiangda-contracts": "2.95.2",
100
- "openxiangda-devkit-core": "2.71.3",
98
+ "openxiangda-cli": "2.11.16",
99
+ "openxiangda-contracts": "2.95.4",
100
+ "openxiangda-devkit-core": "2.71.5",
101
101
  "openxiangda-legacy": "npm:openxiangda@1.0.269",
102
- "openxiangda-mcp": "2.2.25",
103
- "openxiangda-nest": "2.22.5",
104
- "openxiangda-skill-kit": "2.3.128",
102
+ "openxiangda-mcp": "2.2.27",
103
+ "openxiangda-nest": "2.22.7",
104
+ "openxiangda-skill-kit": "2.3.130",
105
105
  "xlsx": "https://github.com/1377385356/openxiangda/releases/download/vendor-mirror/xlsx-0.20.3.tgz"
106
106
  },
107
107
  "peerDependencies": {
@@ -167,37 +167,34 @@
167
167
  },
168
168
  "openxiangdaRelease": {
169
169
  "schemaVersion": "openxiangda.release-notes/v1",
170
- "version": "2.75.2",
170
+ "version": "2.75.4",
171
171
  "status": "reviewed",
172
- "title": "流程条件在画布、列表和AI预览中保持中文可读",
173
- "summary": "统一使用已验证的中文选项展示条件,并保留显式通向拒绝结果的业务分支。原始值、表达式、审批人和授权不变。",
172
+ "title": "对齐 AppSpec 正式发布资料预算",
173
+ "summary": "将正式发布生命周期的 AppSpec 当前资料文件上限与公开文档中的 512 文件预算对齐,支持完整记录的大型应用通过生产晋级预检。",
174
174
  "newFeatures": [],
175
175
  "fixes": [
176
- "画布连线、提示、可访问节点列表及AI方案预览共用已验证的选项标签,不再在已有中文选项时重复显示英文编码。",
177
- "只读图按实际入边区分普通拒绝操作与显式业务条件,不再仅因结束结果为拒绝就隐藏业务分支。",
178
- "保留管理员自定义分支名、未知历史原值、原始标量类型、定义摘要和可执行图;根包与CLI模板版本成对更新。",
179
- "同步中文管理专题及Skill资料,说明WorkflowDiagram的可选展示选项与其不改变业务语义的边界。"
176
+ "生产生命周期校验使用 512 个当前 AppSpec 非资产文件上限,不再以过期的 128 文件硬编码阻断大型应用。",
177
+ "保留单文件、总字节、资产和上下文预算,继续拒绝超预算、非法类型和符号链接输入。"
180
178
  ],
181
179
  "affectedUsers": [
182
- "使用2.0流程设计器、只读流程图、节点列表和AI改图预览的应用。"
180
+ "当前 AppSpec 资料超过旧 128 文件上限、但仍符合 512 文件和字节预算的 OpenXiangda V2 应用。"
183
181
  ],
184
182
  "upgradeSteps": [
185
- "应用使用本轮精确根包版本及其锁定依赖组合,不手工混装物理包;目标平台先消费同源正式SDK并通过兼容预检。",
186
- "发布前保留未保存草稿,部署后核对原流程节点和绑定,再按真实管理员、审批人和发起人验收。"
183
+ "使用本轮七包精确版本组合,并先执行 openxiangda check 与生产 promotion preflight。",
184
+ "继续完整记录应用目标、变更、设计、评审和验收,不要通过删除或隐藏活动资料规避生命周期校验。"
187
185
  ],
188
186
  "knownLimitations": [
189
- "没有合法中文标签或类型不兼容的历史值继续显示原始值,不会猜测或改写业务编码。",
190
- "AI预览显示修复不代表模型可用;真实推理仍需单独配置平台执行服务、工作器及模型连接。",
191
- "本地纯测试和受控浏览器图不替代实际站点、角色、物理鼠标或真实模型验收。"
187
+ "本次修正只扩大与文档一致的当前资料文件预算,不放宽单文件、总字节、原型资产、上下文或真实验收门禁。",
188
+ "本地检查通过不代表目标站点的生产身份、通知、密钥和业务验收已经完成。"
192
189
  ],
193
190
  "compatibility": {
194
191
  "node": "Node.js 24 or newer for maintained toolchain",
195
192
  "generation": "OpenXiangda V2; V1 unchanged",
196
- "platform": "Requires anonymous-public/public/query-batch; each item reuses existing public policy and Native authorization"
193
+ "platform": "Requires the matching OpenXiangda V2 configuration compiler and compatibility preflight"
197
194
  },
198
195
  "issues": [],
199
- "sha256": "57283ba53d110aac43c3084bac70b23f29fecdaa4c7cdfd670840c238e80ee38",
200
- "url": "https://github.com/1377385356/openxiangda/releases/tag/v2.75.2"
196
+ "sha256": "474b635fec9ee5f30910d587fc9d293b042d67adae4666c85e6770bb0b8155de",
197
+ "url": "https://github.com/1377385356/openxiangda/releases/tag/v2.75.4"
201
198
  },
202
199
  "scripts": {
203
200
  "build": "node ../../scripts/prune-package-dist.mjs && tsc -p tsconfig.json && node scripts/copy-assets.mjs",
@@ -0,0 +1,31 @@
1
+ {
2
+ "schemaVersion": "openxiangda.release-notes/v1",
3
+ "version": "2.75.4",
4
+ "status": "reviewed",
5
+ "title": "对齐 AppSpec 正式发布资料预算",
6
+ "summary": "将正式发布生命周期的 AppSpec 当前资料文件上限与公开文档中的 512 文件预算对齐,支持完整记录的大型应用通过生产晋级预检。",
7
+ "newFeatures": [],
8
+ "fixes": [
9
+ "生产生命周期校验使用 512 个当前 AppSpec 非资产文件上限,不再以过期的 128 文件硬编码阻断大型应用。",
10
+ "保留单文件、总字节、资产和上下文预算,继续拒绝超预算、非法类型和符号链接输入。"
11
+ ],
12
+ "affectedUsers": [
13
+ "当前 AppSpec 资料超过旧 128 文件上限、但仍符合 512 文件和字节预算的 OpenXiangda V2 应用。"
14
+ ],
15
+ "upgradeSteps": [
16
+ "使用本轮七包精确版本组合,并先执行 openxiangda check 与生产 promotion preflight。",
17
+ "继续完整记录应用目标、变更、设计、评审和验收,不要通过删除或隐藏活动资料规避生命周期校验。"
18
+ ],
19
+ "knownLimitations": [
20
+ "本次修正只扩大与文档一致的当前资料文件预算,不放宽单文件、总字节、原型资产、上下文或真实验收门禁。",
21
+ "本地检查通过不代表目标站点的生产身份、通知、密钥和业务验收已经完成。"
22
+ ],
23
+ "compatibility": {
24
+ "node": "Node.js 24 or newer for maintained toolchain",
25
+ "generation": "OpenXiangda V2; V1 unchanged",
26
+ "platform": "Requires the matching OpenXiangda V2 configuration compiler and compatibility preflight"
27
+ },
28
+ "issues": [],
29
+ "sha256": "474b635fec9ee5f30910d587fc9d293b042d67adae4666c85e6770bb0b8155de",
30
+ "url": "https://github.com/1377385356/openxiangda/releases/tag/v2.75.4"
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": "58ffd109e9bf4d9de63151059e1e9fe22fba0bed4e3f33dffeca65752c24ab76"
7
+ "sha256": "95f0794e88e13644904770d12af1c31970ac61e9ce48ff84554594b8c133383c"
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.75.2 auth status --cwd <应用目录> --base-url <平台地址> --json
44
- pnpm dlx openxiangda@2.75.2 login --cwd <应用目录> --base-url <平台地址>
45
- pnpm dlx openxiangda@2.75.2 create <应用目录> --base-url <同一平台地址>
46
- pnpm dlx openxiangda@2.75.2 skill install --force
43
+ pnpm dlx openxiangda@2.75.4 auth status --cwd <应用目录> --base-url <平台地址> --json
44
+ pnpm dlx openxiangda@2.75.4 login --cwd <应用目录> --base-url <平台地址>
45
+ pnpm dlx openxiangda@2.75.4 create <应用目录> --base-url <同一平台地址>
46
+ pnpm dlx openxiangda@2.75.4 skill install --force
47
47
  ```
48
48
 
49
49
  创建前把产品要求的目标平台明确带入命令,不从旧登录态推断站点。已有工作区从原绑定恢复,平台不一致时先解决登录与目标,不改 link 文件跨站创建。
@@ -298,11 +298,31 @@ await businessData.transaction({
298
298
  ```
299
299
 
300
300
  引用约束:引用对象只含 `operationIndex`(0..99 的整数)与 `field: 'id'` 两个键;
301
- 只能指向索引更小的 create 操作;引用不得嵌套在数组或对象里。违反形状报
301
+ 只能指向索引更小的 create 操作;普通字段引用不得嵌套在数组或对象里,关联资源字段的快照见下节。违反形状报
302
302
  `OPENXIANGDA_NATIVE_DATA_TRANSACTION_REFERENCE_INVALID`,嵌套报
303
303
  `..._NESTED`,目标不可解析报 `..._UNRESOLVED`。任一操作失败时整个事务回滚,
304
304
  不会留下无成员的 club。
305
305
 
306
+ ### 关联资源字段保留快照
307
+
308
+ `resource-ref.single` 字段仍需要资源代码、显示标签和 `value`。用 Nest 的
309
+ `resourceSnapshot` 将前序 create 引用放在唯一受支持的快照 `value` 位置;
310
+ 裸 UUID 引用不能代替资源字段快照:
311
+
312
+ ```ts
313
+ import { resourceSnapshot } from 'openxiangda/nest';
314
+ const operations = [
315
+ { operation: 'create' as const, resourceCode: 'orders', data: { name: '订单' } },
316
+ { operation: 'create' as const, resourceCode: 'order-lines', data: {
317
+ order: resourceSnapshot('orders', { operationIndex: 0, field: 'id' }, '订单'),
318
+ } },
319
+ ];
320
+ ```
321
+
322
+ 快照的 `resourceCode` 必须与前序 create 的资源一致。只允许既有快照元数据,
323
+ `value` 之外的对象、数组和 `snapshot` 中仍不接受事务引用;平台继续验证目标字段、
324
+ 引用和实际授权。字符串 ID 的 `resourceSnapshot` 调用保持原行为,助手不提交或重试请求。
325
+
306
326
  ## 业务动作与普通查询 {#business-action}
307
327
 
308
328
  `OpenXiangdaDataApiService` 按当前用户的普通资源、行和字段权限执行。具名业务动作使用 `OpenXiangdaBusinessDataApiService`:入口先检查该动作 capability,平台在精确应用和环境内以受信任后端执行,并保留发起人与动作审计。业务动作不能接受任意模型/字段/用户 ID 后不做业务校验;应用负责该动作的输入约束和业务不变量。
@@ -68,10 +68,10 @@ MCP 服务随项目根包一起安装,AI 客户端的 stdio 连接仍需配置
68
68
  以下命令的版本占位符由随包资料替换为该根包的精确版本。网站源码阅读者应先确认要使用的发行版本。
69
69
 
70
70
  ```bash
71
- pnpm dlx openxiangda@2.75.2 skill install --force
72
- pnpm dlx openxiangda@2.75.2 auth status --base-url <平台地址> --json
73
- pnpm dlx openxiangda@2.75.2 login --cwd my-app --base-url https://platform.example.com
74
- pnpm dlx openxiangda@2.75.2 create my-app --base-url https://platform.example.com
71
+ pnpm dlx openxiangda@2.75.4 skill install --force
72
+ pnpm dlx openxiangda@2.75.4 auth status --base-url <平台地址> --json
73
+ pnpm dlx openxiangda@2.75.4 login --cwd my-app --base-url https://platform.example.com
74
+ pnpm dlx openxiangda@2.75.4 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
@@ -221,9 +221,9 @@ MCP 的 `docs_read` 可以读取本说明,当前没有独立的源码操作 MC
221
221
  无需本地工作区,使用本 Skill 随包精确版本或已安装的对应 CLI:
222
222
 
223
223
  ```bash
224
- pnpm dlx openxiangda@2.75.2 auth status --base-url <平台> --json
225
- pnpm dlx openxiangda@2.75.2 source resolve <仓库URL> --base-url <平台> --json
226
- pnpm dlx openxiangda@2.75.2 source clone <仓库URL> <新目录> --base-url <平台> --json
224
+ pnpm dlx openxiangda@2.75.4 auth status --base-url <平台> --json
225
+ pnpm dlx openxiangda@2.75.4 source resolve <仓库URL> --base-url <平台> --json
226
+ pnpm dlx openxiangda@2.75.4 source clone <仓库URL> <新目录> --base-url <平台> --json
227
227
  ```
228
228
 
229
229
  登录缺失或站点不匹配时,先按该平台执行 login。resolve 根据平台已经登记的绑定返回