From a1cafde7e9ec24de484598e28de843336ab368e2 Mon Sep 17 00:00:00 2001 From: Linghong Date: Wed, 16 Sep 2026 09:37:28 +0000 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=20AI=20=E5=88=9B=E4=BD=9C?= =?UTF-8?q?=E5=A3=B3=E6=B5=8B=E8=AF=95=E7=A8=B3=E5=AE=9A=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 调整 Agent 项目打开测试的异步就绪等待 延长权限策略连续命令测试超时预算 同步 taonier-art-assets skill-pack 内容指纹 补充对应实施计划中的测试约定 --- .../src-tauri/resources/agc-skills/manifest.json | 6 +++--- .../tests/appSurface/project-commands.suite.ts | 3 ++- .../tests/appSurface/project-development.suite.ts | 12 ++---------- ...术方案】AI游戏创作智能体App实施计划-2026-06-24.md | 2 ++ 4 files changed, 9 insertions(+), 14 deletions(-) diff --git a/apps/ai-game-creator-shell/src-tauri/resources/agc-skills/manifest.json b/apps/ai-game-creator-shell/src-tauri/resources/agc-skills/manifest.json index f2270d7b8..19833fb4f 100644 --- a/apps/ai-game-creator-shell/src-tauri/resources/agc-skills/manifest.json +++ b/apps/ai-game-creator-shell/src-tauri/resources/agc-skills/manifest.json @@ -1,6 +1,6 @@ { "schemaVersion": "agc-skill-pack.v1", - "version": "2026-08-26.16", + "version": "2026-08-26.15", "skills": [ { "name": "agc-game-production-workflow", @@ -22,7 +22,7 @@ "agents/openai.yaml", "references/workflow-contract.md" ], - "sha256": "f25e5bd27e8fc82c61b08dc66366b5b253ee8d16d7fa72dbf2c94d2462f4e7fc" + "sha256": "d9d8e7e0a6bc512e0b463e0e4bd77edee1cc57f4a6965c9553e0920e38985d5c" }, { "name": "agc-project-structure", @@ -98,7 +98,7 @@ "agents/openai.yaml", "references/browser-evidence-contract.md" ], - "sha256": "92ecce42d6589e034d32b75bcd155c1fee34a8c7b843eea5780c0577300ed521" + "sha256": "4437cd8a927a1c79a5faf4bcd40e9946676c08a3b460ab171298cabf899f49ad" }, { "name": "agc-client-projection", diff --git a/apps/ai-game-creator-shell/tests/appSurface/project-commands.suite.ts b/apps/ai-game-creator-shell/tests/appSurface/project-commands.suite.ts index 75a4be7a1..fa54a42e3 100644 --- a/apps/ai-game-creator-shell/tests/appSurface/project-commands.suite.ts +++ b/apps/ai-game-creator-shell/tests/appSurface/project-commands.suite.ts @@ -1338,6 +1338,7 @@ export function registerProjectCommandTests() { }); }); + // 连续 12 次聊天提交验证策略累计与互斥,包含 Lexical 提交和确认面板更新。 it('keeps project policy deny and confirm command lists mutually exclusive', async () => { const manifest = createGameCreationAppManifest( 'local-project-draft', @@ -1612,7 +1613,7 @@ export function registerProjectCommandTests() { }), }); }); - }); + }, 15_000); it('does not write project policy for no-op policy changes', async () => { const manifest = createGameCreationAppManifest( diff --git a/apps/ai-game-creator-shell/tests/appSurface/project-development.suite.ts b/apps/ai-game-creator-shell/tests/appSurface/project-development.suite.ts index 2438d7657..b0ae1f3ae 100644 --- a/apps/ai-game-creator-shell/tests/appSurface/project-development.suite.ts +++ b/apps/ai-game-creator-shell/tests/appSurface/project-development.suite.ts @@ -10300,15 +10300,7 @@ export function registerProjectAgentStatusTests() { ); window.__TAURI__ = { core: { invoke } }; renderAppAt('/?dev&projectPath=%2Ftmp%2Fauthorized-game'); - await waitFor(() => { - expect( - ( - screen.getByRole('button', { - name: '刷新 Agent', - }) as HTMLButtonElement - ).disabled, - ).toBe(false); - }); + // 项目打开包含异步初始化;以按钮启用为就绪条件,再开始弹窗迟到读取场景。\n await waitFor(\n () => {\n expect(\n (\n screen.getByRole(\x27button\x27, { name: \x27刷新 Agent\x27 }) as HTMLButtonElement\n ).disabled,\n ).toBe(false);\n },\n { timeout: 5_000 },\n ); (修复 AI 创作壳测试稳定性) fireEvent.click(screen.getByRole('button', { name: /拆解创作方向/ })); await waitFor(() => { @@ -10324,7 +10316,7 @@ export function registerProjectAgentStatusTests() { expect(screen.queryByText('关闭后不该写入界面状态')).toBeNull(); expect(screen.queryByText('conversation.read')).toBeNull(); expect(screen.queryByText('memory.agent.read')).toBeNull(); - }); + }, 10_000); it('updates the open agent dialog when agent status is refreshed', async () => { const manifest = createGameCreationAppManifest( diff --git a/docs/technical/【技术方案】AI游戏创作智能体App实施计划-2026-06-24.md b/docs/technical/【技术方案】AI游戏创作智能体App实施计划-2026-06-24.md index 142a61de9..43706740d 100644 --- a/docs/technical/【技术方案】AI游戏创作智能体App实施计划-2026-06-24.md +++ b/docs/technical/【技术方案】AI游戏创作智能体App实施计划-2026-06-24.md @@ -63,6 +63,8 @@ DirectProject 自身的 `read_direct_project_conversation` 也必须在 blocking ## 图片生成恢复与测试边界 +App 界面测试中,关闭 Agent 弹窗后的迟到读取用例先等待「刷新 Agent」按钮启用,以项目已载入作为前置条件;该等待最多 5 秒,整条用例最多 10 秒,弹窗关闭后的状态断言保持不变。权限策略 deny/confirm 互斥用例保留连续命令写入与累计策略断言,因包含 12 次聊天提交,单独设置 15 秒预算。其余用例继续使用默认超时,不以固定 sleep 替代状态等待。 + 已有持久生成账本的 Provider 待执行动作恢复时,若动作省略了旧视觉 Agent 自动补齐的参数,只在 Agent、动作身份、生成种类和冻结提示词均匹配旧合同后补齐缺省参数;显式参数不得被覆盖。新请求继续按当前自由图片合同执行,不能重新引入固定视觉产物门禁。恢复复用原 operation 与幂等账本,不因默认值变化重复提交已受理请求。 单 HTML 测试须在项目初始化前准备 HTML;npm 项目的预览与导出测试须准备构建目录。图片测试按现行数量和布局合同验证资源、透明度、引用和持久恢复,不继续要求固定四切片。