openxiangda 2.31.7 → 2.31.8

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.
@@ -340,6 +340,12 @@ await bootstrapOpenXiangdaApplication(AppModule);
340
340
 
341
341
  ## 通知与事件 {#notifications}
342
342
 
343
+ 运营查询与恢复使用用户态 `OpenXiangdaNotificationService.listMessages({ correlationId, limit, offset })`、`listDeadLetters({ messageId, limit, offset })` 和 `replayDeadLetter(deadLetterId)`。应用保留原平台 messageId,按业务来源定位原通知;恢复只重试原投递,禁止重新 `send` 整个批次。平台保持 `app:notification2:read`、`app:notification2:content:read`、`app:notification2:delivery:retry` 分离授权,应用通常仅向管理员授予需要的管理权限。接口固定当前应用和环境,不接受应用服务身份代替用户。
344
+
345
+ 死信返回 messageId、deliveryId、correlationId;投影阶段尚无消息时为 null。若较新修订已投递,重放返回 `superseded: true` 而不再次发送。重复或未知结果应刷新原消息/死信状态,不能更换业务通知幂等键绕过。
346
+
347
+ 具名动作的 `platformAccess.managedFiles` 可精确声明 `file`、`image`、`signature` 和 `text.rich` 字段。富文本内嵌图片必须绑定实际富文本字段,不能借封面字段的权限。创建和更新意图分别声明;Connected Dev 同样逐请求验证开发会话,再对既有记录生成短时精确附件证明,不开放资源普通 CRUD。
348
+
343
349
  具名用户动作发送通知使用 `OpenXiangdaBusinessNotificationService.send()`,携带稳定 eventId、messageKey、sourceSequence 和 idempotencyKey。重放同一事件返回已有消息;同一 messageKey 的更高序列用于收敛状态。通知目标使用声明的 PC/移动路由代码及参数,不拼接环境域名或身份凭据。
344
350
 
345
351
  签名事件处理器使用 `sendFromEvent()`,在声明中指定事件 data 内的收件人与文案路径,由平台验证不可变事件后解析。普通业务动作不需要平台通知管理权限。需要高级钉钉卡片时才使用已授权的管理服务和已启用通道,不能把它设为普通审批的默认依赖。
@@ -68,10 +68,10 @@ MCP 服务随项目根包一起安装,AI 客户端的 stdio 连接仍需配置
68
68
  以下命令的版本占位符由随包资料替换为该根包的精确版本。网站源码阅读者应先确认要使用的发行版本。
69
69
 
70
70
  ```bash
71
- pnpm dlx openxiangda@2.31.7 skill install --force
72
- pnpm dlx openxiangda@2.31.7 auth status --base-url <平台地址> --json
73
- pnpm dlx openxiangda@2.31.7 login --cwd my-app --base-url https://platform.example.com
74
- pnpm dlx openxiangda@2.31.7 create my-app --base-url https://platform.example.com
71
+ pnpm dlx openxiangda@2.31.8 skill install --force
72
+ pnpm dlx openxiangda@2.31.8 auth status --base-url <平台地址> --json
73
+ pnpm dlx openxiangda@2.31.8 login --cwd my-app --base-url https://platform.example.com
74
+ pnpm dlx openxiangda@2.31.8 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
@@ -174,9 +174,9 @@ MCP 的 `docs_read` 可以读取本说明,当前没有独立的源码操作 MC
174
174
  无需本地工作区,使用本 Skill 随包精确版本或已安装的对应 CLI:
175
175
 
176
176
  ```bash
