test(pi): measure crash convergence before OS forensics

This commit is contained in:
2026-08-25 11:55:20 +08:00
parent 21d1e5403f
commit 764c7b8c9c

View File

@@ -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 };
}