openxiangda 2.29.0 → 2.29.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -48,12 +48,19 @@ pnpm openxiangda logs <deployment-id> --json
48
48
 
49
49
  平台启用镜像上传后,`deploy` 在本机用 Docker Buildx 导出 OCI 镜像,再使用当前平台登录态分片上传。开发者只需应用部署权限,无需登录平台管理员的镜像仓库或取得推送凭据。已完成的镜像层按摘要复用,中断后重新执行同一条部署命令可恢复上传;平台核验镜像完整性后才进入应用发布。尚未升级的旧平台保留其原镜像构建合同;新平台已声明上传能力但未启用时,命令会明确报告平台配置缺失。
50
50
 
51
- 上传失败后,本机保留原 OCI 制品,错误的 `details` 包含候选 ID、原 digest、失效时间及脱敏原因码。
52
- 恢复网络或登录后,在原工作区执行同一条 `pnpm openxiangda deploy`:相同构建输入、账号、平台、
53
- 应用和环境会校验原制品并从平台保存的偏移继续;即使 Docker 暂时不可用也能恢复已经构建的镜像。
51
+ 上传失败后,本机保留原 OCI 制品,错误的 `details` 包含候选 ID、原 digest、失效时间及真实 `causeCode`。
52
+ 按错误的 `remediation` 处理后,在原工作区执行原 `pnpm openxiangda deploy` 命令(保留原环境等参数):
53
+ 相同构建输入、账号、平台、应用、环境和工具版本会校验原制品并从平台保存的偏移继续;即使 Docker
54
+ 暂时不可用也能恢复已经构建的镜像。
54
55
  完成响应丢失时同样查询原摘要的 ready 回执。源码(包括未提交文件)、权限主体或目标变化会创建新候选,
55
56
  不会冒充原上传。上传鉴权仍在平台执行;本地缓存不授予部署权限。
56
57
 
58
+ `APPLICATION_IMAGE_STORAGE_BUDGET_EXCEEDED` 表示平台拒绝了存储计费准入,不能靠重新登录解决。
59
+ `details.causeDetails` 保留服务器实际提供的应用占用字节、镜像数、应用预算和本次请求字节;未提供
60
+ 的数据不会推测补齐。请平台核对现役、回滚和运行引用及受管清理结果,确认额度后恢复原上传。
61
+ 该错误的 `retryable=false` 表示需要先处理额度,上传器不会立即重复请求;原候选仍可在处理后恢复。
62
+ 正在恢复的候选应先用原工具版本完成上传,再升级 SDK;升级工具版本也会改变候选身份。
63
+
57
64
  缓存保留最多 24 小时、8 个候选、总预算 8 GiB;空间不足时仅回收未被使用的旧候选。
58
65
  仅当平台单镜像上限不超过 8 GiB 时启用本地恢复,较大的平台配额保留原上传路径,不降低平台允许的镜像大小。
59
66
  缓存和登录凭据分开,位于本机用户私有目录。过期或已经回收的候选需重新构建;已有 DeploymentRun
@@ -68,10 +68,10 @@ MCP 服务随项目根包一起安装,AI 客户端的 stdio 连接仍需配置
68
68
  以下命令的版本占位符由随包资料替换为该根包的精确版本。网站源码阅读者应先确认要使用的发行版本。
69
69
 
