openxiangda 2.62.1 → 2.65.0

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 (197) hide show
  1. package/dist/browser/AuthoritativeSelector.d.ts +4 -3
  2. package/dist/browser/AuthoritativeSelector.d.ts.map +1 -1
  3. package/dist/browser/AuthoritativeSelector.js +25 -16
  4. package/dist/browser/AuthoritativeSelector.js.map +1 -1
  5. package/dist/browser/admin-contributions.d.ts +26 -0
  6. package/dist/browser/admin-contributions.d.ts.map +1 -1
  7. package/dist/browser/admin-contributions.js +30 -0
  8. package/dist/browser/admin-contributions.js.map +1 -1
  9. package/dist/browser/components/platform-fields/AttachmentFileList.d.ts +2 -1
  10. package/dist/browser/components/platform-fields/AttachmentFileList.d.ts.map +1 -1
  11. package/dist/browser/components/platform-fields/AttachmentFileList.js +3 -3
  12. package/dist/browser/components/platform-fields/AttachmentFileList.js.map +1 -1
  13. package/dist/browser/components/platform-fields/ResourceReferenceField.d.ts +4 -2
  14. package/dist/browser/components/platform-fields/ResourceReferenceField.d.ts.map +1 -1
  15. package/dist/browser/components/platform-fields/ResourceReferenceField.js +4 -4
  16. package/dist/browser/components/platform-fields/ResourceReferenceField.js.map +1 -1
  17. package/dist/browser/components/platform-fields/address-value.d.ts +2 -12
  18. package/dist/browser/components/platform-fields/address-value.d.ts.map +1 -1
  19. package/dist/browser/components/platform-fields/address-value.js +1 -69
  20. package/dist/browser/components/platform-fields/address-value.js.map +1 -1
  21. package/dist/browser/components/platform-fields/cascade-value.d.ts +2 -5
  22. package/dist/browser/components/platform-fields/cascade-value.d.ts.map +1 -1
  23. package/dist/browser/components/platform-fields/cascade-value.js +1 -46
  24. package/dist/browser/components/platform-fields/cascade-value.js.map +1 -1
  25. package/dist/browser/components/platform-fields/resource-query.d.ts +3 -19
  26. package/dist/browser/components/platform-fields/resource-query.d.ts.map +1 -1
  27. package/dist/browser/components/platform-fields/resource-query.js +2 -153
  28. package/dist/browser/components/platform-fields/resource-query.js.map +1 -1
  29. package/dist/browser/components/resource/GeneratedResourceCrud.d.ts +393 -2
  30. package/dist/browser/components/resource/GeneratedResourceCrud.d.ts.map +1 -1
  31. package/dist/browser/components/resource/GeneratedResourceCrud.js +148 -71
  32. package/dist/browser/components/resource/GeneratedResourceCrud.js.map +1 -1
  33. package/dist/browser/components/resource/GeneratedResourceForm.d.ts.map +1 -1
  34. package/dist/browser/components/resource/GeneratedResourceForm.js +7 -1
  35. package/dist/browser/components/resource/GeneratedResourceForm.js.map +1 -1
  36. package/dist/browser/components/resource/RecordDetailFrame.d.ts +4 -1
  37. package/dist/browser/components/resource/RecordDetailFrame.d.ts.map +1 -1
  38. package/dist/browser/components/resource/RecordDetailFrame.js +4 -2
  39. package/dist/browser/components/resource/RecordDetailFrame.js.map +1 -1
  40. package/dist/browser/components/resource/SurfaceFields.d.ts +4 -1
  41. package/dist/browser/components/resource/SurfaceFields.d.ts.map +1 -1
  42. package/dist/browser/components/resource/SurfaceFields.js +8 -8
  43. package/dist/browser/components/resource/SurfaceFields.js.map +1 -1
  44. package/dist/browser/components/resource/useResourceFormDrafts.d.ts.map +1 -1
  45. package/dist/browser/components/workflow/StandardWorkflowPages.d.ts +5 -2
  46. package/dist/browser/components/workflow/StandardWorkflowPages.d.ts.map +1 -1
  47. package/dist/browser/components/workflow/StandardWorkflowPages.js +107 -64
  48. package/dist/browser/components/workflow/StandardWorkflowPages.js.map +1 -1
  49. package/dist/browser/components/workflow/WorkflowBusinessStepEditor.d.ts +11 -0
  50. package/dist/browser/components/workflow/WorkflowBusinessStepEditor.d.ts.map +1 -0
  51. package/dist/browser/components/workflow/WorkflowBusinessStepEditor.js +55 -0
  52. package/dist/browser/components/workflow/WorkflowBusinessStepEditor.js.map +1 -0
  53. package/dist/browser/components/workflow/WorkflowBusinessStepRecoveryPanel.d.ts.map +1 -1
  54. package/dist/browser/components/workflow/WorkflowBusinessStepRecoveryPanel.js +13 -8
  55. package/dist/browser/components/workflow/WorkflowBusinessStepRecoveryPanel.js.map +1 -1
  56. package/dist/browser/components/workflow/WorkflowConditionConfigurationEditor.d.ts +18 -0
  57. package/dist/browser/components/workflow/WorkflowConditionConfigurationEditor.d.ts.map +1 -0
  58. package/dist/browser/components/workflow/WorkflowConditionConfigurationEditor.js +30 -0
  59. package/dist/browser/components/workflow/WorkflowConditionConfigurationEditor.js.map +1 -0
  60. package/dist/browser/components/workflow/WorkflowConditionEditor.d.ts +9 -0
  61. package/dist/browser/components/workflow/WorkflowConditionEditor.d.ts.map +1 -0
  62. package/dist/browser/components/workflow/WorkflowConditionEditor.js +33 -0
  63. package/dist/browser/components/workflow/WorkflowConditionEditor.js.map +1 -0
  64. package/dist/browser/components/workflow/WorkflowConditionExamples.d.ts +11 -0
  65. package/dist/browser/components/workflow/WorkflowConditionExamples.d.ts.map +1 -0
  66. package/dist/browser/components/workflow/WorkflowConditionExamples.js +52 -0
  67. package/dist/browser/components/workflow/WorkflowConditionExamples.js.map +1 -0
  68. package/dist/browser/components/workflow/WorkflowDesigner.d.ts +14 -0
  69. package/dist/browser/components/workflow/WorkflowDesigner.d.ts.map +1 -0
  70. package/dist/browser/components/workflow/WorkflowDesigner.js +586 -0
  71. package/dist/browser/components/workflow/WorkflowDesigner.js.map +1 -0
  72. package/dist/browser/components/workflow/WorkflowDesignerAssistant.d.ts +16 -0
  73. package/dist/browser/components/workflow/WorkflowDesignerAssistant.d.ts.map +1 -0
  74. package/dist/browser/components/workflow/WorkflowDesignerAssistant.js +75 -0
  75. package/dist/browser/components/workflow/WorkflowDesignerAssistant.js.map +1 -0
  76. package/dist/browser/components/workflow/WorkflowDiagram.d.ts +8 -2
  77. package/dist/browser/components/workflow/WorkflowDiagram.d.ts.map +1 -1
  78. package/dist/browser/components/workflow/WorkflowDiagram.js +6 -6
  79. package/dist/browser/components/workflow/WorkflowDiagram.js.map +1 -1
  80. package/dist/browser/components/workflow/WorkflowDraftHandlingEditor.d.ts +19 -0
  81. package/dist/browser/components/workflow/WorkflowDraftHandlingEditor.d.ts.map +1 -0
  82. package/dist/browser/components/workflow/WorkflowDraftHandlingEditor.js +22 -0
  83. package/dist/browser/components/workflow/WorkflowDraftHandlingEditor.js.map +1 -0
  84. package/dist/browser/components/workflow/WorkflowFlowCanvas.d.ts +7 -0
  85. package/dist/browser/components/workflow/WorkflowFlowCanvas.d.ts.map +1 -1
  86. package/dist/browser/components/workflow/WorkflowFlowCanvas.js +84 -23
  87. package/dist/browser/components/workflow/WorkflowFlowCanvas.js.map +1 -1
  88. package/dist/browser/components/workflow/WorkflowNodeCard.d.ts +2 -1
  89. package/dist/browser/components/workflow/WorkflowNodeCard.d.ts.map +1 -1
  90. package/dist/browser/components/workflow/WorkflowNodeCard.js +12 -10
  91. package/dist/browser/components/workflow/WorkflowNodeCard.js.map +1 -1
  92. package/dist/browser/components/workflow/WorkflowNodeConfigurationEditor.d.ts +13 -2
  93. package/dist/browser/components/workflow/WorkflowNodeConfigurationEditor.d.ts.map +1 -1
  94. package/dist/browser/components/workflow/WorkflowNodeConfigurationEditor.js +70 -23
  95. package/dist/browser/components/workflow/WorkflowNodeConfigurationEditor.js.map +1 -1
  96. package/dist/browser/components/workflow/WorkflowNotificationEditor.d.ts +20 -0
  97. package/dist/browser/components/workflow/WorkflowNotificationEditor.d.ts.map +1 -0
  98. package/dist/browser/components/workflow/WorkflowNotificationEditor.js +18 -0
  99. package/dist/browser/components/workflow/WorkflowNotificationEditor.js.map +1 -0
  100. package/dist/browser/components/workflow/WorkflowParallelConfigurationEditor.d.ts +10 -0
  101. package/dist/browser/components/workflow/WorkflowParallelConfigurationEditor.d.ts.map +1 -0
  102. package/dist/browser/components/workflow/WorkflowParallelConfigurationEditor.js +24 -0
  103. package/dist/browser/components/workflow/WorkflowParallelConfigurationEditor.js.map +1 -0
  104. package/dist/browser/components/workflow/WorkflowPeopleSourceEditor.d.ts +9 -0
  105. package/dist/browser/components/workflow/WorkflowPeopleSourceEditor.d.ts.map +1 -0
  106. package/dist/browser/components/workflow/WorkflowPeopleSourceEditor.js +13 -0
  107. package/dist/browser/components/workflow/WorkflowPeopleSourceEditor.js.map +1 -0
  108. package/dist/browser/components/workflow/WorkflowReminderEditor.d.ts +9 -0
  109. package/dist/browser/components/workflow/WorkflowReminderEditor.d.ts.map +1 -0
  110. package/dist/browser/components/workflow/WorkflowReminderEditor.js +23 -0
  111. package/dist/browser/components/workflow/WorkflowReminderEditor.js.map +1 -0
  112. package/dist/browser/components/workflow/WorkflowReturnPolicyEditor.d.ts +8 -0
  113. package/dist/browser/components/workflow/WorkflowReturnPolicyEditor.d.ts.map +1 -0
  114. package/dist/browser/components/workflow/WorkflowReturnPolicyEditor.js +34 -0
  115. package/dist/browser/components/workflow/WorkflowReturnPolicyEditor.js.map +1 -0
  116. package/dist/browser/components/workflow/WorkflowTaskForm.d.ts +1 -4
  117. package/dist/browser/components/workflow/WorkflowTaskForm.d.ts.map +1 -1
  118. package/dist/browser/components/workflow/WorkflowTaskForm.js +5 -6
  119. package/dist/browser/components/workflow/WorkflowTaskForm.js.map +1 -1
  120. package/dist/browser/components/workflow/workflow-approval-presentation.d.ts +13 -0
  121. package/dist/browser/components/workflow/workflow-approval-presentation.d.ts.map +1 -0
  122. package/dist/browser/components/workflow/workflow-approval-presentation.js +21 -0
  123. package/dist/browser/components/workflow/workflow-approval-presentation.js.map +1 -0
  124. package/dist/browser/components/workflow/workflow-designer-presentation.d.ts +13 -0
  125. package/dist/browser/components/workflow/workflow-designer-presentation.d.ts.map +1 -0
  126. package/dist/browser/components/workflow/workflow-designer-presentation.js +69 -0
  127. package/dist/browser/components/workflow/workflow-designer-presentation.js.map +1 -0
  128. package/dist/browser/components/workflow/workflow-flow-layout.d.ts +21 -11
  129. package/dist/browser/components/workflow/workflow-flow-layout.d.ts.map +1 -1
  130. package/dist/browser/components/workflow/workflow-flow-layout.js +28 -18
  131. package/dist/browser/components/workflow/workflow-flow-layout.js.map +1 -1
  132. package/dist/browser/components/workflow/workflow-operation-layout.d.ts +6 -0
  133. package/dist/browser/components/workflow/workflow-operation-layout.d.ts.map +1 -0
  134. package/dist/browser/components/workflow/workflow-operation-layout.js +17 -0
  135. package/dist/browser/components/workflow/workflow-operation-layout.js.map +1 -0
  136. package/dist/browser/components/workflow/workflow-parallel-layout.d.ts +37 -0
  137. package/dist/browser/components/workflow/workflow-parallel-layout.d.ts.map +1 -0
  138. package/dist/browser/components/workflow/workflow-parallel-layout.js +176 -0
  139. package/dist/browser/components/workflow/workflow-parallel-layout.js.map +1 -0
  140. package/dist/browser/platform-client.d.ts +71 -3
  141. package/dist/browser/platform-client.d.ts.map +1 -1
  142. package/dist/browser/platform-client.js +54 -4
  143. package/dist/browser/platform-client.js.map +1 -1
  144. package/dist/browser/record-detail.css +4 -3
  145. package/dist/browser/styles.css +386 -1
  146. package/dist/browser/workflow-approval.css +205 -0
  147. package/dist/browser/workflow-operation-input.d.ts.map +1 -1
  148. package/dist/browser/workflow-operation-input.js +1 -0
  149. package/dist/browser/workflow-operation-input.js.map +1 -1
  150. package/dist/config.d.ts +1 -0
  151. package/dist/config.d.ts.map +1 -1
  152. package/dist/core.d.ts +1 -0
  153. package/dist/core.d.ts.map +1 -1
  154. package/dist/core.js +1 -0
  155. package/dist/core.js.map +1 -1
  156. package/dist/react.d.ts +1 -0
  157. package/dist/react.d.ts.map +1 -1
  158. package/dist/react.js +1 -0
  159. package/dist/react.js.map +1 -1
  160. package/dist/resource.d.ts +22 -0
  161. package/dist/resource.d.ts.map +1 -0
  162. package/dist/resource.js +18 -0
  163. package/dist/resource.js.map +1 -0
  164. package/documentation/AGENTS.md +1 -1
  165. package/documentation/application-templates.md +37 -0
  166. package/documentation/field-components.md +10 -1
  167. package/documentation/frontend.md +14 -4
  168. package/documentation/getting-started.md +9 -7
  169. package/documentation/manifest.json +13 -7
  170. package/documentation/reference/cli.md +2 -0
  171. package/documentation/reference/mcp.md +238 -0
  172. package/documentation/workflow-events.md +33 -0
  173. package/package.json +26 -26
  174. package/releases/2.64.0.json +30 -0
  175. package/releases/2.65.0.json +30 -0
  176. package/skills/manifest.json +1 -1
  177. package/skills/openxiangda-v2/SKILL.md +7 -7
  178. package/skills/openxiangda-v2/references/application-templates.md +37 -0
  179. package/skills/openxiangda-v2/references/cli.md +2 -0
  180. package/skills/openxiangda-v2/references/field-components.md +10 -1
  181. package/skills/openxiangda-v2/references/frontend.md +14 -4
  182. package/skills/openxiangda-v2/references/getting-started.md +9 -7
  183. package/skills/openxiangda-v2/references/mcp.md +238 -0
  184. package/skills/openxiangda-v2/references/workflow-events.md +33 -0
  185. package/releases/2.20.1.json +0 -30
  186. package/releases/2.20.2.json +0 -30
  187. package/releases/2.20.3.json +0 -29
  188. package/releases/2.20.4.json +0 -30
  189. package/releases/2.31.5.json +0 -33
  190. package/releases/2.59.3.json +0 -36
  191. package/releases/2.60.0.json +0 -38
  192. package/releases/2.61.0.json +0 -39
  193. package/releases/2.61.1.json +0 -37
  194. package/releases/2.61.2.json +0 -32
  195. package/releases/2.61.3.json +0 -33
  196. package/releases/2.62.0.json +0 -40
  197. package/releases/2.62.1.json +0 -34
