Merge branch 'master' into chore/rust-compile-warnings
Project CI / AI game creator shell Rust crates (pull_request) Successful in 7m16s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 7m37s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 7m43s
Project CI / Backend tests (pull_request) Successful in 9m11s
Project CI / Native shell tests (pull_request) Failing after 2m53s
Project CI / AI game creator shell web tests (pull_request) Failing after 55s
Project CI / Frontend tests (pull_request) Successful in 2m40s
Project CI / Repository checks (pull_request) Failing after 3m30s

This commit is contained in:
2026-10-07 21:41:03 +08:00
2 changed files with 6 additions and 20 deletions
@@ -63,10 +63,10 @@ pub(crate) fn fork_playable_root(project_root: &Path) -> PathBuf {
/// Fork 建项收口:把「本项目已有可运行原型」与初始工程版本**如实**登记进 manifest。
///
/// 为什么必须有这一条:运行视图与发布导出都以 `manifest.tasks[code-prototype] == completed`
/// (或存在运行中的预览)作为「项目里已有可运行原型」的**唯一**事实——前端
/// `view/project-development/index.tsx` 的 `runAvailable`、后端 `project/export.rs` 的
/// `project_has_runnable_prototype` 都是这一条。Fork 建项过去只生成脚手架与全新 manifest
/// 为什么必须有这一条:运行视图以 `manifest.tasks[code-prototype] == completed`(或存在运行中
/// 的预览)作为「项目里已有可运行原型」的**唯一**事实——前端
/// `view/project-development/index.tsx` 的 `runAvailable` 读的就是这一条。Fork 建项过去只生成
/// 脚手架与全新 manifest
/// (seed 任务全 `pending`、`versions` 为空),于是 fork 出来的项目一进来就被判成「首个可运行
/// 原型尚未完成」:运行页签点了没反应、发布也被拦——而它其实已经带了一份可玩的成品。
///
@@ -598,7 +598,6 @@ mod tests {
.map(|task| task.status.clone())
.expect("code-prototype 必须存在于 seed 任务里");
assert_eq!(code_prototype, GameCreationAppTaskStatus::Pending);
assert!(!project_has_runnable_prototype(&project.manifest));
assert_eq!(
project.manifest.versions.len(),
1,
@@ -671,7 +670,6 @@ mod tests {
.map(|task| task.status.clone())
.expect("code-prototype 必须存在于 seed 任务里");
assert_eq!(code_prototype, GameCreationAppTaskStatus::Completed);
assert!(project_has_runnable_prototype(&project.manifest));
assert_eq!(
project.manifest.versions.len(),
1,
@@ -864,14 +864,8 @@ test('衍生作品发布新版本必须填「本次核心改动说明」', async
recoveryAction: 'none',
priceMudPoints: 0,
frozenMetadata: {
coverAssetId: 'asset-cover-old',
coverObjectKey: 'game-distribution/cover/old.png',
screenshots: [
{
assetId: 'asset-shot-old',
objectKey: 'game-distribution/screenshot/old.png',
},
],
screenshots: ['game-distribution/screenshot/old.png'],
},
},
} as never);
@@ -953,14 +947,8 @@ test('母版发布新版本不渲染改动说明字段,请求体也不带它',
recoveryAction: 'none',
priceMudPoints: 0,
frozenMetadata: {
coverAssetId: 'asset-cover-old',
coverObjectKey: 'game-distribution/cover/old.png',
screenshots: [
{
assetId: 'asset-shot-old',
objectKey: 'game-distribution/screenshot/old.png',
},
],
screenshots: ['game-distribution/screenshot/old.png'],
},
},
} as never);