openxiangda 2.11.0 → 2.12.0

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 (54) hide show
  1. package/dist/browser/Shell.d.ts +3 -1
  2. package/dist/browser/Shell.d.ts.map +1 -1
  3. package/dist/browser/Shell.js +7 -2
  4. package/dist/browser/Shell.js.map +1 -1
  5. package/dist/browser/admin-information-architecture.d.ts +7 -0
  6. package/dist/browser/admin-information-architecture.d.ts.map +1 -1
  7. package/dist/browser/admin-information-architecture.js +7 -0
  8. package/dist/browser/admin-information-architecture.js.map +1 -1
  9. package/dist/browser/application.d.ts.map +1 -1
  10. package/dist/browser/application.js +5 -3
  11. package/dist/browser/application.js.map +1 -1
  12. package/documentation/AGENTS.md +3 -0
  13. package/documentation/development.md +3 -1
  14. package/documentation/frontend.md +27 -0
  15. package/documentation/getting-started.md +7 -7
  16. package/documentation/interaction-patterns.md +2 -0
  17. package/documentation/manifest.json +8 -8
  18. package/documentation/product-design.md +2 -0
  19. package/documentation/testing.md +3 -1
  20. package/documentation/workflow-events.md +40 -0
  21. package/package.json +30 -33
  22. package/releases/2.12.0.json +38 -0
  23. package/skills/manifest.json +1 -1
  24. package/skills/openxiangda-v2/SKILL.md +6 -4
  25. package/skills/openxiangda-v2/references/development.md +3 -1
  26. package/skills/openxiangda-v2/references/frontend.md +27 -0
  27. package/skills/openxiangda-v2/references/getting-started.md +7 -7
  28. package/skills/openxiangda-v2/references/interaction-patterns.md +2 -0
  29. package/skills/openxiangda-v2/references/product-design.md +2 -0
  30. package/skills/openxiangda-v2/references/testing.md +3 -1
  31. package/skills/openxiangda-v2/references/workflow-events.md +40 -0
  32. package/releases/2.0.0.json +0 -50
  33. package/releases/2.0.1.json +0 -39
  34. package/releases/2.1.0.json +0 -44
  35. package/releases/2.1.1.json +0 -48
  36. package/releases/2.10.0.json +0 -42
  37. package/releases/2.11.0.json +0 -41
  38. package/releases/2.2.0.json +0 -48
  39. package/releases/2.2.1.json +0 -35
  40. package/releases/2.2.2.json +0 -34
  41. package/releases/2.3.0.json +0 -37
  42. package/releases/2.4.0.json +0 -37
  43. package/releases/2.4.1.json +0 -35
  44. package/releases/2.5.0.json +0 -37
  45. package/releases/2.6.0.json +0 -37
  46. package/releases/2.7.0.json +0 -37
  47. package/releases/2.7.1.json +0 -31
  48. package/releases/2.8.0.json +0 -32
  49. package/releases/2.8.1.json +0 -30
  50. package/releases/2.9.0.json +0 -33
  51. package/releases/2.9.1.json +0 -31
  52. package/releases/2.9.2.json +0 -33
  53. package/releases/2.9.3.json +0 -31
  54. package/releases/2.9.4.json +0 -37
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "openxiangda",
3
- "version": "2.11.0",
3
+ "version": "2.12.0",
4
4
  "description": "OpenXiangda 2.0 的统一命令、应用 SDK、MCP 与中文 AI 技能资料。",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -60,13 +60,13 @@
60
60
  "antd-mobile": "5.42.3",
61
61
  "dayjs": "1.11.18",
62
62
  "docx-preview": "0.3.7",
63
- "openxiangda-cli": "2.3.0",
64
- "openxiangda-contracts": "2.10.0",
65
- "openxiangda-devkit-core": "2.7.0",
63
+ "openxiangda-cli": "2.3.1",
64
+ "openxiangda-contracts": "2.11.0",
65
+ "openxiangda-devkit-core": "2.8.0",
66
66
  "openxiangda-legacy": "npm:openxiangda@1.0.269",
67
- "openxiangda-mcp": "2.0.15",
68
- "openxiangda-nest": "2.3.1",
69
- "openxiangda-skill-kit": "2.0.19",
67
+ "openxiangda-mcp": "2.0.16",
68
+ "openxiangda-nest": "2.3.2",
69
+ "openxiangda-skill-kit": "2.0.20",
70
70
  "xlsx": "https://cdn.sheetjs.com/xlsx-0.20.3/xlsx-0.20.3.tgz"
71
71
  },
72
72
  "peerDependencies": {
@@ -132,44 +132,41 @@
132
132
  },