@@ -26,11 +26,11 @@
26
26
 
27
27
  ### 应用骨架优先与视觉页面边界
28
28
 
29
- 标准管理后台是每个业务应用的默认开发骨架,必须保留后台 Shell、显式菜单、资源表单、数据列表、详情/编辑、权限和流程入口。开发顺序先完成后台资源与契约,再实现用户端 PC/移动端;不能以用户端首页或设计原型替代后台。
29
+ 有管理任务的应用可选择源码后台模板,并在 ui.admin.shell 中挂载唯一外壳。应用拥有后台布局、资源列表和用户页面源码,可自由修改或重构;SDK 保留路由、当前用户权限与数据行为。模板选择是初始化,不增加第二套后台。
30
30
 
31
- Agent 可以在标准后台内部优化布局、视觉和交互,后台通过默认 Shell 或 `ui.admin` 扩展复用平台导航、字段行为和权限。用户端 PC 与移动端按真实旅程分别设计,通过平台 runtime/Data API 使用后台数据。图片参考和原型不拥有业务事实;禁止用图片、单页 HTML、iframe 或自定义假后台替换标准后台,也不能把后台权限、导航状态复制到用户端。
31
+ 资源页通过 resourcePages contribution 替换,列表从 openxiangda/resource 导入公共控制器和可组合块。未声明替换的旧应用仍用 SDK 默认页。PC/移动端和登录外观分别选择源码模板;登录共性行为留在 SDK。详见[源码模板与业务场景](application-templates.md)。
32
32
 
