Skip to content

Commit 2af834e

Browse files
mchwangclaude
andcommitted
Live probes limit counts agent-planning's probe and teardown; clearer missing-record failures (#189)
Review round 53: the comment counted four probes, before #193 added agent-planning's; with its 11-minute probe and 2-minute teardown the limits total 90 minutes plus setup, so the job limit rises to 100 (pinned in vitest-config); the refused-network and refused-proxy tests say so when their shim recorded nothing. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
1 parent 582f786 commit 2af834e

3 files changed

Lines changed: 11 additions & 8 deletions

File tree

‎.github/workflows/live-probes.yml‎

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,14 @@ concurrency:
1313
jobs:
1414
live-probes:
1515
runs-on: ubuntu-latest
16-
# The probes' own time limits total 33 min (6, 8, 8 and 11). agent-container and agent-supervisor may each spend
17-
# up to 10 min building the image before their probes; agent-question builds inside its probe's own 11 min. The
18-
# teardown hooks have Vitest limits that total 24 min: agent-container 2 after each test and 13 at the end (two
19-
# sweeps of up to 5.5 min each, #189), agent-supervisor 7 and agent-question 2. That is 77 min, plus setup. These
20-
# are only Vitest's limits: Vitest's hook timer cannot fire while a synchronous docker call blocks, and some calls in
21-
# these hooks have no timeout of their own (the sweeps' calls have 30 s each). The 90 min job limit caps the run.
22-
timeout-minutes: 90
16+
# The probes' own time limits total 44 min (6, 8, 8, 11 and 11). agent-container and agent-supervisor may each spend
17+
# up to 10 min building the image before their probes; agent-question and agent-planning build inside their probes'
18+
# own 11 min. The teardown hooks have Vitest limits that total 26 min: agent-container 2 after each test and 13 at
19+
# the end (two sweeps of up to 5.5 min each, #189), agent-supervisor 7, agent-question 2 and agent-planning 2. That
20+
# is 90 min, plus setup. These are only Vitest's limits: Vitest's hook timer cannot fire while a synchronous docker
21+
# call blocks, and some calls in these hooks have no timeout of their own (the sweeps' calls have 30 s each). The
22+
# 100 min job limit caps the run.
23+
timeout-minutes: 100
2324
steps:
2425
# Fail at once when the secret is missing, so a missing secret never looks like a passing run.
2526
- name: Require the Claude token

‎test/agent-network.test.ts‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,7 @@ describe('vendor-only egress', () => {
143143
expect(error).toBeInstanceOf(Error);
144144
expect(error).not.toBeInstanceOf(VendorNetworkCreationCleanupError);
145145
expect(String(error)).toMatch(/already exists/);
146+
expect(foreign, 'the shim recorded no foreign network').not.toBe('');
146147
expect(survived).toBe(true);
147148
}, 60_000);
148149

@@ -199,6 +200,7 @@ describe('vendor-only egress', () => {
199200
expect(error).toBeInstanceOf(Error);
200201
expect(error).not.toBeInstanceOf(VendorNetworkCreationCleanupError);
201202
expect(String(error)).toMatch(/already in use|Conflict/);
203+
expect(foreign, 'the shim recorded no foreign proxy').not.toBe('');
202204
expect(survived).toBe(true);
203205
}, 60_000);
204206

‎test/vitest-config.test.ts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -317,7 +317,7 @@ describe('CI workflows', () => {
317317
const job = live.jobs['live-probes']!;
318318
// No `defaults`, `env`, `strategy` or `container`: any of them could change what the steps run.
319319
expect(Object.keys(job).toSorted()).toEqual(['runs-on', 'steps', 'timeout-minutes']);
320-
expect(job).toMatchObject({ 'runs-on': 'ubuntu-latest', 'timeout-minutes': 90 });
320+
expect(job).toMatchObject({ 'runs-on': 'ubuntu-latest', 'timeout-minutes': 100 });
321321
const token = { CLAUDE_CODE_OAUTH_TOKEN: '${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}' };
322322
expect(job.steps.map(step => Object.keys(step).toSorted())).toEqual([['env', 'name', 'run'], ['uses'], ['uses', 'with'],
323323
['run'], ['env', 'name', 'run'], ['name', 'run']]);

0 commit comments

Comments
 (0)