openxiangda 2.18.8 → 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.
Files changed (55) hide show
  1. package/dist/browser/components/todo/ApplicationTodoCenterPage.d.ts.map +1 -1
  2. package/dist/browser/components/todo/ApplicationTodoCenterPage.js +10 -10
  3. package/dist/browser/components/todo/ApplicationTodoCenterPage.js.map +1 -1
  4. package/dist/browser/components/workflow/StandardWorkflowPages.d.ts.map +1 -1
  5. package/dist/browser/components/workflow/StandardWorkflowPages.js +7 -7
  6. package/dist/browser/components/workflow/StandardWorkflowPages.js.map +1 -1
  7. package/dist/browser/record-detail.css +25 -12
  8. package/dist/browser/styles.css +86 -8
  9. package/documentation/frontend.md +38 -0
  10. package/documentation/getting-started.md +7 -7
  11. package/documentation/manifest.json +3 -3
  12. package/package.json +14 -16
  13. package/releases/2.0.0.json +50 -0
  14. package/releases/2.0.1.json +39 -0
  15. package/releases/2.1.0.json +44 -0
  16. package/releases/2.1.1.json +48 -0
  17. package/releases/2.10.0.json +42 -0
  18. package/releases/2.11.0.json +41 -0
  19. package/releases/2.12.0.json +38 -0
  20. package/releases/2.13.0.json +41 -0
  21. package/releases/2.13.1.json +33 -0
  22. package/releases/2.13.2.json +31 -0
  23. package/releases/2.14.0.json +41 -0
  24. package/releases/2.15.0.json +40 -0
  25. package/releases/2.16.0.json +41 -0
  26. package/releases/2.17.0.json +39 -0
  27. package/releases/2.17.1.json +34 -0
  28. package/releases/2.18.0.json +37 -0
  29. package/releases/2.18.1.json +31 -0
  30. package/releases/2.18.10.json +29 -0
  31. package/releases/2.18.2.json +30 -0
  32. package/releases/2.18.3.json +30 -0
  33. package/releases/2.18.9.json +37 -0
  34. package/releases/2.2.0.json +48 -0
  35. package/releases/2.2.1.json +35 -0
  36. package/releases/2.2.2.json +34 -0
  37. package/releases/2.3.0.json +37 -0
  38. package/releases/2.4.0.json +37 -0
  39. package/releases/2.4.1.json +35 -0
  40. package/releases/2.5.0.json +37 -0
  41. package/releases/2.6.0.json +37 -0
  42. package/releases/2.7.0.json +37 -0
  43. package/releases/2.7.1.json +31 -0
  44. package/releases/2.8.0.json +32 -0
  45. package/releases/2.8.1.json +30 -0
  46. package/releases/2.9.0.json +33 -0
  47. package/releases/2.9.1.json +31 -0
  48. package/releases/2.9.2.json +33 -0
  49. package/releases/2.9.3.json +31 -0
  50. package/releases/2.9.4.json +37 -0
  51. package/skills/manifest.json +1 -1
  52. package/skills/openxiangda-v2/SKILL.md +4 -4
  53. package/skills/openxiangda-v2/references/frontend.md +38 -0
  54. package/skills/openxiangda-v2/references/getting-started.md +7 -7
  55. package/releases/2.18.8.json +0 -31
@@ -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
+ }
@@ -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": "b156d84ea0a5bc8c1709bf7ea831709c7396461781ac0439fbf0505eb4a0f4f5"
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.8 auth status --cwd <应用目录> --base-url <平台地址> --json
44
- pnpm dlx openxiangda@2.18.8 login --cwd <应用目录> --base-url <平台地址>
45
- pnpm dlx openxiangda@2.18.8 create <应用目录> --base-url <同一平台地址>
46
- pnpm dlx openxiangda@2.18.8 skill install --force
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
  ### 未保存内容的离开保护
@@ -68,10 +68,10 @@ MCP 服务随项目根包一起安装,AI 客户端的 stdio 连接仍需配置
68
68
  以下命令的版本占位符由随包资料替换为该根包的精确版本。网站源码阅读者应先确认要使用的发行版本。
69
69
 
70
70
  ```bash
71
- pnpm dlx openxiangda@2.18.8 skill install --force
72
- pnpm dlx openxiangda@2.18.8 auth status --base-url <平台地址> --json
73
- pnpm dlx openxiangda@2.18.8 login --cwd my-app --base-url https://platform.example.com
74
- pnpm dlx openxiangda@2.18.8 create my-app --base-url https://platform.example.com
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
75
75
  cd my-app
76
76
  pnpm openxiangda context --json
77
77
  pnpm openxiangda dev
@@ -173,9 +173,9 @@ MCP 的 `docs_read` 可以读取本说明,当前没有独立的源码操作 MC
173
173
  无需本地工作区,使用本 Skill 随包精确版本或已安装的对应 CLI:
174
174
 
175
175
  ```bash
176
- pnpm dlx openxiangda@2.18.8 auth status --base-url <平台> --json
177
- pnpm dlx openxiangda@2.18.8 source resolve <仓库URL> --base-url <平台> --json
178
- pnpm dlx openxiangda@2.18.8 source clone <仓库URL> <新目录> --base-url <平台> --json
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
179
179
  ```
180
180
 
181
181
  登录缺失或站点不匹配时,先按该平台执行 login。resolve 根据平台已经登记的绑定返回
@@ -1,31 +0,0 @@
1
- {
2
- "schemaVersion": "openxiangda.release-notes/v1",
3
- "version": "2.18.8",
4
- "status": "reviewed",
5
- "title": "OpenXiangda 2.18.8:引擎钉漂移的恢复通道与确切指引",
6
- "summary": "update/version/changelog 在钉位漂移或依赖未安装时仍可执行(修复命令不再被自己要修复的问题拦住);PIN_MISMATCH 错误信息给出两步恢复路径;业务命令保持严格 fail-closed。",
7
- "newFeatures": [],
8
- "fixes": [
9
- "统一入口对 update、version、changelog 启用宽松引擎解析:钉位漂移时可用漂移前的安装引擎执行诊断与修复;依赖未安装时回退启动器引擎,update install --target workspace 仍能完成安装并统一全部钉位。",
10
- "WORKSPACE_ENGINE_PIN_MISMATCH 与 WORKSPACE_ENGINE_NOT_INSTALLED 的错误信息升级为可行动恢复指引(先 pnpm install,钉位不一致时 openxiangda update install --target workspace)。",
11
- "随包文档(安装与开始开发)补充升级后漂移的恢复路径与命令豁免范围说明。"
12
- ],
13
- "affectedUsers": [
14
- "升级工具链或手改依赖后遇到引擎版本一致性校验失败的应用开发者与 AI 会话。"
15
- ],
16
- "upgradeSteps": [
17
- "应用精确依赖升级到 openxiangda 2.18.8 后重新运行 check 与部署。"
18
- ],
19
- "knownLimitations": [
20
- "check/deploy/dev 等业务命令仍严格要求钉位一致(fail-closed 不变);自动安装未实现,恢复仍需运行一条命令。"
21
- ],
22
- "issues": [],
23
- "compatibility": {
24
- "node": ">=24",
25
- "workspaceGenerations": "v2",
26
- "platform": "无平台配合要求。",
27
- "v1": "V1 工作区同样受益于恢复命令豁免。"
28
- },
29
- "sha256": "6d756cf2e7f197c8c7654541a8b047309ee2e02e3060850ceefcf5f65186a9cb",
30
- "url": "https://github.com/1377385356/openxiangda/releases/tag/v2.18.8"
31
- }