Repository navigation
Conversation
A task may set check_timeout_s, a whole number of seconds from 1 to 3600, to replace the fixed 60 s CHECK_TIMEOUT_S for its executed check. Without the field nothing changes. Invalid values (0, negative, above 3600, decimals, strings such as "90", bools, null) fail manifest loading with the task key, so lint, run, --baseline and --dry-run all refuse the manifest. The effective value is used by Verifier._run_check, named in the timeout message, recorded in the run-state task record next to timeout_s and shown in --dry-run. Co-Authored-By: Claude Opus 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_01F74VKWWyJNxArUTPPaiBpb
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Checks that do real work were failing on the fixed 60-second check timeout, not on the work.
We run each executed check inside a container/VM launcher, so the 60 s also covers starting the sandbox and waiting
for a free slot. Multi-suite checks were taking about 54 s. One of them went over 60 s after a correct worker run:
the task failed, we re-checked it by hand, and the run was voided on our scoreboard. Workers already have a per-task
timeout_s; checks had no equivalent.What this adds
An optional task field,
check_timeout_s:CHECK_TIMEOUT_S(60) applies exactly as today, so existingmanifests are unchanged.
0, negatives,3601,90.0,2.5,"90",trueornull. Solint,run,--baselineand--dry-runall refuse the manifest. A bool isrejected even though it is an
intsubclass.Verifier._run_checkuses the task's effective value; the process-group termination path is unchanged.The timeout message names the value (
check timed out after <n>s).timeout_sand shown in the--dry-runlisting.TaskSpec.check_timeout_sdefaults toNone, and theeffective_check_timeout_sproperty reads themodule constant at call time, so tests (and anyone patching the default) see the current value.
The README task-field table gains one row.
Tests
tests/test_check_timeout.py(9 tests, about 4 s), stdlibunittest, withRINGER_NO_SELF_UPDATE=1for the CLIcases:
default is read at run time)
check_timeout_s: 1stops a 5 s check, and the message says1sManifest.from_objrefuses a bad task--dry-runshowscheck_timeout_s: 45andcheck_timeout_s: 60lintexits non-zero on"90"Full suite: 278 tests OK locally on macOS with Python 3.12.
Notes
timeout_s, if you prefer.120, 180 and 240 s. If it lands, we drop the patch.
🤖 Generated with Claude Code
https://claude.ai/code/session_01F74VKWWyJNxArUTPPaiBpb