70
70
  ```bash
71
- pnpm dlx openxiangda@2.29.0 skill install --force
72
- pnpm dlx openxiangda@2.29.0 auth status --base-url <平台地址> --json
73
- pnpm dlx openxiangda@2.29.0 login --cwd my-app --base-url https://platform.example.com
74
- pnpm dlx openxiangda@2.29.0 create my-app --base-url https://platform.example.com
71
+ pnpm dlx openxiangda@2.29.1 skill install --force
72
+ pnpm dlx openxiangda@2.29.1 auth status --base-url <平台地址> --json
73
+ pnpm dlx openxiangda@2.29.1 login --cwd my-app --base-url https://platform.example.com
74
+ pnpm dlx openxiangda@2.29.1 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.29.0 auth status --base-url <平台> --json
178
- pnpm dlx openxiangda@2.29.0 source resolve <仓库URL> --base-url <平台> --json
179
- pnpm dlx openxiangda@2.29.0 source clone <仓库URL> <新目录> --base-url <平台> --json
177
+ pnpm dlx openxiangda@2.29.1 auth status --base-url <平台> --json
178
+ pnpm dlx openxiangda@2.29.1 source resolve <仓库URL> --base-url <平台> --json
179
+ pnpm dlx openxiangda@2.29.1 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.29.0",
3
+ "version": "2.29.1",
4
4
  "topics": [
5
5
  {
6
6
  "id": "getting-started",
7
7
  "title": "安装与开始开发",
8
8
  "file": "getting-started.md",
9
- "sha256": "260070c834f6e441f80604b8d41a174c13bf27c166cd5aea4dd0d5c5b3dc74b7"
9
+ "sha256": "a3750b23323fa2d452bd07ea44841dd47b5ddc9b850ae17c036b672e7e5b28dc"
10
10
  },
11
11
  {
12
12
  "id": "product-design",
@@ -114,7 +114,7 @@
114
114
  "id": "delivery",
115
115
  "title": "部署、生产晋级与恢复",
116
116
  "file": "delivery.md",
117
- "sha256": "29ab3c1d878af989fcc3a3198d878d6344dc00b711df898251d1c757f0531156"
117
+ "sha256": "e5e23165aa7077a04ba487599712fff7b262204b1869db211ab4601f477087e4"
118
118
  },
119
119
  {
120
120
  "id": "upgrading",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "openxiangda",
3
- "version": "2.29.0",
3
+ "version": "2.29.1",
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.5.24",
63
+ "openxiangda-cli": "2.5.25",
64
64
  "openxiangda-contracts": "2.25.0",
65
- "openxiangda-devkit-core": "2.28.0",
65
+ "openxiangda-devkit-core": "2.28.1",
66
66
  "openxiangda-legacy": "npm:openxiangda@1.0.269",
67
- "openxiangda-mcp": "2.0.48",
67
+ "openxiangda-mcp": "2.0.49",
68
68
  "openxiangda-nest": "2.7.2",
69
- "openxiangda-skill-kit": "2.3.22",
69
+ "openxiangda-skill-kit": "2.3.23",
70
70
  "xlsx": "https://github.com/1377385356/openxiangda/releases/download/vendor-mirror/xlsx-0.20.3.tgz"
71
71
  },
72
72
  "peerDependencies": {
@@ -132,40 +132,37 @@
132
132
  },
133
133
  "openxiangdaRelease": {
134
134
  "schemaVersion": "openxiangda.release-notes/v1",
135
- "version": "2.29.0",
135
+ "version": "2.29.1",
136
136
  "status": "reviewed",
137
- "title": "OpenXiangda 2.29.0:金额提交后的声明式生命周期",
138
- "summary": "模型可以声明金额提交后的合法状态变化、子记录履行状态和父记录锁定状态;编译时检查规则,平台在原 Native 写入和激活边界执行一致性保护。",
139
- "newFeatures": [
140
- "模型与 DataResource 增加可选 decimalReservationLifecycle,复用现有额度字段映射并派生 data.decimal-reservation-lifecycle@1.0.0。",
141
- "应用编译器、平台纯编译器和 JSON Schema 同步支持有界声明;未知状态、重复或自身状态边、缺少 reserve 动作及锁定状态可新预留在发布前拒绝。"
142
- ],
137
+ "title": "OpenXiangda 2.29.1:镜像上传失败的准确恢复指引",
138
+ "summary": "镜像上传因存储额度被拒绝时,保留安全额度数据并指向平台受管清理,停止立即重复请求;原候选仍可在处理后恢复。",
139
+ "newFeatures": [],
143
140
  "fixes": [
144
- "为已 committed 子记录的正常履行更新提供受约束的原 Data API 路径,继续保护金额、币种和主子关系。"
141
+ "候选恢复错误保留真实 causeCode,额度拒绝只投影应用占用字节、镜像数、应用预算、本次请求字节和固定恢复标识,不再丢失可用于平台排查的安全数据。",
142
+ "额度不足不再误导重新登录或修复网络,也不会立即重试同一准入;登录、权限、网络及未知失败分别提供对应指引。",
143
+ "保留原候选 ID、镜像摘要、失效时间和恢复租约,处理后相同输入可继续原摘要上传。"
145
144
  ],
146
145
  "affectedUsers": [
147
- "使用主子记录精确金额预留,且需要在审批提交金额后继续履行、关闭或解锁的 OpenXiangda 2.0 应用。"
146
+ "通过平台登录态上传后端镜像的 OpenXiangda 2.0 应用开发者与平台支持人员。"
148
147
  ],
149
148
  "upgradeSteps": [
150
- "先确认目标平台支持 data.decimal-reservation-lifecycle@1.0.0,再安装 openxiangda@2.29.0 并更新锁文件。",
151
- "在模型显式声明合法状态边、已履行子状态和锁定父状态;继续通过已授权 Data API update/transaction 与 expectedRevision 更新。",
152
- "本能力不需要新增数据库迁移;新版本激活会检查现有关闭父记录,不自动改写历史状态。"
149
+ "尚有待恢复原候选时,先保持原 SDK、源码、账号和目标,完成原上传后再升级;工具版本参与候选身份。",
150
+ "新的开发工作消费 openxiangda@2.29.1 并更新锁文件。额度错误先请平台核实受管保留与清理,再显式重试原 deploy 命令。无需平台数据库迁移。"
153
151
  ],
154
152
  "knownLimitations": [
155
- "状态声明不授予资源、字段或行权限;reserved/released 子记录仍须走原受管审批或重新提交。",
156
- "终止或作废不自动代表履行,也不会释放 committed 金额。每类最多 64 条边,两个状态集合各 1–16 项。",
157
- "未声明的资源保留严格保护;回滚到不支持本能力的服务器前须停用依赖新声明的入口。",
158
- "公开包发行与目标平台部署、应用适配及业务验收分别记录;包安装成功不代表目标环境具备运行能力。"
153
+ "错误详情只包含服务器实际提供的安全字段,不能据此假定额度已经恢复或判断未提供的全局、租户预算。",
154
+ "retryable=false 表示额度需先处理;原候选仍受 24 小时、8 个候选、8 GiB 的既有本地保留界限约束。",
155
+ "本次不修改平台预算或镜像退休策略,不执行客户应用部署;客户现场计费和受保护引用仍须独立核实。"
159
156
  ],
160
157
  "issues": [],
161
158
  "compatibility": {
162
159
  "node": ">=24",
163
160
  "workspaceGenerations": "v2",
164
- "platform": "显式声明才要求 data.decimal-reservation-lifecycle@1.0.0;共享 Native validator 随新契约更新,按目标预检结果配套升级平台。",
165
- "v1": "独立 V1 引擎和未声明生命周期的资源不受运行行为变更影响。"
161
+ "platform": "复用现有镜像上传响应,缺少额度数据的旧平台不会被补造数据。",
162
+ "v1": "独立 V1 引擎和工作区不受影响。"
166
163
  },
167
- "sha256": "967c751ef6dd40ae7e593bebef5ac48e94ad366272b6622702e05a89338fb021",
168
- "url": "https://github.com/1377385356/openxiangda/releases/tag/v2.29.0"
164
+ "sha256": "057a446ac3871147ca22a80b059bf13c2510a341de93798e0326259c553bb382",
165
+ "url": "https://github.com/1377385356/openxiangda/releases/tag/v2.29.1"
169
166
  },
170
167
  "scripts": {
171
168
  "build": "node ../../scripts/prune-package-dist.mjs && tsc -p tsconfig.json && node scripts/copy-assets.mjs",
@@ -0,0 +1,34 @@
1
+ {
2
+ "schemaVersion": "openxiangda.release-notes/v1",
3
+ "version": "2.29.1",
4
+ "status": "reviewed",
5
+ "title": "OpenXiangda 2.29.1:镜像上传失败的准确恢复指引",
6
+ "summary": "镜像上传因存储额度被拒绝时,保留安全额度数据并指向平台受管清理,停止立即重复请求;原候选仍可在处理后恢复。",
7
+ "newFeatures": [],
8
+ "fixes": [
9
+ "候选恢复错误保留真实 causeCode,额度拒绝只投影应用占用字节、镜像数、应用预算、本次请求字节和固定恢复标识,不再丢失可用于平台排查的安全数据。",
10
+ "额度不足不再误导重新登录或修复网络,也不会立即重试同一准入;登录、权限、网络及未知失败分别提供对应指引。",
11
+ "保留原候选 ID、镜像摘要、失效时间和恢复租约,处理后相同输入可继续原摘要上传。"
12
+ ],
13
+ "affectedUsers": [
14
+ "通过平台登录态上传后端镜像的 OpenXiangda 2.0 应用开发者与平台支持人员。"
15
+ ],
16
+ "upgradeSteps": [
17
+ "尚有待恢复原候选时,先保持原 SDK、源码、账号和目标,完成原上传后再升级;工具版本参与候选身份。",
18
+ "新的开发工作消费 openxiangda@2.29.1 并更新锁文件。额度错误先请平台核实受管保留与清理,再显式重试原 deploy 命令。无需平台数据库迁移。"
19
+ ],
20
+ "knownLimitations": [
21
+ "错误详情只包含服务器实际提供的安全字段,不能据此假定额度已经恢复或判断未提供的全局、租户预算。",
22
+ "retryable=false 表示额度需先处理;原候选仍受 24 小时、8 个候选、8 GiB 的既有本地保留界限约束。",
23
+ "本次不修改平台预算或镜像退休策略,不执行客户应用部署;客户现场计费和受保护引用仍须独立核实。"
24
+ ],
25
+ "issues": [],
26
+ "compatibility": {
27
+ "node": ">=24",
28
+ "workspaceGenerations": "v2",
29
+ "platform": "复用现有镜像上传响应,缺少额度数据的旧平台不会被补造数据。",
30
+ "v1": "独立 V1 引擎和工作区不受影响。"
31
+ },
32
+ "sha256": "057a446ac3871147ca22a80b059bf13c2510a341de93798e0326259c553bb382",
33
+ "url": "https://github.com/1377385356/openxiangda/releases/tag/v2.29.1"
34
+ }
@@ -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": "a0a31ebfc680b50a00143a94f76f815a73628a0b6ca74ca612d6f2ac87ebfe39"
7
+ "sha256": "66a23e26e09626e4de1220a2d794f34c3b32963908469ad84f4d6e4a67f9facb"
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.29.0 auth status --cwd <应用目录> --base-url <平台地址> --json
44
- pnpm dlx openxiangda@2.29.0 login --cwd <应用目录> --base-url <平台地址>
45
- pnpm dlx openxiangda@2.29.0 create <应用目录> --base-url <同一平台地址>
46
- pnpm dlx openxiangda@2.29.0 skill install --force
43
+ pnpm dlx openxiangda@2.29.1 auth status --cwd <应用目录> --base-url <平台地址> --json
44
+ pnpm dlx openxiangda@2.29.1 login --cwd <应用目录> --base-url <平台地址>
45
+ pnpm dlx openxiangda@2.29.1 create <应用目录> --base-url <同一平台地址>
46
+ pnpm dlx openxiangda@2.29.1 skill install --force
47
47
  ```
