openxiangda 2.75.1 → 2.75.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 (37) hide show
  1. package/dist/browser/components/workflow/WorkflowDesigner.d.ts.map +1 -1
  2. package/dist/browser/components/workflow/WorkflowDesigner.js +3 -6
  3. package/dist/browser/components/workflow/WorkflowDesigner.js.map +1 -1
  4. package/dist/browser/components/workflow/WorkflowDesignerAssistant.d.ts +3 -1
  5. package/dist/browser/components/workflow/WorkflowDesignerAssistant.d.ts.map +1 -1
  6. package/dist/browser/components/workflow/WorkflowDesignerAssistant.js +2 -2
  7. package/dist/browser/components/workflow/WorkflowDesignerAssistant.js.map +1 -1
  8. package/dist/browser/components/workflow/WorkflowDiagram.d.ts +4 -1
  9. package/dist/browser/components/workflow/WorkflowDiagram.d.ts.map +1 -1
  10. package/dist/browser/components/workflow/WorkflowDiagram.js +5 -3
  11. package/dist/browser/components/workflow/WorkflowDiagram.js.map +1 -1
  12. package/dist/browser/components/workflow/WorkflowFlowCanvas.d.ts.map +1 -1
  13. package/dist/browser/components/workflow/WorkflowFlowCanvas.js +2 -2
  14. package/dist/browser/components/workflow/WorkflowFlowCanvas.js.map +1 -1
  15. package/dist/browser/components/workflow/workflow-graph-presentation.d.ts.map +1 -1
  16. package/dist/browser/components/workflow/workflow-graph-presentation.js +2 -2
  17. package/dist/browser/components/workflow/workflow-graph-presentation.js.map +1 -1
  18. package/dist/browser/components/workflow/workflow-variable-presentation.d.ts +3 -1
  19. package/dist/browser/components/workflow/workflow-variable-presentation.d.ts.map +1 -1
  20. package/dist/browser/components/workflow/workflow-variable-presentation.js +6 -0
  21. package/dist/browser/components/workflow/workflow-variable-presentation.js.map +1 -1
  22. package/documentation/administration.md +11 -4
  23. package/documentation/backend.md +21 -1
  24. package/documentation/getting-started.md +7 -7
  25. package/documentation/manifest.json +4 -4
  26. package/package.json +22 -27
  27. package/releases/2.71.0.json +38 -0
  28. package/releases/2.75.3.json +32 -0
  29. package/skills/manifest.json +1 -1
  30. package/skills/openxiangda-v2/SKILL.md +4 -4
  31. package/skills/openxiangda-v2/references/administration.md +11 -4
  32. package/skills/openxiangda-v2/references/backend.md +21 -1
  33. package/skills/openxiangda-v2/references/getting-started.md +7 -7
  34. package/releases/2.72.0.json +0 -36
  35. package/releases/2.73.0.json +0 -31
  36. package/releases/2.75.0.json +0 -35
  37. package/releases/2.75.1.json +0 -37
@@ -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": "d58e57c18421d0ebd54cd2222919249f8641b7142bbd45cb203b630899de0a64"
7
+ "sha256": "b46d8ad957e62af3e48d68d76e8eb0c052258883e9f193b288e10403ce6d7971"
8
8
  }
9
9
  ]
10
10
  }
@@ -40,10 +40,10 @@ AI 接到新应用、页面或改版任务时,在同一个 OpenXiangda 工作
40
40
  未创建工作区时使用本 Skill 随根包发布的精确版本:
41
41
 
42
42
  ```bash
43
- pnpm dlx openxiangda@2.75.1 auth status --cwd <应用目录> --base-url <平台地址> --json
44
- pnpm dlx openxiangda@2.75.1 login --cwd <应用目录> --base-url <平台地址>
45
- pnpm dlx openxiangda@2.75.1 create <应用目录> --base-url <同一平台地址>
46
- pnpm dlx openxiangda@2.75.1 skill install --force
43
+ pnpm dlx openxiangda@2.75.3 auth status --cwd <应用目录> --base-url <平台地址> --json
44
+ pnpm dlx openxiangda@2.75.3 login --cwd <应用目录> --base-url <平台地址>
45
+ pnpm dlx openxiangda@2.75.3 create <应用目录> --base-url <同一平台地址>
46
+ pnpm dlx openxiangda@2.75.3 skill install --force
47
47
  ```
48
48
 