177
- pnpm dlx openxiangda@2.31.7 auth status --base-url <平台> --json
178
- pnpm dlx openxiangda@2.31.7 source resolve <仓库URL> --base-url <平台> --json
179
- pnpm dlx openxiangda@2.31.7 source clone <仓库URL> <新目录> --base-url <平台> --json
177
+ pnpm dlx openxiangda@2.31.8 auth status --base-url <平台> --json
178
+ pnpm dlx openxiangda@2.31.8 source resolve <仓库URL> --base-url <平台> --json
179
+ pnpm dlx openxiangda@2.31.8 source clone <仓库URL> <新目录> --base-url <平台> --json
180
180
  ```
181
181
 
182
182
  登录缺失或站点不匹配时,先按该平台执行 login。resolve 根据平台已经登记的绑定返回
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "schemaVersion": "openxiangda.documentation/v1",
3
- "version": "2.31.7",
3
+ "version": "2.31.8",
4
4
  "topics": [
5
5
  {
6
6
  "id": "getting-started",
7
7
  "title": "安装与开始开发",
8
8
  "file": "getting-started.md",
9
- "sha256": "0471435f0c0cde044b14f3de94c4aa7a0b16fbc273e2fccd500ca51ef9911a3c"
9
+ "sha256": "d9e4e3dd1acd90b8a067bd70de5448127e5faa6386493c70237310bc43c0f122"
10
10
  },
11
11
  {
12
12
  "id": "product-design",
@@ -90,7 +90,7 @@
90
90
  "id": "backend",
91
91
  "title": "按需后端与业务动作",
92
92
  "file": "backend.md",
93
- "sha256": "54feea4530e28cd8602a183a27def14d5212cabd05b10f5687c5a21bceab848f"
93
+ "sha256": "a8dc288d6c220f10638eddaf49edd7c55baa29f8e70880dd29ba1354efc4577d"
94
94
  },
95
95
  {
96
96
  "id": "agent-cards",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "openxiangda",
3
- "version": "2.31.7",
3
+ "version": "2.31.8",
4
4
  "description": "OpenXiangda 2.0 的统一命令、应用 SDK、MCP 与中文 AI 技能资料。",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -64,13 +64,13 @@
64
64
  "antd-mobile": "5.42.3",
65
65
  "dayjs": "1.11.18",
66
66
  "docx-preview": "0.3.7",
67
- "openxiangda-cli": "2.6.9",
68
- "openxiangda-contracts": "2.32.0",
69
- "openxiangda-devkit-core": "2.34.2",
67
+ "openxiangda-cli": "2.6.10",
68
+ "openxiangda-contracts": "2.33.0",
69
+ "openxiangda-devkit-core": "2.34.3",
70
70
  "openxiangda-legacy": "npm:openxiangda@1.0.269",
71
- "openxiangda-mcp": "2.0.58",
72
- "openxiangda-nest": "2.8.0",
73
- "openxiangda-skill-kit": "2.3.33",
71
+ "openxiangda-mcp": "2.0.59",
72
+ "openxiangda-nest": "2.9.0",
73
+ "openxiangda-skill-kit": "2.3.34",
74
74
  "xlsx": "https://github.com/1377385356/openxiangda/releases/download/vendor-mirror/xlsx-0.20.3.tgz"
75
75
  },
76
76
  "peerDependencies": {
@@ -136,32 +136,36 @@
136
136
  },
137
137
  "openxiangdaRelease": {
138
138
  "schemaVersion": "openxiangda.release-notes/v1",
139
- "version": "2.31.7",
139
+ "version": "2.31.8",
140
140
  "status": "reviewed",
141
- "title": "OpenXiangda 2.31.7:后端受控核验所选组织人员",
142
- "summary": "应用后端可在已声明的业务操作内核验所选人员,姓名、工号与部门由平台组织架构提供。",
141
+ "title": "OpenXiangda 2.31.8:富文本图片与原通知投递恢复",
142
+ "summary": "支持具名动作的富文本托管图片,并公开按原消息查询、恢复失败投递的用户态接口。",
143
143
  "newFeatures": [
144
- "增加 selected-user 目录声明和 BusinessDirectoryService.selectedUser,按声明投影组织身份字段并返回核验快照。"
144
+ "NotificationService 增加 listMessages、listDeadLetters、replayDeadLetter,固定应用环境并保留平台管理权限。"
145
+ ],
146
+ "fixes": [
147
+ "managedFiles 作者配置与 Native 编译支持精确 text.rich 字段,避免借用其他图片字段授权。"
145
148
  ],
146
- "fixes": [],
147
149
  "affectedUsers": [
148
- "需要管理员代录、身份纠正或针对所选组织人员执行业务操作的 V2 应用。"
150
+ "使用具名动作编辑富文本或需要后台管理通知投递的 V2 应用。"
149
151
  ],
150
152
  "upgradeSteps": [
151
- "升级应用工具链,并先部署支持 directory.selected-user 1.0.0 的平台;在具体后端操作声明所需字段和目录读取权限。"
153
+ "升级工具链;富文本插图依赖对应平台编译支持,开发态已有记录上传需平台开发态附件 RLS 修复。",
154
+ "通知死信 messageId 过滤和来源关联需对应平台版本;管理员分别授予 read、content:read、delivery:retry 权限。"
152
155
  ],
153
156
  "knownLimitations": [
154
- "只支持同租户有效组织人员;未声明能力、无目录权限或人员不可用时明确拒绝。"
157
+ "投影阶段尚无消息时死信关联字段为空;已解决死信保持既有 not-found 响应,客户端应刷新状态。",
158
+ "SDK 和平台源码验证不代替目标应用实际图片上传、通知投递及权限验收。"
155
159
  ],
156
160
  "issues": [],
157
161
  "compatibility": {
158
162
  "node": ">=24",
159
163
  "workspaceGenerations": "v2",
160
- "platform": "新增能力需要支持 directory.selected-user 1.0.0 的平台;既有 current-initiator 行为不变。",
164
+ "platform": "新增富文本声明和通知来源过滤需同步支持本次变更的平台;不扩大普通用户发送权限。",
161
165
  "v1": "独立 V1 引擎不受影响。"
162
166
  },
163
- "sha256": "8843f2ad58d915c2b9158821b6640bc4453a5e0e6f6066d918fda0e9dc168ccd",
164
- "url": "https://github.com/1377385356/openxiangda/releases/tag/v2.31.7"
167
+ "sha256": "e30dad108c478ee6cce5a1632cbd620cbf650999c9d2fd39973482c2edb01ad9",
168
+ "url": "https://github.com/1377385356/openxiangda/releases/tag/v2.31.8"
165
169
  },
166
170
  "scripts": {
167
171
  "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.31.8",
4
+ "status": "reviewed",
5
+ "title": "OpenXiangda 2.31.8:富文本图片与原通知投递恢复",
6
+ "summary": "支持具名动作的富文本托管图片,并公开按原消息查询、恢复失败投递的用户态接口。",
7
+ "newFeatures": [
8
+ "NotificationService 增加 listMessages、listDeadLetters、replayDeadLetter,固定应用环境并保留平台管理权限。"
9
+ ],
10
+ "fixes": [
11
+ "managedFiles 作者配置与 Native 编译支持精确 text.rich 字段,避免借用其他图片字段授权。"
12
+ ],
13
+ "affectedUsers": [
14
+ "使用具名动作编辑富文本或需要后台管理通知投递的 V2 应用。"
15
+ ],
16
+ "upgradeSteps": [
17
+ "升级工具链;富文本插图依赖对应平台编译支持,开发态已有记录上传需平台开发态附件 RLS 修复。",
18
+ "通知死信 messageId 过滤和来源关联需对应平台版本;管理员分别授予 read、content:read、delivery:retry 权限。"
19
+ ],
20
+ "knownLimitations": [
21
+ "投影阶段尚无消息时死信关联字段为空;已解决死信保持既有 not-found 响应,客户端应刷新状态。",
22
+ "SDK 和平台源码验证不代替目标应用实际图片上传、通知投递及权限验收。"
23
+ ],
24
+ "issues": [],
25
+ "compatibility": {
26
+ "node": ">=24",
27
+ "workspaceGenerations": "v2",
28
+ "platform": "新增富文本声明和通知来源过滤需同步支持本次变更的平台;不扩大普通用户发送权限。",
29
+ "v1": "独立 V1 引擎不受影响。"
30
+ },
31
+ "sha256": "e30dad108c478ee6cce5a1632cbd620cbf650999c9d2fd39973482c2edb01ad9",
32
+ "url": "https://github.com/1377385356/openxiangda/releases/tag/v2.31.8"
33
+ }
@@ -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": "cbe95066d7c4a3c82f07bb9b6c228e1d2e33784ddfa9fab5112ba17936e8c4ce"
7
+ "sha256": "0ea5740d7043248b6769bdb643849cc7187d930d021fc5891e270ef10a9bfa79"
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.31.7 auth status --cwd <应用目录> --base-url <平台地址> --json
44
- pnpm dlx openxiangda@2.31.7 login --cwd <应用目录> --base-url <平台地址>
45
- pnpm dlx openxiangda@2.31.7 create <应用目录> --base-url <同一平台地址>
46
- pnpm dlx openxiangda@2.31.7 skill install --force
43
+ pnpm dlx openxiangda@2.31.8 auth status --cwd <应用目录> --base-url <平台地址> --json
44
+ pnpm dlx openxiangda@2.31.8 login --cwd <应用目录> --base-url <平台地址>
45
+ pnpm dlx openxiangda@2.31.8 create <应用目录> --base-url <同一平台地址>
46
+ pnpm dlx openxiangda@2.31.8 skill install --force
47
47
  ```