133
133
  "openxiangdaRelease": {
134
134
  "schemaVersion": "openxiangda.release-notes/v1",
135
- "version": "2.11.0",
135
+ "version": "2.12.0",
136
136
  "status": "reviewed",
137
- "title": "工作区登录隔离与工具链升级指引",
138
- "summary": "平台开发者会话按工作区隔离,CLI、MCP 与自动刷新共用本地会话;补齐 V1 采用 V2 的建议及 CLI、Skill、MCP 升级步骤。本版也包含主线已审查的数据事件捕获策略。",
137
+ "title": "OpenXiangda 2.12.0:平台原生数据自动化",
138
+ "summary": "数据事件可直接触发平台 Native 数据动作,省去应用 HTTP 接收链路;发布计划固定捕获字段与目标资源,业务效果与执行结果原子提交。",
139
139
  "newFeatures": [
140
- "login --cwd auth --cwd 明确选择工作区;创建应用前可在目标目录登录,初始化保留受管会话文件。",
141
- "V1 入口展示 V2 采用建议及迁移评估指引,文档说明 CLI、Skill 与 MCP 的版本刷新。",
142
- "应用可用 events.capturePolicies 按资源声明 all 或 subscribed,编译为不可变的操作事件捕获计划。"
140
+ "events.subscriptions.execution 支持 native-data v1 声明式 create/update/delete,无需 Nest 应用后端。",
141
+ "共享编译器自动派生事件捕获字段及目标模型摘要,新增 events.native-data-actions 能力检查。"
143
142
  ],
144
143
  "fixes": [
145
- "默认登录态改为工作区 .openxiangda/session.json,停止读取旧全局会话;本地文件优先于 CI 环境凭据。",
146
- "刷新、退出与 MCP 授权检查固定工作区来源,嵌套应用不会继承父应用账号,损坏或平台不符的文件不会换用其他身份。",
147
- "登录文件使用原子写入、0600 权限及自动 Git 忽略,初始化不替换凭据内容。"
144
+ "保留旧 Webhook 消费者与处理器契约,运维查询区分 Native 执行计划。",
145
+ "包含已合并的后台入口状态修复与 PC 优先开发引导,菜单缺失、无权限及未知地址分别展示。"
148
146
  ],
149
147
  "affectedUsers": [
150
- "使用 CLI、MCP 或多个应用工作区的开发者。",
151
- " V1 评估 V2 的用户,以及需要减少无消费者事件写入的 Native 应用开发者。"
148
+ "使用平台数据自动化和 OpenXiangda V2 事件订阅的应用。",
149
+ "平台维护者必须同步升级匹配的共享 Native 校验器;V1 业务引擎保持独立。"
152
150
  ],
153
- "compatibility": {
154
- "node": ">=24",
155
- "workspacePolicy": "升级后在每个工作区重新登录;不自动复制旧全局或其他工作区的令牌。",
156
- "platformPolicy": "平台登录与授权协议不变;远端检查和部署需要平台的 Native configurationCompatibility 校验器摘要与本版工具链匹配。采用 events.capturePolicies 还需要 events.capture-policy 1.0.0。"
157
- },
158
151
  "upgradeSteps": [
159
- "使用项目包管理器更新并锁定 OpenXiangda 依赖,刷新 Skill 并重启 MCP 客户端。",
160
- "远端检查和部署前确认工具链与平台为配套版本;出现 OPENXIANGDA_CONFIGURATION_VALIDATOR_MISMATCH 时先升级不匹配的一端,保留当前源码和候选。",
161
- "已有项目在根目录运行 `openxiangda login --base-url <platform>`,再运行 `openxiangda auth status` 检查授权。",
162
- "新项目先运行 `openxiangda login --cwd my-app --base-url <platform>`,然后 `openxiangda create my-app --base-url <platform>`。",
163
- "CI 仅在没有本地会话文件时使用成对 OPENXIANGDA_BASE_URL 与 OPENXIANGDA_TOKEN。",
164
- "采用事件捕获策略前先升级支持该能力的平台,确认事件历史要求,并完成测试环境验收后晋级同一应用版本。"
152
+ "先部署支持 events.native-data-actions 1.0.0、同版共享 Native 校验器和 SQL 扩展迁移的平台后端。",
153
+ "将应用依赖升级到 openxiangda 2.12.0 并按普通测试发布、验收和生产晋级流程交付。",
154
+ "简单数据动作按 execution 显式启用,外部 Webhook 与自定义代码继续使用现有处理器。"
165
155
  ],
166
156
  "knownLimitations": [
167
- "钉钉支持的 DWS 授权仍由 DWS 自己管理,不与平台会话混用。",
168
- "V1 业务不会自动迁移到 V2。subscribed 不保留未声明操作的历史,恢复 all 不能补造历史事件。"
157
+ "首版 Native 动作仅支持明确源资源的数据事件,最多 16 个操作、每个 32 字段及 64 KiB 输入,不执行脚本、SQL 或 HTTP。",
158
+ "不兼容的目标模型变化会停止旧动作并报告错误;回退平台前需停用并排空 Native 动作。",
159
+ "按需事件不能重放从未捕获的历史;权限过滤的轻量操作历史由配套平台提供。",
160
+ "发行包验证不能代替客户环境的实际部署及容量测试。"
169
161
  ],
162
+ "compatibility": {
163
+ "node": ">=24",
164
+ "platform": "events.native-data-actions 1.0.0,匹配共享 Native 校验器与 Native action SQL 迁移",
165
+ "v1": "独立 legacy-v1 引擎,不引入兼容桥"
166
+ },
170
167
  "issues": [],
171
- "sha256": "a6383deacc92dc3e058909c7db537e1a1bf29fc00fbb04345225c1f4f70f23c3",
172
- "url": "https://github.com/1377385356/openxiangda/releases/tag/v2.11.0"
168
+ "sha256": "ae2cf493d03c916d22f093d366ac8c7f9d8cf0d0cbc71d6ab5db99fc34617738",
169
+ "url": "https://github.com/1377385356/openxiangda/releases/tag/v2.12.0"
173
170
  },