49
49
  创建前把产品要求的目标平台明确带入命令,不从旧登录态推断站点。已有工作区从原绑定恢复,平台不一致时先解决登录与目标,不改 link 文件跨站创建。
@@ -165,15 +165,22 @@ Nest后端注入请求作用域的 `OpenXiangdaWorkflowService`,调用 `delega
165
165
 
166
166
  目录进入独立流程图地址,刷新及浏览器返回保留所查看流程/版本。共享组件按需加载 React Flow 与 ELK 正交布局:所有线段横平竖直、转角为直角;支持画布平移、滚轮缩放、适应全图、聚焦选中和缩略导航。分支标签可选中,详情保留完整条件、顺序和来源;窄屏采用同源节点列表,方向键/Home/End 定位节点。画布布局上限为 200 节点、1024 连线,不提供拖改、删除或连线编辑。
167
167
 
168
+ `WorkflowDiagram`可传入可选`variableChoices`,格式与`WorkflowDesigner`一致:以真实事实路径为键,值为`{ label, value }`选项数组。
169
+ 从当前生成模型目录取得选项,再按实际`subject.factProjection`映射,不在页面维护第二套业务字典。
170
+ 它只提供显示名称,不能新增变量、改写条件或授予权限;每个变量最多64个选项、字典最多128项,并按原事实类型校验。
171
+ 画布分支、提示和可访问列表使用同一中文说明,自定义分支名保留;未知值或类型不兼容时保留原始值,不猜测含义。
172
+ 宿主传给设计器的同一元数据也用于AI建议预览,但预览显示正确不证明模型连接或实际调用可用。
173
+ 只读图保留显式业务条件通向拒绝结果的分支,普通审批拒绝操作的专用终点仍由办理设置/历史说明。
174
+
168
175
  应用自定义管理页面可复用当前用户客户端和共享图组件:
169
176
 
170
177
  ```tsx
171
178
  import { useEffect, useState } from 'react';
172
- import { WorkflowDiagram } from 'openxiangda/react';
179
+ import { WorkflowDiagram, type WorkflowVariableChoices } from 'openxiangda/react';
173
180
  import { loadWorkflowDefinitionGraph, type WorkflowGraphReadResult } from 'openxiangda/core';
174
181
 
