openxiangda 2.4.0 → 2.4.1
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/documentation/backend.md +6 -0
- package/documentation/getting-started.md +7 -7
- package/documentation/manifest.json +3 -3
- package/package.json +19 -21
- package/releases/2.4.1.json +35 -0
- package/skills/manifest.json +1 -1
- package/skills/openxiangda-v2/SKILL.md +4 -4
- package/skills/openxiangda-v2/references/backend.md +6 -0
- package/skills/openxiangda-v2/references/getting-started.md +7 -7
package/documentation/backend.md
CHANGED
|
@@ -136,6 +136,12 @@ await bootstrapOpenXiangdaApplication(AppModule);
|
|
|
136
136
|
|
|
137
137
|
签名事件处理器使用 `sendFromEvent()`,在声明中指定事件 data 内的收件人与文案路径,由平台验证不可变事件后解析。普通业务动作不需要平台通知管理权限。需要高级钉钉卡片时才使用已授权的管理服务和已启用通道,不能把它设为普通审批的默认依赖。
|
|
138
138
|
|
|
139
|
+
事件处理器可正常注入请求作用域的通知服务或瞬态依赖。SDK 先验证签名、应用、环境、
|
|
140
|
+
事件 Schema 并认领回执,再从处理器所属 Nest 模块创建本次投递的依赖作用域。
|
|
141
|
+
静态单例仍由 Nest 复用;失败重试创建新作用域并保留原事件幂等键。处理器中的
|
|
142
|
+
`REQUEST` 不含用户授权,不能用 `send()` 冒充具名用户动作;事件身份仅来自当前
|
|
143
|
+
已验证的 `handle(event, context)` 执行,离开该执行后调用 `sendFromEvent()` 会拒绝。
|
|
144
|
+
|
|
139
145
|
通知协议常量也从同一个公开入口导入:
|
|
140
146
|
|
|
141
147
|
```ts
|
|
@@ -11,10 +11,10 @@ OpenXiangda 2.0 默认生成 React 应用和共享契约。普通 CRUD、标准
|
|
|
11
11
|
以下命令的版本占位符由随包资料替换为该根包的精确版本。网站源码阅读者应先确认要使用的发行版本。
|
|
12
12
|
|
|
13
13
|
```bash
|
|
14
|
-
pnpm dlx openxiangda@2.4.
|
|
15
|
-
pnpm dlx openxiangda@2.4.
|
|
16
|
-
pnpm dlx openxiangda@2.4.
|
|
17
|
-
pnpm dlx openxiangda@2.4.
|
|
14
|
+
pnpm dlx openxiangda@2.4.1 skill install --force
|
|
15
|
+
pnpm dlx openxiangda@2.4.1 auth status --base-url <平台地址> --json
|
|
16
|
+
pnpm dlx openxiangda@2.4.1 login --base-url https://platform.example.com
|
|
17
|
+
pnpm dlx openxiangda@2.4.1 create my-app --base-url https://platform.example.com
|
|
18
18
|
cd my-app
|
|
19
19
|
pnpm openxiangda context --json
|
|
20
20
|
pnpm openxiangda dev
|
|
@@ -114,9 +114,9 @@ MCP 的 `docs_read` 可以读取本说明,当前没有独立的源码操作 MC
|
|
|
114
114
|
无需本地工作区,使用本 Skill 随包精确版本或已安装的对应 CLI:
|
|
115
115
|
|
|
116
116
|
```bash
|
|
117
|
-
pnpm dlx openxiangda@2.4.
|
|
118
|
-
pnpm dlx openxiangda@2.4.
|
|
119
|
-
pnpm dlx openxiangda@2.4.
|
|
117
|
+
pnpm dlx openxiangda@2.4.1 auth status --base-url <平台> --json
|
|
118
|
+
pnpm dlx openxiangda@2.4.1 source resolve <仓库URL> --base-url <平台> --json
|
|
119
|
+
pnpm dlx openxiangda@2.4.1 source clone <仓库URL> <新目录> --base-url <平台> --json
|
|
120
120
|
```
|
|
121
121
|
|
|
122
122
|
登录缺失或站点不匹配时,先按该平台执行 login。resolve 根据平台已经登记的绑定返回
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": "openxiangda.documentation/v1",
|
|
3
|
-
"version": "2.4.
|
|
3
|
+
"version": "2.4.1",
|
|
4
4
|
"topics": [
|
|
5
5
|
{
|
|
6
6
|
"id": "getting-started",
|
|
7
7
|
"title": "安装与开始开发",
|
|
8
8
|
"file": "getting-started.md",
|
|
9
|
-
"sha256": "
|
|
9
|
+
"sha256": "3865bad9bcd22f13a4da202525c62ed179553698f269b945aae9f7c7361b19c5"
|
|
10
10
|
},
|
|
11
11
|
{
|
|
12
12
|
"id": "product-design",
|
|
@@ -78,7 +78,7 @@
|
|
|
78
78
|
"id": "backend",
|
|
79
79
|
"title": "按需后端与业务动作",
|
|
80
80
|
"file": "backend.md",
|
|
81
|
-
"sha256": "
|
|
81
|
+
"sha256": "2017f876b6e548d8440323cb32df0505939330cc979ea884e4fd4d3fefbd489e"
|
|
82
82
|
},
|
|
83
83
|
{
|
|
84
84
|
"id": "administration",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "openxiangda",
|
|
3
|
-
"version": "2.4.
|
|
3
|
+
"version": "2.4.1",
|
|
4
4
|
"description": "OpenXiangda 2.0 的统一命令、应用 SDK、MCP 与中文 AI 技能资料。",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -58,13 +58,13 @@
|
|
|
58
58
|
"antd-mobile": "5.42.3",
|
|
59
59
|
"dayjs": "1.11.18",
|
|
60
60
|
"docx-preview": "0.3.7",
|
|
61
|
-
"openxiangda-cli": "2.2.
|
|
61
|
+
"openxiangda-cli": "2.2.6",
|
|
62
62
|
"openxiangda-contracts": "2.4.0",
|
|
63
63
|
"openxiangda-devkit-core": "2.4.0",
|
|
64
64
|
"openxiangda-legacy": "npm:openxiangda@1.0.268",
|
|
65
65
|
"openxiangda-mcp": "2.0.6",
|
|
66
|
-
"openxiangda-nest": "2.0.
|
|
67
|
-
"openxiangda-skill-kit": "2.0.
|
|
66
|
+
"openxiangda-nest": "2.0.7",
|
|
67
|
+
"openxiangda-skill-kit": "2.0.8",
|
|
68
68
|
"xlsx": "https://cdn.sheetjs.com/xlsx-0.20.3/xlsx-0.20.3.tgz"
|
|
69
69
|
},
|
|
70
70
|
"peerDependencies": {
|
|
@@ -130,18 +130,17 @@
|
|
|
130
130
|
},
|
|
131
131
|
"openxiangdaRelease": {
|
|
132
132
|
"schemaVersion": "openxiangda.release-notes/v1",
|
|
133
|
-
"version": "2.4.
|
|
134
|
-
"title": "
|
|
133
|
+
"version": "2.4.1",
|
|
134
|
+
"title": "事件处理器依赖作用域修复",
|
|
135
135
|
"status": "reviewed",
|
|
136
|
-
"summary": "
|
|
137
|
-
"newFeatures": [
|
|
138
|
-
"operation-time 守卫可检查 create/update 中的 datetime 字段,支持正负 366 天以内的整数毫秒偏移和六种比较。"
|
|
139
|
-
],
|
|
136
|
+
"summary": "事件处理器可正常注入请求级通知服务,签名与回执校验后再由所属 Nest 模块解析依赖。",
|
|
137
|
+
"newFeatures": [],
|
|
140
138
|
"fixes": [
|
|
141
|
-
"
|
|
139
|
+
"修复请求级依赖使事件处理器构造函数未执行、handle 调用失败的问题。",
|
|
140
|
+
"同名 provider 严格按所属模块解析,并发投递与失败重试使用独立作用域;静态单例继续复用。"
|
|
142
141
|
],
|
|
143
142
|
"affectedUsers": [
|
|
144
|
-
"
|
|
143
|
+
"使用 Nest 签名事件处理器及请求级通知服务或瞬态依赖的 V2 应用开发者。"
|
|
145
144
|
],
|
|
146
145
|
"compatibility": {
|
|
147
146
|
"node": ">=24",
|
|
@@ -149,21 +148,20 @@
|
|
|
149
148
|
"v1",
|
|
150
149
|
"v2"
|
|
151
150
|
],
|
|
152
|
-
"v1Policy": "V1
|
|
153
|
-
"platformPolicy": "
|
|
151
|
+
"v1Policy": "V1 引擎与已有应用契约不变。",
|
|
152
|
+
"platformPolicy": "沿用 2.4.0 的 Data API 1.1.0 要求;事件签名、回执、身份与部署协议不变。"
|
|
154
153
|
},
|
|
155
154
|
"upgradeSteps": [
|
|
156
|
-
"将应用精确依赖升级至 openxiangda 2.4.
|
|
157
|
-
"
|
|
155
|
+
"将应用精确依赖升级至 openxiangda 2.4.1,刷新工作区资料并重新检查。",
|
|
156
|
+
"重新发布应用后验证真实事件、通知送达、重复投递与失败恢复。"
|
|
158
157
|
],
|
|
159
158
|
"knownLimitations": [
|
|
160
|
-
"
|
|
161
|
-
"
|
|
162
|
-
"工具包发布不代表平台已部署或应用业务验收已通过。"
|
|
159
|
+
"事件作用域的 REQUEST 不含用户授权,sendFromEvent 仅在已验证的事件执行期间可用。",
|
|
160
|
+
"SDK 测试通过不代表真实平台通知送达或应用业务验收已完成。"
|
|
163
161
|
],
|
|
164
162
|
"issues": [],
|
|
165
|
-
"sha256": "
|
|
166
|
-
"url": "https://github.com/1377385356/openxiangda/releases/tag/v2.4.
|
|
163
|
+
"sha256": "f81f626e3fb91069c4f5d94da48a80400ae3fca5e3b55ab0d77e0a7c82dc7681",
|
|
164
|
+
"url": "https://github.com/1377385356/openxiangda/releases/tag/v2.4.1"
|
|
167
165
|
},
|
|
168
166
|
"scripts": {
|
|
169
167
|
"build": "node ../../scripts/prune-package-dist.mjs && tsc -p tsconfig.json && node scripts/copy-assets.mjs",
|
|
@@ -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
|
+
}
|
package/skills/manifest.json
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
{
|
|
5
5
|
"name": "openxiangda-v2",
|
|
6
6
|
"description": "使用 OpenXiangda 2.0 从模糊业务想法、已有资料或具体变更出发,通过对话发现模块、完成详细产品设计,再开发、检查和交付应用。维护 1.x 应用时使用对应的 1.x 技能。",
|
|
7
|
-
"sha256": "
|
|
7
|
+
"sha256": "5ce1c45212e3f66651e1740bfa3c6686e41f0c7da950d2bc3c15bf94c09294c0"
|
|
8
8
|
}
|
|
9
9
|
]
|
|
10
10
|
}
|
|
@@ -18,10 +18,10 @@ description: 使用 OpenXiangda 2.0 从模糊业务想法、已有资料或具
|
|
|
18
18
|
未创建工作区时使用本 Skill 随根包发布的精确版本:
|
|
19
19
|
|
|
20
20
|
```bash
|
|
21
|
-
pnpm dlx openxiangda@2.4.
|
|
22
|
-
pnpm dlx openxiangda@2.4.
|
|
23
|
-
pnpm dlx openxiangda@2.4.
|
|
24
|
-
pnpm dlx openxiangda@2.4.
|
|
21
|
+
pnpm dlx openxiangda@2.4.1 auth status --base-url <平台地址> --json
|
|
22
|
+
pnpm dlx openxiangda@2.4.1 login --base-url <平台地址>
|
|
23
|
+
pnpm dlx openxiangda@2.4.1 create <应用目录> --base-url <同一平台地址>
|
|
24
|
+
pnpm dlx openxiangda@2.4.1 skill install --force
|
|
25
25
|
```
|
|
26
26
|
|
|
27
27
|
创建前把产品要求的目标平台明确带入命令,不从旧登录态推断站点。已有工作区从原绑定恢复,平台不一致时先解决登录与目标,不改 link 文件跨站创建。
|
|
@@ -136,6 +136,12 @@ await bootstrapOpenXiangdaApplication(AppModule);
|
|
|
136
136
|
|
|
137
137
|
签名事件处理器使用 `sendFromEvent()`,在声明中指定事件 data 内的收件人与文案路径,由平台验证不可变事件后解析。普通业务动作不需要平台通知管理权限。需要高级钉钉卡片时才使用已授权的管理服务和已启用通道,不能把它设为普通审批的默认依赖。
|
|
138
138
|
|
|
139
|
+
事件处理器可正常注入请求作用域的通知服务或瞬态依赖。SDK 先验证签名、应用、环境、
|
|
140
|
+
事件 Schema 并认领回执,再从处理器所属 Nest 模块创建本次投递的依赖作用域。
|
|
141
|
+
静态单例仍由 Nest 复用;失败重试创建新作用域并保留原事件幂等键。处理器中的
|
|
142
|
+
`REQUEST` 不含用户授权,不能用 `send()` 冒充具名用户动作;事件身份仅来自当前
|
|
143
|
+
已验证的 `handle(event, context)` 执行,离开该执行后调用 `sendFromEvent()` 会拒绝。
|
|
144
|
+
|
|
139
145
|
通知协议常量也从同一个公开入口导入:
|
|
140
146
|
|
|
141
147
|
```ts
|
|
@@ -11,10 +11,10 @@ OpenXiangda 2.0 默认生成 React 应用和共享契约。普通 CRUD、标准
|
|
|
11
11
|
以下命令的版本占位符由随包资料替换为该根包的精确版本。网站源码阅读者应先确认要使用的发行版本。
|
|
12
12
|
|
|
13
13
|
```bash
|
|
14
|
-
pnpm dlx openxiangda@2.4.
|
|
15
|
-
pnpm dlx openxiangda@2.4.
|
|
16
|
-
pnpm dlx openxiangda@2.4.
|
|
17
|
-
pnpm dlx openxiangda@2.4.
|
|
14
|
+
pnpm dlx openxiangda@2.4.1 skill install --force
|
|
15
|
+
pnpm dlx openxiangda@2.4.1 auth status --base-url <平台地址> --json
|
|
16
|
+
pnpm dlx openxiangda@2.4.1 login --base-url https://platform.example.com
|
|
17
|
+
pnpm dlx openxiangda@2.4.1 create my-app --base-url https://platform.example.com
|
|
18
18
|
cd my-app
|
|
19
19
|
pnpm openxiangda context --json
|
|
20
20
|
pnpm openxiangda dev
|
|
@@ -114,9 +114,9 @@ MCP 的 `docs_read` 可以读取本说明,当前没有独立的源码操作 MC
|
|
|
114
114
|
无需本地工作区,使用本 Skill 随包精确版本或已安装的对应 CLI:
|
|
115
115
|
|
|
116
116
|
```bash
|
|
117
|
-
pnpm dlx openxiangda@2.4.
|
|
118
|
-
pnpm dlx openxiangda@2.4.
|
|
119
|
-
pnpm dlx openxiangda@2.4.
|
|
117
|
+
pnpm dlx openxiangda@2.4.1 auth status --base-url <平台> --json
|
|
118
|
+
pnpm dlx openxiangda@2.4.1 source resolve <仓库URL> --base-url <平台> --json
|
|
119
|
+
pnpm dlx openxiangda@2.4.1 source clone <仓库URL> <新目录> --base-url <平台> --json
|
|
120
120
|
```
|
|
121
121
|
|
|
122
122
|
登录缺失或站点不匹配时,先按该平台执行 login。resolve 根据平台已经登记的绑定返回
|