20f109027a
Project CI / Native shell tests (push) Failing after 3m36s
Project CI / Frontend tests (push) Successful in 4m13s
Project CI / Repository checks (push) Successful in 3m3s
Project CI / AI game creator shell web tests (push) Successful in 2m31s
Project CI / Backend tests (push) Successful in 7m49s
Project CI / AI game creator shell Rust tests (push) Successful in 14m10s
原生壳门禁原本挤在同一个 job 里串行执行,跑一遍 18 分 37 秒,其中 AI 游戏创作 壳独占约 15 分钟(壳内 Rust 套件 2451 条用例串行 441 秒),而微信 / 移动 / 桌面 / H5 的全部门禁加起来不到 50 秒。长尾拖住短门禁,runner 也无法并行。 - scripts/check-native-shells.mjs 支持 `--groups=`(contract / shells / agc-web / agc-rust / release):每个步骤与静态断言归属且只归属一个分组,不带参数时仍按 原顺序串行跑全部分组,本地 `npm run check:native-shells` 语义不变。 - 顺带修掉 H5 HostBridge 调用链扫描在 Windows 上恒红的缺陷:collectFiles 返回 反斜杠路径而期望清单是 POSIX 写法,scannedFiles.has() 永远为假。新增 normalizeScannedFilePath 只统一分隔符(不能复用会去后缀的 normalizeModulePath), 在 Linux 上是恒等变换。 - package.json 增加 5 个分组脚本,并把 ai-game-creator-shell:check 拆成 :check:web 与 :check:rust;聚合脚本保持 web && rust && agent-run:smoke 同序。 agent-run smoke 会 spawn cargo,因此归入 agc-rust。 - .gitea/workflows/project-ci.yml 拆成 6 个 job:新增 native-shell-tests(contract + shells + release)、ai-game-creator-shell-web-tests、ai-game-creator-shell-rust-tests 三个门禁 job,与 backend-tests / frontend-tests / repository-checks 并列。 - scripts/project-ci-workflow.test.ts 增加 3 条结构测试:分组恰好被一个 job 调用且 与脚本内声明一致、CI 不再调用全量入口、AGC web/rust 拆分与聚合脚本等价、独立 crate 预热必须发生在 AGC Rust 门禁之前。 - 同步运维文档、development-workflow、decision-log、pitfalls。 验证:`--groups=contract` 本地通过;vitest 11 passed;eslint 与 prettier 通过; check:encoding 13329 文件通过;check:doc-index 103 份通过。shells / agc-web / agc-rust / release 分组只能由 Linux CI 执行(Windows 上 spawnSync npm.cmd 报 EINVAL,属既有平台限制,非本次引入)。分支保护需补两个新 required context: `Project CI / AI game creator shell web tests (pull_request)` 与 `Project CI / AI game creator shell Rust tests (pull_request)`。 Co-authored-by: DotCraft <273930855+dotcraft-ai@users.noreply.github.com>