33
- 发布前分别验证后台入口、表单、数据列表、流程入口和用户端 PC/移动端入口;没有完成后台骨架的应用不得发布。
33
+ 按真实任务实现并分别验证后台、表单、数据列表、按需流程及 PC/移动入口。没有管理任务时不强行添加后台;图片和原型只提供视觉参考,不能替代实际路由、授权、业务交互和验收。
34
34
 
35
35
  | 任务 | 页面与组件起点 |
36
36
  | --- | --- |
@@ -359,7 +359,17 @@ typed timeline 和 operation descriptors。业务字段继续使用平台 `Surfa
359
359
  PC canonical 路径为 `/tasks/:taskId` 和 `/workflows/:instanceId`,使用独立全屏页面而不进入
360
360
  后台 Shell;旧 admin 详情路径不存在。桌面和移动使用独立
361
361
  renderer,但共享同一授权与命令生命周期。主决策操作固定在底部,
362
- 低频操作统一进入“更多操作”;意见输入延迟到动作确认层,页面不常驻空白意见表单。
362
+ 低频操作进入“更多”;意见输入延迟到动作确认层,页面不常驻空白意见表单。
363
+ 审批内容与本节点补填先于审批进度,附件独立展示,资料变更收进进度卡底部,默认折叠并在展开后加载,不使用内容 Tabs。
364
+ PC 使用摘要页头、内容主栏与审批进度/参与人侧栏;移动端使用居中流程名称、纵向字段列表和底部单行操作栏。当前会签计数只读取当前任务的真实参与人,历史节点不推测审批模式。
365
+ 宽度足够时桌面右侧显示进度栏;窄屏按同一阅读顺序堆叠。移动端显示邻近三个节点,并可查看全部进度。
366
+
367
+ 审批详情不展示私有草稿入口。服务端提供的“保存”位于“更多”,仅保存当前填写的申请数据,不推进审批流程。`uiSchema.presentation: direct` 的操作直接复用同一提交控制器,保留权限、字段校验、数据修订与原请求恢复边界。
368
+ 操作顺序消费服务端可选的 `prominence`(正整数越小越突出,`null` 表示更多)和 `consequence`,
369
+ 不由应用猜测权限或重写命令。手机最多两项主操作与更多入口保持单行,桌面最多三项主操作;
370
+ 配套服务端将同意/重新提交、退回、拒绝申请依次排列,保存进入更多。
371
+ 旧服务端缺少这些元数据时沿用其 `placement`/`emphasis`。表单、上传、原请求恢复、
372
+ 权限撤回和写入成功后刷新失败仍由同一 SDK controller 处理。
363
373
  页面只显示非系统业务字段与节点内操作,不展示 UUID、revision、事件序列或技术信息区;
364
374
  `stale` 不产生常驻提示,真实命令冲突才显示刷新提示。
365
375
  应用只有在业务交互确实不能由标准页表达时才声明成对的 custom detail route。
@@ -68,10 +68,10 @@ MCP 服务随项目根包一起安装,AI 客户端的 stdio 连接仍需配置
68
68
  以下命令的版本占位符由随包资料替换为该根包的精确版本。网站源码阅读者应先确认要使用的发行版本。
69
69
 
70
70
  ```bash