48
48
 
49
49
  创建前把产品要求的目标平台明确带入命令,不从旧登录态推断站点。已有工作区从原绑定恢复,平台不一致时先解决登录与目标,不改 link 文件跨站创建。
@@ -340,6 +340,12 @@ await bootstrapOpenXiangdaApplication(AppModule);
340
340
 
341
341
  ## 通知与事件 {#notifications}
342
342
 
343
+ 运营查询与恢复使用用户态 `OpenXiangdaNotificationService.listMessages({ correlationId, limit, offset })`、`listDeadLetters({ messageId, limit, offset })` 和 `replayDeadLetter(deadLetterId)`。应用保留原平台 messageId,按业务来源定位原通知;恢复只重试原投递,禁止重新 `send` 整个批次。平台保持 `app:notification2:read`、`app:notification2:content:read`、`app:notification2:delivery:retry` 分离授权,应用通常仅向管理员授予需要的管理权限。接口固定当前应用和环境,不接受应用服务身份代替用户。
344
+
345
+ 死信返回 messageId、deliveryId、correlationId;投影阶段尚无消息时为 null。若较新修订已投递,重放返回 `superseded: true` 而不再次发送。重复或未知结果应刷新原消息/死信状态,不能更换业务通知幂等键绕过。
346
+
347
+ 具名动作的 `platformAccess.managedFiles` 可精确声明 `file`、`image`、`signature` 和 `text.rich` 字段。富文本内嵌图片必须绑定实际富文本字段,不能借封面字段的权限。创建和更新意图分别声明;Connected Dev 同样逐请求验证开发会话,再对既有记录生成短时精确附件证明,不开放资源普通 CRUD。
348
+
343
349
  具名用户动作发送通知使用 `OpenXiangdaBusinessNotificationService.send()`,携带稳定 eventId、messageKey、sourceSequence 和 idempotencyKey。重放同一事件返回已有消息;同一 messageKey 的更高序列用于收敛状态。通知目标使用声明的 PC/移动路由代码及参数,不拼接环境域名或身份凭据。