175
- export function ReadableWorkflow({ workflowCode, version }: {
176
- workflowCode: string; version: number;
182
+ export function ReadableWorkflow({ workflowCode, version, variableChoices }: {
183
+ workflowCode: string; version: number; variableChoices?: WorkflowVariableChoices;
177
184
  }) {
178
185
  const [result, setResult] = useState<WorkflowGraphReadResult>();
179
186
  const [selected, setSelected] = useState('');
@@ -188,7 +195,7 @@ export function ReadableWorkflow({ workflowCode, version }: {
188
195
  }, [workflowCode, version]);
189
196
  if (error) return <p role="alert">{error}</p>;
190
197
  if (!result) return <p>正在读取流程</p>;
191
- return <WorkflowDiagram graph={result.graph} selectedNodeId={selected} onSelectNode={setSelected} />;
198
+ return <WorkflowDiagram graph={result.graph} variableChoices={variableChoices} selectedNodeId={selected} onSelectNode={setSelected} />;
192
199
  }
193
200
  ```
194
201
 
@@ -298,11 +298,31 @@ await businessData.transaction({
298
298
  ```
299
299
 
300
300
  引用约束:引用对象只含 `operationIndex`(0..99 的整数)与 `field: 'id'` 两个键;
301
- 只能指向索引更小的 create 操作;引用不得嵌套在数组或对象里。违反形状报
301
+ 只能指向索引更小的 create 操作;普通字段引用不得嵌套在数组或对象里,关联资源字段的快照见下节。违反形状报
302
302
  `OPENXIANGDA_NATIVE_DATA_TRANSACTION_REFERENCE_INVALID`,嵌套报
303
303
  `..._NESTED`,目标不可解析报 `..._UNRESOLVED`。任一操作失败时整个事务回滚,
304
304
  不会留下无成员的 club。
305
305
 
306
+ ### 关联资源字段保留快照
307
+
308
+ `resource-ref.single` 字段仍需要资源代码、显示标签和 `value`。用 Nest 的
309
+ `resourceSnapshot` 将前序 create 引用放在唯一受支持的快照 `value` 位置;
310
+ 裸 UUID 引用不能代替资源字段快照:
311
+
312
+ ```ts
313
+ import { resourceSnapshot } from 'openxiangda/nest';
314
+ const operations = [
315
+ { operation: 'create' as const, resourceCode: 'orders', data: { name: '订单' } },
316
+ { operation: 'create' as const, resourceCode: 'order-lines', data: {
317
+ order: resourceSnapshot('orders', { operationIndex: 0, field: 'id' }, '订单'),
318
+ } },
319
+ ];
320
+ ```
321
+
322
+ 快照的 `resourceCode` 必须与前序 create 的资源一致。只允许既有快照元数据,
323
+ `value` 之外的对象、数组和 `snapshot` 中仍不接受事务引用;平台继续验证目标字段、
324
+ 引用和实际授权。字符串 ID 的 `resourceSnapshot` 调用保持原行为,助手不提交或重试请求。
325
+
306
326
  ## 业务动作与普通查询 {#business-action}
307
327
 
308
328
  `OpenXiangdaDataApiService` 按当前用户的普通资源、行和字段权限执行。具名业务动作使用 `OpenXiangdaBusinessDataApiService`:入口先检查该动作 capability,平台在精确应用和环境内以受信任后端执行,并保留发起人与动作审计。业务动作不能接受任意模型/字段/用户 ID 后不做业务校验;应用负责该动作的输入约束和业务不变量。
@@ -68,10 +68,10 @@ MCP 服务随项目根包一起安装,AI 客户端的 stdio 连接仍需配置
68
68
  以下命令的版本占位符由随包资料替换为该根包的精确版本。网站源码阅读者应先确认要使用的发行版本。
69
69
 
70
70
  ```bash
71
- pnpm dlx openxiangda@2.75.1 skill install --force
72
- pnpm dlx openxiangda@2.75.1 auth status --base-url <平台地址> --json
73
- pnpm dlx openxiangda@2.75.1 login --cwd my-app --base-url https://platform.example.com
74
- pnpm dlx openxiangda@2.75.1 create my-app --base-url https://platform.example.com
71
+ pnpm dlx openxiangda@2.75.3 skill install --force
72
+ pnpm dlx openxiangda@2.75.3 auth status --base-url <平台地址> --json
73
+ pnpm dlx openxiangda@2.75.3 login --cwd my-app --base-url https://platform.example.com
74
+ pnpm dlx openxiangda@2.75.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
@@ -221,9 +221,9 @@ MCP 的 `docs_read` 可以读取本说明,当前没有独立的源码操作 MC
221
221
  无需本地工作区,使用本 Skill 随包精确版本或已安装的对应 CLI:
222
222
 
223
223
  ```bash
224
- pnpm dlx openxiangda@2.75.1 auth status --base-url <平台> --json
225
- pnpm dlx openxiangda@2.75.1 source resolve <仓库URL> --base-url <平台> --json
226
- pnpm dlx openxiangda@2.75.1 source clone <仓库URL> <新目录> --base-url <平台> --json
224
+ pnpm dlx openxiangda@2.75.3 auth status --base-url <平台> --json
225
+ pnpm dlx openxiangda@2.75.3 source resolve <仓库URL> --base-url <平台> --json
226
+ pnpm dlx openxiangda@2.75.3 source clone <仓库URL> <新目录> --base-url <平台> --json
227
227
  ```
228
228
 
229
229
  登录缺失或站点不匹配时,先按该平台执行 login。resolve 根据平台已经登记的绑定返回
@@ -1,36 +0,0 @@
1
- {
2
- "schemaVersion": "openxiangda.release-notes/v1",
3
- "version": "2.72.0",
4
- "status": "reviewed",
5
- "title": "有界匿名具名查询",
6
- "summary": "为匿名公开门户提供固定字段、排序、参数和签名游标的服务端具名查询,减少首页、搜索和排行的全量分页读取。",
7
- "newFeatures": [
8
- "frontend.publicAccess 支持 publicQueries 与 public.query,固定资源、字段投影、排序、limit 和参数绑定。",
9
- "匿名浏览器 SDK 提供具名查询客户端;平台服务端复用公开字段、固定 publicFilters、RLS 和托管文件投影。",
10
- "记录查询游标绑定查询、参数、签名和有界偏移,未知字段、参数、游标和超限请求直接拒绝。"
11
- ],
12
- "fixes": [
13
- "公开目录页面可在具名查询声明存在时使用有界首屏查询,旧 public.list/public.read 策略保持兼容。",
14
- "compiler、bundle、JSON Schema 和 server execution 统一校验 publicQueries,避免仅更新页面而绕过平台匿名访问合同。"
15
- ],
16
- "affectedUsers": [
17
- "需要匿名首页、公开目录、搜索、排行或统计的 OpenXiangda V2 应用。"
18
- ],
19
- "upgradeSteps": [
20
- "升级同一正式发行的 openxiangda、contracts、devkit-core 和 CLI 组合。",
21
- "在匿名策略中声明 public.query 与 publicQueries,并按本应用字段配置固定排序和参数。",
22
- "先在 TEST/preproduction 完成请求量、权限、游标失效和真实浏览器 PC/mobile 验收,再发布生产。"
23
- ],
24
- "knownLimitations": [
25
- "本地构建和单元测试不代表学校站点已安装该平台组合。",
26
- "现版本服务端 aggregate 查询返回固定 count;复杂维度和度量仍需单独声明与验证。"
27
- ],
28
- "compatibility": {
29
- "node": "Node.js 24 or newer for maintained toolchain",
30
- "generation": "OpenXiangda V2; V1 unchanged",
31
- "platform": "anonymous-public named queries 1.0.0; existing anonymous public list/read policies remain compatible"
32
- },
33
- "issues": [],
34
- "sha256": "cc2aaebd52707a5e6acf65319407411baa61aff689a2f5ea91294effd5f0ed31",
35
- "url": "https://github.com/1377385356/openxiangda/releases/tag/v2.72.0"
36
- }
@@ -1,31 +0,0 @@
1
- {
2
- "schemaVersion": "openxiangda.release-notes/v1",
3
- "version": "2.73.0",
4
- "status": "reviewed",
5
- "title": "匿名聚合查询与工作流作者体验",
6
- "summary": "为匿名公开门户提供固定维度、度量和排序的有界聚合查询,并包含已评审的工作流作者体验改进。",
7
- "newFeatures": [
8
- "匿名 public.query 支持固定 aggregate dimensions、measures 和 order,并复用 publicFilters、Native RLS 与有界分页。",
9
- "工作流作者体验改进随同一正式七包组合发布。"
10
- ],
11
- "fixes": [
12
- "compiler、bundle、JSON Schema 和 server execution 对匿名聚合查询保持同一闭合合同。"
13
- ],
14
- "affectedUsers": [
15
- "需要匿名首页统计、分类、学院分布或排行的 OpenXiangda V2 应用。"
16
- ],
17
- "upgradeSteps": [
18
- "升级同一正式发行组合;在 TEST/preproduction 验证匿名聚合、游标、权限和浏览器性能。"
19
- ],
20
- "knownLimitations": [
21
- "本地门禁不代表学校站点已安装该平台组合。"
22
- ],
23
- "compatibility": {
24
- "node": "Node.js 24 or newer for maintained toolchain",
25
- "generation": "OpenXiangda V2; V1 unchanged",
26
- "platform": "anonymous-public named and aggregate queries 1.1.0; existing public list/read policies remain compatible"
27
- },
28
- "issues": [],
29
- "sha256": "76468650e5afabd8c49c1b11655a8261044d2e6bc5e2916ae07225b073ee968c",
30
- "url": "https://github.com/1377385356/openxiangda/releases/tag/v2.73.0"
31
- }
@@ -1,35 +0,0 @@
1
- {
2
- "schemaVersion": "openxiangda.release-notes/v1",
3
- "version": "2.75.0",
4
- "status": "reviewed",
5
- "title": "匿名公开具名查询批量读取",
6
- "summary": "为公开门户提供保留原平台权限的有界批量查询客户端,减少多个独立查询的网络往返,并修正聚合结果类型。",
7
- "newFeatures": [
8
- "createAnonymousPublicClient.queryBatch固定应用、环境和声明路由,按key/policy/query精确匹配逐项记录、聚合或错误回执。",
9
- "每批最多10项、500条请求上限、64KiB输入,配套平台最多3项并发;不新增普通匿名Data API、权限缓存或Nest CRUD代理。"
10
- ],
11
- "fixes": [
12
- "聚合items正确表示为直接含维度/指标的对象,不再声明成record.data;保留原value-only计数与单查询API。",
13
- "缺失、重复、错位、超量或形状错误的批量回执明确拒绝,单项403/404/429/503不会变成空表或零。"
14
- ],
15
- "affectedUsers": [
16
- "使用匿名公开目录、仪器卡片、首页统计或其他多个具名只读查询的OpenXiangda V2应用。"
17
- ],
18
- "upgradeSteps": [
19
- "先部署支持POST anonymous-public/public/query-batch的正式平台版本,再升级官方SDK与CLI;旧平台404应报告并完成平台更新。",
20
- "使用原bootstrap获取正式浏览器凭证;批次每项显式指定策略、查询与key,调用方逐项处理成功或错误,延续原固定过滤和字段白名单。",
21
- "保持真实页面请求数、P95/LCP与多角色业务验收独立进行,批量HTTP成功不代表每项成功。"
22
- ],
23
- "knownLimitations": [
24
- "批次由独立只读查询组成,不保证同一数据库快照;不支持写入、业务动作或通知。",
25
- "本发行不代表任何客户站点已部署或页面性能已达标;普通列表服务端分页与应用接入另行验收。"
26
- ],
27
- "compatibility": {
28
- "node": "Node.js 24 or newer for maintained toolchain",
29
- "generation": "OpenXiangda V2; V1 unchanged",
30
- "platform": "Requires anonymous-public/public/query-batch; each item reuses existing public policy and Native authorization"
31
- },
32
- "issues": [],
33
- "sha256": "f5c80399d75664d6b7a58ad81bc5124cd4da188cf2893347337488996b4eb4d1",
34
- "url": "https://github.com/1377385356/openxiangda/releases/tag/v2.75.0"
35
- }
@@ -1,37 +0,0 @@
1
- {
2
- "schemaVersion": "openxiangda.release-notes/v1",
3
- "version": "2.75.1",
4
- "status": "reviewed",
5
- "title": "公开查询批量读取与排序优先级修复",
6
- "summary": "提供保留原平台权限的有界批量公开查询,修复多字段排序被重排的问题,配套同步官方技能资料。",
7
- "newFeatures": [
8
- "createAnonymousPublicClient.queryBatch固定应用、环境和声明路由,按key/policy/query精确匹配逐项记录、聚合或错误回执。",
9
- "每批最多10项、500条请求上限、64KiB输入,配套平台最多3项并发;不新增普通匿名Data API、权限缓存或Nest CRUD代理。"
10
- ],
11
- "fixes": [
12
- "应用打包器和共享目标编译器均保留publicQueries.sort声明顺序;修改排序优先级会正确改变配置摘要。",
13
- "聚合items正确表示为直接含维度/指标的对象,不再声明成record.data;保留原value-only计数与单查询API。",
14
- "缺失、重复、错位、超量或形状错误的批量回执明确拒绝,单项403/404/429/503不会变成空表或零。"
15
- ],
16
- "affectedUsers": [
17
- "使用匿名公开目录、仪器卡片、首页统计或其他多个具名只读查询的OpenXiangda V2应用。"
18
- ],
19
- "upgradeSteps": [
20
- "先部署支持POST anonymous-public/public/query-batch的正式平台版本,再升级官方SDK与CLI;旧平台404应报告并完成平台更新。",
21
- "升级后重新编译并发布TEST应用,以新不可变策略采用正确排序;不修改历史Head,不下载全表在前端弥补错误的前N选择。",
22
- "使用原bootstrap获取正式浏览器凭证;批次每项显式指定策略、查询与key,调用方逐项处理成功或错误,延续原固定过滤和字段白名单。",
23
- "保持真实页面请求数、P95/LCP与多角色业务验收独立进行,批量HTTP成功不代表每项成功。"
24
- ],
25
- "knownLimitations": [
26
- "批次由独立只读查询组成,不保证同一数据库快照;不支持写入、业务动作或通知。",
27
- "本发行不代表任何客户站点已部署或页面性能已达标;普通列表服务端分页与应用接入另行验收。"
28
- ],
29
- "compatibility": {
30
- "node": "Node.js 24 or newer for maintained toolchain",
31
- "generation": "OpenXiangda V2; V1 unchanged",
32
- "platform": "Requires anonymous-public/public/query-batch; each item reuses existing public policy and Native authorization"
33
- },
34
- "issues": [],
35
- "sha256": "3abc78c05afd7f71f1559f134f30a060c233e2a851adae71023c10e091ededb2",
36
- "url": "https://github.com/1377385356/openxiangda/releases/tag/v2.75.1"
37
- }