模板库线上对齐仓库源:递增版本重发并把说明文档纳入发布
Project CI / AI game creator shell Rust smoke (push) Successful in 1m56s
Project CI / AI game creator shell Rust crates (push) Successful in 1m23s
Project CI / AI game creator shell Rust lane 2/2 (push) Failing after 4m48s
Project CI / AI game creator shell Rust lane 1/2 (push) Failing after 7m38s
Project CI / Frontend tests (push) Successful in 10m0s
Project CI / Native shell tests (push) Successful in 11m37s
Project CI / Repository checks (push) Successful in 8m49s
Project CI / Backend tests (push) Successful in 12m24s
Project CI / AI game creator shell web tests (push) Successful in 4m50s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m56s
Project CI / AI game creator shell Rust crates (push) Successful in 1m23s
Project CI / AI game creator shell Rust lane 2/2 (push) Failing after 4m48s
Project CI / AI game creator shell Rust lane 1/2 (push) Failing after 7m38s
Project CI / Frontend tests (push) Successful in 10m0s
Project CI / Native shell tests (push) Successful in 11m37s
Project CI / Repository checks (push) Successful in 8m49s
Project CI / Backend tests (push) Successful in 12m24s
Project CI / AI game creator shell web tests (push) Successful in 4m50s
- 7 个内容已变的模板 templateVersion 升到 0.1.1,blank-2d-canvas 与 blank-web 保持 0.1.0 - 发布脚本把仓库 README.md 覆盖写到 templates/README.md(上限 64 KiB,写在清单之前并回读校验),线上说明文档不再是手工副本 - 修复守卫拒绝时直接 process.exit(1) 触发 libuv 断言崩溃、看不到拒绝原因的问题 - 新增发布用例:说明文档随发布覆盖写且写在清单之前、源目录没有 README 时不写线上文档 - 模板库新增仓库侧 README.md 源文件(发布后与线上逐字节一致) - 技术方案补说明文档契约与 2026-09-21 重发布记录;决策记录与踩坑记录各补一条 - 验证:node --test 27 项、真实发布 28 个对象回读通过、线上清单与 README 核对一致、AGC 壳 3 项线上用例重跑通过、check:doc-index、check:encoding、eslint、git diff --check
This commit is contained in:
@@ -0,0 +1,10 @@
|
||||
# AGC 游戏模板库
|
||||
|
||||
- 用途:AGC 客户端读取的**游戏模板库**,正文是可直接解压到项目根的 zip(zip 根 == AGC 项目根,例如 `game/index.html`)。
|
||||
- 位置:bucket `agc-dev`(endpoint `oss-rg-china-mainland.aliyuncs.com`)的 `templates/` 前缀,随 bucket 公共读。客户端只读 `templates/index.json`(schema `agc-template-library.v1`)。
|
||||
- 目录结构:`templates/index.json` + `templates/v1/<templateId>/sha256/<内容摘要>/{template.zip,template.json,cover.*}`;条目元数据含 `tags`、封面键与尺寸/摘要、包大小与 SHA-256、`templateVersion`。所有正文按自身字节摘要寻址,重复发布复用同一对象。
|
||||
- 封面支持 `png / jpg / webp / svg`。
|
||||
- 客户端只信任「受信任 OSS 主机 + 对象键」,清单里的地址字段不参与请求;下载后强校验包大小与 SHA-256,安装完成的唯一判据是模板目录里的 `installed.json`。
|
||||
- 这份文件就是线上 `templates/README.md` 的源:内容随每次发布覆盖写,所以改契约要改这里,不要只改线上对象。
|
||||
- 契约与验收以仓库文档 `docs/technical/【技术方案】AGC模板库与模板建项-2026-09-17.md` 为准;模板源在 `apps/ai-game-creator-shell/template-library/`,发布用 `node scripts/agc-template-library-publish.mjs --source apps/ai-game-creator-shell/template-library [--dry-run] [--only <id,id,...>]`(脚本现场打包 zip、按内容地址上传、逐个回读校验、持锁提交清单)。
|
||||
- 同一个 `templateVersion` 的 ZIP 字节发生变化时发布会失败关闭,必须递增该模板的 `templateVersion`;发布不删除历史对象,历史版本仍可按旧键下载。
|
||||
@@ -11,7 +11,7 @@
|
||||
"runtime": "html",
|
||||
"engine": "three.js",
|
||||
"engineVersion": "0.180.0",
|
||||
"templateVersion": "0.1.0",
|
||||
"templateVersion": "0.1.1",
|
||||
"entry": "game/index.html",
|
||||
"coverWidth": 960,
|
||||
"coverHeight": 540
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
"runtime": "cocos",
|
||||
"engine": "cocos-creator",
|
||||
"engineVersion": "3.8.8",
|
||||
"templateVersion": "0.1.0",
|
||||
"templateVersion": "0.1.1",
|
||||
"entry": "package.json",
|
||||
"coverWidth": 960,
|
||||
"coverHeight": 540
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
"runtime": "cocos",
|
||||
"engine": "cocos-creator",
|
||||
"engineVersion": "3.8.8",
|
||||
"templateVersion": "0.1.0",
|
||||
"templateVersion": "0.1.1",
|
||||
"entry": "package.json",
|
||||
"coverWidth": 960,
|
||||
"coverHeight": 540
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
"runtime": "cocos",
|
||||
"engine": "cocos-creator",
|
||||
"engineVersion": "3.8.8",
|
||||
"templateVersion": "0.1.0",
|
||||
"templateVersion": "0.1.1",
|
||||
"entry": "package.json",
|
||||
"coverWidth": 960,
|
||||
"coverHeight": 540
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
"runtime": "cocos",
|
||||
"engine": "cocos-creator",
|
||||
"engineVersion": "3.8.8",
|
||||
"templateVersion": "0.1.0",
|
||||
"templateVersion": "0.1.1",
|
||||
"entry": "package.json",
|
||||
"coverWidth": 960,
|
||||
"coverHeight": 540
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
"runtime": "html",
|
||||
"engine": "phaser",
|
||||
"engineVersion": "4.2.1",
|
||||
"templateVersion": "0.1.0",
|
||||
"templateVersion": "0.1.1",
|
||||
"entry": "game/index.html",
|
||||
"coverWidth": 960,
|
||||
"coverHeight": 540
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
"runtime": "html",
|
||||
"engine": "three.js",
|
||||
"engineVersion": "0.180.0",
|
||||
"templateVersion": "0.1.0",
|
||||
"templateVersion": "0.1.1",
|
||||
"entry": "game/index.html",
|
||||
"coverWidth": 960,
|
||||
"coverHeight": 540
|
||||
|
||||
Reference in New Issue
Block a user