344
350
 
345
351
  签名事件处理器使用 `sendFromEvent()`,在声明中指定事件 data 内的收件人与文案路径,由平台验证不可变事件后解析。普通业务动作不需要平台通知管理权限。需要高级钉钉卡片时才使用已授权的管理服务和已启用通道,不能把它设为普通审批的默认依赖。
@@ -68,10 +68,10 @@ MCP 服务随项目根包一起安装,AI 客户端的 stdio 连接仍需配置
68
68
  以下命令的版本占位符由随包资料替换为该根包的精确版本。网站源码阅读者应先确认要使用的发行版本。
69
69
 
70
70
  ```bash
71
- pnpm dlx openxiangda@2.31.7 skill install --force
72
- pnpm dlx openxiangda@2.31.7 auth status --base-url <平台地址> --json
73
- pnpm dlx openxiangda@2.31.7 login --cwd my-app --base-url https://platform.example.com
74
- pnpm dlx openxiangda@2.31.7 create my-app --base-url https://platform.example.com
71
+ pnpm dlx openxiangda@2.31.8 skill install --force
72
+ pnpm dlx openxiangda@2.31.8 auth status --base-url <平台地址> --json
73
+ pnpm dlx openxiangda@2.31.8 login --cwd my-app --base-url https://platform.example.com
74
+ pnpm dlx openxiangda@2.31.8 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
@@ -174,9 +174,9 @@ MCP 的 `docs_read` 可以读取本说明,当前没有独立的源码操作 MC
174
174
  无需本地工作区,使用本 Skill 随包精确版本或已安装的对应 CLI:
175
175
 
176
176
  ```bash
177
- pnpm dlx openxiangda@2.31.7 auth status --base-url <平台> --json
178
- pnpm dlx openxiangda@2.31.7 source resolve <仓库URL> --base-url <平台> --json
179
- pnpm dlx openxiangda@2.31.7 source clone <仓库URL> <新目录> --base-url <平台> --json
177
+ pnpm dlx openxiangda@2.31.8 auth status --base-url <平台> --json
178
+ pnpm dlx openxiangda@2.31.8 source resolve <仓库URL> --base-url <平台> --json
179
+ pnpm dlx openxiangda@2.31.8 source clone <仓库URL> <新目录> --base-url <平台> --json
180
180
  ```
181
181
 
182
182
  登录缺失或站点不匹配时,先按该平台执行 login。resolve 根据平台已经登记的绑定返回