openxiangda 2.34.3 → 2.35.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.
Files changed (152) hide show
  1. package/dist/browser/application.d.ts.map +1 -1
  2. package/dist/browser/application.js +5 -4
  3. package/dist/browser/application.js.map +1 -1
  4. package/dist/browser/components/resource/useResourceFormDrafts.d.ts.map +1 -1
  5. package/dist/browser/components/workflow/StandardWorkflowPages.d.ts +6 -2
  6. package/dist/browser/components/workflow/StandardWorkflowPages.d.ts.map +1 -1
  7. package/dist/browser/components/workflow/StandardWorkflowPages.js +6 -6
  8. package/dist/browser/components/workflow/StandardWorkflowPages.js.map +1 -1
  9. package/dist/browser/components/workflow/WorkflowDiagram.d.ts +16 -0
  10. package/dist/browser/components/workflow/WorkflowDiagram.d.ts.map +1 -0
  11. package/dist/browser/components/workflow/WorkflowDiagram.js +110 -0
  12. package/dist/browser/components/workflow/WorkflowDiagram.js.map +1 -0
  13. package/dist/browser/components/workflow/WorkflowFlowCanvas.d.ts +23 -0
  14. package/dist/browser/components/workflow/WorkflowFlowCanvas.d.ts.map +1 -0
  15. package/dist/browser/components/workflow/WorkflowFlowCanvas.js +78 -0
  16. package/dist/browser/components/workflow/WorkflowFlowCanvas.js.map +1 -0
  17. package/dist/browser/components/workflow/WorkflowNodeCard.d.ts +15 -0
  18. package/dist/browser/components/workflow/WorkflowNodeCard.d.ts.map +1 -0
  19. package/dist/browser/components/workflow/WorkflowNodeCard.js +13 -0
  20. package/dist/browser/components/workflow/WorkflowNodeCard.js.map +1 -0
  21. package/dist/browser/components/workflow/WorkflowNodeConfigurationEditor.d.ts +13 -0
  22. package/dist/browser/components/workflow/WorkflowNodeConfigurationEditor.d.ts.map +1 -0
  23. package/dist/browser/components/workflow/WorkflowNodeConfigurationEditor.js +150 -0
  24. package/dist/browser/components/workflow/WorkflowNodeConfigurationEditor.js.map +1 -0
  25. package/dist/browser/components/workflow/workflow-flow-layout.d.ts +28 -0
  26. package/dist/browser/components/workflow/workflow-flow-layout.d.ts.map +1 -0
  27. package/dist/browser/components/workflow/workflow-flow-layout.js +54 -0
  28. package/dist/browser/components/workflow/workflow-flow-layout.js.map +1 -0
  29. package/dist/browser/platform-client.d.ts +9 -0
  30. package/dist/browser/platform-client.d.ts.map +1 -1
  31. package/dist/browser/platform-client.js +157 -42
  32. package/dist/browser/platform-client.js.map +1 -1
  33. package/dist/browser/runtime-authorization-recovery.d.ts +7 -0
  34. package/dist/browser/runtime-authorization-recovery.d.ts.map +1 -0
  35. package/dist/browser/runtime-authorization-recovery.js +119 -0
  36. package/dist/browser/runtime-authorization-recovery.js.map +1 -0
  37. package/dist/browser/runtime.d.ts.map +1 -1
  38. package/dist/browser/runtime.js +34 -12
  39. package/dist/browser/runtime.js.map +1 -1
  40. package/dist/browser/styles.css +74 -0
  41. package/dist/core.d.ts +4 -0
  42. package/dist/core.d.ts.map +1 -1
  43. package/dist/core.js +2 -0
  44. package/dist/core.js.map +1 -1
  45. package/dist/react.d.ts +2 -0
  46. package/dist/react.d.ts.map +1 -1
  47. package/dist/react.js +2 -0
  48. package/dist/react.js.map +1 -1
  49. package/documentation/administration.md +63 -0
  50. package/documentation/getting-started.md +7 -7
  51. package/documentation/managed-concurrency.md +10 -0
  52. package/documentation/manifest.json +5 -5
  53. package/documentation/workflow-events.md +24 -0
  54. package/package.json +36 -23
  55. package/releases/2.35.0.json +42 -0
  56. package/releases/2.35.1.json +43 -0
  57. package/releases/2.35.2.json +45 -0
  58. package/releases/2.35.3.json +46 -0
  59. package/skills/manifest.json +1 -1
  60. package/skills/openxiangda-v2/SKILL.md +4 -4
  61. package/skills/openxiangda-v2/references/administration.md +63 -0
  62. package/skills/openxiangda-v2/references/getting-started.md +7 -7
  63. package/skills/openxiangda-v2/references/managed-concurrency.md +10 -0
  64. package/skills/openxiangda-v2/references/workflow-events.md +24 -0
  65. package/releases/2.0.0.json +0 -50
  66. package/releases/2.0.1.json +0 -39
  67. package/releases/2.1.0.json +0 -44
  68. package/releases/2.1.1.json +0 -48
  69. package/releases/2.10.0.json +0 -42
  70. package/releases/2.11.0.json +0 -41
  71. package/releases/2.12.0.json +0 -38
  72. package/releases/2.13.0.json +0 -41
  73. package/releases/2.13.1.json +0 -33
  74. package/releases/2.13.2.json +0 -31
  75. package/releases/2.14.0.json +0 -41
  76. package/releases/2.15.0.json +0 -40
  77. package/releases/2.16.0.json +0 -41
  78. package/releases/2.17.0.json +0 -39
  79. package/releases/2.17.1.json +0 -34
  80. package/releases/2.18.0.json +0 -37
  81. package/releases/2.18.1.json +0 -31
  82. package/releases/2.18.10.json +0 -29
  83. package/releases/2.18.2.json +0 -30
  84. package/releases/2.18.3.json +0 -30
  85. package/releases/2.18.9.json +0 -37
  86. package/releases/2.19.0.json +0 -38
  87. package/releases/2.2.0.json +0 -48
  88. package/releases/2.2.1.json +0 -35
  89. package/releases/2.2.2.json +0 -34
  90. package/releases/2.20.0.json +0 -36
  91. package/releases/2.20.1.json +0 -30
  92. package/releases/2.20.4.json +0 -30
  93. package/releases/2.21.0.json +0 -35
  94. package/releases/2.21.1.json +0 -36
  95. package/releases/2.21.2.json +0 -34
  96. package/releases/2.21.3.json +0 -31
  97. package/releases/2.21.4.json +0 -31
  98. package/releases/2.22.0.json +0 -35
  99. package/releases/2.22.1.json +0 -32
  100. package/releases/2.22.2.json +0 -35
  101. package/releases/2.22.3.json +0 -32
  102. package/releases/2.22.4.json +0 -33
  103. package/releases/2.22.5.json +0 -31
  104. package/releases/2.22.6.json +0 -29
  105. package/releases/2.22.7.json +0 -29
  106. package/releases/2.23.0.json +0 -34
  107. package/releases/2.24.0.json +0 -33
  108. package/releases/2.24.1.json +0 -33
  109. package/releases/2.24.2.json +0 -31
  110. package/releases/2.24.3.json +0 -33
  111. package/releases/2.25.0.json +0 -31
  112. package/releases/2.25.1.json +0 -33
  113. package/releases/2.25.2.json +0 -32
  114. package/releases/2.25.3.json +0 -32
  115. package/releases/2.26.0.json +0 -41
  116. package/releases/2.27.0.json +0 -38
  117. package/releases/2.28.0.json +0 -37
  118. package/releases/2.28.1.json +0 -34
  119. package/releases/2.29.0.json +0 -37
  120. package/releases/2.29.1.json +0 -34
  121. package/releases/2.29.2.json +0 -32
  122. package/releases/2.3.0.json +0 -37
  123. package/releases/2.30.0.json +0 -34
  124. package/releases/2.31.0.json +0 -39
  125. package/releases/2.31.1.json +0 -38
  126. package/releases/2.31.2.json +0 -34
  127. package/releases/2.31.3.json +0 -32
  128. package/releases/2.31.4.json +0 -33
  129. package/releases/2.31.5.json +0 -33
  130. package/releases/2.31.6.json +0 -29
  131. package/releases/2.31.7.json +0 -29
  132. package/releases/2.31.8.json +0 -33
  133. package/releases/2.31.9.json +0 -33
  134. package/releases/2.32.0.json +0 -38
  135. package/releases/2.33.0.json +0 -33
  136. package/releases/2.34.0.json +0 -38
  137. package/releases/2.34.1.json +0 -34
  138. package/releases/2.34.2.json +0 -36
  139. package/releases/2.34.3.json +0 -35
  140. package/releases/2.4.0.json +0 -37
  141. package/releases/2.4.1.json +0 -35
  142. package/releases/2.5.0.json +0 -37
  143. package/releases/2.6.0.json +0 -37
  144. package/releases/2.7.0.json +0 -37
  145. package/releases/2.7.1.json +0 -31
  146. package/releases/2.8.0.json +0 -32
  147. package/releases/2.8.1.json +0 -30
  148. package/releases/2.9.0.json +0 -33
  149. package/releases/2.9.1.json +0 -31
  150. package/releases/2.9.2.json +0 -33
  151. package/releases/2.9.3.json +0 -31
  152. package/releases/2.9.4.json +0 -37
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "openxiangda",
3
- "version": "2.34.3",
3
+ "version": "2.35.3",
4
4
  "description": "OpenXiangda 2.0 的统一命令、应用 SDK、MCP 与中文 AI 技能资料。",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -61,16 +61,18 @@
