Repository navigation
feat(coding-agent): harden benchmark artifact collection - #246
Merged
Merged
Conversation
Accept confined relative file links so Hugging Face caches do not fail otherwise successful trials. Preserve link identity through inventories and Harbor exports while rejecting unsafe and cross-trial targets.
Validate shutdown before bulk artifact transfer and retry transient evidence failures. Keep artifact errors verifier-eligible once shutdown is confirmed.
Keep task packages and caches on sandbox disk while retaining logs in isolated prefixes of one shared Daytona volume. Record every sandbox volume location for recovery after deletion.
Allow the bounded evidence retries to span the remote cleanup grace period after a lost response. Preserve precise artifact failure phases.
- Reclaim isolated volume prefixes after verification and local artifact validation. - Retain recovery data when execution, collection, or sandbox teardown is incomplete.
- Use checksum-pinned gzip Node archives to avoid XZ package 404s during benchmark setup. - Cover missing XZ and corrupt archives; verify installation on all 89 task images.
Pepps233
added this pull request to stack #248
September 24, 2026 14:52
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.
Summary
Separate shutdown verification from bulk artifact collection so a log-download timeout does not suppress the Terminal-Bench verifier after the agent has stopped.
Keep task packages and caches on sandbox disk while persisting logs and transcripts in a shared Daytona volume.
Automatically reclaim completed trial prefixes after verification and local artifact validation.
Reasoning
The completed 89 x 5 run had 55 errors, including 21 bulk-download timeouts classified as shutdown failures.
Eighteen of those trials later retained evidence that passes the current shutdown validator; exported state reached 3.5 GB in one trial.
The adapter now validates a small independent evidence bundle before downloading logs and continues to block verification when shutdown cannot be established.
Daytona recommends shared volumes with isolated subpaths and limits organizations to 100 volumes, so each sandbox gets a unique prefix in one project volume.
Completed trials release volume storage only after their remote files match retained local copies and all original sandboxes have been deleted.
Failed or incomplete trials retain remote recovery data, while zero-reward completed trials are eligible for cleanup.
The implementation follows the pinned SDK and Harbor interfaces and documents Tier 4 capacity and retention requirements using the volume and limits documentation.
Changes
/logs, wait for readiness, isolate sandbox subpaths, and retain all session recovery locations.--env daytona.--plugin diffex_terminal_bench.retention:VolumeCleanupPlugin.volume-cleanup.json; account for the extra sandbox creation within the existing worker slot.Testing
SingleStepTrialflow before the fix; the regression now reaches the verifier..venv/bin/python -m unittest discover -s tests -vpassed, followed by focused retention and recovery tests after final retry adjustments.node --test tests/launcher.test.cjs.harbor run --config full.yaml --plugin diffex_terminal_bench.retention:VolumeCleanupPlugin --print-config.npm run check../test.sh.Live Daytona and Docker smoke tests were not run: this session has no Daytona/provider credentials and Docker is not running.
The 445-trial evaluation was inspected, not rerun.