diff --git a/electron/coding-runtime/pi/release-proof.ts b/electron/coding-runtime/pi/release-proof.ts index 9c30b09..31476cd 100644 --- a/electron/coding-runtime/pi/release-proof.ts +++ b/electron/coding-runtime/pi/release-proof.ts @@ -1588,15 +1588,22 @@ export async function injectFinalAsarResilienceFailure( run.targetConversationId, failure, ); - const status = await waitForResilienceStatus( - (candidate) => candidate.target.workerStatus === 'error' - && candidate.target.workerGeneration === injected.generation, - 'Injected Pi worker failure did not reach the target Conversation', - ); + const deadline = Date.now() + 2_000; + let target = await run.composition.conversations.getSnapshot(run.targetConversationId); + while (Date.now() < deadline && ( + target.worker.status !== 'error' + || target.cursor.workerGeneration !== injected.generation + )) { + await delay(10); + target = await run.composition.conversations.getSnapshot(run.targetConversationId); + } const terminalizationMs = Date.now() - startedAt; - if (terminalizationMs > 2_000) { + if (target.worker.status !== 'error' + || target.cursor.workerGeneration !== injected.generation + || terminalizationMs > 2_000) { throw new Error(`Injected Pi worker failure exceeded the 2s convergence bound: ${terminalizationMs}ms`); } + const status = await getFinalAsarResilienceStatus(); return { ...injected, terminalizationMs, status }; }