openxiangda 2.70.0 → 2.70.2

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.
@@ -288,6 +288,327 @@ MCP 使用项目锁定的根包;在客户端配置下列 stdio 启动参数,
288
288
  {
289
289
  "type": "object",
290
290
  "oneOf": [
291
+ {
292
+ "type": "object",
293
+ "additionalProperties": false,
294
+ "properties": {
295
+ "operation": {
296
+ "const": "workflows.legacy-prepare",
297
+ "description": "准备旧审批当前节点接续,冻结原申请人、轮次、历史和Native业务单"
298
+ },
299
+ "environment": {
300
+ "type": "string",
301
+ "enum": [
302
+ "test",
303
+ "production"
304
+ ]
305
+ },
306
+ "input": {
307
+ "type": "object",
308
+ "additionalProperties": false,
309
+ "properties": {
310
+ "schemaVersion": {
311
+ "const": "openxiangda.workflow-legacy-adoption-prepare/v2"
312
+ },
313
+ "requestKey": {
314
+ "type": "string",
315
+ "minLength": 1,
316
+ "maxLength": 128
317
+ },
318
+ "reason": {
319
+ "type": "string",
320
+ "minLength": 1,
321
+ "maxLength": 1000
322
+ },
323
+ "expectedHeadRevision": {
324
+ "type": "integer",
325
+ "minimum": 1,
326
+ "maximum": 9007199254740991
327
+ },
328
+ "workflowCode": {
329
+ "type": "string",
330
+ "minLength": 1,
331
+ "maxLength": 128,
332
+ "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"
333
+ },
334
+ "resourceCode": {
335
+ "type": "string",
336
+ "minLength": 1,
337
+ "maxLength": 128,
338
+ "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"
339
+ },
340
+ "recordId": {
341
+ "type": "string",
342
+ "minLength": 1,
343
+ "maxLength": 36,
344
+ "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
345
+ },
346
+ "expectedRevision": {
347
+ "type": "integer",
348
+ "minimum": 1,
349
+ "maximum": 9007199254740991
350
+ },
351
+ "source": {
352
+ "type": "object",
353
+ "additionalProperties": false,
354
+ "properties": {
355
+ "system": {
356
+ "type": "string",
357
+ "minLength": 1,
358
+ "maxLength": 128,
359
+ "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"
360
+ },
361
+ "recordKey": {
362
+ "type": "string",
363
+ "minLength": 1,
364
+ "maxLength": 255
365
+ },
366
+ "snapshotSha256": {
367
+ "type": "string",
368
+ "minLength": 1,
369
+ "maxLength": 64,
370
+ "pattern": "^[0-9a-f]{64}$"
371
+ },
372
+ "recordSha256": {
373
+ "type": "string",
374
+ "minLength": 1,
375
+ "maxLength": 64,
376
+ "pattern": "^[0-9a-f]{64}$"
377
+ }
378
+ },
379
+ "required": [
380
+ "system",
381
+ "recordKey",
382
+ "snapshotSha256",
383
+ "recordSha256"
384
+ ]
385
+ },
386
+ "checkpoint": {
387
+ "type": "object",
388
+ "additionalProperties": false,
389
+ "properties": {
390
+ "initiatorUserId": {
391
+ "type": "string",
392
+ "minLength": 1,
393
+ "maxLength": 36,
394
+ "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
395
+ },
396
+ "approvalRound": {
397
+ "type": "integer",
398
+ "minimum": 1,
399
+ "maximum": 2147483647
400
+ },
401
+ "currentNodeId": {
402
+ "type": "string",
403
+ "minLength": 1,
404
+ "maxLength": 128,
405
+ "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"
406
+ },
407
+ "initiatorField": {
408
+ "type": "string",
409
+ "minLength": 1,
410
+ "maxLength": 63,
411
+ "pattern": "^[A-Za-z][A-Za-z0-9_]{0,62}$"
412
+ },
413
+ "initiatorIdentityField": {
414
+ "type": "string",
415
+ "minLength": 1,
416
+ "maxLength": 63,
417
+ "pattern": "^[A-Za-z][A-Za-z0-9_]{0,62}$"
418
+ },
419
+ "roundField": {
420
+ "type": "string",
421
+ "minLength": 1,
422
+ "maxLength": 63,
423
+ "pattern": "^[A-Za-z][A-Za-z0-9_]{0,62}$"
424
+ },
425
+ "stateField": {
426
+ "type": "string",
427
+ "minLength": 1,
428
+ "maxLength": 63,
429
+ "pattern": "^[A-Za-z][A-Za-z0-9_]{0,62}$"
430
+ },
431
+ "stateValue": {
432
+ "type": "string",
433
+ "minLength": 1,
434
+ "maxLength": 255
435
+ },
436
+ "history": {
437
+ "type": "array",
438
+ "maxItems": 64,
439
+ "items": {
440
+ "type": "object",
441
+ "additionalProperties": false,
442
+ "properties": {
443
+ "nodeId": {
444
+ "type": "string",
445
+ "minLength": 1,
446
+ "maxLength": 128,
447
+ "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"
448
+ },
449
+ "reviewerDisplay": {
450
+ "type": "string",
451
+ "minLength": 1,
452
+ "maxLength": 255
453
+ },
454
+ "reviewedAt": {
455
+ "type": "string",
456
+ "minLength": 1,
457
+ "maxLength": 64
458
+ },
459
+ "opinion": {
460
+ "type": "string",
461
+ "maxLength": 8192
462
+ },
463
+ "reviewerField": {
464
+ "type": "string",
465
+ "minLength": 1,
466
+ "maxLength": 63,
467
+ "pattern": "^[A-Za-z][A-Za-z0-9_]{0,62}$"
468
+ },
469
+ "reviewedAtField": {
470
+ "type": "string",
471
+ "minLength": 1,
472
+ "maxLength": 63,
473
+ "pattern": "^[A-Za-z][A-Za-z0-9_]{0,62}$"
474
+ },
475
+ "opinionField": {
476
+ "type": "string",
477
+ "minLength": 1,
478
+ "maxLength": 63,
479
+ "pattern": "^[A-Za-z][A-Za-z0-9_]{0,62}$"
480
+ }
481
+ },
482
+ "required": [
483
+ "nodeId",
484
+ "reviewerDisplay",
485
+ "reviewedAt",
486
+ "opinion",
487
+ "reviewerField",
488
+ "reviewedAtField",
489
+ "opinionField"
490
+ ]
491
+ }
492
+ }
493
+ },
494
+ "required": [
495
+ "initiatorUserId",
496
+ "approvalRound",
497
+ "currentNodeId",
498
+ "initiatorField",
499
+ "initiatorIdentityField",
500
+ "roundField",
501
+ "stateField",
502
+ "stateValue",
503
+ "history"
504
+ ]
505
+ }
506
+ },
507
+ "required": [
508
+ "schemaVersion",
509
+ "requestKey",
510
+ "reason",
511
+ "expectedHeadRevision",
512
+ "workflowCode",
513
+ "resourceCode",
514
+ "recordId",
515
+ "expectedRevision",
516
+ "source",
517
+ "checkpoint"
518
+ ]
519
+ }
520
+ },
521
+ "required": [
522
+ "operation",
523
+ "environment",
524
+ "input"
525
+ ]
526
+ },
527
+ {
528
+ "type": "object",
529
+ "additionalProperties": false,
530
+ "properties": {
531
+ "operation": {
532
+ "const": "workflows.legacy-apply",
533
+ "description": "按原计划摘要原子接续当前节点,仅创建当前待办"
534
+ },
535
+ "environment": {
536
+ "type": "string",
537
+ "enum": [
538
+ "test",
539
+ "production"
540
+ ]
541
+ },
542
+ "input": {
543
+ "type": "object",
544
+ "additionalProperties": false,
545
+ "properties": {
546
+ "schemaVersion": {
547
+ "const": "openxiangda.workflow-legacy-adoption-apply/v2"
548
+ },
549
+ "planId": {
550
+ "type": "string",
551
+ "minLength": 1,
552
+ "maxLength": 36,
553
+ "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
554
+ },
555
+ "expectedPlanDigest": {
556
+ "type": "string",
557
+ "minLength": 1,
558
+ "maxLength": 64,
559
+ "pattern": "^[0-9a-f]{64}$"
560
+ }
561
+ },
562
+ "required": [
563
+ "schemaVersion",
564
+ "planId",
565
+ "expectedPlanDigest"
566
+ ]
567
+ }
568
+ },
569
+ "required": [
570
+ "operation",
571
+ "environment",
572
+ "input"
573
+ ]
574
+ },
575
+ {
576
+ "type": "object",
577
+ "additionalProperties": false,
578
+ "properties": {
579
+ "operation": {
580
+ "const": "workflows.legacy-receipt",
581
+ "description": "读取旧审批接续准备或执行回执"
582
+ },
583
+ "environment": {
584
+ "type": "string",
585
+ "enum": [
586
+ "test",
587
+ "production"
588
+ ]
589
+ },
590
+ "input": {
591
+ "type": "object",
592
+ "additionalProperties": false,
593
+ "properties": {
594
+ "planId": {
595
+ "type": "string",
596
+ "minLength": 1,
597
+ "maxLength": 36,
598
+ "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
599
+ }
600
+ },
601
+ "required": [
602
+ "planId"
603
+ ]
604
+ }
605
+ },
606
+ "required": [
607
+ "operation",
608
+ "environment",
609
+ "input"
610
+ ]
611
+ },
291
612
  {
292
613
  "type": "object",
293
614
  "additionalProperties": false,
@@ -1261,3 +1261,24 @@ pnpm openxiangda workflow sync request-review --from production --to test \
1261
1261
  新节点尚未填完标准成员/角色时可以保存草稿;正式发布与办理覆盖仍完整校验。服务端重新读取实际上下文,不信任浏览器自报目录或已校验标志。AI提案同样经过原binding/canvas门禁;不能把草稿可保存解释为可发布。
1262
1262
 
1263
1263
  冲突、失权或结果未知时保留整个assignment及原operationId,不自动合并分支、不静默丢失条件。已进入流程的任务仍使用原冻结快照,新的规则不回写历史任务。源码同步、配置与发布分别核对原Head/版本和操作回执。
1264
+
1265
+
1266
+ ### 应用事务拥有的业务待办
1267
+
1268
+ 预约分配、结算确认等非 Workflow 的业务任务,可由同一 Native 事务写入业务状态并
1269
+ 发送不可变自定义事件。订阅显式声明
1270
+ `platformAccess.notification: { mode: 'business-task', taskCodes: ['booking-review'] }`,
1271
+ 验证签名的 Nest 事件消费者使用 `OpenXiangdaBusinessNotificationService.sendTaskFromEvent`。
1272
+ 平台协商 `notification-hub-v2.event-tasks` 能力并检查当前运行 Head 和封存的任务代码清单。
1273
+
1274
+ 输入使用 `openxiangda.notification.event-task-send/v2`,通过 taskCodePath、recordKeyPath、
1275
+ generationPath、sequencePath、statePath、recipientPaths、titlePath 和可选 summaryPath
1276
+ 投影原事件,状态只能是 action_required/completed/rejected/cancelled。不接收调用者
1277
+ 自拟收件人或消息键。navigationTarget 使用同应用 AUTHENTICATED APP_ROUTE,原页面
1278
+ 重新验证办理权限;不生成 Workflow 回调或审批令牌。
1279
+
1280
+ 同一业务键和轮次只产生一个待办;重新申请必须创建新的 generation。终态先到、
1281
+ 乱序和重试不会重新打开旧待办。应用应冻结原任务收件人,在原业务事务中关闭旧轮次
1282
+ 并创建下一轮,不因管理员变化覆盖旧任务。此能力复用平台任务中心、通知发件箱、
1283
+ 供应方关闭和审计;普通 informational 通知仍不能创建待办。业务提交成功不等于
1284
+ 供应方投递或用户收到,分别核对业务回执、事件投递和消息详情。
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "openxiangda",
3
- "version": "2.70.0",
3
+ "version": "2.70.2",
4
4
  "description": "OpenXiangda 2.0 的统一命令、应用 SDK、MCP 与中文 AI 技能资料。",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -95,13 +95,13 @@
95
95
  "dayjs": "1.11.18",
96
96
  "docx-preview": "0.3.7",
97
97
  "elkjs": "0.12.0",
98
- "openxiangda-cli": "2.11.4",
99
- "openxiangda-contracts": "2.90.0",
100
- "openxiangda-devkit-core": "2.68.0",
98
+ "openxiangda-cli": "2.11.6",
99
+ "openxiangda-contracts": "2.91.1",
100
+ "openxiangda-devkit-core": "2.69.1",
101
101
  "openxiangda-legacy": "npm:openxiangda@1.0.269",
102
- "openxiangda-mcp": "2.2.17",
103
- "openxiangda-nest": "2.20.2",
104
- "openxiangda-skill-kit": "2.3.119",
102
+ "openxiangda-mcp": "2.2.19",
103
+ "openxiangda-nest": "2.21.1",
104
+ "openxiangda-skill-kit": "2.3.121",
105
105
  "xlsx": "https://github.com/1377385356/openxiangda/releases/download/vendor-mirror/xlsx-0.20.3.tgz"
106
106
  },
107
107
  "peerDependencies": {
@@ -167,38 +167,35 @@
167
167
  },
168
168
  "openxiangdaRelease": {
169
169
  "schemaVersion": "openxiangda.release-notes/v1",
170
- "version": "2.70.0",
170
+ "version": "2.70.2",
171
171
  "status": "reviewed",
172
- "title": "组织角色与业务记录归属边界",
173
- "summary": "应用可声明平台目录角色映射、self/subtree 组织范围及 Native 记录组织归属,由配套平台统一执行身份与数据授权。",
174
- "newFeatures": [
175
- "角色显式声明 organizationReach;directoryRoleSources 将可信平台目录事实映射为当前组织内的应用角色和班级等字符串范围。",
176
- "Native 资源声明 none、owned 或 inherited-down 组织策略;组织归属元数据可用于有界读取和统计,业务输入不能更改归属。",
177
- "编译器共同校验组织角色、来源范围和资源策略,自动协商 authz.organizations、authz.directory-roles 与 data.organizations 能力。"
178
- ],
172
+ "title": "首部节点插入与补正回放修复",
173
+ "summary": "首部插入人工、条件、业务或并行节点时,原子更新流程入口和补正重提交入口,保留新首审批与严格校验。",
174
+ "newFeatures": [],
179
175
  "fixes": [
180
- "隔离 CLI 候选构建保留固定 Corepack 缓存,嵌套源码构建并发上限为两个任务;保留真实依赖安装和端到端检查。"
176
+ "首部插入同步补正回放目标,多补正和连续插入删除保留完整路径。",
177
+ "补正可达性遍历并行和汇合后继,保留禁止正向进入补正与退回源必须可达的规则。"
181
178
  ],
182
179
  "affectedUsers": [
183
- "使用多组织、教育局与独立学校或平台家校目录的 OpenXiangda V2 应用;已有未声明组织策略的应用保持原授权语义。"
180
+ "使用流程画布首部插入、补正重提交或并行结构的V2应用。"
184
181
  ],
185
182
  "upgradeSteps": [
186
- "安装精确 openxiangda 2.70.0 官方组合并刷新项目资料,检查生成契约及能力要求。",
187
- "平台配套正式 contracts、组织角色投影服务与新增 SQL 后再启用组织资源;在目标站点验证真实来源、活动成员、安装及角色正反路径。"
183
+ "安装同源完整七包并配套后端共享校验器,核对纯校验器摘要。",
184
+ "从合同现场2.69.1升级继承组织授权、业务待办与旧审批接续合同;两份正式SQL须通过完整门禁和目标预检。完整配套已获授权。",
185
+ "应用更新前通过官方源码导出和注册保护保留现场流程第13版;不以旧源码覆盖或重放未保存草稿。"
188
186
  ],
189
187
  "knownLimitations": [
190
- "npm 包发布不代表平台部署、真实组织同步或业务验收;源码和独立 PostgreSQL 测试不能代替现场登录与权限验证。",
191
- "普通后台或应用凭据不自动取得组织权限;未声明明确系统动作边界的后台任务不能访问组织资源。",
192
- "已有无组织记录不自动推断或回填归属,启用组织策略后不能降级移除边界。"
188
+ "鼠标消失未复现,本地拖动及失焦恢复正常不代表现场问题已修复。",
189
+ "包发行不代表部署或真实角色验收;安装接续能力不授权调用旧审批接续、重放通知或晋级生产。"
193
190
  ],
194
191
  "compatibility": {
195
192
  "node": "Node.js 24 or newer for maintained toolchain",
196
193
  "generation": "OpenXiangda V2; V1 unchanged",
197
- "platform": "须部署同源 contracts 及组织授权 SQL/后端;组织来源角色限定 self,subtree 授权由合法应用管理员显式管理"
194
+ "platform": "同源contracts纯校验器;从171017升级包含AddNativeOrganizationAuthorizationV2和AddWorkflowLegacyAdoptionsV2 SQL,目标预检不可省略。"
198
195
  },
199
196
  "issues": [],
200
- "sha256": "7291b56c3a9c02615075ea5bb9bcf22669b3d19540f5f95173f54589d31a24f8",
201
- "url": "https://github.com/1377385356/openxiangda/releases/tag/v2.70.0"
197
+ "sha256": "d4cd6182b5f50770489b6615a5207dc0590e6a88f1d3fb635a8cf0defc0e8dd8",
198
+ "url": "https://github.com/1377385356/openxiangda/releases/tag/v2.70.2"
202
199
  },
203
200
  "scripts": {
204
201
  "build": "node ../../scripts/prune-package-dist.mjs && tsc -p tsconfig.json && node scripts/copy-assets.mjs",
@@ -0,0 +1,33 @@
1
+ {
2
+ "schemaVersion": "openxiangda.release-notes/v1",
3
+ "version": "2.68.1",
4
+ "status": "reviewed",
5
+ "title": "原部署运行的流程例外只读预览",
6
+ "summary": "按平台能力读取失败 DeploymentRun 的冻结候选、当前 Head 和真实流程例外,支持在独立诊断目录使用公开 SDK 读取旧工作区会话。",
7
+ "newFeatures": [
8
+ "`status <deployment-id> --workflow-exceptions` 只读展示原运行的例外及完整集合摘要,不确认或重试。",
9
+ "独立精确版本 devkit 客户端可读取旧工作区 link/session,无需更改应用 package、lock 或冻结包。"
10
+ ],
11
+ "fixes": [],
12
+ "affectedUsers": [
13
+ "发布包含工作流的 V2 应用的开发者和管理员。"
14
+ ],
15
+ "upgradeSteps": [
16
+ "平台需先提供 deployment.workflow-adoption-preview 1.0.0 能力;无能力时明确停止。",
17
+ "使用本版根包或独立 openxiangda-devkit-core 2.67.0 诊断目录;旧应用不必为了查看例外升级依赖。",
18
+ "保留原 DeploymentRun ID,先核对完整例外;生产仍只晋级已验收 TEST 原版本。"
19
+ ],
20
+ "knownLimitations": [
21
+ "本批仅提供预览,不提供例外确认、事实转换或原 Run 恢复通道。",
22
+ "truncated=true 不代表已观察完整明细;预览不授予激活许可。",
23
+ "包发行不等于平台部署或真实业务验收;source/status 的独立500故障不在此修复中。"
24
+ ],
25
+ "compatibility": {
26
+ "node": "Node.js 24 or newer for maintained toolchain",
27
+ "generation": "OpenXiangda V2; no V1 migration",
28
+ "platform": "New read-only preview requires deployment.workflow-adoption-preview 1.0.0; contracts remains 2.88.0"
29
+ },
30
+ "issues": [],
31
+ "sha256": "859687bd04474e031528a651304916e7535919419aa697ec1892ff5b17cdf666",
32
+ "url": "https://github.com/1377385356/openxiangda/releases/tag/v2.68.1"
33
+ }
@@ -0,0 +1,32 @@
1
+ {
2
+ "schemaVersion": "openxiangda.release-notes/v1",
3
+ "version": "2.69.1",
4
+ "status": "reviewed",
5
+ "title": "流程画布按需面板与连续分支保存修复",
6
+ "summary": "修复流程设计器的常驻面板、连续条件路由断线及带可读名称的草稿无法保存。",
7
+ "newFeatures": [],
8
+ "fixes": [
9
+ "流程大纲默认隐藏,节点设置默认关闭;选择节点后按需打开配置,浮层不挤压编辑画布。",
10
+ "相邻条件区域只拥有各自分支,汇合目标保持单一位置;连续条件和嵌套并行的连线接回实际目标节点。",
11
+ "正式流程文档schema接受已有readability元数据,保留闭集字段、长度与数量上限及原业务权限校验。"
12
+ ],
13
+ "affectedUsers": [
14
+ "使用V2流程设计器编辑或维护审批流程的应用。"
15
+ ],
16
+ "upgradeSteps": [
17
+ "安装精确openxiangda 2.69.1官方组合并重新检查、构建应用。",
18
+ "平台后端同步正式contracts包及同源回执后,才具备草稿保存schema修复;应用自行维护流程列表和独立画布路由。"
19
+ ],
20
+ "knownLimitations": [
21
+ "不修改历史实例、审批边界或业务拓扑;此版本不包含原DeploymentRun例外ack接口。",
22
+ "包发行不等于平台部署或现场草稿保存验收,已有未保存输入需保留。"
23
+ ],
24
+ "compatibility": {
25
+ "node": "Node.js 24 or newer for maintained toolchain",
26
+ "generation": "OpenXiangda V2; V1 unchanged",
27
+ "platform": "平台后端须消费本轮正式contracts及配套组合;原权限、revision和operationId守卫保持"
28
+ },
29
+ "issues": [],
30
+ "sha256": "529eee3d6d426c149635e6143310ff6a4a01da6c7243e203ff959f9d3b34a4b5",
31
+ "url": "https://github.com/1377385356/openxiangda/releases/tag/v2.69.1"
32
+ }
@@ -0,0 +1,32 @@
1
+ {
2
+ "schemaVersion": "openxiangda.release-notes/v1",
3
+ "version": "2.70.2",
4
+ "status": "reviewed",
5
+ "title": "首部节点插入与补正回放修复",
6
+ "summary": "首部插入人工、条件、业务或并行节点时,原子更新流程入口和补正重提交入口,保留新首审批与严格校验。",
7
+ "newFeatures": [],
8
+ "fixes": [
9
+ "首部插入同步补正回放目标,多补正和连续插入删除保留完整路径。",
10
+ "补正可达性遍历并行和汇合后继,保留禁止正向进入补正与退回源必须可达的规则。"
11
+ ],
12
+ "affectedUsers": [
13
+ "使用流程画布首部插入、补正重提交或并行结构的V2应用。"
14
+ ],
15
+ "upgradeSteps": [
16
+ "安装同源完整七包并配套后端共享校验器,核对纯校验器摘要。",
17
+ "从合同现场2.69.1升级继承组织授权、业务待办与旧审批接续合同;两份正式SQL须通过完整门禁和目标预检。完整配套已获授权。",
18
+ "应用更新前通过官方源码导出和注册保护保留现场流程第13版;不以旧源码覆盖或重放未保存草稿。"
19
+ ],
20
+ "knownLimitations": [
21
+ "鼠标消失未复现,本地拖动及失焦恢复正常不代表现场问题已修复。",
22
+ "包发行不代表部署或真实角色验收;安装接续能力不授权调用旧审批接续、重放通知或晋级生产。"
23
+ ],
24
+ "compatibility": {
25
+ "node": "Node.js 24 or newer for maintained toolchain",
26
+ "generation": "OpenXiangda V2; V1 unchanged",
27
+ "platform": "同源contracts纯校验器;从171017升级包含AddNativeOrganizationAuthorizationV2和AddWorkflowLegacyAdoptionsV2 SQL,目标预检不可省略。"
28
+ },
29
+ "issues": [],
30
+ "sha256": "d4cd6182b5f50770489b6615a5207dc0590e6a88f1d3fb635a8cf0defc0e8dd8",
31
+ "url": "https://github.com/1377385356/openxiangda/releases/tag/v2.70.2"
32
+ }
@@ -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": "d4162da3387da0b32a1ba55c4803d9fd7c5599d6f3edd0fbdf208da2b92e106f"
7
+ "sha256": "1d85fbf81247ed89879ccf588134efcab7e32fc3a72a4568adc8426c245d0a17"
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.70.0 auth status --cwd <应用目录> --base-url <平台地址> --json
44
- pnpm dlx openxiangda@2.70.0 login --cwd <应用目录> --base-url <平台地址>
45
- pnpm dlx openxiangda@2.70.0 create <应用目录> --base-url <同一平台地址>
46
- pnpm dlx openxiangda@2.70.0 skill install --force
43
+ pnpm dlx openxiangda@2.70.2 auth status --cwd <应用目录> --base-url <平台地址> --json
44
+ pnpm dlx openxiangda@2.70.2 login --cwd <应用目录> --base-url <平台地址>
45
+ pnpm dlx openxiangda@2.70.2 create <应用目录> --base-url <同一平台地址>
46
+ pnpm dlx openxiangda@2.70.2 skill install --force
47
47
  ```
48
48
 
49
49
  创建前把产品要求的目标平台明确带入命令,不从旧登录态推断站点。已有工作区从原绑定恢复,平台不一致时先解决登录与目标,不改 link 文件跨站创建。
@@ -206,3 +206,17 @@ Native记录事件才能使用 `ordering:record`。订阅错误先修正应用
206
206
  在已经授权清理的范围运行 `acceptance-data.execute-cleanup`,核对金丝雀原回执,再把 mode 改为 remaining。丢响应先 preview/status,不换 run 或 digest;pending 清单复用原 repair。每份计划最多100条/1MiB,终结后重新 preview 下一批。外部修改、坏凭证、变化 Head、未知/预算结果及部分失败不会返回 purged。只有完整读回 `cleanupState: purged` 和剩余0表示此批 owned Native 数据验空;registry、参与者、凭证、审计和原修复回执保留。
207
207
 
208
208
  MCP仍通过 `application_operations/application_operation` 使用同一目录,不提供任意URL或重建来源。生产、旧数据、其他run不接受此入口。目录可用不代表目标平台已升级;404核对版本,不用直接SQL旁路。
209
+
210
+
211
+ ## 旧审批当前节点接续
212
+
213
+ `admin execute workflows.legacy-prepare --environment test --input <file> --json`
214
+ 使用应用超级管理员身份锁定现有 Native 业务单、版本、原申请人、审批轮次与历史事实。
215
+ 输入契约从 `admin operations --json` 查询。未导入的原单先通过正式 Native 导入协议
216
+ 保留 UUID,不能用新建流程替代。仅支持内部分派、手动审批和线性条件路径;姓名无法
217
+ 证明账号、历史不完整或分支不匹配时拒绝接续。
218
+
219
+ 准备成功后保留 planId、planDigest,通过 `workflows.legacy-apply` 原子创建当前节点
220
+ 及待办。`workflows.legacy-receipt` 查询原回执,结果未知时沿用原计划查询/重试。
221
+ 历史审批只作为来源事实保留,不伪造旧 V2 操作、发起人登录或历史通知。角色撤销、
222
+ 原单、Head 或有效配置变化会拒绝尚未执行的旧计划;已执行计划返回原实例。
@@ -68,10 +68,10 @@ MCP 服务随项目根包一起安装,AI 客户端的 stdio 连接仍需配置
68
68
  以下命令的版本占位符由随包资料替换为该根包的精确版本。网站源码阅读者应先确认要使用的发行版本。
69
69
 
70
70
  ```bash
71
- pnpm dlx openxiangda@2.70.0 skill install --force
72
- pnpm dlx openxiangda@2.70.0 auth status --base-url <平台地址> --json
73
- pnpm dlx openxiangda@2.70.0 login --cwd my-app --base-url https://platform.example.com
74
- pnpm dlx openxiangda@2.70.0 create my-app --base-url https://platform.example.com
71
+ pnpm dlx openxiangda@2.70.2 skill install --force
72
+ pnpm dlx openxiangda@2.70.2 auth status --base-url <平台地址> --json
73
+ pnpm dlx openxiangda@2.70.2 login --cwd my-app --base-url https://platform.example.com
74
+ pnpm dlx openxiangda@2.70.2 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.70.0 auth status --base-url <平台> --json
225
- pnpm dlx openxiangda@2.70.0 source resolve <仓库URL> --base-url <平台> --json
226
- pnpm dlx openxiangda@2.70.0 source clone <仓库URL> <新目录> --base-url <平台> --json
224
+ pnpm dlx openxiangda@2.70.2 auth status --base-url <平台> --json
225
+ pnpm dlx openxiangda@2.70.2 source resolve <仓库URL> --base-url <平台> --json
226
+ pnpm dlx openxiangda@2.70.2 source clone <仓库URL> <新目录> --base-url <平台> --json
227
227
  ```
228
228
 
229
229
  登录缺失或站点不匹配时,先按该平台执行 login。resolve 根据平台已经登记的绑定返回