修复AI游戏创作壳跨平台启动 #107

Merged
kdletters merged 4 commits from codex/ai-game-creator-app-mh into codex/ai-game-creator-app 2026-07-23 10:50:03 +08:00
Contributor

修复 macOS 下 Unix 文件身份比较和临时目录测试兼容
隔离 AI 游戏创作本地数据库与发布身份并阻止旧 schema 降级启动
完善 Tauri 开发栈错误传播和 POSIX 子进程树清理
跳过 macOS 不支持的进程指标回调以消除周期告警
补充开发调度测试、技术方案和团队排障记忆

修复 macOS 下 Unix 文件身份比较和临时目录测试兼容 隔离 AI 游戏创作本地数据库与发布身份并阻止旧 schema 降级启动 完善 Tauri 开发栈错误传播和 POSIX 子进程树清理 跳过 macOS 不支持的进程指标回调以消除周期告警 补充开发调度测试、技术方案和团队排障记忆
menghao self-assigned this 2026-07-22 15:26:25 +08:00
menghao added 1 commit 2026-07-22 15:26:25 +08:00
修复AI游戏创作壳跨平台启动
Project CI / Frontend tests (pull_request) Successful in 2m28s
Project CI / Repository checks (pull_request) Successful in 3m17s
Project CI / Backend tests (pull_request) Successful in 10m26s
Project CI / Native shell tests (pull_request) Failing after 6m19s
034a7f6651
修复 macOS 下 Unix 文件身份比较和临时目录测试兼容
隔离 AI 游戏创作本地数据库与发布身份并阻止旧 schema 降级启动
完善 Tauri 开发栈错误传播和 POSIX 子进程树清理
跳过 macOS 不支持的进程指标回调以消除周期告警
补充开发调度测试、技术方案和团队排障记忆
menghao requested review from kdletters 2026-07-22 15:26:25 +08:00
Member

[P1] scripts/dev.mjs (line 1691):发布身份按包含端口的 URL 持久化。SpacetimeDB 端口漂移后会生成新 identity,再用新 owner 更新原数据库,稳定触发 403。identity 应绑定 data dir/本地节点,而非监听端口。

[P1] start-dev-stack.mjs (line 216):专用 data dir 只在新建后端时传入;现有复用逻辑仍只校验数据库名和健康状态。旧共享目录、旧 owner/schema 的同名后端会被直接复用,绕过本 PR 的隔离与 fail-close。

[P2] start-dev-stack.mjs (line 222):后端 ready 前,detached 进程句柄尚未交给外层。实测启动期 SIGTERM 后父进程和后端进程组都仍存活;超时/异常也会残留 npm、Cargo、SpacetimeDB。

[P2] start-dev-stack.mjs (line 153):POSIX 改成直接 spawn 后没有监听 error。实测 npm 不可解析时直接抛 Unhandled 'error' event: spawn npm ENOENT,没有进入统一错误和清理链路。

[P1] [scripts/dev.mjs (line 1691)](/home/dsk/.codex/worktrees/b088/Genarrative/scripts/dev.mjs:1691):发布身份按包含端口的 URL 持久化。SpacetimeDB 端口漂移后会生成新 identity,再用新 owner 更新原数据库,稳定触发 403。identity 应绑定 data dir/本地节点,而非监听端口。 [P1] [start-dev-stack.mjs (line 216)](/home/dsk/.codex/worktrees/b088/Genarrative/apps/ai-game-creator-shell/scripts/start-dev-stack.mjs:216):专用 data dir 只在新建后端时传入;现有复用逻辑仍只校验数据库名和健康状态。旧共享目录、旧 owner/schema 的同名后端会被直接复用,绕过本 PR 的隔离与 fail-close。 [P2] [start-dev-stack.mjs (line 222)](/home/dsk/.codex/worktrees/b088/Genarrative/apps/ai-game-creator-shell/scripts/start-dev-stack.mjs:222):后端 ready 前,detached 进程句柄尚未交给外层。实测启动期 SIGTERM 后父进程和后端进程组都仍存活;超时/异常也会残留 npm、Cargo、SpacetimeDB。 [P2] [start-dev-stack.mjs (line 153)](/home/dsk/.codex/worktrees/b088/Genarrative/apps/ai-game-creator-shell/scripts/start-dev-stack.mjs:153):POSIX 改成直接 spawn 后没有监听 error。实测 npm 不可解析时直接抛 Unhandled 'error' event: spawn npm ENOENT,没有进入统一错误和清理链路。
menghao added 1 commit 2026-07-22 16:55:19 +08:00
修复AI游戏创作启动评审问题
Project CI / Frontend tests (pull_request) Successful in 2m39s
Project CI / Repository checks (pull_request) Failing after 1m18s
Project CI / Native shell tests (pull_request) Failing after 3m17s
Project CI / Backend tests (pull_request) Failing after 3m17s
5a9bc10bb6
将本地发布身份改为按SpacetimeDB数据目录持久化并兼容迁移旧记录

为开发栈状态补充专用数据目录并拒绝复用旧共享后端

统一处理子进程启动错误、启动期信号和进程组清理

补充身份、后端复用与子进程生命周期回归测试及文档
Member

[P2] start-dev-stack.mjs:233-240:direct child 已退出时 stopChild() 直接返回,不再清理 POSIX 进程组。实测 leader 退出码 42 后,遗留 descendant 仍存活。应保存 PGID,并在 leader 退出后仍尝试负 PGID kill。

仓库门禁仍阻塞:head 不包含最新 base 27f66bf0。Repository checks 和 Backend tests 都明确因此失败。虽然合并无冲突,但需要先更新 base 再重跑 CI。Native shell job 另因 crates.io TLS EOF 失败,不能算通过。

[P2] [start-dev-stack.mjs:233-240](https://git.genarrative.world/git/GenarrativeAI/Genarrative/src/commit/5a9bc10bb6e3f113719dc929ab92c4403fb2c2bf/apps/ai-game-creator-shell/scripts/start-dev-stack.mjs#L233-L240):direct child 已退出时 stopChild() 直接返回,不再清理 POSIX 进程组。实测 leader 退出码 42 后,遗留 descendant 仍存活。应保存 PGID,并在 leader 退出后仍尝试负 PGID kill。 仓库门禁仍阻塞:head 不包含最新 base 27f66bf0。Repository checks 和 Backend tests 都明确因此失败。虽然合并无冲突,但需要先更新 base 再重跑 CI。Native shell job 另因 crates.io TLS EOF 失败,不能算通过。
menghao added 2 commits 2026-07-22 20:28:34 +08:00
修复AI游戏创作跨平台运行竞态
Project CI / Repository checks (pull_request) Successful in 1m26s
Project CI / Backend tests (pull_request) Successful in 4m18s
Project CI / Native shell tests (pull_request) Successful in 12m18s
Project CI / Frontend tests (pull_request) Successful in 1m25s
4494153104
保存独立进程组标识并在启动失败或退出时清理后代进程

兼容macOS下带前置选项的npm脚本命令校验

修复进程会话输出上限投影、测试夹具与锁污染问题

收敛Agent运行时lane释放、并发锁初始化与异步审计时序竞态

补充Node与Native Shell回归测试并同步排障文档
menghao marked the pull request as work in progress 2026-07-22 20:29:00 +08:00
menghao marked the pull request as ready for review 2026-07-23 10:31:15 +08:00
kdletters merged commit ff84b5a308 into codex/ai-game-creator-app 2026-07-23 10:50:03 +08:00
kdletters deleted branch codex/ai-game-creator-app-mh 2026-07-23 10:50:03 +08:00
Sign in to join this conversation.