61
61
  "dependencies": {
62
62
  "@js-temporal/polyfill": "0.5.1",
63
63
  "@rc-component/picker": "1.10.0",
64
+ "@xyflow/react": "12.12.0",
64
65
  "antd-mobile": "5.42.3",
65
66
  "dayjs": "1.11.18",
66
67
  "docx-preview": "0.3.7",
67
- "openxiangda-cli": "2.6.17",
68
- "openxiangda-contracts": "2.34.0",
69
- "openxiangda-devkit-core": "2.35.0",
68
+ "elkjs": "0.12.0",
69
+ "openxiangda-cli": "2.6.21",
70
+ "openxiangda-contracts": "2.35.0",
71
+ "openxiangda-devkit-core": "2.36.0",
70
72
  "openxiangda-legacy": "npm:openxiangda@1.0.269",
71
- "openxiangda-mcp": "2.0.62",
72
- "openxiangda-nest": "2.11.0",
73
- "openxiangda-skill-kit": "2.3.40",
73
+ "openxiangda-mcp": "2.0.63",
74
+ "openxiangda-nest": "2.11.1",
75
+ "openxiangda-skill-kit": "2.3.41",
74
76
  "xlsx": "https://github.com/1377385356/openxiangda/releases/download/vendor-mirror/xlsx-0.20.3.tgz"
75
77
  },
76
78
  "peerDependencies": {
@@ -136,38 +138,49 @@
136
138
  },
137
139
  "openxiangdaRelease": {
138
140
  "schemaVersion": "openxiangda.release-notes/v1",
139
- "version": "2.34.3",
141
+ "version": "2.35.3",
140
142
  "status": "reviewed",
141
- "title": "OpenXiangda 2.34.3:显式长期只读繁忙恢复",
142
- "summary": "允许热点详情等只读页面显式选择最长三十分钟恢复;默认两分钟策略及持久申请原期限保持,取消与真实故障仍及时结束。",
143
+ "title": "OpenXiangda 2.35.3:运行时繁忙恢复与可读流程图",
144
+ "summary": "应用进入时可有界等待平台明确的繁忙响应,同身份刷新保留页面和原申请;流程图使用与不可变执行定义同源的投影展示说明、变量来源与实例路径。",
143
145
  "newFeatures": [
144
- "受管read、mine、result、allocation可显式设置budgetMs,超过120秒时最多恢复30分钟、120次请求;默认120秒和12次保持。"
146
+ "现有运行时 current 读取在明确的入口繁忙时按服务端提示和抖动退避,最长等待五分钟、最多一百二十次读取,并支持离页取消。",
147
+ "公开 WorkflowReadability、validateWorkflowReadability、projectWorkflowGraph 及共享 WorkflowDiagram,展示流程说明、条件优先级、变量来源和持久执行决定对应的路径,支持搜索、键盘及窄屏节点列表。",
148
+ "流程图使用懒加载 React Flow 与 ELK 正交布局,支持直角连线、平移缩放、节点定位、分支条件标签和缩略导航。",
149
+ "审批节点可显式声明管理员可调整的模式、人员来源和按钮上限;编译器复用有界校验,SDK 提供配置读取、CAS 更新和幂等回执,任务冻结有效配置。"
145
150
  ],
146
151
  "fixes": [
147
- "长期读取仍冻结原输入、身份与权限视角,按原调用截止及Retry-After/抖动退避;AbortSignal中止请求和等待。",
148
- "持久申请控制器显式保留原单次120秒上限,防止SDK扩展隐式改变既有受理和观察行为。"
152
+ "启动、焦点和可见性检查合并挂起身份读取;同身份刷新保留已验证页面和草稿,临时服务故障可重新检查,真实身份、环境、权限作用域变化或拒绝使旧受管客户端失效。",
153
+ "退出通知优先于仍在加载的身份请求,旧响应和取消回调不会恢复旧身份或覆盖登录入口。验证 current 成功后仅清除当前路径的入口等待截止。",
154
+ "安全只读传输故障最多三次总尝试;权限投影等待保留原十秒限制,普通应用请求和写入不会因本次修改自动重放。",
155
+ "管理员流程节点配置使用平台已有的 admin controller,修正上下文、配置读取和保存地址,保留环境、CAS、幂等操作标识与权限拒绝。",
156
+ "管理员流程节点配置保留平台返回的具体冲突错误码,页面可准确提示配置修订和幂等冲突。",
157
+ "StrictMode 同一提交的清理、重挂载接管原 current owner,避免重复初始化读取;观察取消立即生效,无人接管时释放共享请求,安装身份必须仍有活跃观察者,原读取预算与退出优先级保留。",
158
+ "标准任务和实例详情按应用声明返回对应设备的用户流程中心,避免普通申请人被带入管理后台;独立详情组件可显式指定返回路径,抽屉关闭和页面授权保持原行为。"
149
159
  ],
150
160
  "affectedUsers": [
151
- "使用受管热点详情和持久排队能力的活动报名、预约及抢票应用开发者。"
161
+ "使用 V2 运行时及持久排队能力的活动报名、预约、抢票应用开发者。",
162
+ "需要展示不可变流程定义、说明及实例执行路径,或启用有界审批节点配置的平台维护者和应用开发者。"
152
163
  ],
153
164
  "upgradeSteps": [
154
- "将应用openxiangda精确升级到2.34.3并刷新资料;应用按业务选择显式预算、离页取消及未结束窗口的固定截止。",
155
- "验证繁忙恢复、真实网络/权限/依赖错误、身份切换和持久申请原期限后部署测试环境,目标硬件容量另外实测。"
165
+ "将应用 openxiangda 精确升级到 2.35.3;平台流程图消费者将 openxiangda-contracts 精确升级到 2.35.0,同批工具链使用 openxiangda-devkit-core 2.36.0 和 openxiangda-cli 2.6.21,更新锁文件。",
166
+ "统一验证运行时繁忙恢复、同身份刷新、退出与真实身份切换,以及流程图说明与持久执行路径后发布同一冻结候选;启用管理员节点配置时确认平台支持 workflow.node-administration。",
167
+ "在目标服务器另外测量完整页面进入、提交、自然结果查询及最终处理时间;客户端恢复测试不作为硬件并发容量证据。"
156
168
  ],
157
169
  "knownLimitations": [
158
- "仅已知只读繁忙恢复;不吞未知429、网络、权限或依赖失败,不自动重试写入。",
159
- "客户端等待窗口不承诺服务端容量或最终处理时间,不代表已经受理或报名。",
160
- "长期恢复不自动启用,普通Data API、平台后端与V1业务不变;刷新固定窗口由应用生命周期接入。"
170
+ "运行时繁忙恢复只用于现有 current 读取;未知 429、权限或版本拒绝和非繁忙依赖失败不扩展等待,初始化成功不表示业务请求已经受理。",
171
+ "本次发布保留持久申请的原请求键、观察截止和自然轮询策略;队列的受理、执行和最终结果仍由平台负责。",
172
+ "流程图说明不改变不可变执行定义及持久实例决定,不补造不存在的执行边,也不改变流程授权。",
173
+ "管理员节点配置只调整应用明确开放的边界,字段行为继续由应用页面与代码维护;未声明该能力的应用不启用新的配置入口。"
161
174
  ],
162
175
  "issues": [],
163
176
  "compatibility": {
164
177
  "node": ">=24",
165
178
  "workspaceGenerations": "v2",
166
- "platform": "沿用data.managed-concurrency.durable@1.0.0;新入口429预算错误需要匹配平台版本。",
167
- "v1": "V1引擎及业务不变。"
179
+ "platform": "入口繁忙恢复需要平台提供 CONCURRENCY_BOOTSTRAP_BUSY 或 CONCURRENCY_API_BUSY 契约;可读流程图需要匹配的只读平台接口,管理员节点配置需要 workflow.node-administration 能力。持久排队沿用 data.managed-concurrency.durable@1.0.0。",
180
+ "v1": "V1 分发引擎及业务不变。"
168
181
  },
169
- "sha256": "fe3ba4a4c33af0e158cbe5bb7b25c9ba4c75e4ef97a02479eded9c71885d00ec",
170
- "url": "https://github.com/1377385356/openxiangda/releases/tag/v2.34.3"
182
+ "sha256": "31ce7268d3e443bf8fd5d26f0be82be6b1a24ff22f25d0735c7abf4a83fe92dd",
183
+ "url": "https://github.com/1377385356/openxiangda/releases/tag/v2.35.3"
171
184
  },
