合并 origin/master(33 个提交):DirectProject 入队化与事件投影
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m30s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Failing after 1m54s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m57s
Project CI / Frontend tests (pull_request) Successful in 3m39s
Project CI / Backend tests (pull_request) Successful in 6m13s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Failing after 7m59s
Project CI / Repository checks (pull_request) Successful in 3m29s
Project CI / Native shell tests (pull_request) Successful in 8m0s
Project CI / AI game creator shell web tests (pull_request) Successful in 2m58s

- 合并 origin/master(425fbcf63..9ee34809b),唯一冲突是共享决策日志两侧各插条目,取「两侧并存」
- 本轮 master 未触及随包资源声明、准备步骤与三份 tauri 配置,build.rs 只读校验保持不变
- 决策日志与踩坑记录同步两侧条目;docs/README.md 与项目索引按 master 收敛
- 构建期重新生成的 ts-rs 绑定经 prettier 归一后与 master 逐字节一致(合并未丢类型)
- 校验:cargo test --no-run 全 target 通过、AGC 应用 vitest 191 files / 1889 tests passed、check-package-layout、prepare-bundled-resources 18 passed、check-config、check:encoding、prettier、cargo fmt --check 全绿
This commit is contained in:
2026-09-30 17:38:35 +08:00
90 changed files with 5473 additions and 5291 deletions
@@ -1,71 +0,0 @@
// 真机 DirectProject 执行夹具的一键入口:真 AGC CLI → 真 app-server → loopback Responses
// fixtures,不需要账号、不花付费 Provider。
//
// 与 `apps/ai-game-creator-shell/scripts/direct-execution-production-fixture.mjs` 的区别:
// 那个夹具必须显式传 `--agc-exe`;这里默认用工作区里已构建的 debug 二进制,省掉每次手打路径。
//
// 用法:
// npm run check:agc-direct-execution-fixture # 默认跑全部用例
// npm run check:agc-direct-execution-fixture -- --cases restart # 透传夹具参数
// npm run check:agc-direct-execution-fixture -- --agc-exe <path> # 指定其它二进制
//
// 前置:先构建 debug 二进制(`cargo build --manifest-path apps/ai-game-creator-shell/src-tauri/Cargo.toml`)。
import { spawnSync } from 'node:child_process';
import { existsSync } from 'node:fs';
import path from 'node:path';
import { fileURLToPath } from 'node:url';
const repoRoot = path.resolve(
path.dirname(fileURLToPath(import.meta.url)),
'..',
);
const fixture = path.join(
repoRoot,
'apps/ai-game-creator-shell/scripts/direct-execution-production-fixture.mjs',
);
const defaultExecutable = path.join(
repoRoot,
'apps/ai-game-creator-shell/src-tauri/target/debug',
process.platform === 'win32'
? 'genarrative-ai-game-creator-shell.exe'
: 'genarrative-ai-game-creator-shell',
);
const defaultCases = [
'completed',
'passes',
'mcp',
'mcp-write',
'native',
'native-resources',
'patch',
'deadline',
'native-session',
'restart',
'running',
].join(',');
const forwarded = process.argv.slice(2);
const hasExecutable = forwarded.some(
(value) => value === '--agc-exe' || value.startsWith('--agc-exe='),
);
const hasCases = forwarded.some(
(value) => value === '--cases' || value.startsWith('--cases='),
);
if (!hasExecutable && !existsSync(defaultExecutable)) {
console.error(
`未找到 debug 二进制:${defaultExecutable}\n` +
'请先执行 `cargo build --manifest-path apps/ai-game-creator-shell/src-tauri/Cargo.toml`,' +
'或用 `-- --agc-exe <path>` 指定一个已构建的 AGC 二进制。',
);
process.exit(2);
}
const args = [fixture, ...forwarded];
if (!hasExecutable) args.push('--agc-exe', defaultExecutable);
if (!hasCases) args.push('--cases', defaultCases);
const result = spawnSync(process.execPath, args, {
cwd: repoRoot,
stdio: 'inherit',
});
process.exit(result.status ?? 1);