openxiangda 2.18.7 → 2.18.10
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/bin/distribution/launcher.js +4 -1
- package/bin/distribution/workspace.js +9 -6
- package/dist/browser/components/todo/ApplicationTodoCenterPage.d.ts.map +1 -1
- package/dist/browser/components/todo/ApplicationTodoCenterPage.js +10 -10
- package/dist/browser/components/todo/ApplicationTodoCenterPage.js.map +1 -1
- package/dist/browser/components/workflow/StandardWorkflowPages.d.ts.map +1 -1
- package/dist/browser/components/workflow/StandardWorkflowPages.js +7 -7
- package/dist/browser/components/workflow/StandardWorkflowPages.js.map +1 -1
- package/dist/browser/record-detail.css +25 -12
- package/dist/browser/styles.css +86 -8
- package/documentation/frontend.md +38 -0
- package/documentation/getting-started.md +10 -8
- package/documentation/manifest.json +3 -3
- package/package.json +17 -18
- package/releases/2.0.0.json +50 -0
- package/releases/2.0.1.json +39 -0
- package/releases/2.1.0.json +44 -0
- package/releases/2.1.1.json +48 -0
- package/releases/2.10.0.json +42 -0
- package/releases/2.11.0.json +41 -0
- package/releases/2.12.0.json +38 -0
- package/releases/2.13.0.json +41 -0
- package/releases/2.13.1.json +33 -0
- package/releases/2.13.2.json +31 -0
- package/releases/2.14.0.json +41 -0
- package/releases/2.15.0.json +40 -0
- package/releases/2.16.0.json +41 -0
- package/releases/2.17.0.json +39 -0
- package/releases/2.17.1.json +34 -0
- package/releases/2.18.0.json +37 -0
- package/releases/2.18.1.json +31 -0
- package/releases/2.18.10.json +29 -0
- package/releases/2.18.2.json +30 -0
- package/releases/2.18.3.json +30 -0
- package/releases/2.18.9.json +37 -0
- package/releases/2.2.0.json +48 -0
- package/releases/2.2.1.json +35 -0
- package/releases/2.2.2.json +34 -0
- package/releases/2.3.0.json +37 -0
- package/releases/2.4.0.json +37 -0
- package/releases/2.4.1.json +35 -0
- package/releases/2.5.0.json +37 -0
- package/releases/2.6.0.json +37 -0
- package/releases/2.7.0.json +37 -0
- package/releases/2.7.1.json +31 -0
- package/releases/2.8.0.json +32 -0
- package/releases/2.8.1.json +30 -0
- package/releases/2.9.0.json +33 -0
- package/releases/2.9.1.json +31 -0
- package/releases/2.9.2.json +33 -0
- package/releases/2.9.3.json +31 -0
- package/releases/2.9.4.json +37 -0
- package/skills/manifest.json +1 -1
- package/skills/openxiangda-v2/SKILL.md +4 -4
- package/skills/openxiangda-v2/references/frontend.md +38 -0
- package/skills/openxiangda-v2/references/getting-started.md +10 -8
- package/releases/2.18.7.json +0 -30
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": "openxiangda.release-notes/v1",
|
|
3
|
+
"version": "2.4.1",
|
|
4
|
+
"title": "事件处理器依赖作用域修复",
|
|
5
|
+
"status": "reviewed",
|
|
6
|
+
"summary": "事件处理器可正常注入请求级通知服务,签名与回执校验后再由所属 Nest 模块解析依赖。",
|
|
7
|
+
"newFeatures": [],
|
|
8
|
+
"fixes": [
|
|
9
|
+
"修复请求级依赖使事件处理器构造函数未执行、handle 调用失败的问题。",
|
|
10
|
+
"同名 provider 严格按所属模块解析,并发投递与失败重试使用独立作用域;静态单例继续复用。"
|
|
11
|
+
],
|
|
12
|
+
"affectedUsers": [
|
|
13
|
+
"使用 Nest 签名事件处理器及请求级通知服务或瞬态依赖的 V2 应用开发者。"
|
|
14
|
+
],
|
|
15
|
+
"compatibility": {
|
|
16
|
+
"node": ">=24",
|
|
17
|
+
"workspaceGenerations": [
|
|
18
|
+
"v1",
|
|
19
|
+
"v2"
|
|
20
|
+
],
|
|
21
|
+
"v1Policy": "V1 引擎与已有应用契约不变。",
|
|
22
|
+
"platformPolicy": "沿用 2.4.0 的 Data API 1.1.0 要求;事件签名、回执、身份与部署协议不变。"
|
|
23
|
+
},
|
|
24
|
+
"upgradeSteps": [
|
|
25
|
+
"将应用精确依赖升级至 openxiangda 2.4.1,刷新工作区资料并重新检查。",
|
|
26
|
+
"重新发布应用后验证真实事件、通知送达、重复投递与失败恢复。"
|
|
27
|
+
],
|
|
28
|
+
"knownLimitations": [
|
|
29
|
+
"事件作用域的 REQUEST 不含用户授权,sendFromEvent 仅在已验证的事件执行期间可用。",
|
|
30
|
+
"SDK 测试通过不代表真实平台通知送达或应用业务验收已完成。"
|
|
31
|
+
],
|
|
32
|
+
"issues": [],
|
|
33
|
+
"sha256": "f81f626e3fb91069c4f5d94da48a80400ae3fca5e3b55ab0d77e0a7c82dc7681",
|
|
34
|
+
"url": "https://github.com/1377385356/openxiangda/releases/tag/v2.4.1"
|
|
35
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": "openxiangda.release-notes/v1",
|
|
3
|
+
"version": "2.5.0",
|
|
4
|
+
"title": "按业务记录恢复原流程命令",
|
|
5
|
+
"status": "reviewed",
|
|
6
|
+
"summary": "浏览器和 Nest 可在重新进入详情时按业务记录查找原流程命令,继续原回执和进度查询。",
|
|
7
|
+
"newFeatures": [
|
|
8
|
+
"增加当前用户范围的流程命令分页查询,支持精确记录、流程和操作筛选,每页最多 50 条。"
|
|
9
|
+
],
|
|
10
|
+
"fixes": [
|
|
11
|
+
"补齐业务记录已提交但流程事件尚未投影时,从列表重新进入详情无法定位原命令的恢复路径。"
|
|
12
|
+
],
|
|
13
|
+
"affectedUsers": [
|
|
14
|
+
"使用 Business Process 原子提交业务数据与流程的 V2 应用开发者。"
|
|
15
|
+
],
|
|
16
|
+
"compatibility": {
|
|
17
|
+
"node": ">=24",
|
|
18
|
+
"workspaceGenerations": [
|
|
19
|
+
"v1",
|
|
20
|
+
"v2"
|
|
21
|
+
],
|
|
22
|
+
"v1Policy": "V1 引擎和已有应用不变。",
|
|
23
|
+
"platformPolicy": "使用 Business Process 的新编译包要求 durable-command 1.1.0 和匹配的共享校验器;旧客户端继续兼容。"
|
|
24
|
+
},
|
|
25
|
+
"upgradeSteps": [
|
|
26
|
+
"将应用精确依赖升级至 openxiangda 2.5.0,更新锁文件并刷新技能资料。",
|
|
27
|
+
"平台部署匹配版本后执行检查和测试发布,验证重新进入详情时恢复原命令而不重复提交。"
|
|
28
|
+
],
|
|
29
|
+
"knownLimitations": [
|
|
30
|
+
"查询沿用原命令的发起人或既有超级管理员权限,记录读取权限不授予他人命令访问。",
|
|
31
|
+
"同一记录可能有多次流程,应用须根据业务约束选择原命令,不能任意选择第一条。",
|
|
32
|
+
"包发布、平台部署和实际业务验收分别验证。"
|
|
33
|
+
],
|
|
34
|
+
"issues": [],
|
|
35
|
+
"sha256": "35a3bd6f8f97d3261243e1c65e2876a946448c5af455f43ababf18bd8f6f3653",
|
|
36
|
+
"url": "https://github.com/1377385356/openxiangda/releases/tag/v2.5.0"
|
|
37
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": "openxiangda.release-notes/v1",
|
|
3
|
+
"version": "2.6.0",
|
|
4
|
+
"title": "统一应用时区与日期时间输入",
|
|
5
|
+
"status": "reviewed",
|
|
6
|
+
"summary": "应用可指定业务展示时区,标准字段、审批详情、待办、通知和审计时间统一显示,日期时间输入仍保存 UTC。",
|
|
7
|
+
"newFeatures": [
|
|
8
|
+
"OpenXiangdaApplication 和 OpenXiangdaUiProvider 接受可选 timeZone;日期时间字段可覆盖时区并声明 min、max 和 minuteStep。"
|
|
9
|
+
],
|
|
10
|
+
"fixes": [
|
|
11
|
+
"修复设备时区不同导致日期时间编辑和公共详情、中心时间不一致的问题,拒绝夏令时不存在或重复的本地时间。"
|
|
12
|
+
],
|
|
13
|
+
"affectedUsers": [
|
|
14
|
+
"需要固定业务时区或限制日期时间输入的 V2 应用开发者。"
|
|
15
|
+
],
|
|
16
|
+
"compatibility": {
|
|
17
|
+
"node": ">=24",
|
|
18
|
+
"workspaceGenerations": [
|
|
19
|
+
"v1",
|
|
20
|
+
"v2"
|
|
21
|
+
],
|
|
22
|
+
"v1Policy": "V1 引擎和已有应用不变。",
|
|
23
|
+
"platformPolicy": "展示与输入能力,无新增服务端契约或数据库迁移。未配置时区和限制的应用保留设备本地行为。"
|
|
24
|
+
},
|
|
25
|
+
"upgradeSteps": [
|
|
26
|
+
"将应用精确依赖升级至 openxiangda 2.6.0,更新锁文件并刷新技能资料。",
|
|
27
|
+
"在应用入口指定业务 timeZone,验证 PC 和移动端编辑、审批摘要与各中心显示。"
|
|
28
|
+
],
|
|
29
|
+
"knownLimitations": [
|
|
30
|
+
"时区只影响呈现;服务端仍须独立验证业务时间窗口和授权。",
|
|
31
|
+
"手机指定时区的日期时间滚轮提供当前选择前后各 365 天并按限制收窄;夏令时重复时间需选择其他无歧义时间。",
|
|
32
|
+
"包发布、应用部署和实际业务验收分别验证。"
|
|
33
|
+
],
|
|
34
|
+
"issues": [],
|
|
35
|
+
"sha256": "ba11ac3a69cbd9dd27e339c1d84642af99e107ca1170f0876b8be0583abda79f",
|
|
36
|
+
"url": "https://github.com/1377385356/openxiangda/releases/tag/v2.6.0"
|
|
37
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": "openxiangda.release-notes/v1",
|
|
3
|
+
"version": "2.7.0",
|
|
4
|
+
"title": "应用统一保护未保存内容",
|
|
5
|
+
"status": "reviewed",
|
|
6
|
+
"summary": "自定义表单可注册未保存状态,应用统一处理站内跳转、浏览器历史和刷新关闭提示。",
|
|
7
|
+
"newFeatures": [
|
|
8
|
+
"增加 useUnsavedChangesGuard,聚合多个表单的未保存状态,取消导航保留输入和原位置,提交成功后解除保护。"
|
|
9
|
+
],
|
|
10
|
+
"fixes": [
|
|
11
|
+
"补齐原 BrowserRouter 无法使用标准 useBlocker 导致自定义表单浏览器前进后退未受保护的问题。"
|
|
12
|
+
],
|
|
13
|
+
"affectedUsers": [
|
|
14
|
+
"有自定义录入页面、异步提交或未知结果恢复的 V2 应用开发者。"
|
|
15
|
+
],
|
|
16
|
+
"compatibility": {
|
|
17
|
+
"node": ">=24",
|
|
18
|
+
"workspaceGenerations": [
|
|
19
|
+
"v1",
|
|
20
|
+
"v2"
|
|
21
|
+
],
|
|
22
|
+
"v1Policy": "V1 引擎和已有应用不变。",
|
|
23
|
+
"platformPolicy": "公共 React 路由生命周期调整,无服务端契约或数据库变更;应用仍使用既有 Routes、Link 和 navigate。"
|
|
24
|
+
},
|
|
25
|
+
"upgradeSteps": [
|
|
26
|
+
"精确升级到 openxiangda 2.7.0 并刷新技能资料。",
|
|
27
|
+
"在应用入口内使用 useUnsavedChangesGuard,涵盖未保存内容和结果未知状态,验证成功后解除以及取消后的输入保留。"
|
|
28
|
+
],
|
|
29
|
+
"knownLimitations": [
|
|
30
|
+
"原生刷新/关闭提示受浏览器限制,不能自定义提示文字。",
|
|
31
|
+
"该能力不持久化草稿或代替原提交回执恢复;应用不得直接操作 history.pushState。",
|
|
32
|
+
"包发布、应用部署与真实业务验收分别验证。"
|
|
33
|
+
],
|
|
34
|
+
"issues": [],
|
|
35
|
+
"sha256": "e8af0fc7c484cad1dc59ce982432e6a2fd4451d7f455141edc2d6128a057542e",
|
|
36
|
+
"url": "https://github.com/1377385356/openxiangda/releases/tag/v2.7.0"
|
|
37
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": "openxiangda.release-notes/v1",
|
|
3
|
+
"version": "2.7.1",
|
|
4
|
+
"status": "reviewed",
|
|
5
|
+
"title": "OpenXiangda 2.7.1:修复可选后端连接开发",
|
|
6
|
+
"summary": "连接开发按应用配置启动本地 Nest,绑定平台活动应用版本与开发会话,支持已激活前端应用首次启用本地后端。",
|
|
7
|
+
"newFeatures": [],
|
|
8
|
+
"fixes": [
|
|
9
|
+
"不再要求应用手动补根目录 dev:server;使用 backend.root 包内 dev 入口。纯前端应用不启动 Nest。",
|
|
10
|
+
"补齐本地 Nest 所需活动应用版本描述;本地修改的后端使用开发会话标签,不冒充已部署镜像。",
|
|
11
|
+
"开发会话目标发生变化时停止子进程并撤销原会话,防止环境与运行时身份不一致。"
|
|
12
|
+
],
|
|
13
|
+
"affectedUsers": [
|
|
14
|
+
"使用 dev 连接平台测试环境的纯前端和按需 Nest 应用开发者。"
|
|
15
|
+
],
|
|
16
|
+
"upgradeSteps": [
|
|
17
|
+
"通过项目正式升级流程采用 openxiangda 2.7.1,刷新项目资料并重启旧 MCP 与 dev 进程。",
|
|
18
|
+
"保留根目录 dev:web,确认配置的后端包具有 dev 启动脚本。"
|
|
19
|
+
],
|
|
20
|
+
"knownLimitations": [
|
|
21
|
+
"需要平台已有激活应用版本;联调数据写入仍发生在选定远端环境。",
|
|
22
|
+
"本次修复不改变线上应用制品或生产部署。"
|
|
23
|
+
],
|
|
24
|
+
"compatibility": {
|
|
25
|
+
"node": ">=24",
|
|
26
|
+
"platform": "支持 Application v2 开发会话及活动 AppVersion 的平台"
|
|
27
|
+
},
|
|
28
|
+
"issues": [],
|
|
29
|
+
"sha256": "102d3bdfb8c717e3629dac9eac67eb37f9b50588fda3bf28c9c1930512f4bb75",
|
|
30
|
+
"url": "https://github.com/1377385356/openxiangda/releases/tag/v2.7.1"
|
|
31
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": "openxiangda.release-notes/v1",
|
|
3
|
+
"version": "2.8.0",
|
|
4
|
+
"status": "reviewed",
|
|
5
|
+
"title": "OpenXiangda 2.8.0:审计信息读取权限",
|
|
6
|
+
"summary": "模型声明审计信息读取权限,统一保护记录元数据、查询和变更历史。",
|
|
7
|
+
"newFeatures": [
|
|
8
|
+
"模型及直接资源可声明 audit.read,使用现有能力和角色成员权限控制四个审计元数据字段与历史读取。",
|
|
9
|
+
"标准详情页随受权记录元数据显示变更历史入口,PC 和移动端保持一致。"
|
|
10
|
+
],
|
|
11
|
+
"fixes": [
|
|
12
|
+
"修复业务字段已经受限时,创建人和更新人仍可能通过系统元数据泄露的问题。"
|
|
13
|
+
],
|
|
14
|
+
"affectedUsers": [
|
|
15
|
+
"需要对忙碌、匿名化或受限业务投影隐藏操作人身份的应用开发者。"
|
|
16
|
+
],
|
|
17
|
+
"upgradeSteps": [
|
|
18
|
+
"先部署支持 data.audit-read-access 的平台组合,再升级应用到 openxiangda 2.8.0。",
|
|
19
|
+
"在需要限制的模型声明 audit: { read: false },或声明授予管理角色的能力数组,并执行真实角色验收。"
|
|
20
|
+
],
|
|
21
|
+
"knownLimitations": [
|
|
22
|
+
"省略 audit 保留原有读取行为;应用可信后端和现有超级管理员权限保持原有语义。",
|
|
23
|
+
"受限应用启用后不可回退到忽略审计策略的后端;须保留兼容平台组合或先撤销该应用用户访问。"
|
|
24
|
+
],
|
|
25
|
+
"compatibility": {
|
|
26
|
+
"node": ">=24",
|
|
27
|
+
"platform": "声明审计读取规则需要 data.audit-read-access 1.0.0"
|
|
28
|
+
},
|
|
29
|
+
"issues": [],
|
|
30
|
+
"sha256": "be1a9505a8b3b3a1148e1f6ce4a1a34a271e7e790f1134b8b546d7146e0eb96d",
|
|
31
|
+
"url": "https://github.com/1377385356/openxiangda/releases/tag/v2.8.0"
|
|
32
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": "openxiangda.release-notes/v1",
|
|
3
|
+
"version": "2.8.1",
|
|
4
|
+
"status": "reviewed",
|
|
5
|
+
"title": "OpenXiangda 2.8.1:修复审计权限能力引用",
|
|
6
|
+
"summary": "审计读取策略正确复用已有能力,保留原能力定义,并拒绝缺失引用。",
|
|
7
|
+
"newFeatures": [],
|
|
8
|
+
"fixes": [
|
|
9
|
+
"修复 audit.read 引用已有管理能力时错误报告 catalog owner 冲突的问题。",
|
|
10
|
+
"本地与平台编译器一致地保留能力原定义;审计策略不再自动补建未声明能力,跨资源引用不依赖资源排序。"
|
|
11
|
+
],
|
|
12
|
+
"affectedUsers": [
|
|
13
|
+
"使用 audit.read 能力数组控制审计信息的应用开发者。"
|
|
14
|
+
],
|
|
15
|
+
"upgradeSteps": [
|
|
16
|
+
"平台采用 openxiangda-contracts 2.6.1 后,应用升级到 openxiangda 2.8.1 并重新生成和检查。",
|
|
17
|
+
"audit.read 引用现有应用能力;独立审计能力须先在 authz.capabilities 声明并按需授予角色。"
|
|
18
|
+
],
|
|
19
|
+
"knownLimitations": [
|
|
20
|
+
"省略 audit 保留原有读取行为,能力数组保持 all-of 与同一角色成员字段和行授权规则。",
|
|
21
|
+
"受限应用启用后仍须保留支持 data.audit-read-access 的兼容平台组合。"
|
|
22
|
+
],
|
|
23
|
+
"compatibility": {
|
|
24
|
+
"node": ">=24",
|
|
25
|
+
"platform": "openxiangda-contracts 2.6.1 与 data.audit-read-access 1.0.0"
|
|
26
|
+
},
|
|
27
|
+
"issues": [],
|
|
28
|
+
"sha256": "354f1883a5cbd7d5bcf32d94fbabbb4ec362df5abecec99ed78e2d687dff94b7",
|
|
29
|
+
"url": "https://github.com/1377385356/openxiangda/releases/tag/v2.8.1"
|
|
30
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": "openxiangda.release-notes/v1",
|
|
3
|
+
"version": "2.9.0",
|
|
4
|
+
"status": "reviewed",
|
|
5
|
+
"title": "OpenXiangda 2.9.0:声明标准列表导入导出入口",
|
|
6
|
+
"summary": "应用可按默认或命名视图配置标准列表的导入、导出任务,PC 与移动端使用相同声明。",
|
|
7
|
+
"newFeatures": [
|
|
8
|
+
"crud[].list.actions 支持 import 与 export 布尔开关,直接资源声明同样支持。",
|
|
9
|
+
"关闭导入适用于原生与流程列表;关闭导出同时覆盖 PC 和移动列表。"
|
|
10
|
+
],
|
|
11
|
+
"fixes": [
|
|
12
|
+
"应用可通过公开配置移除首发范围之外的列表任务,无需修改共享组件或使用 CSS 隐藏。"
|
|
13
|
+
],
|
|
14
|
+
"affectedUsers": [
|
|
15
|
+
"使用标准 CRUD 默认或命名视图,需要控制导入导出入口的 V2 应用开发者。"
|
|
16
|
+
],
|
|
17
|
+
"upgradeSteps": [
|
|
18
|
+
"平台采用 openxiangda-contracts 2.7.0,应用采用 openxiangda 2.9.0 后重新生成和检查。",
|
|
19
|
+
"在目标视图的 list.actions 中将不需要的入口设为 false,再部署测试候选并验证 PC/移动页面。"
|
|
20
|
+
],
|
|
21
|
+
"knownLimitations": [
|
|
22
|
+
"省略开关保持既有行为;true 不授予权限,也不改变原生、流程或只读写入归属。",
|
|
23
|
+
"这是页面入口配置,Data API 和敏感字段仍按原有授权规则执行。",
|
|
24
|
+
"命名视图各自声明开关,不继承默认视图的任务选择;无需新增数据库迁移。"
|
|
25
|
+
],
|
|
26
|
+
"compatibility": {
|
|
27
|
+
"node": ">=24",
|
|
28
|
+
"platform": "openxiangda-contracts 2.7.0"
|
|
29
|
+
},
|
|
30
|
+
"issues": [],
|
|
31
|
+
"sha256": "c9d413f52c85a7ca1ee5e113ca72d9284efd303b3a99dc8ba71ae35cf7526783",
|
|
32
|
+
"url": "https://github.com/1377385356/openxiangda/releases/tag/v2.9.0"
|
|
33
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": "openxiangda.release-notes/v1",
|
|
3
|
+
"version": "2.9.1",
|
|
4
|
+
"status": "reviewed",
|
|
5
|
+
"title": "OpenXiangda 2.9.1:保留显式查询操作数与路径",
|
|
6
|
+
"summary": "修复标准客户端将成员包含查询的单值改成数组,导致合法查询返回400的问题。",
|
|
7
|
+
"newFeatures": [],
|
|
8
|
+
"fixes": [
|
|
9
|
+
"has操作保持单个稳定标识;in、between、hasAny、hasAll保留数组全部值,不再复用快捷筛选推断操作数形状。",
|
|
10
|
+
"显式查询path保持原值路径;单项快照和级联控件选择仍转为稳定查询值。",
|
|
11
|
+
"列表、批量列表和导出使用相同修正,应用无需修改正确的DataWhere条件。"
|
|
12
|
+
],
|
|
13
|
+
"affectedUsers": [
|
|
14
|
+
"使用openxiangda/core显式where成员筛选、数组操作或子值路径查询的V2应用。"
|
|
15
|
+
],
|
|
16
|
+
"upgradeSteps": [
|
|
17
|
+
"将应用的公开openxiangda依赖升级到2.9.1,重新检查并发布测试候选。",
|
|
18
|
+
"复测参与人归属、数组区间筛选及导出;生产晋级复用验收通过的原测试制品。"
|
|
19
|
+
],
|
|
20
|
+
"knownLimitations": [
|
|
21
|
+
"快捷filters的既有界面语义不变;字段类型、行权限与查询边界仍由平台Data API验证。",
|
|
22
|
+
"本补丁不改变业务数据、权限或数据库结构;新增CRUD列表开关仍需平台采用contracts2.7.0。"
|
|
23
|
+
],
|
|
24
|
+
"compatibility": {
|
|
25
|
+
"node": ">=24",
|
|
26
|
+
"platform": "openxiangda-contracts 2.7.0"
|
|
27
|
+
},
|
|
28
|
+
"issues": [],
|
|
29
|
+
"sha256": "2cfb20fed9921fc7281f36970f9ba534192fe0eacafb55223e3031587b27f6c7",
|
|
30
|
+
"url": "https://github.com/1377385356/openxiangda/releases/tag/v2.9.1"
|
|
31
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": "openxiangda.release-notes/v1",
|
|
3
|
+
"version": "2.9.2",
|
|
4
|
+
"status": "reviewed",
|
|
5
|
+
"title": "OpenXiangda 2.9.2:查询操作数修正与模板版本联动",
|
|
6
|
+
"summary": "修复标准客户端将成员包含查询的单值改成数组导致400的问题,并补齐根包和CLI模板的发布版本联动。",
|
|
7
|
+
"newFeatures": [],
|
|
8
|
+
"fixes": [
|
|
9
|
+
"has操作保持单个稳定标识;in、between、hasAny、hasAll保留数组全部值,不再复用快捷筛选推断操作数形状。",
|
|
10
|
+
"显式查询path保持原值路径;单项快照和级联控件选择仍转为稳定查询值。",
|
|
11
|
+
"列表、批量列表和导出使用相同修正,应用无需修改正确的DataWhere条件。",
|
|
12
|
+
"发布版本规划在写入版本前拒绝缺少CLI配套Changeset的根包升级,避免模板变更到不可变包检查阶段才被发现。"
|
|
13
|
+
],
|
|
14
|
+
"affectedUsers": [
|
|
15
|
+
"使用openxiangda/core显式where成员筛选、数组操作或子值路径查询的V2应用。"
|
|
16
|
+
],
|
|
17
|
+
"upgradeSteps": [
|
|
18
|
+
"将应用的公开openxiangda依赖升级到2.9.2,重新检查并发布测试候选。",
|
|
19
|
+
"复测参与人归属、数组区间筛选及导出;生产晋级复用验收通过的原测试制品。"
|
|
20
|
+
],
|
|
21
|
+
"knownLimitations": [
|
|
22
|
+
"快捷filters的既有界面语义不变;字段类型、行权限与查询边界仍由平台Data API验证。",
|
|
23
|
+
"本补丁不改变业务数据、权限或数据库结构;新增CRUD列表开关仍需平台采用contracts2.7.0。",
|
|
24
|
+
"2.9.1仅为被发布门禁拦截的未发布候选;其查询修正随2.9.2正式交付。"
|
|
25
|
+
],
|
|
26
|
+
"compatibility": {
|
|
27
|
+
"node": ">=24",
|
|
28
|
+
"platform": "openxiangda-contracts 2.7.0"
|
|
29
|
+
},
|
|
30
|
+
"issues": [],
|
|
31
|
+
"sha256": "9989af7b2e2b9e5eaf81bf19b1307366a35b07522082b384918882f8db05d61c",
|
|
32
|
+
"url": "https://github.com/1377385356/openxiangda/releases/tag/v2.9.2"
|
|
33
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": "openxiangda.release-notes/v1",
|
|
3
|
+
"version": "2.9.3",
|
|
4
|
+
"status": "reviewed",
|
|
5
|
+
"title": "OpenXiangda 2.9.3:明确记录用户授权的性能延期",
|
|
6
|
+
"summary": "修复功能验收完成但用户已延期性能时无法正式晋级的问题,保留原测量并明确区分性能通过与延期。",
|
|
7
|
+
"newFeatures": [],
|
|
8
|
+
"fixes": [
|
|
9
|
+
"AppSpec验收报告支持有授权人、实际时间、来源、证据及后续安排的performanceDeferral。",
|
|
10
|
+
"延期时保留真实超标测量,返回deferred与overBudget统计,生产阶段明确显示性能未通过。",
|
|
11
|
+
"没有授权延期时仍要求性能测量达标;延期不豁免功能AC、证据、原测试版本和制品绑定。"
|
|
12
|
+
],
|
|
13
|
+
"affectedUsers": [
|
|
14
|
+
"已由用户明确延期性能验收、需要按实际范围完成V2功能交付的应用开发者。"
|
|
15
|
+
],
|
|
16
|
+
"upgradeSteps": [
|
|
17
|
+
"更新项目的openxiangda依赖至2.9.3并刷新项目技能;已有测试制品可以沿用,不因验收工具升级而重建。",
|
|
18
|
+
"依据实际用户决定填写延期记录,保留成功与失败测量;正式spec verify后提交推送报告,用原TEST运行晋级。"
|
|
19
|
+
],
|
|
20
|
+
"knownLimitations": [
|
|
21
|
+
"结构验证不证明授权或证据内容真实;不得制造用户确认、提高阈值或仅保留成功样本。",
|
|
22
|
+
"本次仅修复开发交付记录契约,不修复性能,也不修改平台后端、业务数据或运行时权限。"
|
|
23
|
+
],
|
|
24
|
+
"compatibility": {
|
|
25
|
+
"node": ">=24",
|
|
26
|
+
"platform": "沿用openxiangda-contracts 2.7.0,无新增平台能力要求"
|
|
27
|
+
},
|
|
28
|
+
"issues": [],
|
|
29
|
+
"sha256": "aea11cf79206afaae7d6a98eb72506bd71f13752ca6178e459d5395cde4b10a8",
|
|
30
|
+
"url": "https://github.com/1377385356/openxiangda/releases/tag/v2.9.3"
|
|
31
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": "openxiangda.release-notes/v1",
|
|
3
|
+
"version": "2.9.4",
|
|
4
|
+
"status": "reviewed",
|
|
5
|
+
"title": "OpenXiangda 2.9.4:DingTalk OA 工作通知 SDK",
|
|
6
|
+
"summary": "应用通过平台托管的 Notification Hub 发送文本或 Markdown 钉钉 OA 工作通知,并查询投递结果。",
|
|
7
|
+
"newFeatures": [
|
|
8
|
+
"Nest SDK 增加 sendDingTalkWorkNotice 和 getDingTalkWorkNoticeResult。",
|
|
9
|
+
"工作通知支持按 Native 用户、部门或全员发送,平台负责渠道凭据、Native 标识映射、幂等、投递和审计。"
|
|
10
|
+
],
|
|
11
|
+
"fixes": [],
|
|
12
|
+
"affectedUsers": [
|
|
13
|
+
"需要从 OpenXiangda 2.0 应用发送钉钉文本或 Markdown 工作通知的开发者。"
|
|
14
|
+
],
|
|
15
|
+
"compatibility": {
|
|
16
|
+
"node": ">=24",
|
|
17
|
+
"workspaceGenerations": [
|
|
18
|
+
"v1",
|
|
19
|
+
"v2"
|
|
20
|
+
],
|
|
21
|
+
"v1Policy": "V1 引擎和已有应用不变。",
|
|
22
|
+
"platformPolicy": "需要部署包含 Notification Hub DingTalk OA 工作通知接口的匹配平台组合,并配置已启用的 OA 渠道。",
|
|
23
|
+
"releaseChannels": "latest / stable-v2:V2 正式版;legacy-v1:V1 维护版;alpha:预发布。"
|
|
24
|
+
},
|
|
25
|
+
"upgradeSteps": [
|
|
26
|
+
"平台先部署匹配的 Notification Hub 服务并确认 DingTalk OA 渠道和 Secret 引用可用。",
|
|
27
|
+
"将应用的 openxiangda 依赖升级到 2.9.4,更新锁文件并通过标准检查。",
|
|
28
|
+
"在测试环境验证用户、部门和全员目标的发送回执,再使用同一候选晋级生产。"
|
|
29
|
+
],
|
|
30
|
+
"knownLimitations": [
|
|
31
|
+
"首版内容类型为 text 和 markdown;钉钉最终接收结果仍以平台投递记录和钉钉响应为准。",
|
|
32
|
+
"发布包、平台部署和真实业务角色验收分别验证;本版本不自动配置渠道 Secret。"
|
|
33
|
+
],
|
|
34
|
+
"issues": [],
|
|
35
|
+
"sha256": "6383173f0e6bd4596286e95453fd651d07eb8d91948e829dcd1fe3dfbab1f485",
|
|
36
|
+
"url": "https://github.com/1377385356/openxiangda/releases/tag/v2.9.4"
|
|
37
|
+
}
|
package/skills/manifest.json
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
{
|
|
5
5
|
"name": "openxiangda-v2",
|
|
6
6
|
"description": "使用 OpenXiangda 2.0 从模糊业务想法、已有资料或具体变更出发,通过对话发现模块、完成详细产品设计,由 AI 在工作区内调用 OpenDesign 原版 CLI/Skill/MCP 形成整体视觉与可运行原型,再开发、检查和交付应用。OpenDesign 客户端只作为可选预览器;维护 1.x 应用时使用对应的 1.x 技能。",
|
|
7
|
-
"sha256": "
|
|
7
|
+
"sha256": "ef986e71335449e705a7a05867403e4781077f4da19f546491f9cd35841702cf"
|
|
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.18.
|
|
44
|
-
pnpm dlx openxiangda@2.18.
|
|
45
|
-
pnpm dlx openxiangda@2.18.
|
|
46
|
-
pnpm dlx openxiangda@2.18.
|
|
43
|
+
pnpm dlx openxiangda@2.18.10 auth status --cwd <应用目录> --base-url <平台地址> --json
|
|
44
|
+
pnpm dlx openxiangda@2.18.10 login --cwd <应用目录> --base-url <平台地址>
|
|
45
|
+
pnpm dlx openxiangda@2.18.10 create <应用目录> --base-url <同一平台地址>
|
|
46
|
+
pnpm dlx openxiangda@2.18.10 skill install --force
|
|
47
47
|
```
|
|
48
48
|
|
|
49
49
|
创建前把产品要求的目标平台明确带入命令,不从旧登录态推断站点。已有工作区从原绑定恢复,平台不一致时先解决登录与目标,不改 link 文件跨站创建。
|
|
@@ -126,6 +126,44 @@ capability,不使用角色名或影子字段判断。
|
|
|
126
126
|
|
|
127
127
|
DataQuery 使用有界 where 条件树,支持 and/or/not。标准列表的筛选、关键词、分页和导出共用已声明字段与同一查询条件,不在页面重写查询协议。
|
|
128
128
|
|
|
129
|
+
## 自建待办与消息中心 UI {#self-hosted-centers}
|
|
130
|
+
|
|
131
|
+
应用不满意默认待办中心/消息中心的呈现时,在自有 user 路由上用 `openxiangda/core`
|
|
132
|
+
公开客户端自建 UI;数据和事实仍由平台唯一拥有:
|
|
133
|
+
|
|
134
|
+
```tsx
|
|
135
|
+
import {
|
|
136
|
+
loadWorkflowWorkCenter,
|
|
137
|
+
loadApplicationTodos,
|
|
138
|
+
recordApplicationTodoInteraction,
|
|
139
|
+
} from 'openxiangda/core';
|
|
140
|
+
|
|
141
|
+
// 待办四视图:created / pending / handled / cc,counts 随每次查询内嵌返回
|
|
142
|
+
const work = await loadWorkflowWorkCenter({ view: 'pending', limit: 20, offset: 0 });
|
|
143
|
+
// 消息视图:all / pending / informational / completed,未读与回执由 Notification Hub 投影
|
|
144
|
+
const todos = await loadApplicationTodos({ view: 'all', unread: false, keyword: '', limit: 12, offset: 0 });
|
|
145
|
+
// read/click 回执幂等;失败不阻断目标页自身的读取与鉴权
|
|
146
|
+
await recordApplicationTodoInteraction(item.messageId, 'click');
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
边界(与默认标准页一致,`check` 与运行时都会强制):
|
|
150
|
+
|
|
151
|
+
- 不得注册、替换或重定向 `/todos`、`/m/todos`、`/work-center`、`/m/work-center`
|
|
152
|
+
及任何 Workflow 路由;自建页面必须挂在应用自己声明的路由上。
|
|
153
|
+
- 收件箱只读当前用户:没有跨用户查询、没有批量审批;待办页不执行
|
|
154
|
+
Workflow approve/reject/return 命令,操作一律进入平台解析的
|
|
155
|
+
`detailNavigation.desktopPath/mobilePath`,`navigationUnavailable` 时禁用入口。
|
|
156
|
+
- 视图语义由服务端裁定(待办的 created/cc 是 Workflow 事实,不是消息搜索的
|
|
157
|
+
客户端并集);合同没有的优先级、截止时间、排序与批量选择不得在浏览器伪造。
|
|
158
|
+
- 服务端集成使用 `openxiangda-nest` 的 `OpenXiangdaPlatformClient`:
|
|
159
|
+
`workflowWorkCenter` 支持 `view`(`created/handled/cc` 需要 view,
|
|
160
|
+
`status` 仅保留 pending/completed 兼容映射),`applicationTodos` 与回执
|
|
161
|
+
访问同名可用。
|
|
162
|
+
|
|
163
|
+
默认呈现的替换式定制仅限既有 contribution 面(用户面 frame、
|
|
164
|
+
`applicationTodoCenter` 渲染器);Workflow 待办中心目前没有渲染器替换钩子,
|
|
165
|
+
需要完全不同的呈现时走本节的自建路由方案。
|
|
166
|
+
|
|
129
167
|
## 标准后台扩展
|
|
130
168
|
|
|
131
169
|
### 未保存内容的离开保护
|
|
@@ -43,7 +43,9 @@ openxiangda update install --target workspace
|
|
|
43
43
|
openxiangda version --json
|
|
44
44
|
```
|
|
45
45
|
|
|
46
|
-
|
|
46
|
+
更新完成后审查依赖、锁文件差异并运行项目检查与业务验收。
|
|
47
|
+
|
|
48
|
+
升级或手改依赖后若出现 `WORKSPACE_ENGINE_PIN_MISMATCH`(项目声明与已安装版本不一致),按顺序恢复:先运行 `pnpm install`(锁文件已指向目标版本时一步修复);钉位互相不一致(多个 package.json 或锁文件各说各话)时运行 `openxiangda update install --target workspace`,它会递归统一全部声明、锁文件与安装。`update`、`version`、`changelog` 命令不受该校验限制,漂移状态下也能执行用于诊断与修复;业务命令(check/deploy/dev)保持严格 fail-closed。统一入口不会后台自动升级工具或转换项目。V1 独立 CLI 的 `update install` 会尝试刷新 V1 Skill(可用 `--no-skills` 跳过);统一入口的更新完成后按下面命令显式刷新 Skill。
|
|
47
49
|
|
|
48
50
|
### 安装或刷新 Skill
|
|
49
51
|
|
|
@@ -66,10 +68,10 @@ MCP 服务随项目根包一起安装,AI 客户端的 stdio 连接仍需配置
|
|
|
66
68
|
以下命令的版本占位符由随包资料替换为该根包的精确版本。网站源码阅读者应先确认要使用的发行版本。
|
|
67
69
|
|
|
68
70
|
```bash
|
|
69
|
-
pnpm dlx openxiangda@2.18.
|
|
70
|
-
pnpm dlx openxiangda@2.18.
|
|
71
|
-
pnpm dlx openxiangda@2.18.
|
|
72
|
-
pnpm dlx openxiangda@2.18.
|
|
71
|
+
pnpm dlx openxiangda@2.18.10 skill install --force
|
|
72
|
+
pnpm dlx openxiangda@2.18.10 auth status --base-url <平台地址> --json
|
|
73
|
+
pnpm dlx openxiangda@2.18.10 login --cwd my-app --base-url https://platform.example.com
|
|
74
|
+
pnpm dlx openxiangda@2.18.10 create my-app --base-url https://platform.example.com
|
|
73
75
|
cd my-app
|
|
74
76
|
pnpm openxiangda context --json
|
|
75
77
|
pnpm openxiangda dev
|
|
@@ -171,9 +173,9 @@ MCP 的 `docs_read` 可以读取本说明,当前没有独立的源码操作 MC
|
|
|
171
173
|
无需本地工作区,使用本 Skill 随包精确版本或已安装的对应 CLI:
|
|
172
174
|
|
|
173
175
|
```bash
|
|
174
|
-
pnpm dlx openxiangda@2.18.
|
|
175
|
-
pnpm dlx openxiangda@2.18.
|
|
176
|
-
pnpm dlx openxiangda@2.18.
|
|
176
|
+
pnpm dlx openxiangda@2.18.10 auth status --base-url <平台> --json
|
|
177
|
+
pnpm dlx openxiangda@2.18.10 source resolve <仓库URL> --base-url <平台> --json
|
|
178
|
+
pnpm dlx openxiangda@2.18.10 source clone <仓库URL> <新目录> --base-url <平台> --json
|
|
177
179
|
```
|
|
178
180
|
|
|
179
181
|
登录缺失或站点不匹配时,先按该平台执行 login。resolve 根据平台已经登记的绑定返回
|
package/releases/2.18.7.json
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"schemaVersion": "openxiangda.release-notes/v1",
|
|
3
|
-
"version": "2.18.7",
|
|
4
|
-
"status": "reviewed",
|
|
5
|
-
"title": "OpenXiangda 2.18.7:模块视图查询选择放行 system 字段(GAP-MODULE-003)",
|
|
6
|
-
"summary": "模块视图的筛选/搜索/排序/分组选择可以引用 system 字段,与低层 data.resources 的 system+filter 语义对齐;展示与可写选择维持拒绝。devkit-core 2.16.0 携带实现。",
|
|
7
|
-
"newFeatures": [
|
|
8
|
-
"crud[].list 的 filterFields/searchableFields/sortableFields/defaultSort 与 sections.fields 允许引用 system: true 字段:外键标识(activityId/routeId/campaignId 等)与归属快照(memberUser 等)不再阻塞模块化迁移。",
|
|
9
|
-
"声明速查新增对应规则条目。"
|
|
10
|
-
],
|
|
11
|
-
"fixes": [],
|
|
12
|
-
"affectedUsers": [
|
|
13
|
-
"从 data.resources 迁移到模块化声明、存在大量 system+filter 字段的应用(如数智工会 szgh-v2 的 40/74 资源)。"
|
|
14
|
-
],
|
|
15
|
-
"upgradeSteps": [
|
|
16
|
-
"应用精确依赖升级到 openxiangda 2.18.7(openxiangda-devkit-core 2.16.0)后重新运行 check 与部署。"
|
|
17
|
-
],
|
|
18
|
-
"knownLimitations": [
|
|
19
|
-
"展示与可写选择(list/form/detail.fields)仍不接受 system 字段——按 GAP 文档期望保留现行限制。"
|
|
20
|
-
],
|
|
21
|
-
"issues": [],
|
|
22
|
-
"compatibility": {
|
|
23
|
-
"node": ">=24",
|
|
24
|
-
"workspaceGenerations": "v2",
|
|
25
|
-
"platform": "无平台配合要求;共享校验器字节不变。",
|
|
26
|
-
"v1": "不改变 V1 运行时或应用。"
|
|
27
|
-
},
|
|
28
|
-
"sha256": "2d0be4180cfbb743f5340d93dbcb133c493b666d58dc00e380968514dd32d682",
|
|
29
|
-
"url": "https://github.com/1377385356/openxiangda/releases/tag/v2.18.7"
|
|
30
|
-
}
|