fix(sandbox): use the verifier-setup budget for hardening execs - #1062
Conversation
There was a problem hiding this comment.
🔍 Devin Review: 1 flag
Not posted on this PR by your GitHub settings — view it in Devin Review. (Configure)
|
This fixes the right thing in the right place: after this change no 10-second literal remains in lockdown.py (main had exactly five, all on the harden-before-verify path, all converted here), and reusing
No interaction with my #1046 (feat/ablate-cli): I don't touch lockdown.py and a trial merge in both directions is clean, so landing order between these two is free — happy to rebase whichever lands second. |
|
Thanks for the thorough verification. |
bingran-you
left a comment
There was a problem hiding this comment.
Validated at exact head 63a2ea9. All verifier-environment and hardening probes now use the owned setup budget, including plugin discovery, distro detection, and both process-kill passes; the 30-second best-effort cache reclaim remains intentionally separate. Exact-head focused tests are 100/100 and every required GitHub check is green. Full local suite, Ruff, ty, plus real-key gemini-3.1-pro-preview Docker and Daytona runs passed at reward 1.0; both trajectory artifacts validated healthy and training-ready. Ready to squash merge.
Description
Apply the canonical
VERIFIER_SETUP_TIMEOUT_SECbudget to every normal verifier hardening/setup probe: trustedPATHandPYTHONPATH, pytest-plugin discovery, distro detection, both sandbox-user process-kill passes, and the existing clear/prepare/freeze/cleanup commands.Motivation and Context
These helpers run once per rollout on the scoring path. Daytona dispatch latency can exceed the previous 5/10/15-second literals even for trivial commands; some helpers then silently fell back to an incomplete verifier environment, while another process-kill pass could wait for the transport hard cap. One owned 180-second ceiling avoids both failure modes without adding retries or changing normal-path latency.
Closes #1058.
Types of changes
Implemented Tasks
Validation
tests/test_sandbox_hardening.py: 100 passedtests/: 5933 passed, 48 skipped, 7 deselectedty check src/gemini-3.1-pro-previewDocker and Daytona E2E: reward 1.0 on both backends