71
- pnpm dlx openxiangda@2.62.1 skill install --force
72
- pnpm dlx openxiangda@2.62.1 auth status --base-url <平台地址> --json
73
- pnpm dlx openxiangda@2.62.1 login --cwd my-app --base-url https://platform.example.com
74
- pnpm dlx openxiangda@2.62.1 create my-app --base-url https://platform.example.com
71
+ pnpm dlx openxiangda@2.65.0 skill install --force
72
+ pnpm dlx openxiangda@2.65.0 auth status --base-url <平台地址> --json
73
+ pnpm dlx openxiangda@2.65.0 login --cwd my-app --base-url https://platform.example.com
74
+ pnpm dlx openxiangda@2.65.0 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
@@ -79,6 +79,8 @@ pnpm openxiangda dev
79
79
 
80
80
  将两处示例平台地址替换为同一个目标地址。`create` 先核对目标与当前登录平台,再创建本地目录、安装依赖并初始化远端应用;新应用不会自动沿用文件中最后登录的站点。CI 使用原有成对的 `OPENXIANGDA_BASE_URL` 和 `OPENXIANGDA_TOKEN` 时,可以由该显式地址指定目标。
81
81
 
82
+ 已有明确业务时可加 `--scenario visitor` 或 `--scenario crud`,使用 `template list --json` 查看四类布局、风格和模块。模板复制为应用源码,可独立修改;详见[源码模板与业务场景](application-templates.md)。
83
+
82
84
  初始化中断后重试同一命令;已有目录会核对原平台绑定,不能通过 `create` 改绑到其他站点。地址不一致时先检查目标并登录正确的平台;确需把工作区切换到其他站点时,使用 `openxiangda link rebind --base-url <新平台>` 显式换绑(见[跨站点与换绑](#cross-site)),不手改 link 文件绕过检查,也不要使用内部 provision 接口另建应用。创建操作应在用户要求创建应用的范围内执行。
83
85
 
84
86
  进入项目后使用 `pnpm openxiangda`,由项目依赖和锁文件决定版本。查看使用资料运行 `pnpm openxiangda docs`;查看单一主题运行 `pnpm openxiangda docs frontend`。安装到其他 AI 工具时使用 `skill install --destination <Skill根目录>`。
@@ -203,9 +205,9 @@ MCP 的 `docs_read` 可以读取本说明,当前没有独立的源码操作 MC
203
205
  无需本地工作区,使用本 Skill 随包精确版本或已安装的对应 CLI:
204
206
 
205
207
  ```bash
206
- pnpm dlx openxiangda@2.62.1 auth status --base-url <平台> --json
207
- pnpm dlx openxiangda@2.62.1 source resolve <仓库URL> --base-url <平台> --json
208
- pnpm dlx openxiangda@2.62.1 source clone <仓库URL> <新目录> --base-url <平台> --json
208
+ pnpm dlx openxiangda@2.65.0 auth status --base-url <平台> --json
209
+ pnpm dlx openxiangda@2.65.0 source resolve <仓库URL> --base-url <平台> --json
210
+ pnpm dlx openxiangda@2.65.0 source clone <仓库URL> <新目录> --base-url <平台> --json
209
211
  ```
210
212
 
211
213
  登录缺失或站点不匹配时,先按该平台执行 login。resolve 根据平台已经登记的绑定返回
@@ -59,6 +59,25 @@ MCP 使用项目锁定的根包;在客户端配置下列 stdio 启动参数,
59
59
  }
60
60
  ```
61
61
 
62
+ ## template_list
63
+
64
+ 发现源码模板。列出业务场景、模块依赖、四类源码外壳和主题;创建使用 CLI,不执行远端操作。
65
+
66
+ - 只读:是
67
+ - 可替换文件或改变远端状态:否
68
+ - 幂等:否
69
+
70
+ 输入参数:
71
+
72
+ ```json
73
+ {
74
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
75
+ "type": "object",
76
+ "properties": {},
77
+ "additionalProperties": false
78
+ }
79
+ ```
80
+
62
81
  ## workspace_context
63
82
 
64
83
  查看工作区。首先读取当前项目、工具链版本和绑定,不运行构建或创建远端对象。
@@ -1356,6 +1375,225 @@ MCP 使用项目锁定的根包;在客户端配置下列 stdio 启动参数,
1356
1375
  }
1357
1376
  ```
1358
1377
 
1378
+ ## workflow_sync
1379
+
1380
+ 同步流程到目标环境。按目标流程修订号显式同步,默认同时更新在途和新申请;复用发布及版本适用规则。保留指定人员边界。
1381
+
1382
+ - 只读:否
1383
+ - 可替换文件或改变远端状态:是
1384
+ - 幂等:是
1385
+
1386
+ 输入参数:
1387
+
1388
+ ```json
1389
+ {
1390
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1391
+ "type": "object",
1392
+ "properties": {
1393
+ "workflowCode": {
1394
+ "type": "string",
1395
+ "minLength": 1,
1396
+ "maxLength": 128
1397
+ },
1398
+ "fromEnvironment": {
1399
+ "type": "string",
1400
+ "enum": [
1401
+ "test",
1402
+ "production"
1403
+ ]
1404
+ },
1405
+ "toEnvironment": {
1406
+ "type": "string",
1407
+ "enum": [
1408
+ "test",
1409
+ "production"
1410
+ ]
1411
+ },
1412
+ "expectedSourceHeadRevision": {
1413
+ "type": "integer",
1414
+ "minimum": 1,
1415
+ "maximum": 9007199254740991
1416
+ },
1417
+ "expectedTargetHeadRevision": {
1418
+ "type": "integer",
1419
+ "minimum": 1,
1420
+ "maximum": 9007199254740991
1421
+ },
1422
+ "operationId": {
1423
+ "type": "string",
1424
+ "minLength": 1,
1425
+ "maxLength": 128
1426
+ },
1427
+ "reason": {
1428
+ "type": "string",
1429
+ "minLength": 1,
1430
+ "maxLength": 1000
1431
+ },
1432
+ "scope": {
1433
+ "type": "string",
1434
+ "enum": [
1435
+ "running_and_new",
1436
+ "new_only"
1437
+ ]
1438
+ },
1439
+ "acknowledgeExceptions": {
1440
+ "type": "boolean"
1441
+ },
1442
+ "copyHandlingDefaults": {
1443
+ "type": "boolean"
1444
+ }
1445
+ },
1446
+ "required": [
1447
+ "workflowCode",
1448
+ "fromEnvironment",
1449
+ "toEnvironment",
1450
+ "expectedSourceHeadRevision",
1451
+ "expectedTargetHeadRevision",
1452
+ "operationId",
1453
+ "reason"
1454
+ ],
1455
+ "additionalProperties": false
1456
+ }
1457
+ ```
1458
+
1459
+ ## workflow_export
1460
+
1461
+ 导出流程到工作区。只读导出环境中的规范定义、绑定和办理设置摘要;不包含运行记录或环境内部标识。
1462
+
1463
+ - 只读:否
1464
+ - 可替换文件或改变远端状态:否
1465
+ - 幂等:否
1466
+
1467
+ 输入参数:
1468
+
1469
+ ```json
1470
+ {
1471
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1472
+ "type": "object",
1473
+ "properties": {
1474
+ "environment": {
1475
+ "default": "test",
1476
+ "description": "目标环境;默认 test,production 必须明确选择",
1477
+ "type": "string",
1478
+ "enum": [
1479
+ "test",
1480
+ "production"
1481
+ ]
1482
+ },
1483
+ "workflowCode": {
1484
+ "type": "string",
1485
+ "minLength": 1
1486
+ },
1487
+ "out": {
1488
+ "type": "string",
1489
+ "minLength": 1
1490
+ }
1491
+ },
1492
+ "required": [
1493
+ "workflowCode",
1494
+ "out"
1495
+ ],
1496
+ "additionalProperties": false
1497
+ }
1498
+ ```
1499
+
1500
+ ## workflow_import
1501
+
1502
+ 把流程导入源码。验证代码能力和摘要后修改工作区显式流程声明,保留人员配置边界。
1503
+
1504
+ - 只读:否
1505
+ - 可替换文件或改变远端状态:是
1506
+ - 幂等:否
1507
+
1508
+ 输入参数:
1509
+
1510
+ ```json
1511
+ {
1512
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1513
+ "type": "object",
1514
+ "properties": {
1515
+ "path": {
1516
+ "type": "string",
1517
+ "minLength": 1
1518
+ },
1519
+ "adoptHandlingDefaults": {
1520
+ "default": false,
1521
+ "type": "boolean"
1522
+ }
1523
+ },
1524
+ "required": [
1525
+ "path"
1526
+ ],
1527
+ "additionalProperties": false
1528
+ }
1529
+ ```
1530
+
1531
+ ## workflow_plan_registration
1532
+
1533
+ 规划流程版本登记。服务器只读查询已有摘要和下一版本数字;write 只写源码版本数字,不写环境观察。
1534
+
1535
+ - 只读:否
1536
+ - 可替换文件或改变远端状态:否
1537
+ - 幂等:否
1538
+
1539
+ 输入参数:
1540
+
1541
+ ```json
1542
+ {
1543
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1544
+ "type": "object",
1545
+ "properties": {
1546
+ "environment": {
1547
+ "default": "test",
1548
+ "description": "目标环境;默认 test,production 必须明确选择",
1549
+ "type": "string",
1550
+ "enum": [
1551
+ "test",
1552
+ "production"
1553
+ ]
1554
+ },
1555
+ "write": {
1556
+ "default": false,
1557
+ "type": "boolean"
1558
+ }
1559
+ },
1560
+ "additionalProperties": false
1561
+ }
1562
+ ```
1563
+
1564
+ ## workflow_status
1565
+
1566
+ 查看流程源码同步状态。比较源声明、导入基线和环境摘要,显示待导回源码、待部署或冲突及未启用版本数量。
1567
+
1568
+ - 只读:是
1569
+ - 可替换文件或改变远端状态:否
1570
+ - 幂等:否
1571
+
1572
+ 输入参数:
1573
+
1574
+ ```json
1575
+ {
1576
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1577
+ "type": "object",
1578
+ "properties": {
1579
+ "environment": {
1580
+ "default": "test",
1581
+ "description": "目标环境;默认 test,production 必须明确选择",
1582
+ "type": "string",
1583
+ "enum": [
1584
+ "test",
1585
+ "production"
1586
+ ]
1587
+ },
1588
+ "workflowCode": {
1589
+ "type": "string",
1590
+ "minLength": 1
1591
+ }
1592
+ },
1593
+ "additionalProperties": false
1594
+ }
1595
+ ```
1596
+
1359
1597
  ## workflow_node_configurations
1360
1598
 
1361
1599
  查看流程有效参数。修改已部署流程前,读取管理员维护的节点配置。已有任务和后续节点进入使用各自适用版本。
@@ -1212,3 +1212,36 @@ subject update和来源guards提交实际改变的派生字段;普通补填仍
1212
1212
  不改变字段授权、审批参数或流程版本;不提供该选项的应用保持既有行为。
1213
1213
 
1214
1214
  `commandHandlers.resubmit` 仅绑定固定 correction 节点的业务重校验。普通 `return_review` 任务继续由 Kernel 标准 `resubmit` 办理:Surface 不返回 correction operationCode,审批人不需要起草提交 capability。无需增加 `taskKinds` 字段、改动已有定义版本或重建在途实例;直接对普通退回任务调用 correction 业务动作仍被拒绝。
1215
+
1216
+ ## 画布、源码与测试环境同步
1217
+
1218
+ 管理员可以在画布修改节点和条件并直接发布。发布默认更新在途申请与新申请,当前已经进入的任务继续保留其人员、操作按钮、页面与字段权限;后续流转使用新版本。只让新申请生效、保留个别在途申请属于显式例外。
1219
+
1220
+ 应用源码与画布共同引用同一份不可变定义和绑定登记。画布修改后,后续仅改页面或后端的应用部署会保留兼容的画布版本。两边都改了流程而基线不一致时,部署返回 `WORKFLOW_SOURCE_DIVERGED`,需要先把正式环境流程导回源码:
1221
+
1222
+ ```sh
1223
+ pnpm openxiangda workflow export request-review --environment production --out platform/workflows/request-review.bundle.json
1224
+ pnpm openxiangda workflow import platform/workflows/request-review.bundle.json --to source
1225
+ pnpm openxiangda workflow plan-registration --environment test --write
1226
+ pnpm openxiangda workflow status --environment test
1227
+ ```
1228
+
1229
+ `export` 包含规范定义、绑定、任务页面与代码步骤契约、办理设置摘要;不含申请、待办、审批日志、密钥或环境内部标识。源码本来声明的固定用户标识会保留;管理员实际指定人员的覆盖只导出数量。`import` 只改 `openxiangda.config.ts` 中显式的 `workflows` 声明及 `platform/workflows/<code>.lock.json`,保留其他代码。新增或变化的代码步骤、页面契约需要先由开发者补齐;缺少这些契约的导入会在写文件前拒绝。
1230
+
1231
+ 可加 `--adopt-handling-defaults` 把办理模式与按钮开关、文案作为源码默认值。它保留原有必需动作,不把管理员指定人员复制成源码默认值。导入的摘要基线写在源码 activation 的 `sourceBase`;来源环境与修订号只保留在审计锁文件,不进入密封应用制品。锁文件与导出的规范文档可能包含合法源码用户引用,应按项目访问权限管理。
1232
+
1233
+ `plan-registration` 是服务器只读查询,返回相同内容已有的版本号或下一整数;`--write` 只把数字写入本机源码。最终准备仍检查编号冲突、内容冲突和跳号。准备成功但后续部署失败的版本保留为未启用的不可变登记,相同制品可复用这些数字;不会删除或重排。`status` 显示 `in_sync`、`behind`、`ahead`、`diverged`、`not_active` 和未启用登记数量。它没有远端写入。首次导入之前,状态比较使用目标环境当前应用版本的源码声明作为基线;跨环境导入的来源修订不会冒充目标环境基线。
1234
+
1235
+ 如果只希望把正式环境的流程规则同步到已有测试环境,可先读取两边的 `status`,记录实际流程 Head 修订号,再显式执行同步:
1236
+
1237
+ ```sh
1238
+ pnpm openxiangda workflow sync request-review --from production --to test \
1239
+ --expected-source-head 14 --expected-target-head 3 \
1240
+ --operation-id workflow-sync-20261012-01 --reason '同步正式环境流程到测试'
1241
+ ```
1242
+
1243
+ 示例修订号必须替换成实际读取值。源和目标必须属于同一应用且均有已启用流程。同步检查目标现有页面、代码步骤、角色与固定人员引用,复用源版本,并通过正常发布与在途适用规则生效。默认同时更新在途和新申请;`--new-only` 只更新新申请。存在不兼容在途申请时,在确认预览结果后加 `--acknowledge-exceptions`,这些申请继续保留原版本。
1244
+
1245
+ `--copy-handling-defaults` 可复制办理模式、按钮和角色覆盖;两边的指定人员覆盖都保持环境所有。源环境不被修改。同步后的目标画布草稿若基线已经过时,需要重读或合并,不能覆盖新的 Head。请求不确定时,保留相同操作标识、两个修订号和完整参数重试;不要换标识重做。CLI 与 MCP 共用这些权限、校验、幂等和发布入口。
1246
+
1247
+ 部署前记录目标流程修订号,激活前再次核对。期间若有人发布了画布,激活返回 `WORKFLOW_SOURCE_HEAD_CHANGED`,应用 Head 与流程 Head 在同一事务回滚;已准备的不可变登记保留。同步成功、源码检查成功、包发布与真实审批验收分别核对。
@@ -1,30 +0,0 @@
1
- {
2
- "schemaVersion": "openxiangda.release-notes/v1",
3
- "version": "2.20.1",
4
- "status": "reviewed",
5
- "title": "OpenXiangda 2.20.1:contracts 资源级审计列排序修复",
6
- "summary": "openxiangda-contracts 修复资源级 surface list defaultSort 对平台审计列(created_at/updated_at 等)的 fail-closed 误拒:与命名视图 defaultSort、Data API order 的系统列规则对齐。devkit 与 openxiangda 2.20.0 已含的行为不变。",
7
- "newFeatures": [
8
- "资源级 surface list defaultSort 支持平台审计列(created_at/updated_at/created_by/updated_by/id/revision),不再按未知字段 fail-closed;补回归测试。"
9
- ],
10
- "fixes": [],
11
- "affectedUsers": [
12
- "所有使用数据策略、行级权限、匿名公开访问的 OpenXiangda 2.0 应用开发者与 AI 开发会话。"
13
- ],
14
- "upgradeSteps": [
15
- "应用把 openxiangda 精确钉扎到 2.20.0 并重跑 pnpm openxiangda check;出现新告警/报错时按提示调整策略声明。",
16
- "使用 created_by 行规则需平台服务端配套版本;升级前请确认平台列车已包含该修复。"
17
- ],
18
- "knownLimitations": [
19
- "created_by 行规则的运行时 WITH CHECK 正向匹配修复仍随平台列车交付。"
20
- ],
21
- "issues": [],
22
- "compatibility": {
23
- "node": ">=24",
24
- "workspaceGenerations": "v2",
25
- "platform": "无强制平台配合要求;created_by 行规则的运行时生效需平台列车跟进。",
26
- "v1": "V1 工作区不受影响。"
27
- },
28
- "sha256": "043a0bdb2615be80b4efff4a9f2e58107965e261e9294050a1decee22a6b7e6c",
29
- "url": "https://github.com/1377385356/openxiangda/releases/tag/v2.20.1"
30
- }
@@ -1,30 +0,0 @@
1
- {
2
- "schemaVersion": "openxiangda.release-notes/v1",
3
- "version": "2.20.2",
4
- "status": "reviewed",
5
- "title": "OpenXiangda 2.20.2:应用制品断线去重修复",
6
- "summary": "Devkit 按平台制品收据的规范分类复用已验证的 Application v2 制品。修复 frontend/config/contracts/manifest 在平台已有相同摘要时仍重复完整上传的问题,保持 AppPackage 字节、权限和部署状态的原有权威边界。",
7
- "newFeatures": [],
8
- "fixes": [
9
- "断线恢复时,仅在摘要、平台规范分类、Content-Type 和字节大小都匹配时复用已存制品;已存的大前端制品不再重复上传。"
10
- ],
11
- "affectedUsers": [
12
- "经慢速或易断网络向支持 Application v2 制品收据的私有平台部署应用的 OpenXiangda 2.0 开发者。"
13
- ],
14
- "upgradeSteps": [
15
- "将应用钉扎的 openxiangda-devkit-core 更新到 2.18.2,并按锁文件安装;如统一入口也被钉扎则升级到 openxiangda 2.20.2。",
16
- "先回读原 DeploymentRun 和环境 Head;若此前失败仅发生在制品上传且无新运行,按 CLI 的可重试指针从原候选执行 deploy。"
17
- ],
18
- "knownLimitations": [
19
- "平台尚未存储的制品仍需完整上传;本修复不能改善首次传输的链路速度或替代真实角色、CAS、人事与通知业务验收。"
20
- ],
21
- "issues": [],
22
- "compatibility": {
23
- "node": ">=24",
24
- "workspaceGenerations": "v2",
25
- "platform": "复用需要平台 Application v2 GET 制品收据返回规范分类、摘要、媒体类型和字节大小;无新数据库迁移。",
26
- "v1": "V1 工作区与维护引擎不受影响。"
27
- },
28
- "sha256": "f5a6101d822234b7f1bf093c878692b94144f64dd829e99e72dc241780d5909e",
29
- "url": "https://github.com/1377385356/openxiangda/releases/tag/v2.20.2"
30
- }
@@ -1,29 +0,0 @@
1
- {
2
- "schemaVersion": "openxiangda.release-notes/v1",
3
- "version": "2.20.3",
4
- "status": "reviewed",
5
- "title": "OpenXiangda 2.20.3:标准日期时间选择修复",
6
- "summary": "修复指定时区的 PC 标准日期时间控件缺少小时和分钟列的问题,普通字段、生成表单、筛选与范围共用修复,不改变 UTC 存储和移动端协议。",
7
- "newFeatures": [],
8
- "fixes": [
9
- "分钟精度显式显示时、分列,秒精度显式显示时、分、秒列。CLI 新应用模板同步钉扎修复后的根包。"
10
- ],
11
- "affectedUsers": [
12
- "使用 Field Kit 指定时区日期时间输入的 OpenXiangda 2.0 应用。"
13
- ],
14
- "upgradeSteps": [
15
- "将应用精确依赖升级到 openxiangda 2.20.3,按锁文件安装并验证日期选择后发布预发布版本。"
16
- ],
17
- "knownLimitations": [
18
- "服务端业务时间窗、权限、DST 不存在和重复墙上时间校验保持原约束。本修复不替代应用真实角色验收。"
19
- ],
20
- "issues": [],
21
- "compatibility": {
22
- "node": ">=24",
23
- "workspaceGenerations": "v2",
24
- "platform": "无需服务端或数据库迁移。",
25
- "v1": "V1 工作区与维护引擎不受影响。"
26
- },
27
- "sha256": "bd5d7d513df7ccc123d949842a5a987e585002848e98d52569190a687b212464",
28
- "url": "https://github.com/1377385356/openxiangda/releases/tag/v2.20.3"
29
- }
@@ -1,30 +0,0 @@
1
- {
2
- "schemaVersion": "openxiangda.release-notes/v1",
3
- "version": "2.20.4",
4
- "status": "reviewed",
5
- "title": "OpenXiangda 2.20.4:Native 事件审计来源契约修复",
6
- "summary": "严格接收平台已有的 Native 数据事件操作来源审计信息,避免具名业务动作和封存数据修复事件在处理器执行前被错误拒绝。",
7
- "newFeatures": [],
8
- "fixes": [
9
- "Native 事件 actor 显式支持有界 initiatedBy、businessAction 和 platformMaintenance;未知字段、凭据形字段和错误签名仍严格拒绝。"
10
- ],
11
- "affectedUsers": [
12
- "使用 Nest 订阅具名业务动作或封存数据修复所产生 Native 数据事件的 OpenXiangda 2.0 应用。"
13
- ],
14
- "upgradeSteps": [
15
- "将应用精确依赖升级到 openxiangda 2.20.4,按锁文件安装并刷新工作区技能,验证后部署测试环境。",
16
- "需要恢复的既有失败事件应核对原投递后使用正式 replay API,不重复提交业务动作。"
17
- ],
18
- "knownLimitations": [
19
- "本修复不自动重放历史死信,也不替代应用真实角色、通知幂等和业务结果验收。"
20
- ],
21
- "issues": [],
22
- "compatibility": {
23
- "node": ">=24",
24
- "workspaceGenerations": "v2",
25
- "platform": "匹配现有平台 Native 事件生产者,无需服务端或数据库迁移。",
26
- "v1": "V1 工作区与维护引擎不受影响。"
27
- },
28
- "sha256": "b797b6e42ef1b54c312f40b14ecaea7064be9799d98bc9b200ed7dd88936e821",
29
- "url": "https://github.com/1377385356/openxiangda/releases/tag/v2.20.4"
30
- }
@@ -1,33 +0,0 @@
1
- {
2
- "schemaVersion": "openxiangda.release-notes/v1",
3
- "version": "2.31.5",
4
- "status": "reviewed",
5
- "title": "OpenXiangda 2.31.5:应用 Agent 自定义卡片",
6
- "summary": "应用可以把填写卡和结果卡的自定义脚本随同一发布版本交付,由平台在隔离卡片 Host 中展示。",
7
- "newFeatures": [
8
- "ai.agent.inputCard 和 resultCard 可声明受限的 agent-cards/*.js 资源;发布时核验脚本进入同一前端制品。",
9
- "openxiangda/agent-card SDK 提供状态接收、只读选项查询、固定任务提交和尺寸同步;中文开发资料与 Skill 给出构建和验收示例。"
10
- ],
11
- "fixes": [],
12
- "affectedUsers": [
13
- "需要在平台业务 Agent 中展示应用自有填写或结果布局的 OpenXiangda 2.0 应用开发者。"
14
- ],
15
- "upgradeSteps": [
16
- "升级 openxiangda 并更新锁文件;保留标准 inputCard/resultCard 字段声明作为资源失败时的回退。",
17
- "将使用 SDK 的卡片构建为单文件 IIFE 放入前端 dist/agent-cards/,配置对应 resource,然后运行 check 与预发 deploy。",
18
- "确认平台已发布配套 Agent 卡片资源端点与隔离 Host;在预发验证歧义选择、刷新、重复提交、权限拒绝与业务回读。"
19
- ],
20
- "knownLimitations": [
21
- "首版消息桥是平台限定协议,不宣称与官方 MCP Apps 线级兼容;卡片只支持已声明的选项查询和固定提交。",
22
- "结果卡只收到已声明的标量字段;复杂列表、附件和额外工具调用仍需后续独立契约。"
23
- ],
24
- "issues": [],
25
- "compatibility": {
26
- "node": ">=24",
27
- "workspaceGenerations": "v2",
28
- "platform": "自定义卡片需要配套 Agent Center 资源解析服务和无同源 iframe Host。",
29
- "v1": "独立 V1 引擎和工作区不受影响。"
30
- },
31
- "sha256": "b674dd23dcb5fc9e00a7af758f01291295c78b8b6756b43d5f678ba79e4df345",
32
- "url": "https://github.com/1377385356/openxiangda/releases/tag/v2.31.5"
33
- }
@@ -1,36 +0,0 @@
1
- {
2
- "schemaVersion": "openxiangda.release-notes/v1",
3
- "version": "2.59.3",
4
- "status": "reviewed",
5
- "title": "开发者AI应用自助操作与主线工具组合",
6
- "summary": "让AI沿用当前应用权限直接诊断事件、复用加密环境凭据、配置通知和恢复指定投递;发行同源主线已评审的流程及编译契约。",
7
- "newFeatures": [
8
- "admin operations和MCP application_operations发现20项有界操作;admin execute及application_operation直接执行,必须明确环境,密钥仅返回元信息。",
9
- "角色审批可按固定代码步骤或事实的选人结果取当前有效角色候选;平台必须提供workflow.role-input-selection能力,缺失时拒绝新声明。",
10
- "流程表单支持已加载固定子表行及按原Native资源授权读取材料;流程图支持展开已声明代码逻辑说明。"
11
- ],
12
- "fixes": [
13
- "当前能力目录完整合法闭包不再受旧64项上限误拒绝;未知代码、重复项及制品绑定仍拒绝。",
14
- "补正可编辑未参与流转事实投影的一层owned子表;固定子表条件隐藏采用当前表单值。",
15
- "流程画布就绪后才开放导航,用户导航不再被迟到初始化覆盖;大型AppSpec支持512文件并保留原字节界限。"
16
- ],
17
- "affectedUsers": [
18
- "使用V2开发者CLI/MCP进行应用运维,或使用本批流程/编译增强的应用。稳定V1独立维护。"
19
- ],
20
- "upgradeSteps": [
21
- "精确更新完整工具组合,刷新工作区Skill和AGENTS平台区块并重启MCP。先读docs application-operations及admin operations --json。",
22
- "共享校验器须与平台安装的openxiangda-contracts 2.71.0配对;已有生产应用保持原不可变版本,升级工具不代表重新部署业务。"
23
- ],
24
- "knownLimitations": [
25
- "沿用当前应用管理授权;首次账号授权、权限委托和外部身份目录维护仍由原owner处理。旧平台缺少接口时明确拒绝,不使用SQL或保护绕过。",
26
- "通道健康成功不证明实际老师收件或已读。恢复只处理指定原投递,不自动导入、重建业务、批量重发历史通知或读取密钥明文。"
27
- ],
28
- "issues": [],
29
- "compatibility": {
30
- "node": ">=24",
31
- "platform": "共享纯校验器同源配对;新增角色选人声明要求workflow.role-input-selection@1.0.0",
32
- "v1": "V1不消费本批V2契约或运行时"
33
- },
34
- "sha256": "b09fb5780d5ceea6c72a61c174952039396debc774d9b4249aef79794308bb72",
35
- "url": "https://github.com/1377385356/openxiangda/releases/tag/v2.59.3"
36
- }
@@ -1,38 +0,0 @@
1
- {
2
- "schemaVersion": "openxiangda.release-notes/v1",
3
- "version": "2.60.0",
4
- "status": "reviewed",
5
- "title": "OpenXiangda 2.60.0:OSS 应用制品直传",
6
- "summary": "开发工具可使用平台已配置的阿里云 OSS 直接上传应用构建包及镜像分块,服务器校验后按原摘要和进度导入,减轻客户 VPN 的大文件传输压力。",
7
- "newFeatures": [
8
- "新增独立 artifact-transfer/v1 能力协商,平台启用后自动使用限时、精确对象范围的签名直传。",
9
- "镜像沿用原 OCI 摘要、预算、断点及受管仓库,已有 Registry 层在直传前复用。",
10
- "平台存储设置支持前端 OSS/CDN 静态分发;登录、HTML 及 API 入口保持平台地址。"
11
- ],
12
- "fixes": [
13
- "同时收录本次物化前主线已有 Changeset:按真实构建输入复用后端镜像、HTTP 环境浏览器 SHA-256、较大声明的有界容量协商。",
14
- "收录主线已有标准流程页面整理、补正派生事实、补填值联动、日期辅助、提交后导航及子表展示修正。"
15
- ],
16
- "affectedUsers": [
17
- "使用 OpenXiangda V2 发布应用且平台已配置 OSS 的开发者与管理员。"
18
- ],
19
- "upgradeSteps": [
20
- "按平台正式升级入口部署配套服务器和管理界面。",
21
- "将项目 openxiangda 升至 2.60.0,按锁文件安装依赖并刷新项目同版本资料。",
22
- "管理员按需启用存储设置中的开发工具直传及静态分发,核验 GET/HEAD CORS 和目录权限。"
23
- ],
24
- "knownLimitations": [
25
- "首轮仅支持阿里云 OSS;COS、MinIO、旧平台及关闭开关的站点保留原通道。",
26
- "OSS 分发不等于 CDN 加速;CDN 域名需要独立配置,实际性能以部署样本为准。",
27
- "暂存目录建议由管理员配置 1 天生命周期,平台不会覆盖整桶生命周期或 ACL。",
28
- "本次以官方 Changeset 物化主线待发包内容,未新实现上述既有流程改动;所有版本与共享编译器需按平台组合配对。"
29
- ],
30
- "compatibility": {
31
- "node": ">=24",
32
- "platform": "配套平台 artifact-transfer/v1 可选接口;应用/编译器契约不变",
33
- "v1": "V1不消费新增 OSS 制品传输协议。"
34
- },
35
- "issues": [],
36
- "sha256": "1becf5ff798495bf650c87783f0714ccaa1f5dd2d1edab1b93eccfdfbea6edde",
37
- "url": "https://github.com/1377385356/openxiangda/releases/tag/v2.60.0"
38
- }
@@ -1,39 +0,0 @@
1
- {
2
- "schemaVersion": "openxiangda.release-notes/v1",
3
- "version": "2.61.0",
4
- "status": "reviewed",
5
- "title": "OpenXiangda 2.61.0:完整富文本与受管视频",
6
- "summary": "PC 与移动富文本改用免费 MIT Tiptap 引擎,统一编辑、Native 写入和公开投影的 HTML5 安全规则,保留丰富排版并支持受管视频。本次同时物化既有主线待发布维护。",
7
- "newFeatures": [
8
- "支持字体、字号、行高、颜色、背景色、对齐、缩进、上下标、表格、待办列表、分割线、表情选择与全屏编辑。",
9
- "受管 MP4/WebM 视频每个最高100MiB,每字段最多4个;图片最多20张、每张10MiB。配套平台以授权 Range 流式读取,复用现有跨资源复制回执。",
10
- "应用可使用外部编辑器,但须消费同一安全协议;text.rich 自动要求 data.rich-text:1.0.0。",
11
- "收录主线已有的独立角色容量512与标准工作流详情条件显示。"
12
- ],
13
- "fixes": [
14
- "避免前端、服务端与发布展示清洗白名单不同造成保存后格式丢失。",
15
- "收录主线已有的移动已选值可访问描述与 selected-department 精确配套版本。"
16
- ],
17
- "affectedUsers": [
18
- "使用 V2 text.rich 的所有应用,以及需要视频、复杂排版和外部编辑器的开发者。"
19
- ],
20
- "upgradeSteps": [
21
- "先部署配套服务器并核验 data.rich-text 与 validatorDigest,再安装 openxiangda2.61.0/contracts2.76.0/devkit2.57.1/CLI2.8.8。",
22
- "使用标准 RichTextField 与 RichTextValueDisplay;外部编辑器先统一清洗,上传与跨资源发布使用官方受管文件接口。",
23
- "刷新同版本技能,验证保存、回填及立即/定时发布后晋级原成功测试制品。"
24
- ],
25
- "knownLimitations": [
26
- "不支持外部视频、iframe、自动播放、转码或任意 CSS;容器支持不保证所有客户端编解码器可播放。",
27
- "HTML 限1MiB,解析树限制25000节点与128层;上传还受平台原存储限额约束。",
28
- "新格式保存后回退旧服务端可能在下次写入丢格式;回滚编辑器时保留新版清洗与读取规则。",
29
- "本地真实浏览器与受控服务测试不替代学校业务角色及发布链路验收。"
30
- ],
31
- "compatibility": {
32
- "node": ">=24",
33
- "platform": "配套 rich-text-html/1、data.rich-text:1.0.0 与相同 contracts validatorDigest;无新增 SQL。",
34
- "v1": "V1 运行时和编辑器保持独立,不消费新增 V2 规则。"
35
- },
36
- "issues": [],
37
- "sha256": "aece510083f6d6b04ae4c62410631e99824718072c64cfb1ab605970889d065d",
38
- "url": "https://github.com/1377385356/openxiangda/releases/tag/v2.61.0"
39
- }