openxiangda 2.20.4 → 2.21.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 (65) hide show
  1. package/bin/distribution/launcher.js +1 -2
  2. package/documentation/AGENTS.md +2 -2
  3. package/documentation/design-workflow.md +90 -74
  4. package/documentation/development.md +1 -1
  5. package/documentation/frontend.md +3 -3
  6. package/documentation/getting-started.md +7 -7
  7. package/documentation/manifest.json +8 -20
  8. package/documentation/product-design.md +1 -1
  9. package/documentation/reference/cli.md +0 -1
  10. package/package.json +22 -17
  11. package/releases/2.0.0.json +50 -0
  12. package/releases/2.0.1.json +39 -0
  13. package/releases/2.1.0.json +44 -0
  14. package/releases/2.1.1.json +48 -0
  15. package/releases/2.10.0.json +42 -0
  16. package/releases/2.11.0.json +41 -0
  17. package/releases/2.12.0.json +38 -0
  18. package/releases/2.13.0.json +41 -0
  19. package/releases/2.13.1.json +33 -0
  20. package/releases/2.13.2.json +31 -0
  21. package/releases/2.14.0.json +41 -0
  22. package/releases/2.15.0.json +40 -0
  23. package/releases/2.16.0.json +41 -0
  24. package/releases/2.17.0.json +39 -0
  25. package/releases/2.17.1.json +34 -0
  26. package/releases/2.18.0.json +37 -0
  27. package/releases/2.18.1.json +31 -0
  28. package/releases/2.18.10.json +29 -0
  29. package/releases/2.18.2.json +30 -0
  30. package/releases/2.18.3.json +30 -0
  31. package/releases/2.18.9.json +37 -0
  32. package/releases/2.19.0.json +38 -0
  33. package/releases/2.2.0.json +48 -0
  34. package/releases/2.2.1.json +35 -0
  35. package/releases/2.2.2.json +34 -0
  36. package/releases/2.20.0.json +36 -0
  37. package/releases/2.21.0.json +35 -0
  38. package/releases/2.3.0.json +37 -0
  39. package/releases/2.4.0.json +37 -0
  40. package/releases/2.4.1.json +35 -0
  41. package/releases/2.5.0.json +37 -0
  42. package/releases/2.6.0.json +37 -0
  43. package/releases/2.7.0.json +37 -0
  44. package/releases/2.7.1.json +31 -0
  45. package/releases/2.8.0.json +32 -0
  46. package/releases/2.8.1.json +30 -0
  47. package/releases/2.9.0.json +33 -0
  48. package/releases/2.9.1.json +31 -0
  49. package/releases/2.9.2.json +33 -0
  50. package/releases/2.9.3.json +31 -0
  51. package/releases/2.9.4.json +37 -0
  52. package/skills/manifest.json +2 -2
  53. package/skills/openxiangda-v2/SKILL.md +15 -15
  54. package/skills/openxiangda-v2/references/cli.md +0 -1
  55. package/skills/openxiangda-v2/references/design-workflow.md +90 -74
  56. package/skills/openxiangda-v2/references/development.md +1 -1
  57. package/skills/openxiangda-v2/references/frontend.md +3 -3
  58. package/skills/openxiangda-v2/references/getting-started.md +7 -7
  59. package/skills/openxiangda-v2/references/product-design.md +1 -1
  60. package/documentation/design-craft.md +0 -1526
  61. package/documentation/opendesign-methods.md +0 -756
  62. package/releases/2.20.2.json +0 -30
  63. package/releases/2.20.3.json +0 -29
  64. package/skills/openxiangda-v2/references/design-craft.md +0 -1526
  65. package/skills/openxiangda-v2/references/opendesign-methods.md +0 -756
@@ -11,8 +11,7 @@ export async function launch(packageRoot, args = process.argv.slice(2)) {
11
11
  await distributionCommand({ manifest, packageRoot }, args);
12
12
  return;
13
13
  }
14
- // OpenDesign owns every native flag, including --cwd after design cli.
15
- const explicitCwd = args[0] === 'design' ? null : flagValue(args, '--cwd');
14
+ const explicitCwd = flagValue(args, '--cwd');
16
15
  const authorization = args[0] === 'login' || args[0] === 'auth';
