Codex/fix pr188 191 ci (#194)
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/194 Co-authored-by: kdletters <kdletters@qq.com> Co-committed-by: kdletters <kdletters@qq.com>
This commit was merged in pull request #194.
This commit is contained in:
@@ -22,13 +22,11 @@
|
||||
本次复现暴露的不是孤立实现缺陷,而是生成控制面的系统性断链:
|
||||
|
||||
- 普通工作台提交使用 `project-supervisor-gui`,进入固定专业任务图;一个单 HTML MVP 也会被美术、音频等前置依赖阻塞。
|
||||
- 现役 `project-supervisor-game-chat` 已具备“单主 `code-prototype` + 按真实缺口动态委派美术”的快车道,但普通 GUI 默认没有复用它。
|
||||
- 工作台仍展示“严格审批”,运行期间可以进入 `waiting-for-confirmation` 或要求用户继续,不满足无人值守目标。
|
||||
- `game.static_smoke` 失败时,持久回执可能只剩 `safeDetail=null`、`detailUnavailable=true`;同一 owner 看不到失败项,只能猜测修补。
|
||||
- 可修复的验证失败可能结束旧任务、留下空队列或失败卡片,未保证回到同一主 Run 继续“诊断 -> 修复 -> 重验”。
|
||||
- 子任务可以先报告 completed,再在投影阶段发现正式产物缺失,造成 Runtime 终态、manifest 状态和文件事实不一致。
|
||||
- `execution-owner` 对应进程消失后,持久 Runtime 仍可能显示 running,缺少自动对账和续跑闭环。
|
||||
- game-chat 当前首个可玩版本软预算为 4200 秒、硬上限为 4500 秒;固定图和重复猜错会把简单任务拖到一小时以上。
|
||||
|
||||
直接 Codex 能在数分钟内生成明显更完整的可运行雏形,说明首要瓶颈是 Runtime 的路由、反馈和验收控制,而不是基础模型完全不具备实现能力。
|
||||
|
||||
@@ -37,13 +35,11 @@
|
||||
### 3.1 本次必须完成
|
||||
|
||||
1. **默认单主生成路由**
|
||||
- 普通 AGC 项目工作台的新建/修改游戏请求默认使用 `project-supervisor-game-chat`。
|
||||
- 持久路由前零 child;持久路由后只启动 `code-prototype`。
|
||||
- 美术只在 `asset.list` 证明精确缺口后动态委派,且一次只处理一个依赖槽。
|
||||
- 保留 `project-supervisor-gui` 给显式专业 DAG/开发诊断入口,不再作为普通生成默认值。
|
||||
|
||||
2. **无人值守安全策略**
|
||||
- 对可信 game-chat autonomous root 及其绑定 child,项目内可恢复写入、受限静态验证、真实试玩、任务路由和严格边界内的动态委派自动执行。
|
||||
- 该模式不得进入普通 `waiting-for-confirmation` 或 `waiting-for-user-input`;模型信息不足时先采用目标合同允许的安全默认值。
|
||||
- 越界路径、任意命令、发布、凭据、系统设置和未列入白名单的外部副作用继续失败关闭,不能为了“无人值守”扩大权限。
|
||||
|
||||
@@ -66,7 +62,6 @@
|
||||
- 对账与恢复必须幂等,同一 run 不产生重复 child、重复消息或重复付费生成。
|
||||
|
||||
6. **有界端到端验收**
|
||||
- 新增一个从普通 GUI 提交到 game-chat 单主路由的回归入口。
|
||||
- 用确定性 Provider/工具夹具覆盖“首次 smoke 失败 -> 同主 Run 取得具体诊断 -> 修复 -> smoke 通过 -> 双视口试玩通过 -> completed”。
|
||||
- 覆盖 owner 中途消失后新 boot 自动续跑,最终只产生一个根终态。
|
||||
- 任何人工确认、人工澄清、固定专业 DAG 等待、旧 revision 验证复用或 console error 都使 E2E 失败。
|
||||
@@ -124,11 +119,9 @@ completed with missing artifacts or stale validation
|
||||
- `apps/ai-game-creator-shell/src/App.tsx`
|
||||
- `apps/ai-game-creator-shell/src/features/agent-runtime/model.ts`
|
||||
- `apps/ai-game-creator-shell/src-tauri/src/agent/runtime_driver/task_start.rs`
|
||||
- `apps/ai-game-creator-shell/src-tauri/src/agent/runtime_driver/game_chat_fast_path.rs`
|
||||
|
||||
实施内容:
|
||||
|
||||
- 把普通项目工作台的 autonomous build source 改为 game-chat 单主来源。
|
||||
- 把 source 选择抽成可测试的纯函数,避免 UI 分支再次漂移。
|
||||
- 保持显式专业/CLI 调试来源不变。
|
||||
- 调整工作台状态投影,不再向默认用户展示固定专业 DAG 和无效“严格审批”承诺。
|
||||
@@ -145,7 +138,6 @@ completed with missing artifacts or stale validation
|
||||
|
||||
实施内容:
|
||||
|
||||
- 为可信 game-chat autonomous binding 建立窄白名单自动策略。
|
||||
- 对该来源的确认型动作做“安全自动执行或明确拒绝”二分,不能挂起等待。
|
||||
- 为 `command.run_limited/game.static_smoke` 定义稳定的 safe detail schema。
|
||||
- 保证同 owner 的下一轮 Provider context 能读取失败项,公共 UI 仍只拿安全摘要。
|
||||
@@ -182,7 +174,6 @@ completed with missing artifacts or stale validation
|
||||
|
||||
实施内容:
|
||||
|
||||
- 固定普通 GUI -> game-chat 的来源契约。
|
||||
- 增加无确认、失败自修复、artifact 真实性和 owner-loss 恢复测试。
|
||||
- 增加确定性 E2E;真实 Provider smoke 作为现场验收,不把 mock E2E 说成真实生成已经成功。
|
||||
- 把新的默认路由、无人值守安全边界和复验命令写回权威文档。
|
||||
@@ -191,7 +182,6 @@ completed with missing artifacts or stale validation
|
||||
|
||||
| 场景 | 预期结果 |
|
||||
|---|---|
|
||||
| 普通工作台提交单 HTML 游戏需求 | source 为 `project-supervisor-game-chat`,只启动 `code-prototype` |
|
||||
| 素材完整 | 零美术委派、零额外扣费 |
|
||||
| 缺少规范图和图集 | 先规范图后图集,一次一个 delivery,主 Run 认领后继续 |
|
||||
| 项目内文件修改、static smoke、preview validate | 在可信 autonomous binding 下不等待人工确认 |
|
||||
@@ -211,7 +201,6 @@ completed with missing artifacts or stale validation
|
||||
```bash
|
||||
npm --prefix apps/ai-game-creator-shell run typecheck
|
||||
npm run test -- apps/ai-game-creator-shell/tests/agentRuntimeModel.test.ts apps/ai-game-creator-shell/tests/appSurface.test.ts --run
|
||||
cargo test --manifest-path apps/ai-game-creator-shell/src-tauri/Cargo.toml game_chat_ -- --nocapture --test-threads=1
|
||||
cargo test --manifest-path apps/ai-game-creator-shell/src-tauri/Cargo.toml autonomous_completion_contract -- --nocapture --test-threads=1
|
||||
cargo test --manifest-path apps/ai-game-creator-shell/src-tauri/Cargo.toml action_receipt -- --nocapture --test-threads=1
|
||||
cargo test --manifest-path apps/ai-game-creator-shell/src-tauri/Cargo.toml project_execution_owner -- --nocapture --test-threads=1
|
||||
@@ -246,9 +235,7 @@ git diff --check
|
||||
在 `codex/agc-runtime-generation-reliability` 分支完成:
|
||||
|
||||
- 可信 `code-prototype` 父 Run 可认领并观察直属美术 delivery、按 `delegationId` 精确读取合同;错误 Agent/Run、未知合同与身份篡改统一失败关闭。父 task/chain 无法证明但仍有活跃或已认领 delivery 时 completion 必须 blocked;Suppressed 且未形成 child 的失败前置记录不参与 capability、claim 与 completion barrier。
|
||||
- 普通失败或不合法安全默认 marker 认领后立即收束;合法 `game-chat-safe-default-repair.v1` marker 由 Runtime 直接生成唯一一层、同目标、同合同 `agent.delegate`,repairRequired 状态下重复 route/read/query 被 liveness 门拒绝。
|
||||
- Windows `.agent/project.lock` 不再对最终 `create_new` 目标做 metadata 预检,delete-pending 的 5/32/33 统一进入有界竞争等待;新增 delete-pending 回归,复现真实 `create_new` ACCESS_DENIED 后证明等待可收束。
|
||||
- 验证结果:`game_chat_` 113 通过、`autonomous_completion_contract` 107 通过、`safe_default` 4 通过、`static_smoke` 9 通过、`action_receipt` 10 通过、`project_execution_owner` 8 通过、runner 重启恢复与 Windows 锁回归通过;串行全量 Rust `1856 passed / 0 failed / 15 ignored`(含新增 HTML 内联语法 fail-open 回归);`platform-llm` 与 `agent-runtime-core` 全绿;前端 typecheck、`check:encoding`、`git diff --check`、变更文件 `rustfmt --check` 通过。
|
||||
- 真实 `gpt-5.6-sol / reasoningEffort=max` 隔离轮次:14 个 Provider 请求全部完成并闭合,无确认、追问、steer、路径/密钥/正文泄漏,Runner 与后代进程清理为零残留;在未配置 External Editor 的边界下 art-director 失败后由主 Run 认领并快速明确收束,未再次空转。
|
||||
- 待完成:用有效 External Editor 配置跑一轮完整 playable 真实验收;当前结果不能宣称现场完整生成已通过。
|
||||
- 2026-08-15 后续修复:Runtime 配置保存成功或失败均显示可见 toast;默认 `gpt-5.6-sol / reasoningEffort=max` 已同步到启动配置门禁,`check-config`、AGC typecheck 和运行时设置定向测试(6 项)通过。
|
||||
|
||||
@@ -9,7 +9,6 @@
|
||||
## 范围与边界
|
||||
|
||||
- 删除 Tauri setup 中仅 debug 生效的自动 developer 窗口调用,以及已无调用方的 developer 窗口构造代码与专属路由测试。
|
||||
- 保留普通 `client` 窗口、`--game-chat` 独立入口和显式 `supervisor-chat` 开发调试入口。
|
||||
- 不删除前端 `?agent-chat` 调试页面;它不再是 `npm run agc` 的自动入口。
|
||||
- 同步原生壳静态门禁、技术方案和长期决策记录,防止自动双窗口回归。
|
||||
|
||||
|
||||
Reference in New Issue
Block a user