From 764c7b8c9c22c0cce96898c8761f10488554cc9d Mon Sep 17 00:00:00 2001 From: brother7 <7brother7@gmail.com> Date: Tue, 25 Aug 2026 11:55:20 +0800 Subject: [PATCH] test(pi): measure crash convergence before OS forensics --- electron/coding-runtime/pi/release-proof.ts | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) 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 }; }