From 58f97eaf07de6f952f1d52e783fcee93e7898501 Mon Sep 17 00:00:00 2001 From: Codex Bot Date: Wed, 11 Nov 2026 15:28:25 +0800 Subject: [PATCH] test(canvas): report unresolved AI admission recovery --- tests/headless/foundry-ai.integration.mjs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tests/headless/foundry-ai.integration.mjs b/tests/headless/foundry-ai.integration.mjs index 6ed7324..222f780 100644 --- a/tests/headless/foundry-ai.integration.mjs +++ b/tests/headless/foundry-ai.integration.mjs @@ -23,7 +23,9 @@ export async function verifyFoundryAI({open,transport,rootId,imageId,assets,call assert.equal(admission.phase,'waiting');const admissionCount=posts('/ai/runs').length; await reopen();assert.equal(posts('/ai/runs').length,admissionCount);assert.equal(engine.getSnapshot().runtime.ledger.requests.get(admission.id).body,admission.body); assert.ok(calls.some(call=>call.method==='GET'&&call.path.endsWith('/ai/operations/'+admission.id))); - const firstRun=byOperation(first.operationIds[0]);assert.equal(firstRun.status,'queued'); + const recovered=engine.getSnapshot().runtime.ledger.requests.get(admission.id); + assert.equal(recovered.phase,'resolved','AI admission recovery: '+JSON.stringify({phase:recovered.phase,error:recovered.error,receipt:engine.getSnapshot().runtime.receipts.get(admission.id)})); + const firstRun=byOperation(first.operationIds[0]);assert.ok(firstRun,'resolved admission must publish a RunRecord');assert.equal(firstRun.status,'queued'); assert.equal(engine.editor.dispatch({type:'element.geometry',target,patch:{x:77}}).status,'applied');await engine.settle(); await control('execute');await poll(); assert.equal(engine.getSnapshot().runtime.runs.get(firstRun.id).status,'succeeded');