48
48
 
49
49
  创建前把产品要求的目标平台明确带入命令,不从旧登录态推断站点。已有工作区从原绑定恢复,平台不一致时先解决登录与目标,不改 link 文件跨站创建。
@@ -48,12 +48,19 @@ pnpm openxiangda logs <deployment-id> --json
48
48
 
49
49
  平台启用镜像上传后,`deploy` 在本机用 Docker Buildx 导出 OCI 镜像,再使用当前平台登录态分片上传。开发者只需应用部署权限,无需登录平台管理员的镜像仓库或取得推送凭据。已完成的镜像层按摘要复用,中断后重新执行同一条部署命令可恢复上传;平台核验镜像完整性后才进入应用发布。尚未升级的旧平台保留其原镜像构建合同;新平台已声明上传能力但未启用时,命令会明确报告平台配置缺失。
50
50
 
51
- 上传失败后,本机保留原 OCI 制品,错误的 `details` 包含候选 ID、原 digest、失效时间及脱敏原因码。
52
- 恢复网络或登录后,在原工作区执行同一条 `pnpm openxiangda deploy`:相同构建输入、账号、平台、
53
- 应用和环境会校验原制品并从平台保存的偏移继续;即使 Docker 暂时不可用也能恢复已经构建的镜像。
51
+ 上传失败后,本机保留原 OCI 制品,错误的 `details` 包含候选 ID、原 digest、失效时间及真实 `causeCode`。
52
+ 按错误的 `remediation` 处理后,在原工作区执行原 `pnpm openxiangda deploy` 命令(保留原环境等参数):
53
+ 相同构建输入、账号、平台、应用、环境和工具版本会校验原制品并从平台保存的偏移继续;即使 Docker
54
+ 暂时不可用也能恢复已经构建的镜像。
54
55
  完成响应丢失时同样查询原摘要的 ready 回执。源码(包括未提交文件)、权限主体或目标变化会创建新候选,
