新增 Web 后台与 AGC 一键开发入口 #570

Merged
suzmii merged 15 commits from feat/dev-all into master 2026-10-02 14:46:21 +08:00
Member

关联 Issue

Closes #569

前后对照

修改前

  • npm run dev 启动主站完整栈:SpacetimeDB、BgFilter worker、api-server、主站 Vite、管理后台。
  • AGC 必须另行执行 npm run agc。
  • 两个入口默认使用不同 database/data dir,直接并行可能启动两套后端,并重复启动管理后台。
  • Windows 下新增的 dev:all 在 AGC 端口预留后启动根栈时直接报 spawn EINVAL,根栈没有启动。

修改后

新增:

npm run dev:all

一键启动并管理:

  • 一份 SpacetimeDB;
  • 一份 BgFilter worker;
  • 一份 api-server;
  • 主站 Vite;
  • 管理后台 Vite;
  • AGC Vite;
  • Tauri AGC 客户端。

Windows 使用 shell 启动 npm.cmd,避免 child_process.spawn 的 EINVAL。

落地方案

  • 新增 scripts/dev-all.mjs,跨平台编排根 dev 栈和 AGC 子进程树。
  • 固定使用 AGC 配套 database genarrative-game-creator-dev 与 data dir server-rs/.spacetimedb/ai-game-creator/data。
  • 先预留 AGC Vite 端口,再启动根完整栈;确认 .app/dev-stack.json 中五个服务的 repoRoot、instanceId、database、data dir 匹配,并确认主站与后台 HTTP 可访问后,才启动 AGC。
  • 通过 AGC_DEV_ADMIN_WEB=0 关闭 AGC 自带后台,只保留根 dev 栈启动的管理后台。
  • 拒绝 --database 与 --spacetime-data-dir 覆盖,避免静默形成第二套后端。
  • 任一子进程异常退出或收到 Ctrl+C/SIGTERM 时收束另一侧进程树;正常子进程退出码会透传。
  • 保持 npm run dev、npm run agc 和所有单模块入口不变。

测试与验证

已执行:

  • npm run test -- scripts/dev-all.test.ts:6 passed。
  • npm run typecheck:通过。
  • node --check scripts/dev-all.mjs:通过。
  • npx eslint scripts/dev-all.mjs scripts/dev-all.test.ts --max-warnings 0:通过。
  • npx prettier --check scripts/dev-all.mjs scripts/dev-all.test.ts package.json:通过。
  • npm run check:encoding:通过。
  • npm run check:doc-index:通过。
  • git diff --check:通过。
  • Windows 最小复现:spawn('npm.cmd', ..., shell:false) 稳定复现 EINVAL;修复后同命令以 shell:true 执行 npm 10.9.7,退出码 0。
  • Windows 实际 npm run dev:all:根开发栈成功启动并完成端口漂移:Web 3001、API 8084、worker 8085、SpacetimeDB 3104、后台 3105;日志确认根栈 ready 后才启动 AGC。
  • 该实际 smoke 的 AGC 阶段因当前工作区缺少已声明依赖 @anthropic-ai/claude-agent-sdk 退出码 1;dev:all 已收束根栈进程。补齐 AGC 依赖后需重跑 AGC 窗口、marker 和正常退出验证。
  • git push 前置检查:通过。