172
185
  "scripts": {
173
186
  "build": "node ../../scripts/prune-package-dist.mjs && tsc -p tsconfig.json && node scripts/copy-assets.mjs",
@@ -0,0 +1,42 @@
1
+ {
2
+ "schemaVersion": "openxiangda.release-notes/v1",
3
+ "version": "2.35.0",
4
+ "status": "reviewed",
5
+ "title": "OpenXiangda 2.35.0:运行时繁忙恢复与可读流程图",
6
+ "summary": "应用进入时可有界等待平台明确的繁忙响应,同身份刷新保留页面和原申请;流程图使用与不可变执行定义同源的投影展示说明、变量来源与实例路径。",
7
+ "newFeatures": [
8
+ "现有运行时 current 读取在明确的入口繁忙时按服务端提示和抖动退避,最长等待五分钟、最多一百二十次读取,并支持离页取消。",
9
+ "公开 WorkflowReadability、validateWorkflowReadability、projectWorkflowGraph 及共享 WorkflowDiagram,展示流程说明、条件优先级、变量来源和持久执行决定对应的路径,支持搜索、键盘及窄屏节点列表。",
10
+ "流程图使用懒加载 React Flow 与 ELK 正交布局,支持直角连线、平移缩放、节点定位、分支条件标签和缩略导航。",
11
+ "审批节点可显式声明管理员可调整的模式、人员来源和按钮上限;编译器复用有界校验,SDK 提供配置读取、CAS 更新和幂等回执,任务冻结有效配置。"
12
+ ],
13
+ "fixes": [
14
+ "启动、焦点和可见性检查合并挂起身份读取;同身份刷新保留已验证页面和草稿,临时服务故障可重新检查,真实身份、环境、权限作用域变化或拒绝使旧受管客户端失效。",
15
+ "退出通知优先于仍在加载的身份请求,旧响应和取消回调不会恢复旧身份或覆盖登录入口。验证 current 成功后仅清除当前路径的入口等待截止。",
16
+ "安全只读传输故障最多三次总尝试;权限投影等待保留原十秒限制,普通应用请求和写入不会因本次修改自动重放。"
17
+ ],
18
+ "affectedUsers": [
19
+ "使用 V2 运行时及持久排队能力的活动报名、预约、抢票应用开发者。",
20
+ "需要展示不可变流程定义、说明及实例执行路径,或启用有界审批节点配置的平台维护者和应用开发者。"
21
+ ],
22
+ "upgradeSteps": [
23
+ "将应用 openxiangda 精确升级到 2.35.0;平台流程图消费者将 openxiangda-contracts 精确升级到 2.35.0,同批工具链使用 openxiangda-devkit-core 2.36.0,更新锁文件。",
24
+ "统一验证运行时繁忙恢复、同身份刷新、退出与真实身份切换,以及流程图说明与持久执行路径后发布同一冻结候选;启用管理员节点配置时确认平台支持 workflow.node-administration。",
25
+ "在目标服务器另外测量完整页面进入、提交、自然结果查询及最终处理时间;客户端恢复测试不作为硬件并发容量证据。"
26
+ ],
27
+ "knownLimitations": [
28
+ "运行时繁忙恢复只用于现有 current 读取;未知 429、权限或版本拒绝和非繁忙依赖失败不扩展等待,初始化成功不表示业务请求已经受理。",
29
+ "本次发布保留持久申请的原请求键、观察截止和自然轮询策略;队列的受理、执行和最终结果仍由平台负责。",
30
+ "流程图说明不改变不可变执行定义及持久实例决定,不补造不存在的执行边,也不改变流程授权。",
31
+ "管理员节点配置只调整应用明确开放的边界,字段行为继续由应用页面与代码维护;未声明该能力的应用不启用新的配置入口。"
32
+ ],
33
+ "issues": [],
34
+ "compatibility": {
35
+ "node": ">=24",
36
+ "workspaceGenerations": "v2",
37
+ "platform": "入口繁忙恢复需要平台提供 CONCURRENCY_BOOTSTRAP_BUSY 或 CONCURRENCY_API_BUSY 契约;可读流程图需要匹配的只读平台接口,管理员节点配置需要 workflow.node-administration 能力。持久排队沿用 data.managed-concurrency.durable@1.0.0。",
38
+ "v1": "V1 分发引擎及业务不变。"
39
+ },
40
+ "sha256": "4151d5e02c0b8a93c0bbf12bb23bf3cf5cd71387976b1e07f8033e2113603a3a",
41
+ "url": "https://github.com/1377385356/openxiangda/releases/tag/v2.35.0"
42
+ }
@@ -0,0 +1,43 @@
1
+ {
2
+ "schemaVersion": "openxiangda.release-notes/v1",
3
+ "version": "2.35.1",
4
+ "status": "reviewed",
5
+ "title": "OpenXiangda 2.35.1:运行时繁忙恢复与可读流程图",
6
+ "summary": "应用进入时可有界等待平台明确的繁忙响应,同身份刷新保留页面和原申请;流程图使用与不可变执行定义同源的投影展示说明、变量来源与实例路径。",
7
+ "newFeatures": [
8
+ "现有运行时 current 读取在明确的入口繁忙时按服务端提示和抖动退避,最长等待五分钟、最多一百二十次读取,并支持离页取消。",
9
+ "公开 WorkflowReadability、validateWorkflowReadability、projectWorkflowGraph 及共享 WorkflowDiagram,展示流程说明、条件优先级、变量来源和持久执行决定对应的路径,支持搜索、键盘及窄屏节点列表。",
10
+ "流程图使用懒加载 React Flow 与 ELK 正交布局,支持直角连线、平移缩放、节点定位、分支条件标签和缩略导航。",
11
+ "审批节点可显式声明管理员可调整的模式、人员来源和按钮上限;编译器复用有界校验,SDK 提供配置读取、CAS 更新和幂等回执,任务冻结有效配置。"
12
+ ],
13
+ "fixes": [
14
+ "启动、焦点和可见性检查合并挂起身份读取;同身份刷新保留已验证页面和草稿,临时服务故障可重新检查,真实身份、环境、权限作用域变化或拒绝使旧受管客户端失效。",
15
+ "退出通知优先于仍在加载的身份请求,旧响应和取消回调不会恢复旧身份或覆盖登录入口。验证 current 成功后仅清除当前路径的入口等待截止。",
16
+ "安全只读传输故障最多三次总尝试;权限投影等待保留原十秒限制,普通应用请求和写入不会因本次修改自动重放。",
17
+ "管理员流程节点配置使用平台已有的 admin controller,修正上下文、配置读取和保存地址,保留环境、CAS、幂等操作标识与权限拒绝。"
18
+ ],
19
+ "affectedUsers": [
20
+ "使用 V2 运行时及持久排队能力的活动报名、预约、抢票应用开发者。",
21
+ "需要展示不可变流程定义、说明及实例执行路径,或启用有界审批节点配置的平台维护者和应用开发者。"
22
+ ],
23
+ "upgradeSteps": [
24
+ "将应用 openxiangda 精确升级到 2.35.1;平台流程图消费者将 openxiangda-contracts 精确升级到 2.35.0,同批工具链使用 openxiangda-devkit-core 2.36.0 和 openxiangda-cli 2.6.19,更新锁文件。",
25
+ "统一验证运行时繁忙恢复、同身份刷新、退出与真实身份切换,以及流程图说明与持久执行路径后发布同一冻结候选;启用管理员节点配置时确认平台支持 workflow.node-administration。",
26
+ "在目标服务器另外测量完整页面进入、提交、自然结果查询及最终处理时间;客户端恢复测试不作为硬件并发容量证据。"
27
+ ],
28
+ "knownLimitations": [
29
+ "运行时繁忙恢复只用于现有 current 读取;未知 429、权限或版本拒绝和非繁忙依赖失败不扩展等待,初始化成功不表示业务请求已经受理。",
30
+ "本次发布保留持久申请的原请求键、观察截止和自然轮询策略;队列的受理、执行和最终结果仍由平台负责。",
31
+ "流程图说明不改变不可变执行定义及持久实例决定,不补造不存在的执行边,也不改变流程授权。",
32
+ "管理员节点配置只调整应用明确开放的边界,字段行为继续由应用页面与代码维护;未声明该能力的应用不启用新的配置入口。"
33
+ ],
34
+ "issues": [],
35
+ "compatibility": {
36
+ "node": ">=24",
37
+ "workspaceGenerations": "v2",
38
+ "platform": "入口繁忙恢复需要平台提供 CONCURRENCY_BOOTSTRAP_BUSY 或 CONCURRENCY_API_BUSY 契约;可读流程图需要匹配的只读平台接口,管理员节点配置需要 workflow.node-administration 能力。持久排队沿用 data.managed-concurrency.durable@1.0.0。",
39
+ "v1": "V1 分发引擎及业务不变。"
40
+ },
41
+ "sha256": "80a635d3f30fc35010e13483dba6bf01245d2db6db80f6ee4ddc5e4f9b00efe0",
42
+ "url": "https://github.com/1377385356/openxiangda/releases/tag/v2.35.1"
43
+ }
@@ -0,0 +1,45 @@
1
+ {
2
+ "schemaVersion": "openxiangda.release-notes/v1",
3
+ "version": "2.35.2",
4
+ "status": "reviewed",
5
+ "title": "OpenXiangda 2.35.2:运行时繁忙恢复与可读流程图",
6
+ "summary": "应用进入时可有界等待平台明确的繁忙响应,同身份刷新保留页面和原申请;流程图使用与不可变执行定义同源的投影展示说明、变量来源与实例路径。",
7
+ "newFeatures": [
8
+ "现有运行时 current 读取在明确的入口繁忙时按服务端提示和抖动退避,最长等待五分钟、最多一百二十次读取,并支持离页取消。",
9
+ "公开 WorkflowReadability、validateWorkflowReadability、projectWorkflowGraph 及共享 WorkflowDiagram,展示流程说明、条件优先级、变量来源和持久执行决定对应的路径,支持搜索、键盘及窄屏节点列表。",
10
+ "流程图使用懒加载 React Flow 与 ELK 正交布局,支持直角连线、平移缩放、节点定位、分支条件标签和缩略导航。",
11
+ "审批节点可显式声明管理员可调整的模式、人员来源和按钮上限;编译器复用有界校验,SDK 提供配置读取、CAS 更新和幂等回执,任务冻结有效配置。"
12
+ ],
13
+ "fixes": [
14
+ "启动、焦点和可见性检查合并挂起身份读取;同身份刷新保留已验证页面和草稿,临时服务故障可重新检查,真实身份、环境、权限作用域变化或拒绝使旧受管客户端失效。",
15
+ "退出通知优先于仍在加载的身份请求,旧响应和取消回调不会恢复旧身份或覆盖登录入口。验证 current 成功后仅清除当前路径的入口等待截止。",
16
+ "安全只读传输故障最多三次总尝试;权限投影等待保留原十秒限制,普通应用请求和写入不会因本次修改自动重放。",
17
+ "管理员流程节点配置使用平台已有的 admin controller,修正上下文、配置读取和保存地址,保留环境、CAS、幂等操作标识与权限拒绝。",
18
+ "管理员流程节点配置保留平台返回的具体冲突错误码,页面可准确提示配置修订和幂等冲突。",
19
+ "StrictMode 同一提交的清理、重挂载接管原 current owner,避免重复初始化读取;观察取消立即生效,无人接管时释放共享请求,安装身份必须仍有活跃观察者,原读取预算与退出优先级保留。"
20
+ ],
21
+ "affectedUsers": [
22
+ "使用 V2 运行时及持久排队能力的活动报名、预约、抢票应用开发者。",
23
+ "需要展示不可变流程定义、说明及实例执行路径,或启用有界审批节点配置的平台维护者和应用开发者。"
24
+ ],
25
+ "upgradeSteps": [
26
+ "将应用 openxiangda 精确升级到 2.35.2;平台流程图消费者将 openxiangda-contracts 精确升级到 2.35.0,同批工具链使用 openxiangda-devkit-core 2.36.0 和 openxiangda-cli 2.6.20,更新锁文件。",
27
+ "统一验证运行时繁忙恢复、同身份刷新、退出与真实身份切换,以及流程图说明与持久执行路径后发布同一冻结候选;启用管理员节点配置时确认平台支持 workflow.node-administration。",
28
+ "在目标服务器另外测量完整页面进入、提交、自然结果查询及最终处理时间;客户端恢复测试不作为硬件并发容量证据。"
29
+ ],
30
+ "knownLimitations": [
31
+ "运行时繁忙恢复只用于现有 current 读取;未知 429、权限或版本拒绝和非繁忙依赖失败不扩展等待,初始化成功不表示业务请求已经受理。",
32
+ "本次发布保留持久申请的原请求键、观察截止和自然轮询策略;队列的受理、执行和最终结果仍由平台负责。",
33
+ "流程图说明不改变不可变执行定义及持久实例决定,不补造不存在的执行边,也不改变流程授权。",
34
+ "管理员节点配置只调整应用明确开放的边界,字段行为继续由应用页面与代码维护;未声明该能力的应用不启用新的配置入口。"
35
+ ],
36
+ "issues": [],
37
+ "compatibility": {
38
+ "node": ">=24",
39
+ "workspaceGenerations": "v2",
40
+ "platform": "入口繁忙恢复需要平台提供 CONCURRENCY_BOOTSTRAP_BUSY 或 CONCURRENCY_API_BUSY 契约;可读流程图需要匹配的只读平台接口,管理员节点配置需要 workflow.node-administration 能力。持久排队沿用 data.managed-concurrency.durable@1.0.0。",
41
+ "v1": "V1 分发引擎及业务不变。"
42
+ },
43
+ "sha256": "40f817d86f1533912f177d5b129f9eb4d224a08af0d150366dc53111fc323615",
44
+ "url": "https://github.com/1377385356/openxiangda/releases/tag/v2.35.2"
45
+ }
@@ -0,0 +1,46 @@
1
+ {
2
+ "schemaVersion": "openxiangda.release-notes/v1",
3
+ "version": "2.35.3",
4
+ "status": "reviewed",
5
+ "title": "OpenXiangda 2.35.3:运行时繁忙恢复与可读流程图",
6
+ "summary": "应用进入时可有界等待平台明确的繁忙响应,同身份刷新保留页面和原申请;流程图使用与不可变执行定义同源的投影展示说明、变量来源与实例路径。",
7
+ "newFeatures": [
8
+ "现有运行时 current 读取在明确的入口繁忙时按服务端提示和抖动退避,最长等待五分钟、最多一百二十次读取,并支持离页取消。",
9
+ "公开 WorkflowReadability、validateWorkflowReadability、projectWorkflowGraph 及共享 WorkflowDiagram,展示流程说明、条件优先级、变量来源和持久执行决定对应的路径,支持搜索、键盘及窄屏节点列表。",
10
+ "流程图使用懒加载 React Flow 与 ELK 正交布局,支持直角连线、平移缩放、节点定位、分支条件标签和缩略导航。",
11
+ "审批节点可显式声明管理员可调整的模式、人员来源和按钮上限;编译器复用有界校验,SDK 提供配置读取、CAS 更新和幂等回执,任务冻结有效配置。"
12
+ ],
13
+ "fixes": [
14
+ "启动、焦点和可见性检查合并挂起身份读取;同身份刷新保留已验证页面和草稿,临时服务故障可重新检查,真实身份、环境、权限作用域变化或拒绝使旧受管客户端失效。",
15
+ "退出通知优先于仍在加载的身份请求,旧响应和取消回调不会恢复旧身份或覆盖登录入口。验证 current 成功后仅清除当前路径的入口等待截止。",
16
+ "安全只读传输故障最多三次总尝试;权限投影等待保留原十秒限制,普通应用请求和写入不会因本次修改自动重放。",
17
+ "管理员流程节点配置使用平台已有的 admin controller,修正上下文、配置读取和保存地址,保留环境、CAS、幂等操作标识与权限拒绝。",
18
+ "管理员流程节点配置保留平台返回的具体冲突错误码,页面可准确提示配置修订和幂等冲突。",
19
+ "StrictMode 同一提交的清理、重挂载接管原 current owner,避免重复初始化读取;观察取消立即生效,无人接管时释放共享请求,安装身份必须仍有活跃观察者,原读取预算与退出优先级保留。",
20
+ "标准任务和实例详情按应用声明返回对应设备的用户流程中心,避免普通申请人被带入管理后台;独立详情组件可显式指定返回路径,抽屉关闭和页面授权保持原行为。"
21
+ ],
22
+ "affectedUsers": [
23
+ "使用 V2 运行时及持久排队能力的活动报名、预约、抢票应用开发者。",
24
+ "需要展示不可变流程定义、说明及实例执行路径,或启用有界审批节点配置的平台维护者和应用开发者。"
25
+ ],
26
+ "upgradeSteps": [
27
+ "将应用 openxiangda 精确升级到 2.35.3;平台流程图消费者将 openxiangda-contracts 精确升级到 2.35.0,同批工具链使用 openxiangda-devkit-core 2.36.0 和 openxiangda-cli 2.6.21,更新锁文件。",
28
+ "统一验证运行时繁忙恢复、同身份刷新、退出与真实身份切换,以及流程图说明与持久执行路径后发布同一冻结候选;启用管理员节点配置时确认平台支持 workflow.node-administration。",
29
+ "在目标服务器另外测量完整页面进入、提交、自然结果查询及最终处理时间;客户端恢复测试不作为硬件并发容量证据。"
30
+ ],
31
+ "knownLimitations": [
32
+ "运行时繁忙恢复只用于现有 current 读取;未知 429、权限或版本拒绝和非繁忙依赖失败不扩展等待,初始化成功不表示业务请求已经受理。",
33
+ "本次发布保留持久申请的原请求键、观察截止和自然轮询策略;队列的受理、执行和最终结果仍由平台负责。",
34
+ "流程图说明不改变不可变执行定义及持久实例决定,不补造不存在的执行边,也不改变流程授权。",
35
+ "管理员节点配置只调整应用明确开放的边界,字段行为继续由应用页面与代码维护;未声明该能力的应用不启用新的配置入口。"
36
+ ],
37
+ "issues": [],
38
+ "compatibility": {
39
+ "node": ">=24",
40
+ "workspaceGenerations": "v2",
41
+ "platform": "入口繁忙恢复需要平台提供 CONCURRENCY_BOOTSTRAP_BUSY 或 CONCURRENCY_API_BUSY 契约;可读流程图需要匹配的只读平台接口,管理员节点配置需要 workflow.node-administration 能力。持久排队沿用 data.managed-concurrency.durable@1.0.0。",
42
+ "v1": "V1 分发引擎及业务不变。"
43
+ },
44
+ "sha256": "31ce7268d3e443bf8fd5d26f0be82be6b1a24ff22f25d0735c7abf4a83fe92dd",
45
+ "url": "https://github.com/1377385356/openxiangda/releases/tag/v2.35.3"
46
+ }
@@ -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": "cef2746d78672c453d225e3609dcbee446b30898fa3e146b734a26b0cd3f6a92"
7
+ "sha256": "e70281f337585990895c4f75765c55b759167506656749d865fc749b6c2419ac"
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.34.3 auth status --cwd <应用目录> --base-url <平台地址> --json
44
- pnpm dlx openxiangda@2.34.3 login --cwd <应用目录> --base-url <平台地址>
45
- pnpm dlx openxiangda@2.34.3 create <应用目录> --base-url <同一平台地址>
46
- pnpm dlx openxiangda@2.34.3 skill install --force
43
+ pnpm dlx openxiangda@2.35.3 auth status --cwd <应用目录> --base-url <平台地址> --json
44
+ pnpm dlx openxiangda@2.35.3 login --cwd <应用目录> --base-url <平台地址>
45
+ pnpm dlx openxiangda@2.35.3 create <应用目录> --base-url <同一平台地址>
46
+ pnpm dlx openxiangda@2.35.3 skill install --force
47
47
  ```
48
48
 
49
49
  创建前把产品要求的目标平台明确带入命令,不从旧登录态推断站点。已有工作区从原绑定恢复,平台不一致时先解决登录与目标,不改 link 文件跨站创建。
@@ -25,3 +25,66 @@ MCP 对应 `workflow_node_configurations`。workflowCode 来自当前应用声
25
25
  确有业务需要时,使用 `openxiangda/core` 的角色管理 SDK。目录提供可管理角色、动作与授权范围;业务角色只能维护管理员已委托的范围。进一步委托要求 management.delegate,并受已有目标角色及动作子集限制。
26
26
 
27
27
  成员和委托修改带 UUID operationId、原因,更新/撤销带最新 expectedRevision;冲突后重新读取。应用不另建授权表、选择 actor 或自行保存权限快照。SDK 和当前用户数据边界见[权限](data-authz.md)。
28
+
29
+ ## 可读流程图与实例路径 {#workflow-graph}
30
+
31
+ 管理员在流程目录检索全部定义,查看指定版本的分支顺序、默认路径、变量类型/单位及来源。拓扑和条件由开发者发布;图和列表只用于查看。当前有效配置只叠加在匹配的激活定义上;历史实例使用固定定义和节点进入时的人员/配置,尚未执行的节点不计入执行路径。
32
+
33
+ 目录进入独立流程图地址,刷新及浏览器返回保留所查看流程/版本。共享组件按需加载 React Flow 与 ELK 正交布局:所有线段横平竖直、转角为直角;支持画布平移、滚轮缩放、适应全图、聚焦选中和缩略导航。分支标签可选中,详情保留完整条件、顺序和来源;窄屏采用同源节点列表,方向键/Home/End 定位节点。画布布局上限为 200 节点、1024 连线,不提供拖改、删除或连线编辑。
34
+
35
+ 应用自定义管理页面可复用当前用户客户端和共享图组件:
36
+
37
+ ```tsx
38
+ import { useEffect, useState } from 'react';
39
+ import { WorkflowDiagram } from 'openxiangda/react';
40
+ import { loadWorkflowDefinitionGraph, type WorkflowGraphReadResult } from 'openxiangda/core';
41
+
42
+ export function ReadableWorkflow({ workflowCode, version }: {
43
+ workflowCode: string; version: number;
44
+ }) {
45
+ const [result, setResult] = useState<WorkflowGraphReadResult>();
46
+ const [selected, setSelected] = useState('');
47
+ const [error, setError] = useState('');
48
+ useEffect(() => {
49
+ let cancelled = false;
50
+ setResult(undefined); setError('');
51
+ loadWorkflowDefinitionGraph(workflowCode, version).then(value => {
52
+ if (!cancelled) { setResult(value); setSelected(value.graph.startAt); }
53
+ }).catch(error => { if (!cancelled) setError(error.message); });
54
+ return () => { cancelled = true; };
55
+ }, [workflowCode, version]);
56
+ if (error) return <p role="alert">{error}</p>;
57
+ if (!result) return <p>正在读取流程</p>;
58
+ return <WorkflowDiagram graph={result.graph} selectedNodeId={selected} onSelectNode={setSelected} />;
59
+ }
60
+ ```
61
+
62
+ 组件运行在平台应用作用域内,SDK 使用当前用户,凭据及环境继续由平台管理。`loadWorkflowInstanceGraph(instanceId)` 返回固定版本、序列及持久访问记录,传入组件 `visits` 即可查看实际路径。两种管理读取都受服务端授权;不能给普通申请页暴露整个管理读面。
63
+
64
+ `titles`、`summaries` 只用于匹配版本的有效配置或进入快照;不能将今天的模式叠加到旧实例。可选 `selectedEdgeId/onSelectEdge` 将图上分支选择关联到自定义详情;它们不修改条件。实际边由访问记录的 `transition/matchedBranch` 确认,两个节点先后出现不能证明中间所有连线都被执行。
65
+
66
+ ## 有界节点配置与 SDK {#node-administration}
67
+
68
+ 开发者在审批节点的 `administration` 声明可维护的模式、人员来源和任务按钮。未声明这些项的节点保留名称、说明及原人员来源维护;拓扑、分支、范围计算仍由代码控制。使用新声明的应用需要平台 `workflow.node-administration@1.0.0`,编译与激活均检查该能力。
69
+
70
+ 模式为 `single/any/all/sequence` 的允许子集;来源限 `fixed_users/app_role/app_role_in_scope`,范围角色必须已有代码声明的 scope。按钮 code 保持同意、拒绝、退回、转交、委托、加签的稳定语义;同意和拒绝不能关闭。只有同意/拒绝支持意见规则,拒绝或代码已有必填意见不能放宽。字段显隐、填写与必填行为由应用页面和代码维护,不提供流程节点的字段管理覆盖。可编译声明见 `examples/workflow-administration/declaration.ts`。
71
+
72
+ 应用自定义管理页可使用 `WorkflowNodeConfigurationEditor`(`openxiangda/react`),输入同一读面中的节点、principals 和 context.headRevision,放在平台 App/UI 作用域内。它复用下列当前用户 SDK:
73
+
74
+ ```ts
75
+ import { loadApplicationAdministrationContext, loadWorkflowNodeConfigurations,
76
+ saveWorkflowNodeConfiguration } from 'openxiangda/core';
77
+
78
+ const context = await loadApplicationAdministrationContext();
79
+ const configuration = await loadWorkflowNodeConfigurations('requests');
80
+ const node = configuration.nodes.find(item => item.nodeId === 'review')!;
81
+ const operationId = crypto.randomUUID();
82
+ await saveWorkflowNodeConfiguration('requests', node.nodeId, {
83
+ expectedHeadRevision: context.headRevision!, expectedRevision: node.configuration.revision,
84
+ operationId, reason: '更新复审方式', patch: { mode: 'all' },
85
+ });
86
+ ```
87
+
88
+ 只有已声明允许 all 的节点可保存此例。输入最多 32KiB,人员 200、按钮文字 40 字。用 `patch: null` 恢复默认,也产生审计修订。结果未知时保留相同 operationId 和完整请求,查询后重试相同操作;确认的修订/Head 冲突先重新读取,不能覆盖别人。共享编辑器按审批人、审批按钮、名称与说明分组,显示配置来源、修订与生效范围;切组保留草稿,校验失败定位到相应分组。在冲突时保留草稿,加载最新基准后再次显式保存。
89
+
90
+ 新配置影响以后进入的节点,当前待办保留进入时模式、人员、按钮和必填意见;实时人员资格仍复核。含新增配置或快照的环境不能直接回退到忽略策略的旧服务器。
@@ -68,10 +68,10 @@ MCP 服务随项目根包一起安装,AI 客户端的 stdio 连接仍需配置
68
68
  以下命令的版本占位符由随包资料替换为该根包的精确版本。网站源码阅读者应先确认要使用的发行版本。
69
69
 
70
70
  ```bash
71
- pnpm dlx openxiangda@2.34.3 skill install --force
72
- pnpm dlx openxiangda@2.34.3 auth status --base-url <平台地址> --json
73
- pnpm dlx openxiangda@2.34.3 login --cwd my-app --base-url https://platform.example.com
74
- pnpm dlx openxiangda@2.34.3 create my-app --base-url https://platform.example.com
71
+ pnpm dlx openxiangda@2.35.3 skill install --force
72
+ pnpm dlx openxiangda@2.35.3 auth status --base-url <平台地址> --json
73
+ pnpm dlx openxiangda@2.35.3 login --cwd my-app --base-url https://platform.example.com
74
+ pnpm dlx openxiangda@2.35.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.34.3 auth status --base-url <平台> --json
178
- pnpm dlx openxiangda@2.34.3 source resolve <仓库URL> --base-url <平台> --json
179
- pnpm dlx openxiangda@2.34.3 source clone <仓库URL> <新目录> --base-url <平台> --json
177
+ pnpm dlx openxiangda@2.35.3 auth status --base-url <平台> --json
178
+ pnpm dlx openxiangda@2.35.3 source resolve <仓库URL> --base-url <平台> --json
179
+ pnpm dlx openxiangda@2.35.3 source clone <仓库URL> <新目录> --base-url <平台> --json
180
180
  ```
181
181
 
182
182
  登录缺失或站点不匹配时,先按该平台执行 login。resolve 根据平台已经登记的绑定返回
@@ -4,6 +4,16 @@
4
4
 
5
5
  页面开发参见[并发能力的前端接入](managed-concurrency-frontend.md):按热点详情、一键申请、填完再提交、短确认入口、预占确认和原结果恢复选择交互方式,并核对当前 API 与尚未提供的封装边界。
6
6
 
7
+ ## 开抢瞬间的完整请求链
8
+
9
+ 容量验收覆盖同一批用户的整条请求链:进入 HTML 和静态资源、运行时身份初始化、活动内容与本人状态、持久排队提交、后台执行、按原请求键恢复结果,以及页面的自然查询。为这些入口共同规划连接数、HTTP 在途数、数据库连接、回源和 worker 预算;只测 enqueue 或缓存命中,不能证明整条链能承受同一秒进入的人数。共享活动内容和本人状态分别使用合适的读取范围与失效依赖,排队阶段按服务端建议间隔和抖动查询,避免自然刷新再次形成尖峰。
10
+
11
+ 运行时 current 对明确繁忙响应最多恢复 300 秒,安全只读传输故障最多三次总尝试。它只帮助用户完成入口初始化,尚未持久受理业务申请;只有 enqueue 返回持久回执后才展示已受理。退出、真实身份变化、权限或版本拒绝仍应停止旧客户端。同身份检查保留页面和原申请,刷新或重新进入继续查原请求键,不自动创建第二次提交。
12
+
13
+ 资源不足时,通过独立 intake 预算保护新受理,再让持久命令在业务 deadline 内等待受控执行;等待、重试与恢复不延长原截止。资源充足时,根据已测的 CPU、数据库连接、锁竞争和完成率提高工作预算,分别调整受理、回源、查询与执行,不能只增加队列长度或 worker 数。业务需要三十分钟内完成时,同时核对命令自身的 acceptedAt/deadlineAt,以及从开抢时刻到最终结果的总耗时,入口等待不能被排除在体验指标之外。
14
+
15
+ 记录同一秒发起人数、进入成功率、持久受理率、明确拒绝、暂时无法确认、最终结果耗时分布、最老非终态与资源峰值。合成独立测试主体用于验证目标服务器的应用请求链;真实 SSO 认证、客户端网络和浏览器渲染容量需要另行验证,不能由合成压测推断。
16
+
7
17
  ## 声明与权限
8
18
 
9
19
  完整且由双编译器测试验证的示例位于源码 `examples/managed-concurrency/declaration.ts`。调用 `defineOpenXiangdaApp(concurrencyExample())` 即可编译。把示例中的 `data.concurrency` 合入应用配置,并按实际业务配置模型和参与权限。
@@ -104,6 +104,8 @@ events: {
104
104
 
105
105
  待办中心通过 Workflow 查询 `pending`、`handled`、`created`、`cc` 四种视图;消息中心默认向 Notification Hub 查询 `view=all`,沿用应用声明的渲染扩展。各入口按服务端 `detailNavigation` 打开详情,页面不自行拼接人员范围。
106
106
 
107
+ 标准任务和实例详情的“返回”由应用 Router 使用同一份 route manifest 中对应设备的流程中心路径;没有中心条目时返回已声明门户。普通用户无需管理后台权限。应用独立消费 `WorkflowTaskPage` 或 `WorkflowInstancePage` 时,可以传入本应用已声明的 `returnPath`,例如 `<WorkflowInstancePage variant="mobile" returnPath="/m/work-center" />`。抽屉的 `onDismiss` 仍负责关闭当前抽屉;返回导航不授予目标页面权限。
108
+
107
109
  抄送由动态 Surface 提供 `cc` 操作,使用 `user_select` 多选组件收集 1 至 20 位人员。任务 Surface 可以正式包含实例抄送命令;前端按 `operation.execute.href` 和该 Surface 的 token 提交,不另造任务命令或 token。公共事件为 `openxiangda.workflow.instance.cc_added.v2`。
108
110
 
109
111
  ## 钉钉卡片已读查询
@@ -378,3 +380,25 @@ Surface 上执行。
378
380
  ## 验证
379
381
 
380
382
  至少验证:完整标准详情投影、父子表边界、流程附件读取、桌面/移动独立渲染、全部标准操作、多人模式、重复/并发命令、stale revision、重启 replay、乱序事件、重复回调、消息终态全量更新、详情跳转、错用户/错租户/过期动作、渠道超时/unknown、死信重放和 1.x 零触碰。
383
+
384
+ ## 流程说明与变量来源 {#workflow-readability}
385
+
386
+ `definition.readability` 是可选说明,随不可变定义及其摘要发布。变量来源从实际 `inputSchema` 和 `subject.factProjection` 推导;不另行声明一个可编辑的条件图。例如,条件路径 `amountCents` 对应业务字段 `amountCents`,单选条件通常读取 `reason.value`:
387
+
388
+ ```ts
389
+ readability: {
390
+ variables: {
391
+ amountCents: { label: '申请金额', unit: '分', description: '提交记录中的非负整数金额' },
392
+ 'reason.value': { label: '休学原因值' },
393
+ },
394
+ logic: [{
395
+ code: 'submission-validation', title: '核验申请',
396
+ description: '提交时校验已声明字段;金额由表单直接提供',
397
+ phase: 'submission', inputPaths: ['amountCents'],
398
+ }],
399
+ }
400
+ ```
401
+
402
+ 说明的执行位置只能是 submission、某节点的 node_input 或 completion。它是对已有逻辑的注释,不会自动执行计算或产生新流程节点。没有实际计算步骤时,不应写成“系统已计算总金额”。条件的变量必须存在于输入 Schema;对旧未标注定义,读取投影会明确给出未知来源诊断。
403
+
404
+ 可选 `source: { path, symbol?, digest }` 只返回源码位置和 SHA256,不返回源码内容。path 指向工作区 apps/packages/platform 下的代码文件,digest 为 `sha256:<原始文件字节摘要>`。工作区加载时核对文件存在、无符号链接、大小和摘要;源码变化后以 WORKFLOW_LOGIC_DESCRIPTION_STALE 阻止封装,开发者应核实说明并更新引用。32 个文件、单文件 2MiB、总量 8MiB 为上限。元数据不能验证任意 TypeScript 的业务含义,业务说明及验收仍由开发者维护。
@@ -1,50 +0,0 @@
1
- {
2
- "schemaVersion": "openxiangda.release-notes/v1",
3
- "version": "2.0.0",
4
- "title": "OpenXiangda 2.0 正式版",
5
- "status": "reviewed",
6
- "summary": "以统一入口使用两代工作区,新应用默认采用 V2。V2 提供从需求设计到 React 应用、平台数据权限和应用交付的完整工具链。",
7
- "newFeatures": [
8
- "统一入口识别最近的 V1/V2 工作区,优先使用项目已安装的锁定引擎;无本地 V1 引擎的旧工作区使用随入口固定的 V1 维护引擎。",
9
- "新应用默认 V2:自然语言澄清产品需求,形成产品、页面、权限和架构设计基线,确认后再制定开发计划。",
10
- "V2 提供标准 PC/移动端 CRUD、字段组件、Data API 权限、流程与协作能力;默认本地 React 连接平台测试环境,Nest 后端按需使用。",
11
- "提供版本识别、分代更新、随包更新说明和 V1 到 V2 的只读迁移评估。"
12
- ],
13
- "fixes": [
14
- "全局入口切换到 V2 后,旧 V1 工作区仍由 V1 执行,不再因同名命令使用错误代际。",
15
- "项目工具链升级与全局入口升级明确分开;V1 维护渠道不再改写 latest。",
16
- "两代 Skill 使用独立入口,V1 安装不再覆盖统一入口或清理 V2 Skill。"
17
- ],
18
- "affectedUsers": [
19
- "新建应用的开发者",
20
- "需要继续维护 V1 工作区的开发者",
21
- "从 V2 alpha 升级的现有用户"
22
- ],
23
- "compatibility": {
24
- "node": ">=24",
25
- "workspaceGenerations": [
26
- "v1",
27
- "v2"
28
- ],
29
- "v1Policy": "保持现有配置、数据、流程、登录绑定与项目工具链代际;原 V1 CLI 可继续使用其原运行环境。",
30
- "platformPolicy": "V2 应用部署前按平台 capabilities 和配置验证器预检;工具版本不能代替平台实际部署版本。",
31
- "backendBuild": "Nest 镜像由开发者电脑上的 Docker 构建;普通 React/Nest 连接开发不要求本地平台或数据库。",
32
- "releaseChannels": "latest / stable-v2:V2 正式版;legacy-v1:V1 维护版;alpha:预发布。npm 不允许把 v1/v2 作为标签。"
33
- },
34
- "upgradeSteps": [
35
- "在 Node.js 24 环境安装统一入口:npm install -g openxiangda@2.0.0。",
36
- "进入已有项目运行 openxiangda version --json,核对工作区代际、实际引擎和解析来源。",
37
- "运行 openxiangda update check 查看本项目更新;需要升级时执行 openxiangda update install --target workspace。",
38
- "检查依赖与锁文件差异,刷新本项目 Skill,并完成项目检查、测试环境和真实角色业务验收后再晋级生产。",
39
- "V2 能力满足、项目仍在测试阶段且迁移成本可控时,优先建议 V1 项目采用 V2;先完成项目评估、设计确认和迁移验收。"
40
- ],
41
- "knownLimitations": [
42
- "V1 到 V2 首期仅提供本地源码迁移评估,不读取远端业务数据,也不自动迁移应用。",
43
- "源码扫描不会证明远端权限、流程和数据完整性;迁移须按项目制定映射、演练和回滚方案。",
44
- "内网或离线环境可读取随包说明;联网检查失败时保留当前工具与项目。",
45
- "内部支持 Agent 独立交付和验收,不随此 npm 版本自动部署。"
46
- ],
47
- "issues": [],
48
- "sha256": "a6100370946d253328c924c19f6577bac383c4633e3650d69b7ad378486ae880",
49
- "url": "https://github.com/1377385356/openxiangda/releases/tag/v2.0.0"
50
- }
@@ -1,39 +0,0 @@
1
- {
2
- "schemaVersion": "openxiangda.release-notes/v1",
3
- "version": "2.0.1",
4
- "title": "OpenXiangda pnpm 工作区识别修复",
5
- "status": "reviewed",
6
- "summary": "修复独立安装的统一入口进入 pnpm 工作区时无法找到项目 CLI 的问题,继续严格使用该项目锁定的同代引擎。",
7
- "newFeatures": [
8
- "本次为 2.0.0 的修复发布,没有新增应用能力。"
9
- ],
10
- "fixes": [
11
- "从 pnpm 符号链接指向的真实包目录解析 openxiangda-cli,避免 WORKSPACE_ENGINE_DEPENDENCY_MISSING。"
12
- ],
13
- "affectedUsers": [
14
- "使用全局或独立安装的统一入口维护 pnpm 工作区的开发者。"
15
- ],
16
- "compatibility": {
17
- "node": ">=24",
18
- "workspaceGenerations": [
19
- "v1",
20
- "v2"
21
- ],
22
- "v1Policy": "V1 应用保持原代际、版本锁定与登录绑定。",
23
- "platformPolicy": "没有新增平台能力要求,部署仍执行目标平台预检。",
24
- "backendBuild": "Nest 镜像继续由开发者电脑上的 Docker 构建。",
25
- "releaseChannels": "latest / stable-v2:V2 正式版;legacy-v1:V1 维护版;alpha:预发布。"
26
- },
27
- "upgradeSteps": [
28
- "在 Node.js 24 环境安装统一入口:npm install -g openxiangda@2.0.1。",
29
- "在项目及其子目录运行 openxiangda version --json,核对工作区代际、项目引擎版本和解析来源。",
30
- "需要更新 V2 项目依赖时运行 openxiangda update install --target workspace,检查锁文件并完成项目验收。"
31
- ],
32
- "knownLimitations": [
33
- "独立入口更新不会自动升级项目锁定的工具链,也不会迁移 V1 应用。",
34
- "已发布的 2.0.0 保持不可变;本修复不代表平台部署或业务验收已完成。"
35
- ],
36
- "issues": [],
37
- "sha256": "6bba13f70a956b58412da587fc9d7b50dd279fea809eae2461dd3515321a83dd",
38
- "url": "https://github.com/1377385356/openxiangda/releases/tag/v2.0.1"
39
- }
@@ -1,44 +0,0 @@
1
- {
2
- "schemaVersion": "openxiangda.release-notes/v1",
3
- "version": "2.1.0",
4
- "title": "OpenXiangda 平台托管应用镜像上传",
5
- "status": "reviewed",
6
- "summary": "应用 Nest 后端在本机构建为 OCI 镜像后,通过平台登录态分片上传。平台负责应用归属校验、镜像存储和运行时拉取,开发者无需取得平台维护者个人镜像仓库的推送权限。",
7
- "newFeatures": [
8
- "发现并优先使用平台 backendImageUpload 能力,导出 linux/amd64 OCI 镜像并上传有界分片。",
9
- "上传前校验本地镜像大小和摘要,复用已完成的镜像回执,并恢复分片传输中断。"
10
- ],
11
- "fixes": [
12
- "启用平台上传后,应用部署不再依赖开发者对平台维护者镜像仓库的推送权限。",
13
- "Docker classic image store 不支持 OCI 导出时,返回明确的 builder 配置指引。"
14
- ],
15
- "affectedUsers": [
16
- "声明可选 Nest 后端并通过 CLI 或 MCP 部署的 OpenXiangda 2.0 应用开发者。",
17
- "维护共享应用运行时及平台镜像存储的平台管理员。"
18
- ],
19
- "compatibility": {
20
- "node": ">=24",
21
- "workspaceGenerations": [
22
- "v1",
23
- "v2"
24
- ],
25
- "v1Policy": "V1 应用保持原代际、版本锁定与登录绑定。",
26
- "platformPolicy": "平台托管上传需要匹配的后端、Registry 和网关发布,并启用 backendImageUpload;旧平台继续使用既有构建合同。",
27
- "backendBuild": "可选 Nest 后端仍在开发者电脑上使用 Docker Buildx 构建,需要支持 OCI exporter 的 builder。",
28
- "releaseChannels": "latest / stable-v2:V2 正式版;legacy-v1:V1 维护版;alpha:预发布。"
29
- },
30
- "upgradeSteps": [
31
- "平台管理员先按部署运行手册准备镜像存储与凭据,再部署匹配的后端和网关。",
32
- "在 Node.js 24 环境安装统一入口:npm install -g openxiangda@2.1.0。",
33
- "更新 V2 项目锁定的工具链并刷新项目资料,核对平台上传能力后运行项目的 openxiangda deploy。"
34
- ],
35
- "knownLimitations": [
36
- "当前仅支持 linux/amd64 单平台 OCI 镜像;默认单镜像上限为 1Gi,由平台配置控制。",
37
- "已声明但未启用的平台上传能力会阻止部署,避免回退到个人镜像仓库推送。",
38
- "镜像保留与垃圾回收由平台运维单独管理;现有版本仍可能需要历史镜像进行部署或回滚。",
39
- "托管镜像开始使用后,后端回滚必须保留 Registry、持久卷、凭据和网关读取路由。"
40
- ],
41
- "issues": [],
42
- "sha256": "d7f6a21ddc37b3d2439350bf17f5f4575192168944dc33efb15460f7d1854aff",
43
- "url": "https://github.com/1377385356/openxiangda/releases/tag/v2.1.0"
44
- }