55
56
  不会冒充原上传。上传鉴权仍在平台执行;本地缓存不授予部署权限。
56
57
 
58
+ `APPLICATION_IMAGE_STORAGE_BUDGET_EXCEEDED` 表示平台拒绝了存储计费准入,不能靠重新登录解决。
59
+ `details.causeDetails` 保留服务器实际提供的应用占用字节、镜像数、应用预算和本次请求字节;未提供
60
+ 的数据不会推测补齐。请平台核对现役、回滚和运行引用及受管清理结果,确认额度后恢复原上传。
61
+ 该错误的 `retryable=false` 表示需要先处理额度,上传器不会立即重复请求;原候选仍可在处理后恢复。
62
+ 正在恢复的候选应先用原工具版本完成上传,再升级 SDK;升级工具版本也会改变候选身份。
63
+
57
64
  缓存保留最多 24 小时、8 个候选、总预算 8 GiB;空间不足时仅回收未被使用的旧候选。
58
65
  仅当平台单镜像上限不超过 8 GiB 时启用本地恢复,较大的平台配额保留原上传路径,不降低平台允许的镜像大小。
59
66
  缓存和登录凭据分开,位于本机用户私有目录。过期或已经回收的候选需重新构建;已有 DeploymentRun
@@ -68,10 +68,10 @@ MCP 服务随项目根包一起安装,AI 客户端的 stdio 连接仍需配置
68
68
  以下命令的版本占位符由随包资料替换为该根包的精确版本。网站源码阅读者应先确认要使用的发行版本。