## 关联 Issue Closes #569 ## 前后对照 ### 修改前 - `npm run dev` 启动主站完整栈:SpacetimeDB、BgFilter worker、api-server、主站 Vite、管理后台。 - AGC 必须另行执行 `npm run agc`。 - 两个入口默认使用不同 database/data dir,直接并行可能启动两套后端,并重复启动管理后台。 - Windows 下新增的 `dev:all` 在 AGC 端口预留后启动根栈时直接报 `spawn EINVAL`,根栈没有启动。 ### 修改后 新增: ```bash npm run dev:all ``` 一键启动并管理: - 一份 SpacetimeDB; - 一份 BgFilter worker; - 一份 api-server; - 主站 Vite; - 管理后台 Vite; - AGC Vite; - Tauri AGC 客户端。 Windows 使用 shell 启动 `npm.cmd`,避免 `child_process.spawn` 的 `EINVAL`。 ## 落地方案 - 新增 `scripts/dev-all.mjs`,跨平台编排根 dev 栈和 AGC 子进程树。 - 固定使用 AGC 配套 database `genarrative-game-creator-dev` 与 data dir `server-rs/.spacetimedb/ai-game-creator/data`。 - 先预留 AGC Vite 端口,再启动根完整栈;确认 `.app/dev-stack.json` 中五个服务的 repoRoot、instanceId、database、data dir 匹配,并确认主站与后台 HTTP 可访问后,才启动 AGC。 - 通过 `AGC_DEV_ADMIN_WEB=0` 关闭 AGC 自带后台,只保留根 dev 栈启动的管理后台。 - 拒绝 `--database` 与 `--spacetime-data-dir` 覆盖,避免静默形成第二套后端。 - 任一子进程异常退出或收到 Ctrl+C/SIGTERM 时收束另一侧进程树;正常子进程退出码会透传。 - 保持 `npm run dev`、`npm run agc` 和所有单模块入口不变。 ## 测试与验证 已执行: - `npm run test -- scripts/dev-all.test.ts`:6 passed。 - `npm run typecheck`:通过。 - `node --check scripts/dev-all.mjs`:通过。 - `npx eslint scripts/dev-all.mjs scripts/dev-all.test.ts --max-warnings 0`:通过。 - `npx prettier --check scripts/dev-all.mjs scripts/dev-all.test.ts package.json`:通过。 - `npm run check:encoding`:通过。 - `npm run check:doc-index`:通过。 - `git diff --check`:通过。 - Windows 最小复现:`spawn('npm.cmd', ..., shell:false)` 稳定复现 `EINVAL`;修复后同命令以 `shell:true` 执行 npm `10.9.7`,退出码 0。 - Windows 实际 `npm run dev:all`:根开发栈成功启动并完成端口漂移:Web `3001`、API `8084`、worker `8085`、SpacetimeDB `3104`、后台 `3105`;日志确认根栈 ready 后才启动 AGC。 - 该实际 smoke 的 AGC 阶段因当前工作区缺少已声明依赖 `@anthropic-ai/claude-agent-sdk` 退出码 1;dev:all 已收束根栈进程。补齐 AGC 依赖后需重跑 AGC 窗口、marker 和正常退出验证。 - `git push` 前置检查:通过。
suzmii self-assigned this 2026-10-01 16:52:03 +08:00
suzmii added 1 commit 2026-10-01 16:52:04 +08:00
新增 Web 后台与 AGC 一键开发入口
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m36s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m22s
Project CI / Backend tests (pull_request) Failing after 13s
Project CI / Frontend tests (pull_request) Successful in 2m9s
Project CI / Repository checks (pull_request) Failing after 15s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Has been cancelled
Project CI / Native shell tests (pull_request) Has been cancelled
Project CI / AI game creator shell web tests (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Has been cancelled
c383355301
新增 dev:all 跨平台编排共享后端、主站、后台与 AGC。

保持 npm run dev、npm run agc 及单模块入口行为不变。

补充参数、状态身份、进程退出收束测试。

同步本地开发运维文档、项目概览和决策记录。
suzmii added 1 commit 2026-10-01 17:08:25 +08:00
Merge branch 'master' into feat/dev-all
Project CI / Backend tests (pull_request) Has been cancelled
Project CI / Native shell tests (pull_request) Has been cancelled
Project CI / AI game creator shell Rust smoke (pull_request) Has been cancelled
Project CI / AI game creator shell Rust crates (pull_request) Has been cancelled
Project CI / Frontend tests (pull_request) Has been cancelled
Project CI / Repository checks (pull_request) Has been cancelled
Project CI / AI game creator shell web tests (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Has been cancelled
5c7dd512db
suzmii added 2 commits 2026-10-01 17:39:33 +08:00
改用 Windows shell 启动 npm.cmd,避免 spawn EINVAL。

补充 Windows 启动参数回归测试。

记录端口漂移与 AGC 依赖缺失的实际 smoke 结果。
Merge remote-tracking branch 'origin/feat/dev-all' into feat/dev-all
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m17s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m47s
Project CI / Backend tests (pull_request) Successful in 4m38s
Project CI / Frontend tests (pull_request) Successful in 2m23s
Project CI / Native shell tests (pull_request) Successful in 7m0s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 11m4s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Failing after 11m26s
Project CI / AI game creator shell web tests (pull_request) Successful in 2m22s
Project CI / Repository checks (pull_request) Successful in 3m21s
888ab83f39
suzmii added 1 commit 2026-10-01 18:22:42 +08:00
补充 dev:all 启动摘要表
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust smoke (pull_request) Has been cancelled
Project CI / AI game creator shell Rust crates (pull_request) Has been cancelled
Project CI / Backend tests (pull_request) Has been cancelled
Project CI / Native shell tests (pull_request) Has been cancelled
Project CI / Frontend tests (pull_request) Has been cancelled
Project CI / Repository checks (pull_request) Has been cancelled
Project CI / AI game creator shell web tests (pull_request) Has been cancelled
e9b3e2b531
在 AGC Vite marker 就绪后打印全部服务的实际地址表。

补充 AGC 就绪等待、摘要构造测试和开发运维文档。
suzmii added 1 commit 2026-10-01 18:26:08 +08:00
Merge branch 'master' into feat/dev-all
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m7s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m42s
Project CI / Backend tests (pull_request) Successful in 3m45s
Project CI / Frontend tests (pull_request) Successful in 1m57s
Project CI / Native shell tests (pull_request) Successful in 5m55s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 10m15s
Project CI / Repository checks (pull_request) Successful in 2m38s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 11m22s
Project CI / AI game creator shell web tests (pull_request) Successful in 2m5s
9fd2c6ecd7
suzmii added 2 commits 2026-10-01 19:06:54 +08:00
改用无引号纯文本表格显示启动服务和实际地址。

等待 Tauri Running DevCommand 后再打印摘要。

补充启动器输出转发、回归测试和开发运维说明。
Merge remote-tracking branch 'origin/feat/dev-all' into feat/dev-all
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m0s
Project CI / Backend tests (pull_request) Failing after 17s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m24s
Project CI / Frontend tests (pull_request) Successful in 2m34s
Project CI / Repository checks (pull_request) Failing after 15s
Project CI / AI game creator shell web tests (pull_request) Successful in 2m14s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 10m26s
Project CI / Native shell tests (pull_request) Successful in 6m57s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 12m24s
76eadc692c
suzmii added 1 commit 2026-10-01 19:29:36 +08:00
回退 dev:all Tauri 时序控制
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m1s
Project CI / Backend tests (pull_request) Failing after 23s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m22s
Project CI / Frontend tests (pull_request) Successful in 2m8s
Project CI / Repository checks (pull_request) Failing after 15s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m42s
Project CI / Native shell tests (pull_request) Successful in 5m44s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 12m2s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 11m31s
5dfd231496
保留无引号启动摘要表。

移除 Tauri 输出捕获、就绪标记和额外等待逻辑。

恢复启动器原有输出与启动时序说明。
suzmii added 2 commits 2026-10-02 11:03:47 +08:00
# Conflicts:
#	docs/project-memory/shared-memory/pitfalls.md
修复 dev:all 端口段与前端就绪判定
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m2s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m24s
Project CI / Backend tests (pull_request) Failing after 20s
Project CI / Frontend tests (pull_request) Successful in 2m38s
Project CI / Repository checks (pull_request) Failing after 17s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m46s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 9m35s
Project CI / Native shell tests (pull_request) Successful in 6m31s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 11m5s
aad8f15a3c
将 CLI port-range 同步到 AGC 端口解析环境。

将主站和后台 HTTP readiness 限制为 2xx。

补充真实 HTTP 状态码与端口段传递测试。
suzmii added 1 commit 2026-10-02 13:53:33 +08:00
合并 master 最新变更
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m57s
Project CI / Backend tests (pull_request) Failing after 12s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m35s
Project CI / Frontend tests (pull_request) Successful in 2m16s
Project CI / Repository checks (pull_request) Failing after 18s
Project CI / AI game creator shell web tests (pull_request) Successful in 2m34s
Project CI / Native shell tests (pull_request) Successful in 6m45s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 14m9s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 14m23s
8433334af5
# Conflicts:
#	docs/project-memory/shared-memory/pitfalls.md
suzmii added 1 commit 2026-10-02 14:14:55 +08:00
Merge branch 'master' into feat/dev-all
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Failing after 2m43s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Failing after 1m36s
Project CI / AI game creator shell Rust smoke (pull_request) Failing after 1m16s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m46s
Project CI / Frontend tests (pull_request) Successful in 2m40s
Project CI / Repository checks (pull_request) Successful in 3m23s
Project CI / Native shell tests (pull_request) Failing after 4m27s
Project CI / Backend tests (pull_request) Has been cancelled
Project CI / AI game creator shell web tests (pull_request) Has been cancelled
7483c894ff
suzmii added 2 commits 2026-10-02 14:24:29 +08:00
# Conflicts:
#	docs/project-memory/shared-memory/pitfalls.md
合并远端 PR 分支更新
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Failing after 1m34s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Failing after 2m19s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m42s
Project CI / AI game creator shell Rust smoke (pull_request) Failing after 1m46s
Project CI / Frontend tests (pull_request) Successful in 2m33s
Project CI / Native shell tests (pull_request) Failing after 4m5s
Project CI / Repository checks (pull_request) Successful in 3m18s
Project CI / Backend tests (pull_request) Successful in 5m44s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m58s
6a4233ee88
Author
Member

CI 失败归因

结论:本次 CI 失败与本 PR 的 dev:all 改动无关,本 PR 不处理该 Rust 编译问题。

证据

  • CI run:#3201
  • 失败任务:
    • AI game creator shell Rust lane 1/2
    • AI game creator shell Rust lane 2/2
    • AI game creator shell Rust smoke
  • 失败提交:6a4233ee88aefe4cf81389d236dd6320a054c4c8
  • 失败位置:
    • apps/ai-game-creator-shell/src-tauri/src/agent/direct_runtime/mod.rs
    • apps/ai-game-creator-shell/src-tauri/src/agent/thread_manager/dispatch.rs
  • 编译错误:
    • cannot find function append_application_log in the crate root
    • borrow of moved value: turn_id

本 PR 相对 origin/master 的变更仅涉及 scripts/dev-all.mjs、scripts/dev-all.test.ts、package.json、开发文档和共享记忆,没有修改上述 Rust 文件。相同 run 中 AI game creator shell Rust crates 已通过,失败发生在 AGC 主壳代码的编译阶段。

处理决定

该失败应由引入对应 Rust 变更的 master/相关 PR 处理。本 PR 保持当前代码,不为无关 CI 错误添加修复。

## CI 失败归因 结论:本次 CI 失败与本 PR 的 `dev:all` 改动无关,本 PR 不处理该 Rust 编译问题。 ### 证据 - CI run:`#3201` - 失败任务: - `AI game creator shell Rust lane 1/2` - `AI game creator shell Rust lane 2/2` - `AI game creator shell Rust smoke` - 失败提交:`6a4233ee88aefe4cf81389d236dd6320a054c4c8` - 失败位置: - `apps/ai-game-creator-shell/src-tauri/src/agent/direct_runtime/mod.rs` - `apps/ai-game-creator-shell/src-tauri/src/agent/thread_manager/dispatch.rs` - 编译错误: - `cannot find function append_application_log in the crate root` - `borrow of moved value: turn_id` 本 PR 相对 `origin/master` 的变更仅涉及 `scripts/dev-all.mjs`、`scripts/dev-all.test.ts`、`package.json`、开发文档和共享记忆,没有修改上述 Rust 文件。相同 run 中 `AI game creator shell Rust crates` 已通过,失败发生在 AGC 主壳代码的编译阶段。 ### 处理决定 该失败应由引入对应 Rust 变更的 master/相关 PR 处理。本 PR 保持当前代码,不为无关 CI 错误添加修复。
suzmii merged commit 41f0c7aac3 into master 2026-10-02 14:46:21 +08:00
suzmii deleted branch feat/dev-all 2026-10-02 14:46:21 +08:00
Sign in to join this conversation.