174
171
  "scripts": {
175
172
  "build": "node ../../scripts/prune-package-dist.mjs && tsc -p tsconfig.json && node scripts/copy-assets.mjs",
@@ -0,0 +1,38 @@
1
+ {
2
+ "schemaVersion": "openxiangda.release-notes/v1",
3
+ "version": "2.12.0",
4
+ "status": "reviewed",
5
+ "title": "OpenXiangda 2.12.0:平台原生数据自动化",
6
+ "summary": "数据事件可直接触发平台 Native 数据动作,省去应用 HTTP 接收链路;发布计划固定捕获字段与目标资源,业务效果与执行结果原子提交。",
7
+ "newFeatures": [
8
+ "events.subscriptions.execution 支持 native-data v1 声明式 create/update/delete,无需 Nest 应用后端。",
9
+ "共享编译器自动派生事件捕获字段及目标模型摘要,新增 events.native-data-actions 能力检查。"
10
+ ],
11
+ "fixes": [
12
+ "保留旧 Webhook 消费者与处理器契约,运维查询区分 Native 执行计划。",
13
+ "包含已合并的后台入口状态修复与 PC 优先开发引导,菜单缺失、无权限及未知地址分别展示。"
14
+ ],
15
+ "affectedUsers": [
16
+ "使用平台数据自动化和 OpenXiangda V2 事件订阅的应用。",
17
+ "平台维护者必须同步升级匹配的共享 Native 校验器;V1 业务引擎保持独立。"
18
+ ],
19
+ "upgradeSteps": [
20
+ "先部署支持 events.native-data-actions 1.0.0、同版共享 Native 校验器和 SQL 扩展迁移的平台后端。",
21
+ "将应用依赖升级到 openxiangda 2.12.0 并按普通测试发布、验收和生产晋级流程交付。",
22
+ "简单数据动作按 execution 显式启用,外部 Webhook 与自定义代码继续使用现有处理器。"
23
+ ],
24
+ "knownLimitations": [
25
+ "首版 Native 动作仅支持明确源资源的数据事件,最多 16 个操作、每个 32 字段及 64 KiB 输入,不执行脚本、SQL 或 HTTP。",
26
+ "不兼容的目标模型变化会停止旧动作并报告错误;回退平台前需停用并排空 Native 动作。",
27
+ "按需事件不能重放从未捕获的历史;权限过滤的轻量操作历史由配套平台提供。",
28
+ "发行包验证不能代替客户环境的实际部署及容量测试。"
29
+ ],
30
+ "compatibility": {
31
+ "node": ">=24",
32
+ "platform": "events.native-data-actions 1.0.0,匹配共享 Native 校验器与 Native action SQL 迁移",
33
+ "v1": "独立 legacy-v1 引擎,不引入兼容桥"
34
+ },
35
+ "issues": [],
36
+ "sha256": "ae2cf493d03c916d22f093d366ac8c7f9d8cf0d0cbc71d6ab5db99fc34617738",
37
+ "url": "https://github.com/1377385356/openxiangda/releases/tag/v2.12.0"
38
+ }
@@ -4,7 +4,7 @@
4
4
  {
5
5
  "name": "openxiangda-v2",
6
6
  "description": "使用 OpenXiangda 2.0 从模糊业务想法、已有资料或具体变更出发,通过对话发现模块、完成详细产品设计,再开发、检查和交付应用。维护 1.x 应用时使用对应的 1.x 技能。",
7
- "sha256": "f24c14f9da6913d42dd2fe45bb12d7c74fd6f49196e44d525730025bfb392d2d"
7
+ "sha256": "86bdb363fa3c577f898a894b6c5a417cf8c2ce080c0c310953c9c6988cf0c3d9"
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.11.0 auth status --cwd <应用目录> --base-url <平台地址> --json
22
- pnpm dlx openxiangda@2.11.0 login --cwd <应用目录> --base-url <平台地址>
23
- pnpm dlx openxiangda@2.11.0 create <应用目录> --base-url <同一平台地址>
24
- pnpm dlx openxiangda@2.11.0 skill install --force
21
+ pnpm dlx openxiangda@2.12.0 auth status --cwd <应用目录> --base-url <平台地址> --json
22
+ pnpm dlx openxiangda@2.12.0 login --cwd <应用目录> --base-url <平台地址>
23
+ pnpm dlx openxiangda@2.12.0 create <应用目录> --base-url <同一平台地址>
24
+ pnpm dlx openxiangda@2.12.0 skill install --force
25
25
  ```
26
26
 
27
27
  创建前把产品要求的目标平台明确带入命令,不从旧登录态推断站点。已有工作区从原绑定恢复,平台不一致时先解决登录与目标,不改 link 文件跨站创建。
@@ -56,6 +56,8 @@ pnpm dlx openxiangda@2.11.0 skill install --force
56
56
 
57
57
  ## 引导开发并持续记录
58
58
 
59
+ 先选择页面归属:管理后台默认只面向 PC,普通管理/录入复用标准 CRUD 与 Shell,自定义报表和工具使用 admin React 页面及显式菜单;不因“自定义”就复制导航或改成 user 页面,也不为后台自动补移动适配。独立用户页与手机用户任务按实际需求设计,模板 `/home` 仅是占位。报表等专业交互主动检查已有依赖、评估成熟组件和开源库,图表优先评估 ECharts,记录选型理由及加载/销毁边界;细节见[前端](references/frontend.md)。交付需验证平台实际点击入口、根路径、后台菜单和登录返回,不能只验收直达业务链接。
60
+
59
61
  每轮先读取当前 AppSpec 总纲、设计索引、相关能力、活动变更与契约,按稳定 ID 恢复已知事实、候选建议和未决项。设计文件相互引用而不重复定义规则;角色、权限、页面或入口范围改变时,同步受影响 PRD、旅程、交互、架构和 AC。具体工作法按需读取[产品设计](references/product-design.md)。
60
62
 
61
63
  总纲维护领域与模型关系、PC/移动任务页面、页面/操作/行/字段权限、多角色组合和容量预算。新增功能先评估影响,普通 CRUD、流程、消息等复用平台能力。明确数据量、分页/索引、请求次数、并发/批量和延迟目标,避免无界全量读取、逐行请求与无限重试。
@@ -20,7 +20,9 @@
20
20
  ## 选择平台能力 {#capabilities}
21
21
 
22
22
  - 普通数据管理:通过 `defineDataModel`、`defineApplicationModule` 和显式 CRUD 视图声明;模型不自动生成菜单或写权限。
23
- - PC/移动页面:先复用平台组件和标准页面,再使用受支持的页面、插槽与导航扩展。详见[前端](frontend.md)。
23
+ - 管理后台默认仅 PC:先复用平台 Shell、标准 CRUD 和字段;自定义报表/工具使用 admin 页面与显式导航,不为后台自动创建移动副本。详见[页面归属](frontend.md#surface-selection)。
24
+ - 用户页面按实际旅程选择独立 PC/移动布局,手机端只覆盖已确认的用户任务。
25
+ - 图表等专业交互先检查已有依赖,再评估成熟组件或开源库;报表优先评估 ECharts,记录选型理由和加载/销毁边界。详见[组件选型](frontend.md#component-selection)。
24
26
  - 无平台账号的外部表单:使用[匿名公开访问](public-access.md),不用普通 RBAC 角色冒充匿名主体。
25
27
  - 标准审批、待办与通知:按需声明平台能力,见[工作流](workflow-events.md)。
26
28
  - 真实事务或外部集成:使用[按需后端](backend.md),不为每张表重写 CRUD 控制器。
@@ -12,6 +12,33 @@
12
12
 
13
13
  不维护 Umi/Pro 双栈,也不在新模板中依赖已退休的前端框架包或旧身份 Provider。
14
14
 
15
+ ## 先选页面归属,再写布局 {#surface-selection}
16
+
17
+ 管理后台默认只面向 **PC 操作**。数据管理、后台录入和管理报表优先使用平台标准 Shell;无需为后台创建移动页面、响应式手机布局或移动验收任务。
18
+
19
+ | 任务 | 页面与组件起点 |
20
+ | --- | --- |
21
+ | 简单管理列表、表单、详情 | 显式标准 CRUD,使用平台字段与默认外观 |
22
+ | 后台自定义报表、批量工具、跨模型操作 | `surface: 'admin'` 的 React 页面,路径 `/admin/operations/...`,通过 `adminOperationPage` 加入菜单 |
23
+ | 独立门户、申请或用户任务 | 按实际旅程选择 `surface: 'user'`,拥有独立布局 |
24
+ | 确有手机使用需求的用户任务 | 独立移动 user 页面,使用 `openxiangda/mobile` 和 Field Kit |
25
+
26
+ “自定义页面”可以直接放在标准后台内。应用只编写内容,runtime 自动套用唯一 Shell;不要因为要画图表就复制顶栏、侧栏、Router 或改成 user 页面。模板 `/home` 是独立用户页占位,不能不经页面选型就当作业务默认入口。
27
+
28
+ 后台菜单的分组、名称、顺序、图标由 `frontend.admin.navigation` 配置;标准视图控制字段与操作,工具栏/行/详情有动作插槽,自定义 React 内容通过 contributions 接入。当前没有整套后台 Shell 的替换接口。用户需要独立产品布局时选择 user surface,普通后台报表无需更换外壳。
29
+
30
+ 应用根路径由生成的 `routeManifest.rootEntry` 分流;`/admin` 根据当前用户可访问的显式菜单选择后台首页。交付时分别核验平台应用列表入口、根路径、后台入口和业务深链接。无后台菜单不能解释为缺少模型;没有管理后台的用户应用也不需要为了消除空状态伪造 CRUD 页面。
31
+
32
+ ## 按场景选择成熟组件与开源库 {#component-selection}
33
+
34
+ 实现专业交互前先检查项目已有依赖,再选择合适的成熟组件或开源库,不默认手写替代品,也不把所有推荐库预装进模板。
35
+
36
+ - 普通业务字段优先 Field Kit,后台通用控件使用 Ant Design;记录数等单值指标可使用标准统计组件。
37
+ - 分类、趋势、分布等报表图表优先评估 **ECharts**。按需要引入图表、组件和渲染器,图表页面按需加载,容器变化时 resize,卸载时 dispose;用同一筛选条件的服务端聚合结果绘图,不以当前分页数据冒充总体。
38
+ - 编辑器、日历、复杂拖拽等专业功能先评估现有组件和成熟库,平台能力仍唯一拥有数据与权限。选型考虑当前 React/构建兼容性、维护情况、许可证、所需交互、包体积与可访问性。
39
+
40
+ 在页面设计或实现说明中写清选用组件、理由与必要边界。已有需求内的技术选型由开发者完成,无需让用户逐个指定依赖。ECharts 的按需导入方式见[官方说明](https://echarts.apache.org/handbook/en/basics/import/);后台无需为图表增加手机适配,用户移动图表只按已确认需求处理。
41
+
15
42
  ## 数据和权限
16
43
 
17
44
  `modules/` 中的业务模型由编译器派生 DataResource 契约,`openxiangda.config.ts` 声明页面
@@ -66,10 +66,10 @@ MCP 服务随项目根包一起安装,AI 客户端的 stdio 连接仍需配置
66
66
  以下命令的版本占位符由随包资料替换为该根包的精确版本。网站源码阅读者应先确认要使用的发行版本。
67
67
 
68
68
  ```bash
69
- pnpm dlx openxiangda@2.11.0 skill install --force
70
- pnpm dlx openxiangda@2.11.0 auth status --base-url <平台地址> --json
71
- pnpm dlx openxiangda@2.11.0 login --cwd my-app --base-url https://platform.example.com
72
- pnpm dlx openxiangda@2.11.0 create my-app --base-url https://platform.example.com
69
+ pnpm dlx openxiangda@2.12.0 skill install --force
70
+ pnpm dlx openxiangda@2.12.0 auth status --base-url <平台地址> --json
71
+ pnpm dlx openxiangda@2.12.0 login --cwd my-app --base-url https://platform.example.com
72
+ pnpm dlx openxiangda@2.12.0 create my-app --base-url https://platform.example.com
73
73
  cd my-app
74
74
  pnpm openxiangda context --json
75
75
  pnpm openxiangda dev
@@ -171,9 +171,9 @@ MCP 的 `docs_read` 可以读取本说明,当前没有独立的源码操作 MC
171
171
  无需本地工作区,使用本 Skill 随包精确版本或已安装的对应 CLI:
172
172
 
173
173
  ```bash
174
- pnpm dlx openxiangda@2.11.0 auth status --base-url <平台> --json
175
- pnpm dlx openxiangda@2.11.0 source resolve <仓库URL> --base-url <平台> --json
176
- pnpm dlx openxiangda@2.11.0 source clone <仓库URL> <新目录> --base-url <平台> --json
174
+ pnpm dlx openxiangda@2.12.0 auth status --base-url <平台> --json
175
+ pnpm dlx openxiangda@2.12.0 source resolve <仓库URL> --base-url <平台> --json
176
+ pnpm dlx openxiangda@2.12.0 source clone <仓库URL> <新目录> --base-url <平台> --json
177
177
  ```
178
178
 
179
179
  登录缺失或站点不匹配时,先按该平台执行 login。resolve 根据平台已经登记的绑定返回
@@ -4,6 +4,8 @@
4
4
 
5
5
  ## 标准管理页面 {#admin}
6
6
 
7
+ 管理后台默认仅 PC,不要求手机适配或移动验收。自定义报表和工具也优先放进同一后台 Shell,通过声明增加菜单;图表选型见[成熟组件与开源库](frontend.md#component-selection)。只有实际用户端需求才采用下文的独立 PC 或移动模式。
8
+
7
9
  适用于管理员维护独立业务对象。显式选择 CRUD 视图,沿用 Field Kit、Ant Design 与组件默认外观。页面优先呈现标题、主要新建入口、常用筛选、列表与行操作;复杂筛选按需展开。列按办理任务选择,记录默认排序、分页上限、空值/长文显示与操作条件。辅助模型无需独立导航。
8
10
 
9
11
  列表进入详情再返回时明确关键词、筛选、页码、选择范围与位置是否保留;批量操作说明当前页/已选记录范围,确认内容包含实际对象及影响。新建和编辑复用字段规则,失败定位到字段并保留其他输入。删除只在业务明确需要时提供,由服务端权限和业务约束最终裁定。
@@ -64,6 +64,8 @@ AppSpec 是唯一设计记录位置。`app.md` 是总纲与目录,详细规则
64
64
 
65
65
  页面必须记录初始加载、刷新、首次空数据、筛选无结果、错误、无权限、提交中、成功、明确失败、结果未知及并发冲突的适用性。公共状态可引用共用设计,逐页写差异;不适用时写具体理由。详细逐页检查与标准方案见[交互模式](interaction-patterns.md)。
66
66
 
67
+ 管理后台默认只在 PC 操作,页面规格写明“后台仅 PC,移动不适用”即可,不为材料完整度扩出手机后台。只有用户端有明确手机任务时才设计对应移动页面。页面设计同时选择标准 CRUD、后台自定义页或独立 user 页;报表等专业交互应主动评估成熟组件与开源库,按[前端选型](frontend.md#component-selection)记录选择与理由。
68
+
67
69
  ## AppSpec 材料模板 {#templates}
68
70
 
69
71
  应用资料放在 `product/`(来源与 PRD)、`experience/`(旅程和逐页规格)、`design/`(视觉、权限和架构)、`reviews/`(评审)下。它们都是 `appspec/` 内单层 Markdown;不要使用嵌套页面目录。只为实际需要的材料建文件,不复制一批“已确认”示例。
@@ -28,7 +28,9 @@ CI、离线开发或尚未发布的候选包使用 `pnpm openxiangda check --loc
28
28
 
29
29
  Web 默认保留开发服务回环访问检查。按需 Nest 使用 `tsx --test` 发现项目中的业务测试;没有用例时只有零项测试,不能当成业务已验收。浏览器目录 `apps/web/e2e/` 起初只有编写说明,添加本应用的 `*.spec.ts` 后运行 `pnpm test:e2e`;真实角色验收绑定 AppSpec 和指定测试版本。
30
30
 
31
- 修改资源时验证声明、PC/移动字段语义及受影响的新增、详情、修改、删除、筛选、导出和版本冲突。用允许角色验证成功,用禁止角色验证页面、操作、行和字段边界;存储值及审计应符合声明。平台内部的数据库和性能回归由平台维护者负责,应用不重复搭建平台数据库测试。
31
+ 修改资源时验证声明、实际交付端的字段语义及受影响的新增、详情、修改、删除、筛选、导出和版本冲突。管理后台默认仅 PC,不要求移动后台验收;只有已确认的用户移动页面需要验证移动交互。用允许角色验证成功,用禁止角色验证页面、操作、行和字段边界;存储值及审计应符合声明。平台内部的数据库和性能回归由平台维护者负责,应用不重复搭建平台数据库测试。
32
+
33
+ 应用入口或导航变更必须从平台应用列表实际点击进入,再验证应用根路径、登录返回和刷新后的深链接。使用后台的应用检查 `/admin` 进入首个有权菜单、自定义页只出现一个 Shell、菜单切换与未保存保护、无权限拒绝;纯用户应用验证其声明首页,不强制增加后台。直达开发者给出的 `/home` 或报表链接通过,不能替代平台实际入口验收。
32
34
 
33
35
  只改文案时验证受影响页面。复杂事务、并发和值转换使用聚焦测试。浏览器验收实际操作并检查错误,不能用模拟响应或空页面加载代替真实角色验收。
34
36
 
@@ -18,6 +18,46 @@
18
18
  权限、记录修订约束、文件引用、日期触发和流程命令继续生效,自定义 `emitEvent`
19
19
  也不受该策略影响。策略通过正常应用版本发布、测试和生产晋级生效。
20
20
 
21
+ ## 平台原生数据自动化
22
+
23
+ 只涉及平台表单数据增删改的自动化,可以直接声明 `execution`,无需应用 Nest
24
+ 服务和事件 HTTP 接收器。需要平台 `events.native-data-actions` 1.0.0 能力。
25
+ 例如已声明 `items`、`copies` 模型及相应字段后:
26
+
27
+ ```ts
28
+ events: {
29
+ capturePolicies: [
30
+ { resourceCode: 'items', mode: 'subscribed' },
31
+ { resourceCode: 'copies', mode: 'subscribed' },
32
+ ],
33
+ subscriptions: [{
34
+ code: 'copy-item',
35
+ eventTypes: ['openxiangda.data.record.created.v2'],
36
+ filter: { resourceCodes: ['items'] },
37
+ execution: {
38
+ kind: 'native-data', version: 1,
39
+ operations: [{
40
+ operation: 'create', resourceCode: 'copies',
41
+ data: {
42
+ name: { source: 'event', path: 'data.projection.name' },
43
+ sourceId: { source: 'event', path: 'data.recordId' },
44
+ },
45
+ }],
46
+ },
47
+ }],
48
+ },
49
+ ```
50
+
51
+ 编译器自动收集必需的事件字段并固定目标资源摘要。动作效果与执行结果同事务
52
+ 提交,重复消息和人工重放使用同一个效果标记。更新、删除还必须映射 `id` 和
53
+ `expectedRevision`,冲突不会覆盖新数据。常量使用 `{ source: 'literal', value }`。
54
+ 首版支持数据事件、明确的源资源、最多 16 个操作、每次最多 32 个映射字段和
55
+ 64 KiB 输入,不执行脚本、SQL、HTTP 或应用代码。目标模型发生不兼容变化时停止
56
+ 旧动作并报告错误;关闭并排空此类动作后才能回退到不支持该能力的平台镜像。
57
+
58
+ 外部 Webhook 和自定义代码仍使用已有签名、回执、重试及接收端幂等协议,按至少
59
+ 一次投递处理。轻量操作历史仍通过已有审计 API 查询,不依赖是否订阅了事件。
60
+
21
61
  ## 标准详情与当前用户入口
22
62
 
23
63
  普通记录、流程记录、任务和实例复用同一详情框架。流程详情提供申请内容、审批历史和变更记录三个标签页;管理员在当前抽屉或页面中切换到普通表单编辑,直接保存并自动留下变更记录,审批结果保持不变。PC 子表在表格内编辑,父表提交时统一校验。
@@ -1,50 +0,0 @@
1
- {
2
- "schemaVersion": "openxiangda.release-notes/v1",
3
- "version": "2.0.0",
4
- "title": "OpenXiangda 2.0 正式版",
5
- "status": "reviewed",
6
- "summary": "以统一入口使用两代工作区,新应用默认采用 V2。V2 提供从需求设计到 React 应用、平台数据权限和应用交付的完整工具链。",
7
- "newFeatures": [
8
- "统一入口识别最近的 V1/V2 工作区,优先使用项目已安装的锁定引擎;无本地 V1 引擎的旧工作区使用随入口固定的 V1 维护引擎。",
9
- "新应用默认 V2:自然语言澄清产品需求,形成产品、页面、权限和架构设计基线,确认后再制定开发计划。",
10
- "V2 提供标准 PC/移动端 CRUD、字段组件、Data API 权限、流程与协作能力;默认本地 React 连接平台测试环境,Nest 后端按需使用。",
11
- "提供版本识别、分代更新、随包更新说明和 V1 到 V2 的只读迁移评估。"
12
- ],
13
- "fixes": [
14
- "全局入口切换到 V2 后,旧 V1 工作区仍由 V1 执行,不再因同名命令使用错误代际。",
15
- "项目工具链升级与全局入口升级明确分开;V1 维护渠道不再改写 latest。",
16
- "两代 Skill 使用独立入口,V1 安装不再覆盖统一入口或清理 V2 Skill。"
17
- ],
18
- "affectedUsers": [
19
- "新建应用的开发者",
20
- "需要继续维护 V1 工作区的开发者",
21
- "从 V2 alpha 升级的现有用户"
22
- ],
23
- "compatibility": {
24
- "node": ">=24",
25
- "workspaceGenerations": [
26
- "v1",
27
- "v2"
28
- ],
29
- "v1Policy": "保持现有配置、数据、流程、登录绑定与项目工具链代际;原 V1 CLI 可继续使用其原运行环境。",
30
- "platformPolicy": "V2 应用部署前按平台 capabilities 和配置验证器预检;工具版本不能代替平台实际部署版本。",
31
- "backendBuild": "Nest 镜像由开发者电脑上的 Docker 构建;普通 React/Nest 连接开发不要求本地平台或数据库。",
32
- "releaseChannels": "latest / stable-v2:V2 正式版;legacy-v1:V1 维护版;alpha:预发布。npm 不允许把 v1/v2 作为标签。"
33
- },
34
- "upgradeSteps": [
35
- "在 Node.js 24 环境安装统一入口:npm install -g openxiangda@2.0.0。",
36
- "进入已有项目运行 openxiangda version --json,核对工作区代际、实际引擎和解析来源。",
37
- "运行 openxiangda update check 查看本项目更新;需要升级时执行 openxiangda update install --target workspace。",
38
- "检查依赖与锁文件差异,刷新本项目 Skill,并完成项目检查、测试环境和真实角色业务验收后再晋级生产。",
39
- "V2 能力满足、项目仍在测试阶段且迁移成本可控时,优先建议 V1 项目采用 V2;先完成项目评估、设计确认和迁移验收。"
40
- ],
41
- "knownLimitations": [
42
- "V1 到 V2 首期仅提供本地源码迁移评估,不读取远端业务数据,也不自动迁移应用。",
43
- "源码扫描不会证明远端权限、流程和数据完整性;迁移须按项目制定映射、演练和回滚方案。",
44
- "内网或离线环境可读取随包说明;联网检查失败时保留当前工具与项目。",
45
- "内部支持 Agent 独立交付和验收,不随此 npm 版本自动部署。"
46
- ],
47
- "issues": [],
48
- "sha256": "a6100370946d253328c924c19f6577bac383c4633e3650d69b7ad378486ae880",
49
- "url": "https://github.com/1377385356/openxiangda/releases/tag/v2.0.0"
50
- }
@@ -1,39 +0,0 @@
1
- {
2
- "schemaVersion": "openxiangda.release-notes/v1",
3
- "version": "2.0.1",
4
- "title": "OpenXiangda pnpm 工作区识别修复",
5
- "status": "reviewed",
6
- "summary": "修复独立安装的统一入口进入 pnpm 工作区时无法找到项目 CLI 的问题,继续严格使用该项目锁定的同代引擎。",
7
- "newFeatures": [
8
- "本次为 2.0.0 的修复发布,没有新增应用能力。"
9
- ],
10
- "fixes": [
11
- "从 pnpm 符号链接指向的真实包目录解析 openxiangda-cli,避免 WORKSPACE_ENGINE_DEPENDENCY_MISSING。"
12
- ],
13
- "affectedUsers": [
14
- "使用全局或独立安装的统一入口维护 pnpm 工作区的开发者。"
15
- ],
16
- "compatibility": {
17
- "node": ">=24",
18
- "workspaceGenerations": [
19
- "v1",
20
- "v2"
21
- ],
22
- "v1Policy": "V1 应用保持原代际、版本锁定与登录绑定。",
23
- "platformPolicy": "没有新增平台能力要求,部署仍执行目标平台预检。",
24
- "backendBuild": "Nest 镜像继续由开发者电脑上的 Docker 构建。",
25
- "releaseChannels": "latest / stable-v2:V2 正式版;legacy-v1:V1 维护版;alpha:预发布。"
26
- },
27
- "upgradeSteps": [
28
- "在 Node.js 24 环境安装统一入口:npm install -g openxiangda@2.0.1。",
29
- "在项目及其子目录运行 openxiangda version --json,核对工作区代际、项目引擎版本和解析来源。",
30
- "需要更新 V2 项目依赖时运行 openxiangda update install --target workspace,检查锁文件并完成项目验收。"
31
- ],
32
- "knownLimitations": [
33
- "独立入口更新不会自动升级项目锁定的工具链,也不会迁移 V1 应用。",
34
- "已发布的 2.0.0 保持不可变;本修复不代表平台部署或业务验收已完成。"
35
- ],
36
- "issues": [],
37
- "sha256": "6bba13f70a956b58412da587fc9d7b50dd279fea809eae2461dd3515321a83dd",
38
- "url": "https://github.com/1377385356/openxiangda/releases/tag/v2.0.1"
39
- }
@@ -1,44 +0,0 @@
1
- {
2
- "schemaVersion": "openxiangda.release-notes/v1",
3
- "version": "2.1.0",
4
- "title": "OpenXiangda 平台托管应用镜像上传",
5
- "status": "reviewed",
6
- "summary": "应用 Nest 后端在本机构建为 OCI 镜像后,通过平台登录态分片上传。平台负责应用归属校验、镜像存储和运行时拉取,开发者无需取得平台维护者个人镜像仓库的推送权限。",
7
- "newFeatures": [
8
- "发现并优先使用平台 backendImageUpload 能力,导出 linux/amd64 OCI 镜像并上传有界分片。",
9
- "上传前校验本地镜像大小和摘要,复用已完成的镜像回执,并恢复分片传输中断。"
10
- ],
11
- "fixes": [
12
- "启用平台上传后,应用部署不再依赖开发者对平台维护者镜像仓库的推送权限。",
13
- "Docker classic image store 不支持 OCI 导出时,返回明确的 builder 配置指引。"
14
- ],
15
- "affectedUsers": [
16
- "声明可选 Nest 后端并通过 CLI 或 MCP 部署的 OpenXiangda 2.0 应用开发者。",
17
- "维护共享应用运行时及平台镜像存储的平台管理员。"
18
- ],
19
- "compatibility": {
20
- "node": ">=24",
21
- "workspaceGenerations": [
22
- "v1",
23
- "v2"
24
- ],
25
- "v1Policy": "V1 应用保持原代际、版本锁定与登录绑定。",
26
- "platformPolicy": "平台托管上传需要匹配的后端、Registry 和网关发布,并启用 backendImageUpload;旧平台继续使用既有构建合同。",
27
- "backendBuild": "可选 Nest 后端仍在开发者电脑上使用 Docker Buildx 构建,需要支持 OCI exporter 的 builder。",
28
- "releaseChannels": "latest / stable-v2:V2 正式版;legacy-v1:V1 维护版;alpha:预发布。"
29
- },
30
- "upgradeSteps": [
31
- "平台管理员先按部署运行手册准备镜像存储与凭据,再部署匹配的后端和网关。",
32
- "在 Node.js 24 环境安装统一入口:npm install -g openxiangda@2.1.0。",
33
- "更新 V2 项目锁定的工具链并刷新项目资料,核对平台上传能力后运行项目的 openxiangda deploy。"
34
- ],
35
- "knownLimitations": [
36
- "当前仅支持 linux/amd64 单平台 OCI 镜像;默认单镜像上限为 1Gi,由平台配置控制。",
37
- "已声明但未启用的平台上传能力会阻止部署,避免回退到个人镜像仓库推送。",
38
- "镜像保留与垃圾回收由平台运维单独管理;现有版本仍可能需要历史镜像进行部署或回滚。",
39
- "托管镜像开始使用后,后端回滚必须保留 Registry、持久卷、凭据和网关读取路由。"
40
- ],
41
- "issues": [],
42
- "sha256": "d7f6a21ddc37b3d2439350bf17f5f4575192168944dc33efb15460f7d1854aff",
43
- "url": "https://github.com/1377385356/openxiangda/releases/tag/v2.1.0"
44
- }
@@ -1,48 +0,0 @@
1
- {
2
- "schemaVersion": "openxiangda.release-notes/v1",
3
- "version": "2.1.1",
4
- "title": "OpenXiangda 应用源码托管",
5
- "status": "reviewed",
6
- "summary": "私有化平台通过共享 Forgejo 管理应用源码。创建应用时自动初始化私有仓库并推送代码,应用管理员自动获得仓库管理权限,开发者使用长期 Git 凭据。",
7
- "newFeatures": [
8
- "既有 PLATFORM_ADMIN 自动获得共享 Git 服务全部已有和新建仓库的管理权限。",
9
- "source resolve/clone 支持仅凭平台与仓库 URL、使用当前登录态读取源码,不安装或执行应用脚本。",
10
- "新增 source status、source setup 和 source push 命令,支持初始化恢复和已有工作区接入。",
11
- "创建应用后自动提交并推送初始源码,通过系统凭据管理器保存个人 Git 凭据。",
12
- "配套平台支持首次部署前浏览源码及最近提交,并核验部署关联的提交已经推送。"
13
- ],
14
- "fixes": [
15
- "应用源码可直接保留在平台托管仓库中,减少对开发者个人 Git 服务的依赖。",
16
- "显式导入保留原 origin 为 external-source,初始化重试保留已有未提交修改,冲突推送不覆盖远端提交。"
17
- ],
18
- "affectedUsers": [
19
- "使用 OpenXiangda 2.0 创建应用或接入平台源码仓库的开发者。",
20
- "维护内部私有化平台和应用管理员权限的平台管理员。"
21
- ],
22
- "compatibility": {
23
- "node": ">=24",
24
- "workspaceGenerations": [
25
- "v1",
26
- "v2"
27
- ],
28
- "v1Policy": "V1 应用保持原代际、版本锁定与登录绑定。",
29
- "platformPolicy": "自动源码托管需要匹配的平台后端、管理前端和网关,并配置 OPENXIANGDA_SOURCE_*;未启用的站点保持原创建行为。",
30
- "gitCredential": "支持 macOS Keychain、Windows Git Credential Manager,以及 Linux 已安装的 Git Credential Manager 或 libsecret。",
31
- "releaseChannels": "latest / stable-v2:V2 正式版;legacy-v1:V1 维护版;alpha:预发布。"
32
- },
33
- "upgradeSteps": [
34
- "平台管理员配置共享 Forgejo、源码入口和专用凭据派生密钥,部署匹配的平台版本;长期保留密钥及 Git 数据。",
35
- "在 Node.js 24 环境安装统一入口:npm install -g openxiangda@2.1.1。",
36
- "更新 V2 工作区工具链;新应用自动接入,已有应用运行 openxiangda source setup --import 接入。",
37
- "完成修改后运行 openxiangda source push -m 描述,再按现有检查和部署流程交付。"
38
- ],
39
- "knownLimitations": [
40
- "当前仅同步应用管理员新增授权,不同步撤销或删除。",
41
- "导入推送当前分支,不自动迁移全部历史分支、标签及 LFS 对象。",
42
- "制品仍在本地构建;提交存在性核验不构成服务端构建证明。",
43
- "新源码功能不依赖 Studio;Studio 旧代码移除属于独立后续工作。"
44
- ],
45
- "issues": [],
46
- "sha256": "f7341eb21e1489c684ee03eed31568063dfad01bfe345f914552bd51b7357f84",
47
- "url": "https://github.com/1377385356/openxiangda/releases/tag/v2.1.1"
48
- }
@@ -1,42 +0,0 @@
1
- {
2
- "schemaVersion": "openxiangda.release-notes/v1",
3
- "version": "2.10.0",
4
- "status": "reviewed",
5
- "title": "OpenXiangda 2.10.0:通知已读回执基础能力",
6
- "summary": "浏览器与 Nest SDK 增加通知投递详情、已读回执缓存和单次刷新接口,应用通过平台消息与投递标识使用钉钉已读查询。",
7
- "newFeatures": [
8
- "浏览器与 Nest SDK 同步提供 getNotificationMessage、getDingTalkCardReadReceipt 和 refreshDingTalkCardReadReceipt,并公开对应类型。",
9
- "配套平台保存卡片查询标识,持久化单投递查询任务,区分已读、未读、未知、不可查询和查询失败。",
10
- "配套平台通用化钉钉卡片发送、查询及总预算,并按资源配置准备和投递并发。"
11
- ],
12
- "fixes": [
13
- "配套平台将钉钉 HTTP 403 QpsLimitForApi 识别为可退避重试的限流响应,保留创建请求结果未知时的既有处理边界。"
14
- ],
15
- "affectedUsers": [
16
- "需要查询钉钉卡片已读状态或使用平台通知 SDK 的 OpenXiangda 2.0 应用开发者。"
17
- ],
18
- "compatibility": {
19
- "node": ">=24",
20
- "workspaceGenerations": [
21
- "v1",
22
- "v2"
23
- ],
24
- "v1Policy": "V1 引擎和已有应用不变。",
25
- "platformPolicy": "已读接口需要匹配的平台后端、通知回执追加迁移,以及通知读取和内容读取权限。",
26
- "releaseChannels": "latest / stable-v2:V2 正式版;legacy-v1:V1 维护版;alpha:预发布。"
27
- },
28
- "upgradeSteps": [
29
- "先部署匹配的平台后端及追加迁移,按实际钉钉额度配置统一的发送、查询和总预算。",
30
- "将应用精确依赖升级到 openxiangda 2.10.0,更新锁文件,并通过标准检查。",
31
- "使用平台消息 ID 和投递 ID 查询缓存或请求一次刷新;应用负责选择消息、分组和后续业务轮询。",
32
- "在测试环境验证实际投递和已读回执,再使用同一应用候选晋级生产。"
33
- ],
34
- "knownLimitations": [
35
- "一次上游查询针对一个 processQueryKey 下最多 20 名收件人;本版本不提供跨消息批量查询或自动全量轮询。",
36
- "历史投递没有保存查询标识时返回不可查询,不能推断为未读;查询遵循钉钉提供方的 24 小时窗口。",
37
- "包发布、平台部署与真实消息验收分别记录;本版本不会自动补发历史失败或未知通知。"
38
- ],
39
- "issues": [],
40
- "sha256": "a1be367ab9c5de6b66ec8dd02724af71611183d99ddb9dae861e6253c58875df",
41
- "url": "https://github.com/1377385356/openxiangda/releases/tag/v2.10.0"
42
- }
@@ -1,41 +0,0 @@
1
- {
2
- "schemaVersion": "openxiangda.release-notes/v1",
3
- "version": "2.11.0",
4
- "status": "reviewed",
5
- "title": "工作区登录隔离与工具链升级指引",
6
- "summary": "平台开发者会话按工作区隔离,CLI、MCP 与自动刷新共用本地会话;补齐 V1 采用 V2 的建议及 CLI、Skill、MCP 升级步骤。本版也包含主线已审查的数据事件捕获策略。",
7
- "newFeatures": [
8
- "login --cwd 与 auth --cwd 明确选择工作区;创建应用前可在目标目录登录,初始化保留受管会话文件。",
9
- "V1 入口展示 V2 采用建议及迁移评估指引,文档说明 CLI、Skill 与 MCP 的版本刷新。",
10
- "应用可用 events.capturePolicies 按资源声明 all 或 subscribed,编译为不可变的操作事件捕获计划。"
11
- ],
12
- "fixes": [
13
- "默认登录态改为工作区 .openxiangda/session.json,停止读取旧全局会话;本地文件优先于 CI 环境凭据。",
14
- "刷新、退出与 MCP 授权检查固定工作区来源,嵌套应用不会继承父应用账号,损坏或平台不符的文件不会换用其他身份。",
15
- "登录文件使用原子写入、0600 权限及自动 Git 忽略,初始化不替换凭据内容。"
16
- ],
17
- "affectedUsers": [
18
- "使用 CLI、MCP 或多个应用工作区的开发者。",
19
- "从 V1 评估 V2 的用户,以及需要减少无消费者事件写入的 Native 应用开发者。"
20
- ],
21
- "compatibility": {
22
- "node": ">=24",
23
- "workspacePolicy": "升级后在每个工作区重新登录;不自动复制旧全局或其他工作区的令牌。",
24
- "platformPolicy": "平台登录与授权协议不变;远端检查和部署需要平台的 Native configurationCompatibility 校验器摘要与本版工具链匹配。采用 events.capturePolicies 还需要 events.capture-policy 1.0.0。"
25
- },
26
- "upgradeSteps": [
27
- "使用项目包管理器更新并锁定 OpenXiangda 依赖,刷新 Skill 并重启 MCP 客户端。",
28
- "远端检查和部署前确认工具链与平台为配套版本;出现 OPENXIANGDA_CONFIGURATION_VALIDATOR_MISMATCH 时先升级不匹配的一端,保留当前源码和候选。",
29
- "已有项目在根目录运行 `openxiangda login --base-url <platform>`,再运行 `openxiangda auth status` 检查授权。",
30
- "新项目先运行 `openxiangda login --cwd my-app --base-url <platform>`,然后 `openxiangda create my-app --base-url <platform>`。",
31
- "CI 仅在没有本地会话文件时使用成对 OPENXIANGDA_BASE_URL 与 OPENXIANGDA_TOKEN。",
32
- "采用事件捕获策略前先升级支持该能力的平台,确认事件历史要求,并完成测试环境验收后晋级同一应用版本。"
33
- ],
34
- "knownLimitations": [
35
- "钉钉支持的 DWS 授权仍由 DWS 自己管理,不与平台会话混用。",
36
- "V1 业务不会自动迁移到 V2。subscribed 不保留未声明操作的历史,恢复 all 不能补造历史事件。"
37
- ],
38
- "issues": [],
39
- "sha256": "a6383deacc92dc3e058909c7db537e1a1bf29fc00fbb04345225c1f4f70f23c3",
40
- "url": "https://github.com/1377385356/openxiangda/releases/tag/v2.11.0"
41
- }