69
69
 
70
70
  ```bash
71
- pnpm dlx openxiangda@2.29.0 skill install --force
72
- pnpm dlx openxiangda@2.29.0 auth status --base-url <平台地址> --json
73
- pnpm dlx openxiangda@2.29.0 login --cwd my-app --base-url https://platform.example.com
74
- pnpm dlx openxiangda@2.29.0 create my-app --base-url https://platform.example.com
71
+ pnpm dlx openxiangda@2.29.1 skill install --force
72
+ pnpm dlx openxiangda@2.29.1 auth status --base-url <平台地址> --json
73
+ pnpm dlx openxiangda@2.29.1 login --cwd my-app --base-url https://platform.example.com
74
+ pnpm dlx openxiangda@2.29.1 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.29.0 auth status --base-url <平台> --json
178
- pnpm dlx openxiangda@2.29.0 source resolve <仓库URL> --base-url <平台> --json
179
- pnpm dlx openxiangda@2.29.0 source clone <仓库URL> <新目录> --base-url <平台> --json
177
+ pnpm dlx openxiangda@2.29.1 auth status --base-url <平台> --json
178
+ pnpm dlx openxiangda@2.29.1 source resolve <仓库URL> --base-url <平台> --json
179
+ pnpm dlx openxiangda@2.29.1 source clone <仓库URL> <新目录> --base-url <平台> --json
180
180
  ```
181
181
 
182
182
  登录缺失或站点不匹配时,先按该平台执行 login。resolve 根据平台已经登记的绑定返回