17
16
  const workspace = discoverWorkspace(explicitCwd || (args[0] === 'skill' ? flagValue(args, '--workspace') : null) || process.cwd(), {
18
17
  allowMissing: authorization,
@@ -8,8 +8,8 @@
8
8
  - 模型、页面、导航和权限由应用声明一次;编译器生成契约。业务代码不改生成结果、不创建 platform/data、不复制平台 Router、字段组件、客户端或权限状态。
9
9
  - 当前用户、角色并集、数据授权和部署状态归平台;应用不保存凭据或授权快照。普通 CRUD 走 Data API,真实业务动作才按需启用 Nest。想写后端接口时先按 docs development 的"判定是否真的需要 Nest 后端"逐行核对:列表/表单/详情/删除用 `createNativeResourceClient`,幂等、时间窗、状态前置用平台事务与守卫,聚合用服务端聚合;check 会拒绝未绑定已声明 operation 的应用 controller 路由。
10
10
  - 标准业务字段使用 `openxiangda/field-kit`;PC 补充控件使用 antd,移动使用有作用域的 `openxiangda/mobile` 和 MobileSurface,不引入上游全局重置。
11
- - 界面开发默认按 docs design-workflow 使用原版 OpenDesign 桌面和 design cli先设计整体视觉、可运行原型并实际走查,再实现。设备由真实任务决定;复用 Shell 导航事实、标准字段行为,通过 ui 和局部样式应用设计,不复制权限或导航状态。原型和 tokens AppSpec assets 固定。模板 /home 不替代页面选型。
12
- - 应用默认先建立并保留标准管理后台:后台 Shell、显式菜单、资源表单、数据列表、详情/编辑、权限和流程入口是应用骨架。OpenDesign 可优化后台外观但不能替换后台;用户端 PC 与移动端可分别使用 OpenDesign 的完整视觉和交互,通过 runtime/Data API 读取后台数据。禁止用单页 HTML、iframe 或独立假后台替代后台,发布前分别验收后台与用户端入口。
11
+ - 界面开发默认按 docs design-workflow 由当前 Agent 完成视觉、真实页面实现和浏览器修正;需要新视觉方向时可用 Image 2.5 等当前图片能力生成少量参考。图片不定义交互、权限或验收。设备由真实任务决定;复用 Shell 导航事实、标准字段行为,通过 ui 和局部样式应用设计,不复制权限或导航状态。采用的参考图、tokens 和必要原型以 AppSpec assets 固定。模板 /home 不替代页面选型。
12
+ - 应用默认先建立并保留标准管理后台:后台 Shell、显式菜单、资源表单、数据列表、详情/编辑、权限和流程入口是应用骨架。Agent 可优化后台外观但不能替换后台;用户端 PC 与移动端按真实任务分别设计,通过 runtime/Data API 读取后台数据。禁止用图片、单页 HTML、iframe 或独立假后台替代后台,发布前分别验收后台与用户端入口。
13
13
  - 图表等专业交互先检查现有依赖并评估成熟组件/开源库,报表优先评估 ECharts,按需加载并释放实例;平台数据、权限与聚合仍通过官方能力。详见 docs frontend。
14
14
  - 入口与导航验收从平台应用列表开始,检查应用根路径、后台首个有权菜单、登录返回及刷新深链接;不能只验证开发者给出的业务链接。
15
15
  - 无账号表单或外部公开数据读取都读取 `docs public-access`:使用 `frontend.publicAccess` 和专用客户端;提交策略声明 `create` 时必须启用 `draft`,只读公开目录使用 `public.list`/`public.read` 与 `publicRecordFields`,附件/图片/富文本按平台托管 URL 读取,子表必须声明 `publicSubtableFields`,不创建 guest 角色、不传 draft id、不调用普通 Data API。标准审批、通知和后端均按需启用。
@@ -1,119 +1,135 @@
1
- # OpenDesign 设计、原型与实现
1
+ # Agent 原生视觉设计与实现
2
2
 
3
- 有界面影响的新应用、页面或改版,默认由 **OpenXiangda 2.0 的 AI 工作流调用原版 OpenDesign CLI、Skill 和 MCP** 完成设计、原型、预览和修正,再在同一工作区交接到享搭实现业务。OpenDesign 客户端是可选预览器,不是用户必须操作的开发入口。享搭只提供安装发现、原生 CLI 透传和 Agent 接入边界;项目、模板、设计系统、插件、导出及更新都由 OpenDesign 管理。纯后端、文字校正等按影响沿用已有设计。
3
+ 有界面影响的新应用、页面或改版,由当前 AI Agent 在同一个 OpenXiangda 工作区内完成
4
+ 视觉方向、真实页面实现、浏览器走查和修正。按需使用用户指定或当前可用的图片生成能力
5
+ (例如 Image 2.5)输出少量设计参考;不安装或调用独立设计运行时,也不在图片与实现之间
6
+ 建立第二个项目状态。纯后端或无视觉影响的文字修正沿用已有设计。
4
7
 
5
- ## 原版安装与完整 CLI {#native}
8
+ 图片只回答构图、层次、色彩、材质和氛围等视觉问题。AppSpec 继续定义用户、任务、页面、
9
+ 字段、权限、状态和验收;真实 React 页面才是最终界面事实。静态图不能证明加载、失败、
10
+ 拒绝、校验、提交、未保存输入、键盘、响应式或业务权限已经实现。
6
11
 
7
- 从[官方发行页](https://github.com/nexu-io/open-design/releases/latest)安装原版运行时或 CLI。AI 工作流优先通过绝对路径 `OPENXIANGDA_OPENDESIGN_CLI`(也支持 `OD_BIN` 与 `OD_NODE_BIN`)调用原生 CLI;macOS 桌面自动发现 `/Applications/Open Design.app` 或 `~/Applications/Open Design.app` 仅用于可选预览。不要要求用户打开客户端,也不搜索 PATH 中的 `od`,避免调用操作系统的同名命令。当前桌面自动发现已在官方 macOS arm64 0.22.2 验证;其他平台使用显式入口,不声称已完成桌面验证。
12
+ ## 先固定设计输入 {#inputs}
8
13
 
9
- ```bash
10
- pnpm openxiangda design open
11
- pnpm openxiangda design status --json
12
- pnpm openxiangda design cli --help
13
- pnpm openxiangda design cli project list
14
- pnpm openxiangda design cli templates list
15
- pnpm openxiangda design cli design-systems list
16
- pnpm openxiangda design cli tools directions --json
17
- pnpm openxiangda design cli plugin --help
18
- pnpm openxiangda design cli mcp
19
- ```
20
-
21
- `cli` 后面的参数、标准输入、输出、JSON、错误码和取消交给原版;享搭不维护上游命令白名单。查看每条原生命令的 `--help` 再执行当前需要的操作。原版 MCP 可直接接到支持 stdio 的 Agent,启动命令为 `openxiangda design cli mcp`;它与享搭平台 MCP 分别拥有设计项目和平台契约,不合并权限。
22
-
23
- AI 通过 CLI/MCP 工作时使用原生 `OD_DAEMON_URL` 或原版自动发现的本地运行时;不需要先执行 `design open`。桌面版 sidecar 只在用户主动预览时使用。原版桌面文件导入等操作可能要求桌面授权上下文;AI 应保留原版错误并停止该步骤,不伪造 token 或改数据库。享搭不会在 npm 安装时下载桌面应用、自动修改 Agent 凭据或开启云付费功能。
14
+ 开始界面工作前,从当前 AppSpec、平台契约和用户材料形成一个短设计输入,至少明确:
24
15
 
25
- AI Agent 通过原版 CLI/MCP 使用设计能力;模型和登录由原版及所选提供商管理。用户需要人工查看时才打开客户端。需要原版图像、视频、音频或云服务时按原版配置相应提供商。原生功能按其实际依赖可用,不把所有功能都描述为无需配置。
16
+ - 目标用户、主任务、页面归属以及 PC/移动设备范围;
17
+ - 必须保留的平台 Shell、导航、字段协议、权限和数据来源;
18
+ - 页面信息层次、关键操作,以及空、加载、失败、拒绝、校验、提交中和成功状态;
19
+ - 用户提供的品牌、参考图和素材授权;没有品牌事实时标记为 Agent 推断;
20
+ - 目标视口、可访问性、内容长度、数据量和性能边界;
21
+ - 本轮可以改变、必须保留和明确不做的内容。
26
22
 
27
- ## 随包离线参考 {#resources}
23
+ 已有有效设计继续沿用。只有视觉方向存在真实取舍时才比较候选;已经确认的意图不重复
24
+ 提问。不得凭空补充 KPI、品牌故事、业务统计、角色能力或示例数据来源。
28
25
 
29
- 通过 `pnpm openxiangda docs <主题> --section <章节>` 或 MCP `docs_read` 的 topic/section 读取。Skill references 与这些正文同源;以当前项目安装版本为准。以下是携带完整正文的精选方法及依赖,作为离线参考。原版运行时提供完整且可能更新的资源;不要把这张精选表当作原版能力边界。
26
+ ## 图片参考 {#image-reference}
30
27
 
31
- | 工作 | opendesign-methods 章节 | 同时读取 design-craft 章节 |
32
- | --- | --- | --- |
33
- | 从任务、参考到整体视觉方向 | reference-design-contract、reference-design-contract-2(附属 checklist) | typography、color、anti-ai-slop |
34
- | 生成可运行页面和交互 | frontend-design | typography、color、anti-ai-slop;有状态 UI 再读 state-coverage、accessibility-baseline |
35
- | 浏览器走查、修正已有原型及实现 | impeccable-design-polish | typography、color、anti-ai-slop、animation-discipline、accessibility-baseline |
36
- | 信息层次、密集工作台、表单 | 按当前阶段选择上述方法 | typography-hierarchy、laws-of-ux、form-validation,按实际问题选读 |
28
+ 图片生成是可选步骤。需要建立新视觉方向、比较布局或统一多页面风格时,可用 Image 2.5
29
+ 等当前 Agent 图片能力生成一至三个关键视图;普通 CRUD、小范围样式修正或已有明确设计时
30
+ 直接实现。生成提示应包含真实页面类型、主要内容、设备、密度、组件约束和不应出现的元素,
31
+ 不得包含生产秘密、真实个人数据或未经授权的品牌和人物素材。
37
32
 
38
- 原文来源、上游提交、适配版本和能力摘要见[原文方法](./opendesign-methods.md);每个 Craft 都保留完整正文,见[设计 Craft](./design-craft.md)。引用它们时记录实际读取的章节,不能只读本页摘要就宣称用了完整方法。
33
+ 只保留实际采用的参考图,并记录实际模型、日期、提示摘要、目标视口和采用/拒绝理由。
34
+ 不要逐像素照抄图片中的伪文字、虚构控件或不可能交互。Agent 应从参考图提取可实现的布局、
35
+ 排版、颜色、间距和组件关系,再对照真实内容与平台组件修正。图片生成失败、不可用或结果
36
+ 不合格时,记录事实并使用现有设计约束、成熟组件和浏览器迭代继续开发,不伪造产物。
39
37
 
40
- ## 享搭适配规则 {#adapter}
38
+ ## 页面归属与平台边界 {#adapter}
41
39
 
42
- 按用户任务、业务材料和实际设备选择整体方向,包括导航形态、布局、层次、密度、字体、色彩、间距、组件与交互状态。已有“标准后台必须默认外观”“后台一律不设计移动”等审美和设备约定不再是限制。设备适用性由真实任务决定;不要机械增加没有用户任务的页面。
40
+ 应用结构先于视觉:标准管理后台是默认骨架,必须保留平台 Shell、后台路由、显式菜单、
41
+ 资源表单、数据列表、详情/编辑、权限和流程入口。Agent 可以在这些边界内优化布局、视觉和
42
+ 交互,但不能用设计图、独立原型、单页 HTML 或 iframe 替代后台。
43
43
 
44
- 应用结构先于视觉改版:标准管理后台是默认骨架,必须保留平台 Shell、后台路由、显式菜单、资源表单、数据列表、权限和流程入口。OpenDesign 对后台只做布局、视觉和交互优化,不能用独立原型、单页 HTML 或 iframe 替换后台。用户端 PC 与移动端按真实旅程分别设计,可以完整采用 OpenDesign 的视觉与交互,但通过平台 runtime/Data API 连接后台数据,并保持与后台分离的权限和导航状态。设计交接时分别标记后台、用户端 PC、用户端移动端的页面归属和验收入口。
44
+ 用户端 PC 与移动端按真实旅程分别实现,通过平台 runtime/Data API 使用后台数据,并与
45
+ 后台保持独立的导航状态。Shell 的路由、当前用户、授权菜单和拒绝事实仍来自平台,不在
46
+ 用户端复制。先复用 PC/移动 Field Kit 的输入、校验、上传、只读和权限行为;替换外观或
47
+ 专业控件时,证明字段值、未保存输入、拒绝和恢复行为仍正确。
45
48
 
46
- 先复用 PC/移动 Field Kit 的输入、校验、上传、只读和权限行为。组件外观、布局及专业控件可据设计优化;换组件时证明字段值、未保存输入、拒绝和恢复行为仍正确。Shell 的路由、当前用户、授权菜单事实继续来自平台;`ui` 提供视觉参数,局部 CSS 可以编排布局,结构扩展应走平台支持的组件接口,不能复制导航状态。
49
+ 普通管理与录入保持工作型界面的扫描效率和信息密度。专业交互先评估项目已有依赖与成熟
50
+ 组件,图表优先评估 ECharts。营销式大标题、装饰性卡片堆叠、无任务依据的插画、纯氛围
51
+ 背景和重复导航不能因为参考图中出现就进入业务应用。
47
52
 
48
- 上游模板的桌面/手机预览框、固定侧栏、虚构指标、限定图表库和示例品牌仅服务其示例。原文中的字体/颜色数量、渐变等规则用于评审设计理由,不能压过实际品牌、中文阅读或已确认任务。借鉴参考的可描述特征,不复制品牌素材或凭空声称业务事实。
53
+ ## 从参考到真实实现 {#loop}
49
54
 
50
- 离线快照中的目录入口不被冒充为完整实现;原版中实际可用的插件、技能及资源通过原生命令和界面发现。遵循原版工作流,不把享搭自己的审美限制强加给它。执行插件、连接器和分享等功能仍需要与用户当前任务相符的授权。
55
+ 1. 读取设计输入和相关契约,确定本轮页面、状态、视口与验收动作。
56
+ 2. 需要时生成并筛选图片参考,提取可实现的视觉规则;不需要时直接沿用现有设计系统。
57
+ 3. 在 `tokens.css` 或应用现有 token 源中定义实际采用的数值,派生 AntD theme 与移动 CSS
58
+ 变量;不要在图片说明、组件和全局偏好中维护多份数值事实。
59
+ 4. 直接使用真实 React、平台 Shell、Field Kit 和受支持组件实现页面。原型只有在能降低
60
+ 高风险交互的不确定性时创建,且不得成为另一套长期业务代码。
61
+ 5. 在目标尺寸打开真实页面,操作完整关键任务;检查布局、滚动、弹层、键盘、长文本、
62
+ 空、加载、失败、拒绝、校验、提交、恢复和离开保护。浏览器控制台错误必须处理。
63
+ 6. 获取实际截图与交互发现,修正代码并重复检查。截图用于比较视觉,不替代操作断言。
64
+ 7. 连接平台后,从真实入口按实际角色验证后台与用户端、允许与拒绝路径;只有业务证据
65
+ 通过后才进入部署。组件样例、本地数组和图片参考不能冒充远端业务验收。
51
66
 
52
- ## 从设计到真实页面 {#loop}
67
+ 现有交互模式作为任务检查依据,见[交互模式](./interaction-patterns.md);它们允许按当前设计
68
+ 改进,不是固定页面皮肤。
53
69
 
54
- 1. 从当前 AppSpec 和实际界面识别主任务、目标用户、设备、约束与已有证据。新方向给出有理由的推荐;实际有取舍时最多比较两个方向,已确认意图不重复问。
55
- 2. AI 通过原版 CLI/MCP 创建或复用项目、选择模板/设计系统,提供任务与必要参考;工作目录由当前 OpenXiangda 工作区确定。使用原版工作流形成设计方向,保留上游的项目和资源结构;用户可选打开客户端查看。
56
- 3. 通过原版 Agent、项目和预览做可运行原型,关键任务能从入口走到完成。标明示例数据;覆盖适用的空、加载、失败、拒绝、校验、提交中和成功状态。真实业务请求尚未接入时明确说明。
57
- 4. 使用原版预览、lint、导出和修正能力;在目标尺寸实际打开、点击和键盘操作。证据记录实际 URL/文件、尺寸、操作与发现,没有浏览器证据就写未验证。不能用 AI 评分或勾选表代替画面和操作结果。
58
- 5. 依据已有授权和实际答复记录确认范围,固定设计文档和 assets 摘要。工具检查只证明资料与资源一致,不代表审美通过。
59
- 6. 消费同一设计包接入真实组件、平台数据和权限。对照原型检查布局、字段、弹层、未保存输入、拒绝/返回、键盘与移动任务。验收证据关联本次真实实现;原型成功不能冒充业务验收。
70
+ ## AppSpec 设计资源 {#artifacts}
60
71
 
61
- 现有交互模式作为任务检查依据,见[交互模式](./interaction-patterns.md);它们允许按设计改进,不是固定页面皮肤。
62
-
63
- ## 原版产物交接到 AppSpec {#artifacts}
64
-
65
- OpenDesign 项目保留自己的设计文件、清单和数值 token。交接时用原版文件/导出功能复制本轮实际采用的文件及依赖到以下目录,记录原版版本、项目 ID 和导出来源;不要求为了享搭改写上游 manifest 或重复制作原型。大型媒体和完整上游工作目录留在原项目,AppSpec 引用本轮可审阅、自包含的产物。
72
+ 只固定本轮实际采用、可审阅且自包含的资源。目录可以按任务裁剪:
66
73
 
67
74
  ```text
68
- appspec/design/visual.md # AppSpec 索引与受影响范围
69
- appspec/design/system/manifest.json # 能力来源和应用使用的精确版本
70
- appspec/design/system/DESIGN.md # 视觉语义、设计取舍与实现交接
71
- appspec/design/system/tokens.css # 数值 token 的唯一可编辑来源
72
- appspec/design/prototypes/<task>/ # 完整、自包含的原型和依赖
75
+ appspec/design/visual.md # 范围、来源、取舍与受影响页面
76
+ appspec/design/references/<task>/ # 实际采用的图片参考及来源说明
77
+ appspec/design/system/DESIGN.md # 视觉语义与实现交接
78
+ appspec/design/system/tokens.css # 数值 token 的唯一可编辑来源
79
+ appspec/design/prototypes/<task>/ # 仅在必要时保留的可运行交互原型
73
80
  ```
74
81
 
75
- 原版已有设计系统清单优先原样保留。没有清单时可以使用下面的享搭来源索引,业务规则引用 AppSpec ID;它是可选交接记录,不是 OpenDesign 要求的格式:
82
+ 图片来源可以用工具无关的清单记录;字段只描述实际事实,不要求特定模型或提供商:
76
83
 
77
84
  ```json
78
85
  {
79
86
  "schema": "openxiangda.design-system/v1",
80
- "capability": { "runtime": "OpenDesign", "version": "实际使用的原版版本", "projectId": "原版项目 ID" },
81
- "methods": ["reference-design-contract", "frontend-design", "impeccable-design-polish"],
82
- "runtimeVersion": "项目锁定的 openxiangda 精确版本",
87
+ "sources": [
88
+ {
89
+ "kind": "generated-image",
90
+ "model": "Image 2.5",
91
+ "path": "../references/request/desktop.png",
92
+ "viewport": "1440x1024",
93
+ "promptSummary": "内部事项办理台,紧凑主从布局"
94
+ }
95
+ ],
83
96
  "tokens": "tokens.css",
84
- "design": "DESIGN.md"
97
+ "design": "DESIGN.md",
98
+ "status": "reviewed-reference"
85
99
  }
86
100
  ```
87
101
 
88
- 运行时代码按构建步骤从 tokens.css 派生 AntD theme 与移动 CSS 变量,不另写数值表或全局偏好存储。标准应用用 `OpenXiangdaApplication` `ui`;独立组件预览用 `OpenXiangdaUiProvider` 的同名参数。例:
102
+ 没有图片参考时省略 `sources` `references`,不要创建占位文件。历史设计包已有其他来源
103
+ 字段时仍可读取,不要求为了新流程重写。业务规则引用 AppSpec ID,图片清单不复制权限、
104
+ 字段或页面协议。
105
+
106
+ 运行时代码从 `tokens.css` 派生 AntD theme 与移动 CSS 变量。标准应用使用
107
+ `OpenXiangdaApplication` 的 `ui`,独立组件预览使用 `OpenXiangdaUiProvider` 的同名参数:
89
108
 
90
109
  ```tsx
91
110
  const ui = { theme: derivedAntdTheme, className: 'project-design' };
92
111
  <OpenXiangdaApplication {...applicationProps} ui={ui} />
93
112
  ```
94
113
 
95
- `.project-design` 下的样式只覆盖本应用。移动端使用可继承的 `--oxa-mobile-*` 输入,例如 `--oxa-mobile-color-primary: var(--accent)`;名称对应上游 `--adm-*`,可以放在应用根或 MobileSurface 上。嵌套字段会继承这些设计输入,未配置时保留组件默认值。直接在父级改 --adm-* 会被字段基础样式重新声明,应使用 --oxa-mobile-*。平台 Provider 将 PC 下拉、对话框、消息与通知留在当前应用作用域;移动封装沿用原有本地弹层。使用上下文反馈 API,避免 AntD 静态 API 脱离应用上下文。不要通过 theme 变化给整个应用换 key。若显式设置 AntD cssVar.key,使用与页面 className 不同的名字,避免把根容器布局施加到每个控件上。
114
+ `.project-design` 下的样式只覆盖本应用。移动端使用可继承的 `--oxa-mobile-*` 输入;平台
115
+ Provider 让 PC 下拉、对话框、消息与通知留在当前应用作用域。使用上下文反馈 API,避免
116
+ AntD 静态 API 脱离作用域;不要通过 theme 变化给整个应用换 key,以免清空正在编辑的值。
96
117
 
97
- 自定义任务表单可以从 `openxiangda/field-kit` 复用 `ResourceFormContent` `ResourceFormDrawer`,传入受支持的字段定义、当前值、错误与提交回调;Drawer 可用 `title` 表达任务名称。它们只负责呈现,加载、保存和授权仍归现有业务所有者。不要为了改变外观重写字段值协议。
98
-
99
- 维护仓库包含[可运行事项工作台样例](https://github.com/1377385356/openxiangda/tree/master/scripts/fixtures/design-workbench),演示同一设计包、PC/移动字段、错误恢复与主题作用域。它是示例,具体设计未获得用户确认,也不代表生产数据或业务验收。复制时固定所用工具版本并更换为实际平台契约。浏览器检查还覆盖 reduced-motion:保留组件所需的动画完成事件,不能简单用全局 animation:none 让弹层停在初始隐藏态。
100
-
101
- 在 `visual.md` 的 front matter 加入实际资源引用(路径从工作区根开始):
118
+ `visual.md` front matter 中引用实际资源:
102
119
 
103
120
  ```yaml
104
121
  assets:
122
+ - appspec/design/references/request
105
123
  - appspec/design/system
106
- - appspec/design/prototypes/request
107
124
  ```
108
125
 
109
- 目录引用包含所有后代文件;新增、修改、删除任何依赖都会改变评审摘要,嵌套 DESIGN.md 是资源而非第二份 AppSpec 文档。原型自包含,外部参考链接不等于被固定的资源。只引用实际受评任务目录,避免无关原型让局部评审失效。原型使用的本地依赖要一起放在引用目录内;不能依赖临时缓存或目录外文件。
110
-
111
- 引用拒绝越界、符号链接、空目录和超预算。每次检查最多 128 文件、单文件 2 MiB、总计 8 MiB、16 层目录。大媒体用可控的小型评审产物与来源说明;不要靠删资产声明绕过检查。资源只做摘要,`spec context` 不执行原型。修改后重新检查实际变化和受影响确认,不能只改摘要让旧确认复活。生产晋级核对测试提交中的相同资源。既有纯文字设计仍可读取,采用新原型时补全 assets。
112
-
113
- ## 上游更新与项目升级 {#updates}
114
-
115
- 原版运行时使用官方更新器或官方发行版升级;CLI 每次从当前安装读取入口和版本。进行中的设计在 AppSpec 记录实际版本与导出摘要。不要把 npm 包里的离线资料版本当成原版安装版本。下面的每日检查只维护随包离线资料,不替代原版更新器。
126
+ 目录引用包含所有后代文件;新增、修改或删除依赖都会改变评审摘要。引用拒绝越界、符号
127
+ 链接、空目录和超预算;每次检查最多 128 文件、单文件 2 MiB、总计 8 MiB、16 层目录。
128
+ 参考图应压缩为足以评审的尺寸,大型媒体放在受控来源并记录摘要,不靠删除 assets 声明
129
+ 绕过检查。`spec context` 只读取资源字节,不执行原型或图片内容。
116
130
 
117
- 维护仓库的日常检查比较当前上游提交、选中文件和新增候选方法/模板,输出更新报告;它不改已安装能力或应用设计。固定原文的 hash、craft.requires、本地 checklist/许可和生成专题在仓库检查中一起核对,缺项明确失败。候选更新须评审真实差异,补充依赖与来源,更新适配后用可运行样例验证,再走 Changeset/主线/正式发布流程。
131
+ ## 完成标准 {#acceptance}
118
132
 
119
- 项目只消费验证过的精确工具版本。升级时按[版本升级](./upgrading.md)刷新 Skill 与 AGENTS,查看设计能力差异;进行中的已确认设计继续使用冻结版本,需要升级时重新评审受影响部分。网络失败或候选不合格保留原版本并报告原因。不要每次生成都临时下载上游 main。
133
+ 视觉完成至少同时具备:当前 AppSpec 设计范围、真实实现、目标视口截图、关键交互断言、
134
+ 无不可解释的浏览器错误,以及适用的真实角色允许/拒绝证据。图片模型的输出、Agent 自评、
135
+ 结构检查或组件样例只能是过程证据,不能单独宣称设计或业务验收通过。
@@ -20,7 +20,7 @@
20
20
  ## 选择平台能力 {#capabilities}
21
21
 
22
22
  - 普通数据管理:通过 `defineDataModel`、`defineApplicationModule` 和显式 CRUD 视图声明;模型不自动生成菜单或写权限。
23
- - 界面工作先按[OpenDesign 工作流](./design-workflow.md)形成具体设计;设备范围按真实任务选择。复用平台导航和字段行为,自定义报表/工具使用 admin 页面与显式导航。详见[页面归属](./frontend.md#surface-selection)。
23
+ - 界面工作先按[Agent 原生设计工作流](./design-workflow.md)形成具体视觉并直接实现真实页面;设备范围按真实任务选择。复用平台导航和字段行为,自定义报表/工具使用 admin 页面与显式导航。详见[页面归属](./frontend.md#surface-selection)。
24
24
  - 用户页面按实际旅程选择独立 PC/移动布局,手机端只覆盖已确认的用户任务。
25
25
  - 图表等专业交互先检查已有依赖,再评估成熟组件或开源库;报表优先评估 ECharts,记录选型理由和加载/销毁边界。详见[组件选型](./frontend.md#component-selection)。
26
26
  - 无平台账号的外部表单:使用[匿名公开访问](./public-access.md),不用普通 RBAC 角色冒充匿名主体。
@@ -14,13 +14,13 @@
14
14
 
15
15
  ## 先选页面归属,再写布局 {#surface-selection}
16
16
 
17
- 管理后台的设备范围按实际办理任务确定。数据管理、录入和报表复用平台 Shell 的路由与菜单事实,视觉依据[OpenDesign 工作流](./design-workflow.md)设计;存在手机办理任务时同步设计与验证。
17
+ 管理后台的设备范围按实际办理任务确定。数据管理、录入和报表复用平台 Shell 的路由与菜单事实,视觉依据[Agent 原生设计工作流](./design-workflow.md)实现并在浏览器修正;存在手机办理任务时同步设计与验证。
18
18
 
19
- ### 应用骨架优先与 OpenDesign 页面边界
19
+ ### 应用骨架优先与视觉页面边界
20
20
 
21
21
  标准管理后台是每个业务应用的默认开发骨架,必须保留后台 Shell、显式菜单、资源表单、数据列表、详情/编辑、权限和流程入口。开发顺序先完成后台资源与契约,再实现用户端 PC/移动端;不能以用户端首页或设计原型替代后台。
22
22
 
23
- OpenDesign 可以在标准后台内部优化布局、视觉和交互,但后台仍复用平台 Shell、导航、字段行为和权限。用户端 PC 与移动端可以分别采用 OpenDesign 的完整视觉和交互,通过平台 runtime/Data API 使用后台数据。禁止用单页 HTML、iframe 或自定义假后台替换标准后台,也不能把后台权限、导航状态复制到用户端。
23
+ Agent 可以在标准后台内部优化布局、视觉和交互,但后台仍复用平台 Shell、导航、字段行为和权限。用户端 PC 与移动端按真实旅程分别设计,通过平台 runtime/Data API 使用后台数据。图片参考和原型不拥有业务事实;禁止用图片、单页 HTML、iframe 或自定义假后台替换标准后台,也不能把后台权限、导航状态复制到用户端。
24
24
 
25
25
  发布前分别验证后台入口、表单、数据列表、流程入口和用户端 PC/移动端入口;没有完成后台骨架的应用不得发布。
26
26
 
@@ -68,10 +68,10 @@ MCP 服务随项目根包一起安装,AI 客户端的 stdio 连接仍需配置
68
68
  以下命令的版本占位符由随包资料替换为该根包的精确版本。网站源码阅读者应先确认要使用的发行版本。
69
69
 
70
70
  ```bash
71
- pnpm dlx openxiangda@2.20.4 skill install --force
72
- pnpm dlx openxiangda@2.20.4 auth status --base-url <平台地址> --json
73
- pnpm dlx openxiangda@2.20.4 login --cwd my-app --base-url https://platform.example.com
74
- pnpm dlx openxiangda@2.20.4 create my-app --base-url https://platform.example.com
71
+ pnpm dlx openxiangda@2.21.0 skill install --force
72
+ pnpm dlx openxiangda@2.21.0 auth status --base-url <平台地址> --json
73
+ pnpm dlx openxiangda@2.21.0 login --cwd my-app --base-url https://platform.example.com
74
+ pnpm dlx openxiangda@2.21.0 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.20.4 auth status --base-url <平台> --json
177
- pnpm dlx openxiangda@2.20.4 source resolve <仓库URL> --base-url <平台> --json
178
- pnpm dlx openxiangda@2.20.4 source clone <仓库URL> <新目录> --base-url <平台> --json
176
+ pnpm dlx openxiangda@2.21.0 auth status --base-url <平台> --json
177
+ pnpm dlx openxiangda@2.21.0 source resolve <仓库URL> --base-url <平台> --json
178
+ pnpm dlx openxiangda@2.21.0 source clone <仓库URL> <新目录> --base-url <平台> --json
179
179
  ```
180
180
 
181
181
  登录缺失或站点不匹配时,先按该平台执行 login。resolve 根据平台已经登记的绑定返回
@@ -1,36 +1,24 @@
1
1
  {
2
2
  "schemaVersion": "openxiangda.documentation/v1",
3
- "version": "2.20.4",
3
+ "version": "2.21.0",
4
4
  "topics": [
5
5
  {
6
6
  "id": "getting-started",
7
7
  "title": "安装与开始开发",
8
8
  "file": "getting-started.md",
9
- "sha256": "57cd23942f2a2fb4caf221a72e6cc746cd3b911d24ae02b57b6aefdeb12d722e"
9
+ "sha256": "df3108bb6bc1ce6c0eeb22f1992ae4670a2b07e643e1ca9c7bcf35bd3620059f"
10
10
  },
11
11
  {
12
12
  "id": "product-design",
13
13
  "title": "对话发现与详细产品设计",
14
14
  "file": "product-design.md",
15
- "sha256": "33ae57c972d5125687227063700db8a4bcf9792ab29f2df8934cb975dc13360d"
15
+ "sha256": "feb00e26dd32e9ec513d9695f77fcf498d2fff59778043164262d5be63e161ba"
16
16
  },
17
17
  {
18
18
  "id": "design-workflow",
19
- "title": "OpenDesign 设计、原型与实现",
19
+ "title": "Agent 原生视觉设计与实现",
20
20
  "file": "design-workflow.md",
21
- "sha256": "690a738df3c74eda573dd886994f2d3dfe3f534d31f37e50f788cf434c41ce2f"
22
- },
23
- {
24
- "id": "opendesign-methods",
25
- "title": "OpenDesign 原文方法与许可",
26
- "file": "opendesign-methods.md",
27
- "sha256": "0760a980d69abef4bf761c006325787a921b7fae989790781fd8f6b1f76baeea"
28
- },
29
- {
30
- "id": "design-craft",
31
- "title": "OpenDesign 排版、状态与交互 Craft",
32
- "file": "design-craft.md",
33
- "sha256": "91ae27d9ab942dc5096d685934ee9c9f33b0409dd53c7c0105be12e415c13e77"
21
+ "sha256": "5fb1557685595639dc9dd04f5c1bd146f6457c24b33b3608b3c2ecb24a842caf"
34
22
  },
35
23
  {
36
24
  "id": "interaction-patterns",
@@ -42,7 +30,7 @@
42
30
  "id": "development",
43
31
  "title": "需求与开发流程",
44
32
  "file": "development.md",
45
- "sha256": "c172cf5a6a20340b4142a1443b653d3e312f8a4464f990e69055046033011366"
33
+ "sha256": "e0cbd3be352b32927b2d99135fb9731f3aa0ad6b4c532091f714815de5555ae0"
46
34
  },
47
35
  {
48
36
  "id": "declarations-cheatsheet",
@@ -72,7 +60,7 @@
72
60
  "id": "frontend",
73
61
  "title": "页面与标准组件扩展",
74
62
  "file": "frontend.md",
75
- "sha256": "e668ddfd81a8308e1f750e4d79d34eac316ba97e2d28ba27a72c166565ea5949"
63
+ "sha256": "088c516a55aab359a6efeb6165d394919c3df8a4cf7fe2689911800e891692e7"
76
64
  },
77
65
  {
78
66
  "id": "field-components",
@@ -132,7 +120,7 @@
132
120
  "id": "cli",
133
121
  "title": "CLI 命令参考",
134
122
  "file": "reference/cli.md",
135
- "sha256": "568970d81d342c57ba92e541c112e373e04b59271f659bc79e9e090925777280"
123
+ "sha256": "f17c3f2bb78bb61382f51ba7ab36a89f228f116e1f020b30ad833a0f4a89d57d"
136
124
  },
137
125
  {
138
126
  "id": "mcp",
@@ -141,4 +141,4 @@ context 的 `readyForImplementation` 为真时才制定具体实现任务,把
141
141
  - [Design OS,固定提交](https://github.com/buildermethods/design-os/tree/529dedb43bfec24b2cbb128f26dd8cbc6143f754)(MIT)。
142
142
  - [Spec Kit,固定提交](https://github.com/github/spec-kit/tree/4a7341a93d944d6efe153b71da4a1adb9c2b578c)(MIT)。
143
143
 
144
- 有界面影响的工作默认由 AI 通过 design cli / 原版 MCP 使用 OpenDesign,完成可运行原型、浏览器修正及实现交接,见[设计工作流](./design-workflow.md)。客户端仅用于用户主动预览;原版运行时拥有完整设计资源和工作流,随包方法与 Craft 仅作离线参考。
144
+ 有界面影响的工作默认由当前 AI Agent 完成视觉方向、真实页面实现和浏览器修正,见[设计工作流](./design-workflow.md)。需要建立新方向时可按需使用 Image 2.5 等当前图片能力生成少量参考;图片不定义交互、权限或验收,采用的资源以 AppSpec assets 固定。
@@ -7,7 +7,6 @@
7
7
  | `pnpm openxiangda auth` | 只读 | 只读核验指定平台授权,不登录或刷新会话 |
8
8
  | `pnpm openxiangda context` | 只读 | 只读查看工作区、版本与平台绑定 |
9
9
  | `pnpm openxiangda docs` | 只读 | 按主题和章节读取当前版本中文资料 |
10
- | `pnpm openxiangda design` | 远端变更 | 打开 OpenDesign 原版并透传完整原生 CLI;写入范围由原生命令决定 |
11
10
  | `pnpm openxiangda admin` | 只读 | 只读查看应用管理能力和流程节点运行配置 |
12
11
  | `pnpm openxiangda create` | 远端变更 | 创建、绑定并初始化应用 |
13
12
  | `pnpm openxiangda source` | 远端变更 | 配置应用源码仓库、查看状态或提交推送 |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "openxiangda",
3
- "version": "2.20.4",
3
+ "version": "2.21.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.4.24",
63
+ "openxiangda-cli": "2.4.25",
64
64
  "openxiangda-contracts": "2.16.1",
65
- "openxiangda-devkit-core": "2.18.3",
65
+ "openxiangda-devkit-core": "2.18.4",
66
66
  "openxiangda-legacy": "npm:openxiangda@1.0.269",
67
- "openxiangda-mcp": "2.0.30",
67
+ "openxiangda-mcp": "2.0.31",
68
68
  "openxiangda-nest": "2.4.6",
69
- "openxiangda-skill-kit": "2.3.3",
69
+ "openxiangda-skill-kit": "2.3.4",
70
70
  "xlsx": "https://github.com/1377385356/openxiangda/releases/download/vendor-mirror/xlsx-0.20.3.tgz"
71
71
  },
72
72
  "peerDependencies": {
@@ -132,33 +132,38 @@
132
132
  },
133
133
  "openxiangdaRelease": {
134
134
  "schemaVersion": "openxiangda.release-notes/v1",
135
- "version": "2.20.4",
135
+ "version": "2.21.0",
136
136
  "status": "reviewed",
137
- "title": "OpenXiangda 2.20.4Native 事件审计来源契约修复",
138
- "summary": "严格接收平台已有的 Native 数据事件操作来源审计信息,避免具名业务动作和封存数据修复事件在处理器执行前被错误拒绝。",
139
- "newFeatures": [],
137
+ "title": "OpenXiangda 2.21.0Agent 原生视觉开发流程",
138
+ "summary": "移除效果和维护成本不匹配的 OpenDesign 运行时、命令与桥接层,把界面设计收敛为同一 AI Agent 内完成的闭环:按需使用 Image 2.5 等图片能力生成少量视觉参考,直接实现真实 React 页面,并以浏览器交互证据完成修正和验收。",
139
+ "newFeatures": [
140
+ "提供 Agent 原生设计工作流:视觉方向、React 实现、浏览器修正和 AppSpec 记录在同一个 OpenXiangda 工作区内完成。",
141
+ "支持把 Image 2.5 或当前可用的图片生成能力作为可选视觉参考;图片不可用或质量不足时可直接基于设计约束、成熟组件和浏览器迭代继续开发。"
142
+ ],
140
143
  "fixes": [
141
- "Native 事件 actor 显式支持有界 initiatedBy、businessAction platformMaintenance;未知字段、凭据形字段和错误签名仍严格拒绝。"
144
+ "移除 openxiangda design 命令、OpenDesign CLI/桌面/MCP 桥接、环境变量、内置方法资源和上游同步流程,避免 AI 自动开发依赖额外设计项目。",
145
+ "统一文档、Skill 和工作区模板中的界面开发指导,同时保留 AppSpec 设计资产、平台 Shell、Field Kit、权限、Data API、主题边界和真实角色验收契约。"
142
146
  ],
143
147
  "affectedUsers": [
144
- "使用 Nest 订阅具名业务动作或封存数据修复所产生 Native 数据事件的 OpenXiangda 2.0 应用。"
148
+ "使用 OpenXiangda 2.0 创建或改版管理后台、PC 用户页和移动端页面的 AI 开发会话与维护者。"
145
149
  ],
146
150
  "upgradeSteps": [
147
- "将应用精确依赖升级到 openxiangda 2.20.4,按锁文件安装并刷新工作区技能,验证后部署测试环境。",
148
- "需要恢复的既有失败事件应核对原投递后使用正式 replay API,不重复提交业务动作。"
151
+ "将应用精确依赖升级到 openxiangda 2.21.0,按锁文件安装,并执行 pnpm openxiangda skill install --force 刷新本地 Skill。",
152
+ "删除自动化脚本中对 openxiangda design 的调用;改为按 Agent 原生设计工作流直接实现真实页面并运行项目检查与浏览器验收。"
149
153
  ],
150
154
  "knownLimitations": [
151
- "本修复不自动重放历史死信,也不替代应用真实角色、通知幂等和业务结果验收。"
155
+ "Image 2.5 等图片能力只生成参考,不定义交互、权限、业务数据或验收结论;最终结果仍以真实 React 页面和浏览器证据为准。",
156
+ "本版本不会自动迁移或删除应用工作区中既有的 AppSpec 设计资产。"
152
157
  ],
153
158
  "issues": [],
154
159
  "compatibility": {
155
160
  "node": ">=24",
156
161
  "workspaceGenerations": "v2",
157
- "platform": "匹配现有平台 Native 事件生产者,无需服务端或数据库迁移。",
162
+ "platform": "无需服务端、数据库或平台容器升级。",
158
163
  "v1": "V1 工作区与维护引擎不受影响。"
159
164
  },
160
- "sha256": "b797b6e42ef1b54c312f40b14ecaea7064be9799d98bc9b200ed7dd88936e821",
161
- "url": "https://github.com/1377385356/openxiangda/releases/tag/v2.20.4"
165
+ "sha256": "18c7d0d0c508dec38ab1685d649103dcd820c75203d4a67eddd9c17aabc7651d",
166
+ "url": "https://github.com/1377385356/openxiangda/releases/tag/v2.21.0"
162
167
  },
163
168
  "scripts": {
164
169
  "build": "node ../../scripts/prune-package-dist.mjs && tsc -p tsconfig.json && node scripts/copy-assets.mjs",
@@ -0,0 +1,50 @@
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
+ }
@@ -0,0 +1,39 @@
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
+ }
@@ -0,0 +1,44 @@
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
+ }