From a8dfd65b4b754370b5837880b50ea2a5d6e46b50 Mon Sep 17 00:00:00 2001 From: Miya Date: Wed, 26 Aug 2026 12:17:34 +0200 Subject: [PATCH] fix(ci): preserve proof timeout evidence Session-Id: 01a03d75-2261-7e60-911e-7dd3188d648b --- tests/fixtures/pr-proof-contract.test.ts | 2 ++ workflows/pr-proof.ts | 5 ++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/tests/fixtures/pr-proof-contract.test.ts b/tests/fixtures/pr-proof-contract.test.ts index 9a1ced05c..966f1aebc 100644 --- a/tests/fixtures/pr-proof-contract.test.ts +++ b/tests/fixtures/pr-proof-contract.test.ts @@ -718,6 +718,8 @@ describe('trusted dispatcher source contract', () => { expect(source).toContain('PR_PROOF_ARM_COMPLETE arm=head'); expect(source).toContain('--source cloud'); expect(source).toContain("result.status !== 'completed'"); + expect(source).toContain('.timeout(2_700_000)'); + expect(source).not.toContain('.timeout(3_600_000)'); }); it('records the per-step Cloud sandbox id instead of the orchestrator id', async () => { diff --git a/workflows/pr-proof.ts b/workflows/pr-proof.ts index 4664d76af..7e89f3cc3 100644 --- a/workflows/pr-proof.ts +++ b/workflows/pr-proof.ts @@ -27,7 +27,10 @@ const result = await workflow('relay-pr-proof') // of RelayFlow's default repair-agent retries so no agent can edit the // harness or artifacts after a gate rejects them. .onError('fail-fast') - .timeout(3_600_000) + // Finish inside the dispatcher's 60-minute polling deadline so Cloud can + // persist terminal step state and retain its sandbox for diagnostics before + // the GitHub runner issues an external cancellation. + .timeout(2_700_000) .agent('base-prover', { cli: 'codex', preset: 'worker',