openxiangda 2.34.3 → 2.44.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.
- package/dist/browser/FilePreviewPage.d.ts.map +1 -1
- package/dist/browser/FilePreviewPage.js +4 -2
- package/dist/browser/FilePreviewPage.js.map +1 -1
- package/dist/browser/ManagedCommand.d.ts +1 -0
- package/dist/browser/ManagedCommand.d.ts.map +1 -1
- package/dist/browser/ManagedCommand.js +1 -1
- package/dist/browser/ManagedCommand.js.map +1 -1
- package/dist/browser/Shell.d.ts.map +1 -1
- package/dist/browser/Shell.js +1 -1
- package/dist/browser/Shell.js.map +1 -1
- package/dist/browser/application.d.ts.map +1 -1
- package/dist/browser/application.js +5 -4
- package/dist/browser/application.js.map +1 -1
- package/dist/browser/components/administration/RoleMembershipManager.d.ts +7 -0
- package/dist/browser/components/administration/RoleMembershipManager.d.ts.map +1 -0
- package/dist/browser/components/administration/RoleMembershipManager.js +724 -0
- package/dist/browser/components/administration/RoleMembershipManager.js.map +1 -0
- package/dist/browser/components/administration/membership-batch-model.d.ts +17 -0
- package/dist/browser/components/administration/membership-batch-model.d.ts.map +1 -0
- package/dist/browser/components/administration/membership-batch-model.js +117 -0
- package/dist/browser/components/administration/membership-batch-model.js.map +1 -0
- package/dist/browser/components/platform-fields/AttachmentFileList.d.ts.map +1 -1
- package/dist/browser/components/platform-fields/AttachmentFileList.js +2 -1
- package/dist/browser/components/platform-fields/AttachmentFileList.js.map +1 -1
- package/dist/browser/components/platform-fields/MobileManagedFileField.d.ts +3 -1
- package/dist/browser/components/platform-fields/MobileManagedFileField.d.ts.map +1 -1
- package/dist/browser/components/platform-fields/MobileManagedFileField.js +9 -5
- package/dist/browser/components/platform-fields/MobileManagedFileField.js.map +1 -1
- package/dist/browser/components/resource/SurfaceFields.d.ts +3 -2
- package/dist/browser/components/resource/SurfaceFields.d.ts.map +1 -1
- package/dist/browser/components/resource/SurfaceFields.js +9 -9
- package/dist/browser/components/resource/SurfaceFields.js.map +1 -1
- package/dist/browser/components/resource/useResourceFormDrafts.d.ts.map +1 -1
- package/dist/browser/components/workflow/StandardWorkflowPages.d.ts +14 -3
- package/dist/browser/components/workflow/StandardWorkflowPages.d.ts.map +1 -1
- package/dist/browser/components/workflow/StandardWorkflowPages.js +283 -75
- package/dist/browser/components/workflow/StandardWorkflowPages.js.map +1 -1
- package/dist/browser/components/workflow/WorkflowAssignmentRoutingEditor.d.ts +8 -0
- package/dist/browser/components/workflow/WorkflowAssignmentRoutingEditor.d.ts.map +1 -0
- package/dist/browser/components/workflow/WorkflowAssignmentRoutingEditor.js +174 -0
- package/dist/browser/components/workflow/WorkflowAssignmentRoutingEditor.js.map +1 -0
- package/dist/browser/components/workflow/WorkflowAssignmentRoutingManager.d.ts +3 -0
- package/dist/browser/components/workflow/WorkflowAssignmentRoutingManager.d.ts.map +1 -0
- package/dist/browser/components/workflow/WorkflowAssignmentRoutingManager.js +75 -0
- package/dist/browser/components/workflow/WorkflowAssignmentRoutingManager.js.map +1 -0
- package/dist/browser/components/workflow/WorkflowBusinessStepRecoveryPanel.d.ts +14 -0
- package/dist/browser/components/workflow/WorkflowBusinessStepRecoveryPanel.d.ts.map +1 -0
- package/dist/browser/components/workflow/WorkflowBusinessStepRecoveryPanel.js +117 -0
- package/dist/browser/components/workflow/WorkflowBusinessStepRecoveryPanel.js.map +1 -0
- package/dist/browser/components/workflow/WorkflowDelegationManager.d.ts +14 -0
- package/dist/browser/components/workflow/WorkflowDelegationManager.d.ts.map +1 -0
- package/dist/browser/components/workflow/WorkflowDelegationManager.js +204 -0
- package/dist/browser/components/workflow/WorkflowDelegationManager.js.map +1 -0
- package/dist/browser/components/workflow/WorkflowDiagram.d.ts +16 -0
- package/dist/browser/components/workflow/WorkflowDiagram.d.ts.map +1 -0
- package/dist/browser/components/workflow/WorkflowDiagram.js +110 -0
- package/dist/browser/components/workflow/WorkflowDiagram.js.map +1 -0
- package/dist/browser/components/workflow/WorkflowFlowCanvas.d.ts +23 -0
- package/dist/browser/components/workflow/WorkflowFlowCanvas.d.ts.map +1 -0
- package/dist/browser/components/workflow/WorkflowFlowCanvas.js +78 -0
- package/dist/browser/components/workflow/WorkflowFlowCanvas.js.map +1 -0
- package/dist/browser/components/workflow/WorkflowNodeCard.d.ts +15 -0
- package/dist/browser/components/workflow/WorkflowNodeCard.d.ts.map +1 -0
- package/dist/browser/components/workflow/WorkflowNodeCard.js +16 -0
- package/dist/browser/components/workflow/WorkflowNodeCard.js.map +1 -0
- package/dist/browser/components/workflow/WorkflowNodeConfigurationEditor.d.ts +13 -0
- package/dist/browser/components/workflow/WorkflowNodeConfigurationEditor.d.ts.map +1 -0
- package/dist/browser/components/workflow/WorkflowNodeConfigurationEditor.js +151 -0
- package/dist/browser/components/workflow/WorkflowNodeConfigurationEditor.js.map +1 -0
- package/dist/browser/components/workflow/WorkflowTaskCommandReceipt.d.ts +10 -0
- package/dist/browser/components/workflow/WorkflowTaskCommandReceipt.d.ts.map +1 -0
- package/dist/browser/components/workflow/WorkflowTaskCommandReceipt.js +59 -0
- package/dist/browser/components/workflow/WorkflowTaskCommandReceipt.js.map +1 -0
- package/dist/browser/components/workflow/WorkflowTaskDraftPanel.d.ts +17 -0
- package/dist/browser/components/workflow/WorkflowTaskDraftPanel.d.ts.map +1 -0
- package/dist/browser/components/workflow/WorkflowTaskDraftPanel.js +136 -0
- package/dist/browser/components/workflow/WorkflowTaskDraftPanel.js.map +1 -0
- package/dist/browser/components/workflow/WorkflowTaskFiles.d.ts +20 -0
- package/dist/browser/components/workflow/WorkflowTaskFiles.d.ts.map +1 -0
- package/dist/browser/components/workflow/WorkflowTaskFiles.js +124 -0
- package/dist/browser/components/workflow/WorkflowTaskFiles.js.map +1 -0
- package/dist/browser/components/workflow/WorkflowTaskForm.d.ts +49 -0
- package/dist/browser/components/workflow/WorkflowTaskForm.d.ts.map +1 -0
- package/dist/browser/components/workflow/WorkflowTaskForm.js +141 -0
- package/dist/browser/components/workflow/WorkflowTaskForm.js.map +1 -0
- package/dist/browser/components/workflow/workflow-flow-layout.d.ts +28 -0
- package/dist/browser/components/workflow/workflow-flow-layout.d.ts.map +1 -0
- package/dist/browser/components/workflow/workflow-flow-layout.js +54 -0
- package/dist/browser/components/workflow/workflow-flow-layout.js.map +1 -0
- package/dist/browser/components/workflow/workflow-routing-draft.d.ts +4 -0
- package/dist/browser/components/workflow/workflow-routing-draft.d.ts.map +1 -0
- package/dist/browser/components/workflow/workflow-routing-draft.js +9 -0
- package/dist/browser/components/workflow/workflow-routing-draft.js.map +1 -0
- package/dist/browser/durable-command.d.ts +9 -0
- package/dist/browser/durable-command.d.ts.map +1 -1
- package/dist/browser/durable-command.js +67 -13
- package/dist/browser/durable-command.js.map +1 -1
- package/dist/browser/navigation-guard.d.ts +3 -1
- package/dist/browser/navigation-guard.d.ts.map +1 -1
- package/dist/browser/navigation-guard.js +7 -3
- package/dist/browser/navigation-guard.js.map +1 -1
- package/dist/browser/platform-client.d.ts +76 -3
- package/dist/browser/platform-client.d.ts.map +1 -1
- package/dist/browser/platform-client.js +292 -47
- package/dist/browser/platform-client.js.map +1 -1
- package/dist/browser/record-detail.css +10 -0
- package/dist/browser/runtime-authorization-recovery.d.ts +7 -0
- package/dist/browser/runtime-authorization-recovery.d.ts.map +1 -0
- package/dist/browser/runtime-authorization-recovery.js +119 -0
- package/dist/browser/runtime-authorization-recovery.js.map +1 -0
- package/dist/browser/runtime.d.ts +2 -0
- package/dist/browser/runtime.d.ts.map +1 -1
- package/dist/browser/runtime.js +39 -13
- package/dist/browser/runtime.js.map +1 -1
- package/dist/browser/styles.css +155 -0
- package/dist/browser/workflow-task-command-recovery.d.ts +17 -0
- package/dist/browser/workflow-task-command-recovery.d.ts.map +1 -0
- package/dist/browser/workflow-task-command-recovery.js +50 -0
- package/dist/browser/workflow-task-command-recovery.js.map +1 -0
- package/dist/browser/workflow-task-file-upload.d.ts +18 -0
- package/dist/browser/workflow-task-file-upload.d.ts.map +1 -0
- package/dist/browser/workflow-task-file-upload.js +35 -0
- package/dist/browser/workflow-task-file-upload.js.map +1 -0
- package/dist/config.d.ts +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/core.d.ts +9 -1
- package/dist/core.d.ts.map +1 -1
- package/dist/core.js +3 -0
- package/dist/core.js.map +1 -1
- package/dist/nest.d.ts +2 -2
- package/dist/nest.d.ts.map +1 -1
- package/dist/nest.js.map +1 -1
- package/dist/react.d.ts +10 -2
- package/dist/react.d.ts.map +1 -1
- package/dist/react.js +9 -1
- package/dist/react.js.map +1 -1
- package/documentation/administration.md +190 -0
- package/documentation/frontend.md +2 -0
- package/documentation/getting-started.md +7 -7
- package/documentation/managed-concurrency-frontend.md +9 -4
- package/documentation/managed-concurrency.md +10 -0
- package/documentation/manifest.json +7 -7
- package/documentation/workflow-events.md +237 -3
- package/package.json +26 -23
- package/releases/2.43.0.json +38 -0
- package/releases/2.44.0.json +36 -0
- package/skills/manifest.json +1 -1
- package/skills/openxiangda-v2/SKILL.md +4 -4
- package/skills/openxiangda-v2/references/administration.md +190 -0
- package/skills/openxiangda-v2/references/frontend.md +2 -0
- package/skills/openxiangda-v2/references/getting-started.md +7 -7
- package/skills/openxiangda-v2/references/managed-concurrency-frontend.md +9 -4
- package/skills/openxiangda-v2/references/managed-concurrency.md +10 -0
- package/skills/openxiangda-v2/references/workflow-events.md +237 -3
- package/releases/2.0.0.json +0 -50
- package/releases/2.0.1.json +0 -39
- package/releases/2.1.0.json +0 -44
- package/releases/2.1.1.json +0 -48
- package/releases/2.10.0.json +0 -42
- package/releases/2.11.0.json +0 -41
- package/releases/2.12.0.json +0 -38
- package/releases/2.13.0.json +0 -41
- package/releases/2.13.1.json +0 -33
- package/releases/2.13.2.json +0 -31
- package/releases/2.14.0.json +0 -41
- package/releases/2.15.0.json +0 -40
- package/releases/2.16.0.json +0 -41
- package/releases/2.17.0.json +0 -39
- package/releases/2.17.1.json +0 -34
- package/releases/2.18.0.json +0 -37
- package/releases/2.18.1.json +0 -31
- package/releases/2.18.10.json +0 -29
- package/releases/2.18.2.json +0 -30
- package/releases/2.18.3.json +0 -30
- package/releases/2.18.9.json +0 -37
- package/releases/2.19.0.json +0 -38
- package/releases/2.2.0.json +0 -48
- package/releases/2.2.1.json +0 -35
- package/releases/2.2.2.json +0 -34
- package/releases/2.20.0.json +0 -36
- package/releases/2.20.1.json +0 -30
- package/releases/2.20.4.json +0 -30
- package/releases/2.21.0.json +0 -35
- package/releases/2.21.1.json +0 -36
- package/releases/2.21.2.json +0 -34
- package/releases/2.21.3.json +0 -31
- package/releases/2.21.4.json +0 -31
- package/releases/2.22.0.json +0 -35
- package/releases/2.22.1.json +0 -32
- package/releases/2.22.2.json +0 -35
- package/releases/2.22.3.json +0 -32
- package/releases/2.22.4.json +0 -33
- package/releases/2.22.5.json +0 -31
- package/releases/2.22.6.json +0 -29
- package/releases/2.22.7.json +0 -29
- package/releases/2.23.0.json +0 -34
- package/releases/2.24.0.json +0 -33
- package/releases/2.24.1.json +0 -33
- package/releases/2.24.2.json +0 -31
- package/releases/2.24.3.json +0 -33
- package/releases/2.25.0.json +0 -31
- package/releases/2.25.1.json +0 -33
- package/releases/2.25.2.json +0 -32
- package/releases/2.25.3.json +0 -32
- package/releases/2.26.0.json +0 -41
- package/releases/2.27.0.json +0 -38
- package/releases/2.28.0.json +0 -37
- package/releases/2.28.1.json +0 -34
- package/releases/2.29.0.json +0 -37
- package/releases/2.29.1.json +0 -34
- package/releases/2.29.2.json +0 -32
- package/releases/2.3.0.json +0 -37
- package/releases/2.30.0.json +0 -34
- package/releases/2.31.0.json +0 -39
- package/releases/2.31.1.json +0 -38
- package/releases/2.31.2.json +0 -34
- package/releases/2.31.3.json +0 -32
- package/releases/2.31.4.json +0 -33
- package/releases/2.31.5.json +0 -33
- package/releases/2.31.6.json +0 -29
- package/releases/2.31.7.json +0 -29
- package/releases/2.31.8.json +0 -33
- package/releases/2.31.9.json +0 -33
- package/releases/2.32.0.json +0 -38
- package/releases/2.33.0.json +0 -33
- package/releases/2.34.0.json +0 -38
- package/releases/2.34.1.json +0 -34
- package/releases/2.34.2.json +0 -36
- package/releases/2.34.3.json +0 -35
- package/releases/2.4.0.json +0 -37
- package/releases/2.4.1.json +0 -35
- package/releases/2.5.0.json +0 -37
- package/releases/2.6.0.json +0 -37
- package/releases/2.7.0.json +0 -37
- package/releases/2.7.1.json +0 -31
- package/releases/2.8.0.json +0 -32
- package/releases/2.8.1.json +0 -30
- package/releases/2.9.0.json +0 -33
- package/releases/2.9.1.json +0 -31
- package/releases/2.9.2.json +0 -33
- package/releases/2.9.3.json +0 -31
- package/releases/2.9.4.json +0 -37
|
@@ -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
|
## 钉钉卡片已读查询
|
|
@@ -151,13 +153,55 @@ Workflow 发起只接受 `{ resourceCode, id }` 形式的 `dataRef`,并要求
|
|
|
151
153
|
|
|
152
154
|
## 标准工作流范围
|
|
153
155
|
|
|
154
|
-
|
|
156
|
+
标准节点支持 `approval`、`condition`、`cc`、`end`,以及 `single`、`any`、`all`、`sequence` 审批模式。标准操作为提交、同意、拒绝、退回、重新提交、转交、委托、前/后加签、撤回、管理员改派、管理员终止和不改变流程状态的催办。
|
|
155
157
|
|
|
156
158
|
除命令集之外,平台为实例管理员提供两个维护动作:`admin_jump`(把处于运行或退回状态的实例跳转到指定节点)与 `admin_delete`(删除实例,可选同时删除表单数据、是否触发自动化)。两者走平台管理端点的预览/执行两步流程并要求同源浏览器请求,不属于应用声明的工作流命令,也不占用 `commandToken` 命令合同。
|
|
157
159
|
|
|
158
160
|
复杂业务状态机继续放在应用领域服务。不要把任意 JavaScript、Service Task、BPMN、通用长事务或业务记录复制进 Workflow。
|
|
159
161
|
|
|
160
162
|
所有页面和消息动作必须来自后端 Workflow Surface 的 `operations[]`。前端、模板和渠道 Adapter 不自行推断操作权限。
|
|
163
|
+
|
|
164
|
+
### 自动抄送 {#automatic-cc}
|
|
165
|
+
|
|
166
|
+
在固定拓扑中声明 `cc` 节点,进入时解析接收人、保存抄送事实,然后继续 `next`。
|
|
167
|
+
完整声明例子见 `examples/workflow-administration/automatic-cc.ts`:
|
|
168
|
+
|
|
169
|
+
```ts
|
|
170
|
+
copy: {
|
|
171
|
+
id: 'copy', kind: 'cc', title: '抄送办理负责人',
|
|
172
|
+
binding: 'readers', next: 'approved', emptyPolicy: 'block',
|
|
173
|
+
administration: { assigneeProviders: ['app_role', 'fixed_users'] },
|
|
174
|
+
},
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
接收 binding 支持 `fixed_users`、`initiator`、`input_users`、`form_field_users`、
|
|
178
|
+
`app_role`、`app_role_in_scope`、`previous_node_actor`。仅使用事务内原生来源,
|
|
179
|
+
不支持 `application_provider` 或需要申请人交互的 `initiator_select`。名单按用户去重,
|
|
180
|
+
每次进入最多 20 人;`min/max` 默认 1/20,非空名单仍必须符合声明的下限。
|
|
181
|
+
角色查询超过 200 条有效成员行时明确拒绝,不能使用截断后的名单。
|
|
182
|
+
范围角色要求对应范围的 `cc` 授权(或未限制操作、`*`),仅 `approve` 不满足。
|
|
183
|
+
抄送不套用审批代理。
|
|
184
|
+
|
|
185
|
+
`emptyPolicy: 'block'` 在真实空名单时回滚触发动作,补齐人员后可重试原申请或任务;
|
|
186
|
+
`'skip'` 记录无人跳过并继续。未知角色、失效账号、非法输入和超限均属于错误,
|
|
187
|
+
不会被 skip 吞掉。通知默认开启;`notify: false` 仍保存抄送审计、事件和实例阅读关系,
|
|
188
|
+
Notification Hub 不生成该次抄送消息。渠道失败通过原 Hub 恢复,不回滚流程。
|
|
189
|
+
|
|
190
|
+
进入记录、系统抄送日志及事件在同一事务提交。原命令重放不重复抄送;退回等导致实际
|
|
191
|
+
再次进入时产生新轮次,可采用新的兼容节点配置,过去名单和配置保持冻结。时间线显示
|
|
192
|
+
“流程自动抄送”,不会把系统动作记为发起人的人工操作。
|
|
193
|
+
|
|
194
|
+
接收人可以使用既有抄送列表及实例详情,不获得审批权、后台权限或通用业务数据读取权。
|
|
195
|
+
标准流程详情由服务器按页面代码声明的固定详情字段投影读取;需要排除敏感字段时,
|
|
196
|
+
在 `crud.detail` 和 `subject.factProjection` 中明确选择允许字段,不能仅在浏览器隐藏。
|
|
197
|
+
通用 Data API 继续核验当前数据授权,流程节点不提供字段权限配置。
|
|
198
|
+
|
|
199
|
+
含 cc 的包自动声明 `workflow.automatic-cc@1.0.0`,平台正式迁移后自动提供该能力,
|
|
200
|
+
没有额外开关。管理员仅可修改名称、说明及代码显式开放的接收来源,
|
|
201
|
+
`next/emptyPolicy/notify` 保持代码所有;配置 SDK 见[应用管理](./administration.md#node-administration)。
|
|
202
|
+
|
|
203
|
+
### 工作流命令
|
|
204
|
+
|
|
161
205
|
Surface 同时签发短期、一次性的 `commandToken`,绑定当前用户/会话、应用环境
|
|
162
206
|
Head、实例/任务版本、允许的命令集合与 CSRF。命令请求只提交
|
|
163
207
|
`commandToken + idempotencyKey + input`;旧的 caller-authored
|
|
@@ -240,8 +284,8 @@ Native Data 事件的 capture plan 由当前 Head 的 Event、Data、AuthZ revis
|
|
|
240
284
|
不是增量 patch。definition 和 activation 必须一致声明
|
|
241
285
|
`acceptedCommandDeactivationPolicy`:`finish-pinned` 让已接受的 durable process
|
|
242
286
|
command 按固定版本完成,`cancel-on-deactivate` 在声明删除后取消尚未启动的命令;
|
|
243
|
-
既有 Workflow instance
|
|
244
|
-
默认 1/200,最大 200。
|
|
287
|
+
既有 Workflow instance 始终按固定版本继续。审批人 Provider 的 `min/max`
|
|
288
|
+
默认 1/200,最大 200;自动抄送默认 1/20,最大 20。
|
|
245
289
|
需要按流程实例串行投递时只声明 `ordering: 'workflow-instance'`,不接受下划线别名。
|
|
246
290
|
|
|
247
291
|
平台按 desired set 直接覆盖环境 Head,不做版本比较。因此 `openxiangda deploy`
|
|
@@ -378,3 +422,193 @@ Surface 上执行。
|
|
|
378
422
|
## 验证
|
|
379
423
|
|
|
380
424
|
至少验证:完整标准详情投影、父子表边界、流程附件读取、桌面/移动独立渲染、全部标准操作、多人模式、重复/并发命令、stale revision、重启 replay、乱序事件、重复回调、消息终态全量更新、详情跳转、错用户/错租户/过期动作、渠道超时/unknown、死信重放和 1.x 零触碰。
|
|
425
|
+
|
|
426
|
+
## 流程说明与变量来源 {#workflow-readability}
|
|
427
|
+
|
|
428
|
+
`definition.readability` 是可选说明,随不可变定义及其摘要发布。变量来源从实际 `inputSchema` 和 `subject.factProjection` 推导;不另行声明一个可编辑的条件图。例如,条件路径 `amountCents` 对应业务字段 `amountCents`,单选条件通常读取 `reason.value`:
|
|
429
|
+
|
|
430
|
+
```ts
|
|
431
|
+
readability: {
|
|
432
|
+
variables: {
|
|
433
|
+
amountCents: { label: '申请金额', unit: '分', description: '提交记录中的非负整数金额' },
|
|
434
|
+
'reason.value': { label: '休学原因值' },
|
|
435
|
+
},
|
|
436
|
+
logic: [{
|
|
437
|
+
code: 'submission-validation', title: '核验申请',
|
|
438
|
+
description: '提交时校验已声明字段;金额由表单直接提供',
|
|
439
|
+
phase: 'submission', inputPaths: ['amountCents'],
|
|
440
|
+
}],
|
|
441
|
+
}
|
|
442
|
+
```
|
|
443
|
+
|
|
444
|
+
说明的执行位置只能是 submission、某节点的 node_input 或 completion。它是对已有逻辑的注释,不会自动执行计算或产生新流程节点。没有实际计算步骤时,不应写成“系统已计算总金额”。条件的变量必须存在于输入 Schema;对旧未标注定义,读取投影会明确给出未知来源诊断。
|
|
445
|
+
|
|
446
|
+
可选 `source: { path, symbol?, digest }` 只返回源码位置和 SHA256,不返回源码内容。path 指向工作区 apps/packages/platform 下的代码文件,digest 为 `sha256:<原始文件字节摘要>`。工作区加载时核对文件存在、无符号链接、大小和摘要;源码变化后以 WORKFLOW_LOGIC_DESCRIPTION_STALE 阻止封装,开发者应核实说明并更新引用。32 个文件、单文件 2MiB、总量 8MiB 为上限。元数据不能验证任意 TypeScript 的业务含义,业务说明及验收仍由开发者维护。
|
|
447
|
+
|
|
448
|
+
## 持久业务步骤
|
|
449
|
+
|
|
450
|
+
必须收到业务计算或外部操作结果后才继续的流程,用固定 `action` 节点。平台自动
|
|
451
|
+
提供 `workflow.durable-business-step@1.0.0`;应用包含动作时自动声明能力需求并
|
|
452
|
+
按需引导标准 Nest 后端,普通无动作应用保持原合同。字段显隐/编辑/必填继续由
|
|
453
|
+
页面代码负责;动作版本、Schema、条件和连线只由开发者发布。
|
|
454
|
+
|
|
455
|
+
```ts
|
|
456
|
+
const amountSchema = { type: 'object', additionalProperties: false,
|
|
457
|
+
required: ['amountCents'], properties: { amountCents: { type: 'integer', minimum: 0 } } };
|
|
458
|
+
// 放入已声明流程的 nodes;amount-route 必须是同一固定定义中的真实目标。
|
|
459
|
+
const calculate = {
|
|
460
|
+
id: 'calculate', kind: 'action', title: '核算金额', next: 'amount-route',
|
|
461
|
+
handler: { code: 'calculate-v1', version: 1, mode: 'pure' },
|
|
462
|
+
inputSchema: amountSchema, outputSchema: amountSchema,
|
|
463
|
+
inputs: { amountCents: { source: 'fact', path: 'amountCents' } },
|
|
464
|
+
};
|
|
465
|
+
// 放入 events.subscriptions;应用 backend.enabled=true,消费 generated manifest。
|
|
466
|
+
const subscription = {
|
|
467
|
+
code: 'calculate-v1', eventTypes: ['openxiangda.workflow.step.requested.v2'],
|
|
468
|
+
filter: { workflowStep: { handlerCode: 'calculate-v1' } },
|
|
469
|
+
payload: { includeChanges: false, fields: [] },
|
|
470
|
+
};
|
|
471
|
+
```
|
|
472
|
+
|
|
473
|
+
成功输出写入 `steps.calculate.amountCents`。后续条件或动作只能读取每条路径上
|
|
474
|
+
已经完成的生产者;前向/自引用、非法路径和输入类型不兼容会拒绝编译。步骤后
|
|
475
|
+
需要 HTTP provider 或发起人选人的组合暂不支持,先在动作中产生有 Schema 的
|
|
476
|
+
人员数据,再使用原生人员字段/角色分派。示例见
|
|
477
|
+
`examples/workflow-administration/business-step.ts`。
|
|
478
|
+
|
|
479
|
+
Nest 使用 `@OpenXiangdaEventHandler(generatedContract)` 注册实现,`handle` 返回
|
|
480
|
+
`{ output, receipt? }`;上下文 `workflowStep` 包含验证过的固定请求,
|
|
481
|
+
`idempotencyKey` 是稳定 executionId。不得通过返回值任意指定下一节点或调用
|
|
482
|
+
Workflow 跳转。使用标准 `PlatformOpenXiangdaEventReceiptStore`;内存 receipt
|
|
483
|
+
不能完成业务步骤。
|
|
484
|
+
|
|
485
|
+
`pure` 用于无外部效果的计算;`reconciled-effect` 必须实现 `reconcile(event,
|
|
486
|
+
context)`:成功返回 `{ status:'succeeded', result:{output,receipt?} }`,确定未执行
|
|
487
|
+
返回 `{status:'not-executed'}`,无法确定返回 `{status:'unknown'}`。每次尝试先
|
|
488
|
+
核对原执行键,未知结果需要人工核对后重放原事件。增加v2时保留v1合同及代码;
|
|
489
|
+
旧具名版本合同不可变,缺失实现明确失败,不自动改用最新版本。
|
|
490
|
+
|
|
491
|
+
输入输出各16KiB、回执2KiB,最多32映射、200节点;Schema闭合且有界,无远端
|
|
492
|
+
引用或正则执行。平台先持久保存合法结果,再尝试流转;下游缺人等失败保留
|
|
493
|
+
`result_ready`,恢复仅推进,不再次执行处理器。自动恢复最多5次,每批20;
|
|
494
|
+
outbox容量等事务故障会回滚,处理器按原键核对后重交,不承诺跨服务绝对一次。
|
|
495
|
+
撤回后的未领取步骤拒绝执行,已开始的外部操作仍需原键核对。
|
|
496
|
+
|
|
497
|
+
管理员在标准实例管理页或 `WorkflowBusinessStepRecoveryPanel` 查看并继续受阻
|
|
498
|
+
步骤;公开客户端为 `loadWorkflowBusinessStepRecovery`、
|
|
499
|
+
`previewWorkflowBusinessStepRecovery`、`executeWorkflowBusinessStepRecovery`。
|
|
500
|
+
复用原管理权限/token/CAS/CSRF/审计,提交失败保留相同token/input/idempotencyKey。
|
|
501
|
+
组件通过 `onDraftStateChange` 报告 dirty/busy/unknown;宿主将其接入已有导航保护,
|
|
502
|
+
提交中或结果未知时保留组件和实例。未知结果只允许显式重试原恢复请求;首次明确
|
|
503
|
+
的4xx拒绝可保留原因并重新预览。宿主刷新失败不改变已经确认的提交结果。
|
|
504
|
+
等待处理器的失败从原事件管理受控重放,保留原执行键。普通详情只显示安全状态
|
|
505
|
+
摘要;原输入、输出和外部回执不放入普通时间线。
|
|
506
|
+
|
|
507
|
+
## 代码任务页面与补填 {#task-page-submit}
|
|
508
|
+
|
|
509
|
+
需要办理人补填时,在定义的 `taskPages` 声明命名页面,审批节点以
|
|
510
|
+
`taskPageCode` 引用。页面字段顺序、`readonly`、`required`、`visibleWhen` 和
|
|
511
|
+
`requiredWhen` 属于应用代码;流程管理员不能覆盖页面字段、条件或连线。
|
|
512
|
+
字段类型和编码来自同一个 Native 模型。例子见
|
|
513
|
+
`examples/workflow-administration/task-page.ts`。
|
|
514
|
+
|
|
515
|
+
页面表达式只读取本页 `values.*`,平台以合并后的业务值强制显隐和必填。
|
|
516
|
+
最多16页、每页64字段、单次值64KiB,表达式8层/64节点。
|
|
517
|
+
系统、流水号和隐藏字段不可作为补填入口。根附件、图片复用平台托管文件;
|
|
518
|
+
签名、子表和富文本仍需后续任务页面支持,不将它们降为任意 JSON。
|
|
519
|
+
|
|
520
|
+
标准 PC/手机任务页和 `WorkflowTaskOperationsPanel` 自动显示当前参与人的
|
|
521
|
+
`surface.taskForm`。`save_form` 表示“提交补填,继续办理”,不是私有草稿。
|
|
522
|
+
approve/resubmit 携带 `form: { expectedRevision, values }` 时,Native 业务更新、
|
|
523
|
+
事实刷新、任务决定和下游流转同事务提交。reject/return/transfer 等操作不得
|
|
524
|
+
夹带表单。审批人仅获得当前任务对应的单记录/页面字段入口,不获得通用 CRUD。
|
|
525
|
+
|
|
526
|
+
相同幂等键不同输入拒绝;结果未知时保留原 token/input/key。共享组件锁定
|
|
527
|
+
编辑,只重试原请求或调用 `loadWorkflowTaskCommandReceipt(taskId, key, tokenDigest)`
|
|
528
|
+
查询本人原回执。重载只保存定位信息和 SHA256 token 摘要,不保存凭据或表单。
|
|
529
|
+
`not_observed` 仍然未知;只有平台锁住确切凭证、确认数据库时间已过期且未使用
|
|
530
|
+
的 `expired_unconsumed` 才能解除等待,供用户核对资料后重新确认。
|
|
531
|
+
组件复用宿主的 `OpenXiangdaApplication` 导航保护;成功后刷新失败不变成提交失败。
|
|
532
|
+
|
|
533
|
+
嵌入自定义详情时,可用 `renderLayout={({ content, actions, surface }) => ...}` 将补填表单和
|
|
534
|
+
恢复提示放在可滚动正文,将操作按钮放在底栏。两部分始终使用同一个任务面板,
|
|
535
|
+
不要分别创建两个面板或复制其表单、请求和回执状态。`surface` 是面板当前实际展示的
|
|
536
|
+
资料,自定义详情用它显示刷新后的字段;加载或无可用资料时为空。标准详情已采用该布局。
|
|
537
|
+
|
|
538
|
+
多人补填与管理纠错使用 Native 记录 CAS,冲突保留输入。首次请求的明确拒绝会只读刷新,
|
|
539
|
+
修订变化时对照最新已保存值和本人输入,核对前锁住字段与操作;可选择保留输入或采用最新值。
|
|
540
|
+
拒绝后的读取失败明确提示本次未提交,锁住旧操作,恢复读取后再核对;未知结果仍只能恢复原请求。
|
|
541
|
+
补填刷新固定事实投影;
|
|
542
|
+
修改已计算步骤的输入时清除当前失效输出及依赖输出。仅退回 replay 且所有前向
|
|
543
|
+
审批路径确定重经生产者时允许;resume_current 或后置补填跳过重算会返回
|
|
544
|
+
`WORKFLOW_TASK_FORM_RECOMPUTATION_REQUIRED` 并回滚,历史结果与签名保持。
|
|
545
|
+
自动能力为 `workflow.task-page-submit@1.0.0`,平台初始化无需额外开关。
|
|
546
|
+
|
|
547
|
+
### 任务私有草稿
|
|
548
|
+
|
|
549
|
+
标准PC/手机任务页和嵌入面板提供“保存私有草稿”“我的草稿”。暂存仅本人可见,
|
|
550
|
+
不会更新业务资料、事实、待办或推进任务;可以保存尚未完成必填的标量输入。
|
|
551
|
+
页面的显隐/只读规则和Native类型仍强制,管理员没有字段覆盖或读取他人草稿的入口。
|
|
552
|
+
|
|
553
|
+
自定义页面从 `openxiangda/core` 或 `openxiangda/react` 调用
|
|
554
|
+
`loadWorkflowTaskDrafts(taskId)`、`saveWorkflowTaskDraft(taskId, input)` 和
|
|
555
|
+
`removeWorkflowTaskDraft(taskId, { id, expectedRevision })`。
|
|
556
|
+
保存输入为 `{ id, expectedRevision, recordRevision, values }`:首写前固定UUID及
|
|
557
|
+
`expectedRevision: 0`;recordRevision来自当前taskForm.expectedRevision。
|
|
558
|
+
身份、环境、业务记录和固定页面由平台派生,不传actor/resource/page作为授权。
|
|
559
|
+
可编译例子见 `examples/workflow-administration/task-draft.ts`。
|
|
560
|
+
|
|
561
|
+
最多20份/90天与同用户、应用、环境、资源的其他表单草稿共享,单份最多64字段/64KiB。
|
|
562
|
+
字段支持根附件、图片,暂不包含签名、富文本或子表。读到不兼容草稿时只返回安全标识与诊断,
|
|
563
|
+
不静默丢弃或泄露旧值。失去任务、角色或代理资格后不能继续读/用。
|
|
564
|
+
|
|
565
|
+
读取不会自动覆盖输入;采用前确认,业务基线变化先核对并再次保存。相同输入暂存成功后
|
|
566
|
+
可安全离开,后续新编辑恢复导航保护;浏览器持久存储不保存字段值。
|
|
567
|
+
结果未知保留原id/CAS/values,仅核对同id或重试原保存;同一次最后保存确认不新增修订,
|
|
568
|
+
其他CAS冲突保留输入。新id必须是用户明确另存,不能用自动另存掩盖未知结果。
|
|
569
|
+
|
|
570
|
+
正式 `form: { expectedRevision, values, draft: { id, expectedRevision } }` 可以包含暂存之后的新编辑。
|
|
571
|
+
平台锁住本人草稿及业务基线,再沿原save_form/approve/resubmit命令同事务更新业务并消费,
|
|
572
|
+
失败全部回滚。原成功命令重试先返回唯一Workflow回执,不因草稿已消费重复写入。
|
|
573
|
+
任务真正关闭才过期未消费草稿,all/sequence任务仍可办理时保留其他人的有效草稿。
|
|
574
|
+
能力 `workflow.task-private-drafts@1.0.0` 自动提供,无额外配置开关。
|
|
575
|
+
|
|
576
|
+
### 任务附件与图片
|
|
577
|
+
|
|
578
|
+
当前任务的可编辑 `file/image` 字段自动接入标准 PC/手机上传、缩略图、预览和下载。
|
|
579
|
+
当前处理资格不授通用资源 CRUD;平台从固定任务派生记录、页面、身份和环境,
|
|
580
|
+
上传时还核验**已保存业务资料对应的页面状态**。局部修改才显示附件字段时,
|
|
581
|
+
先“保存补填”使字段生效,再上传;组件说明此边界,不自动提交业务值。
|
|
582
|
+
|
|
583
|
+
自定义页面可从 `openxiangda/core` 或 `openxiangda/react` 调用:
|
|
584
|
+
|
|
585
|
+
```ts
|
|
586
|
+
const input = { id: crypto.randomUUID(), fieldCode: 'evidence',
|
|
587
|
+
fileName: file.name, fileSize: file.size, contentType: file.type };
|
|
588
|
+
const plan = await initiateWorkflowTaskFileUpload(taskId, input);
|
|
589
|
+
// pending 才按 plan.uploadMethod/uploadUrl/headers 上传原 File;ready 直接采用 plan.file。
|
|
590
|
+
const readyFile = await completeWorkflowTaskFileUpload(taskId, input.id);
|
|
591
|
+
// 结果未知时:loadWorkflowTaskFileUploadPlan(taskId, input.id),或重试同 ID/规格。
|
|
592
|
+
```
|
|
593
|
+
|
|
594
|
+
上传 ID 必须在第一次请求前固定。标准组件一次处理一个文件;上传中或结果未知时
|
|
595
|
+
保留原 File、ID、规格和当前输入,锁住新任务动作与草稿写入,提供“核对原上传”
|
|
596
|
+
和“重试原上传”。ready 结果不再 PUT;完成响应丢失后只恢复原完成结果。
|
|
597
|
+
文件字节、签名地址与表单值不进入浏览器持久存储。离开未完成上传时需先确认结果。
|
|
598
|
+
|
|
599
|
+
预览字段组件传入 `workflowFileBinding: { taskId, resourceCode, recordId, fieldCode }`;
|
|
600
|
+
正式实例详情使用原 `instanceId` binding。同一 binding 只提供一种范围。
|
|
601
|
+
仅本人当前任务可读私有暂存文件,其他处理人和管理员没有私有读取特权。
|
|
602
|
+
当前根业务记录已经引用的文件可按该任务页面规则读取;隐藏、资格失效或任务关闭后拒绝。
|
|
603
|
+
通用 Native 完成、删除和未绑定文件读取不能绕过此范围。
|
|
604
|
+
|
|
605
|
+
附件完成后仍只是当前输入;私有草稿延长文件保留至该草稿到期,业务绑定再移除引用
|
|
606
|
+
仍尊重该保留期。原 save_form/approve/resubmit 验证真实文件状态、字段、范围与元数据,
|
|
607
|
+
同事务提交业务引用、事实、任务决定和草稿消费;失败全回滚。完成上传时平台复制为
|
|
608
|
+
独占正式对象,旧上传地址不能再修改正式字节。
|
|
609
|
+
|
|
610
|
+
单文件不超过字段限制与100MiB;每账号/应用/环境最多100个尚未业务绑定的任务文件,
|
|
611
|
+
声明大小合计200MiB。此大小是上传容量预算,staging/正式对象与缩略图另有存储开销。
|
|
612
|
+
复用既有 Native 文件引用 worker 和 GC;流式正式复制限时10秒。
|
|
613
|
+
需要服务端正式 SQL `AddWorkflowTaskManagedFilesV2` 和自动能力
|
|
614
|
+
`workflow.task-managed-files@1.0.0`,初始化无需新增开关。
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "openxiangda",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.44.0",
|
|
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
|
-
"
|
|
68
|
-
"openxiangda-
|
|
69
|
-
"openxiangda-
|
|
68
|
+
"elkjs": "0.12.0",
|
|
69
|
+
"openxiangda-cli": "2.6.37",
|
|
70
|
+
"openxiangda-contracts": "2.43.0",
|
|
71
|
+
"openxiangda-devkit-core": "2.41.2",
|
|
70
72
|
"openxiangda-legacy": "npm:openxiangda@1.0.269",
|
|
71
|
-
"openxiangda-mcp": "2.0.
|
|
72
|
-
"openxiangda-nest": "2.
|
|
73
|
-
"openxiangda-skill-kit": "2.3.
|
|
73
|
+
"openxiangda-mcp": "2.0.73",
|
|
74
|
+
"openxiangda-nest": "2.13.3",
|
|
75
|
+
"openxiangda-skill-kit": "2.3.52",
|
|
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,39 @@
|
|
|
136
138
|
},
|
|
137
139
|
"openxiangdaRelease": {
|
|
138
140
|
"schemaVersion": "openxiangda.release-notes/v1",
|
|
139
|
-
"version": "2.
|
|
141
|
+
"version": "2.44.0",
|
|
140
142
|
"status": "reviewed",
|
|
141
|
-
"title": "OpenXiangda 2.
|
|
142
|
-
"summary": "
|
|
143
|
+
"title": "OpenXiangda 2.44.0:当前任务的托管附件与图片",
|
|
144
|
+
"summary": "代码任务页面支持根附件与图片,普通审批人通过固定任务上传和预览,草稿保留和正式流程提交复用平台文件生命周期。",
|
|
143
145
|
"newFeatures": [
|
|
144
|
-
"
|
|
146
|
+
"任务文件 SDK 支持固定 ID 的原计划与完成恢复,标准 PC/手机上传及预览自动接入。",
|
|
147
|
+
"编译器按可编辑任务文件申请 workflow.task-managed-files 自动能力,无额外默认关闭开关。"
|
|
145
148
|
],
|
|
146
149
|
"fixes": [
|
|
147
|
-
"
|
|
148
|
-
"
|
|
150
|
+
"上传结果未知时保留原文件与请求并锁住新流程动作和草稿写入;ready 结果不再次 PUT。",
|
|
151
|
+
"任务表单和本人草稿比较使用任务文件范围,避免依赖通用 CRUD 预览资格。"
|
|
149
152
|
],
|
|
150
153
|
"affectedUsers": [
|
|
151
|
-
"
|
|
154
|
+
"声明 file/image 任务补填页面的 V2 应用开发者、办理人和平台维护者。"
|
|
152
155
|
],
|
|
153
156
|
"upgradeSteps": [
|
|
154
|
-
"
|
|
155
|
-
"
|
|
157
|
+
"消费同批本地 SDK/contracts 与匹配平台 Server,应用迁移 AddWorkflowTaskManagedFilesV2,刷新资料并重启。",
|
|
158
|
+
"局部修改才显示附件字段时先保存补填,再上传;自定义页面固定上传 UUID,并保留原请求处理未知结果。"
|
|
156
159
|
],
|
|
157
160
|
"knownLimitations": [
|
|
158
|
-
"
|
|
159
|
-
"
|
|
160
|
-
"
|
|
161
|
+
"本轮交付根 file/image,签名、富文本和 owned 子表仍按后续任务页面切片验证。",
|
|
162
|
+
"上传资格依据已保存资料的页面状态;管理员不能配置字段权限。",
|
|
163
|
+
"本轮是本地迁移实验,npm 发布与学校生产迁移分别另行执行。"
|
|
161
164
|
],
|
|
162
165
|
"issues": [],
|
|
163
166
|
"compatibility": {
|
|
164
167
|
"node": ">=24",
|
|
165
168
|
"workspaceGenerations": "v2",
|
|
166
|
-
"platform": "
|
|
167
|
-
"v1": "
|
|
169
|
+
"platform": "workflow.task-managed-files@1.0.0 与 AddWorkflowTaskManagedFilesV2",
|
|
170
|
+
"v1": "1.x 引擎独立,本轮不改变其上传入口。"
|
|
168
171
|
},
|
|
169
|
-
"sha256": "
|
|
170
|
-
"url": "https://github.com/1377385356/openxiangda/releases/tag/v2.
|
|
172
|
+
"sha256": "b4d4027b81772f5c63ef0638b7ffa9c73374799a398bd17c8828ed126410e4da",
|
|
173
|
+
"url": "https://github.com/1377385356/openxiangda/releases/tag/v2.44.0"
|
|
171
174
|
},
|
|
172
175
|
"scripts": {
|
|
173
176
|
"build": "node ../../scripts/prune-package-dist.mjs && tsc -p tsconfig.json && node scripts/copy-assets.mjs",
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": "openxiangda.release-notes/v1",
|
|
3
|
+
"version": "2.43.0",
|
|
4
|
+
"status": "reviewed",
|
|
5
|
+
"title": "OpenXiangda 2.43.0:持久命令的有界发现与原申请恢复",
|
|
6
|
+
"summary": "热点应用可显式延长只读发现预算,刷新合并并优先核对原键;未知受理保留原申请与输入,避免误报排队成功。",
|
|
7
|
+
"newFeatures": [
|
|
8
|
+
"DurableCommandOptions 与 useDurableCommand 新增 discoveryRecoveryMs,默认 120 秒,可显式配置最长 30 分钟;每次发现共享固定截止。",
|
|
9
|
+
"DurableCommandSnapshot 新增 acceptanceConfirmed,供界面区分已确认受理与仍需核对的原申请。"
|
|
10
|
+
],
|
|
11
|
+
"fixes": [
|
|
12
|
+
"已确认非终态优先读取原键,原键 404 保留受控本人列表兜底;未确认原意图不会被其他周期覆盖。",
|
|
13
|
+
"重复刷新合并,停止后重新挂载可重新只读发现;回执同时核对原键、operationId 和作用域。",
|
|
14
|
+
"CLI 内置模板与同批 SDK 精确版本同步,中文接入资料随 skill-kit 发布。"
|
|
15
|
+
],
|
|
16
|
+
"affectedUsers": [
|
|
17
|
+
"使用持久命令排队提交、原申请恢复的 V2 页面开发者及应用用户。"
|
|
18
|
+
],
|
|
19
|
+
"upgradeSteps": [
|
|
20
|
+
"安装同批正式 openxiangda 包,刷新技能资料并重启应用;按应用需求显式配置 discoveryRecoveryMs。",
|
|
21
|
+
"排队文案以 acceptanceConfirmed 为准,未知受理提供显式恢复原申请操作,不在挂载时重放提交。",
|
|
22
|
+
"本轮能力不要求新服务端契约或 SQL;使用此前新增的工作流能力时仍需对应平台正式迁移与服务端版本。"
|
|
23
|
+
],
|
|
24
|
+
"knownLimitations": [
|
|
25
|
+
"延长只读发现预算不会延长原首次提交的受理或观察窗口,也不会自动补单。",
|
|
26
|
+
"单元与发行门禁不证明实际服务器容量;入口、受理和本人结果须在目标环境独立测量。",
|
|
27
|
+
"浏览器尚未取得受理回执时,离页不能保证原申请已经进入后台队列。"
|
|
28
|
+
],
|
|
29
|
+
"issues": [],
|
|
30
|
+
"compatibility": {
|
|
31
|
+
"node": ">=24",
|
|
32
|
+
"workspaceGenerations": "v2",
|
|
33
|
+
"platform": "现有 managed concurrency durable command 契约;新增恢复选项为可选。",
|
|
34
|
+
"v1": "V1 引擎保持独立,本轮无行为变更。"
|
|
35
|
+
},
|
|
36
|
+
"sha256": "456c5671abc109c2cadc82bd22ae82adb2756293b63ee79aad941fc3450138d3",
|
|
37
|
+
"url": "https://github.com/1377385356/openxiangda/releases/tag/v2.43.0"
|
|
38
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": "openxiangda.release-notes/v1",
|
|
3
|
+
"version": "2.44.0",
|
|
4
|
+
"status": "reviewed",
|
|
5
|
+
"title": "OpenXiangda 2.44.0:当前任务的托管附件与图片",
|
|
6
|
+
"summary": "代码任务页面支持根附件与图片,普通审批人通过固定任务上传和预览,草稿保留和正式流程提交复用平台文件生命周期。",
|
|
7
|
+
"newFeatures": [
|
|
8
|
+
"任务文件 SDK 支持固定 ID 的原计划与完成恢复,标准 PC/手机上传及预览自动接入。",
|
|
9
|
+
"编译器按可编辑任务文件申请 workflow.task-managed-files 自动能力,无额外默认关闭开关。"
|
|
10
|
+
],
|
|
11
|
+
"fixes": [
|
|
12
|
+
"上传结果未知时保留原文件与请求并锁住新流程动作和草稿写入;ready 结果不再次 PUT。",
|
|
13
|
+
"任务表单和本人草稿比较使用任务文件范围,避免依赖通用 CRUD 预览资格。"
|
|
14
|
+
],
|
|
15
|
+
"affectedUsers": [
|
|
16
|
+
"声明 file/image 任务补填页面的 V2 应用开发者、办理人和平台维护者。"
|
|
17
|
+
],
|
|
18
|
+
"upgradeSteps": [
|
|
19
|
+
"消费同批本地 SDK/contracts 与匹配平台 Server,应用迁移 AddWorkflowTaskManagedFilesV2,刷新资料并重启。",
|
|
20
|
+
"局部修改才显示附件字段时先保存补填,再上传;自定义页面固定上传 UUID,并保留原请求处理未知结果。"
|
|
21
|
+
],
|
|
22
|
+
"knownLimitations": [
|
|
23
|
+
"本轮交付根 file/image,签名、富文本和 owned 子表仍按后续任务页面切片验证。",
|
|
24
|
+
"上传资格依据已保存资料的页面状态;管理员不能配置字段权限。",
|
|
25
|
+
"本轮是本地迁移实验,npm 发布与学校生产迁移分别另行执行。"
|
|
26
|
+
],
|
|
27
|
+
"issues": [],
|
|
28
|
+
"compatibility": {
|
|
29
|
+
"node": ">=24",
|
|
30
|
+
"workspaceGenerations": "v2",
|
|
31
|
+
"platform": "workflow.task-managed-files@1.0.0 与 AddWorkflowTaskManagedFilesV2",
|
|
32
|
+
"v1": "1.x 引擎独立,本轮不改变其上传入口。"
|
|
33
|
+
},
|
|
34
|
+
"sha256": "b4d4027b81772f5c63ef0638b7ffa9c73374799a398bd17c8828ed126410e4da",
|
|
35
|
+
"url": "https://github.com/1377385356/openxiangda/releases/tag/v2.44.0"
|
|
36
|
+
}
|
package/skills/manifest.json
CHANGED
|
@@ -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": "
|
|
7
|
+
"sha256": "9350d7e567e877208b86929f0eeedade792f9750989ca08055061092c980ec37"
|
|
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.
|
|
44
|
-
pnpm dlx openxiangda@2.
|
|
45
|
-
pnpm dlx openxiangda@2.
|
|
46
|
-
pnpm dlx openxiangda@2.
|
|
43
|
+
pnpm dlx openxiangda@2.44.0 auth status --cwd <应用目录> --base-url <平台地址> --json
|
|
44
|
+
pnpm dlx openxiangda@2.44.0 login --cwd <应用目录> --base-url <平台地址>
|
|
45
|
+
pnpm dlx openxiangda@2.44.0 create <应用目录> --base-url <同一平台地址>
|
|
46
|
+
pnpm dlx openxiangda@2.44.0 skill install --force
|
|
47
47
|
```
|
|
48
48
|
|
|
49
49
|
创建前把产品要求的目标平台明确带入命令,不从旧登录态推断站点。已有工作区从原绑定恢复,平台不一致时先解决登录与目标,不改 link 文件跨站创建。
|