Skip to content

Reproducible compiled tasks, target-model routing, and benchmark documentation clean-up - #89

Merged
varunursekar merged 8 commits into
rebuttal-prepfrom
rebuttal-freeze
Sep 13, 2026
Merged

varunursekar merged 8 commits into
rebuttal-prepfrom
rebuttal-freeze

Conversation

@varunursekar

@varunursekar varunursekar commented Sep 13, 2026

Copy link
Copy Markdown
Collaborator

Summary

Stacked on #88. Makes a compiled optimization task reproducible and verifiable, and finishes the documentation clean-up.

  • Deterministic compile. Nothing run-specific is written into a compiled task. The three gateway scope tokens and the producer allow-list arrive by environment variables that vero harbor run sets per launch; the gateway and sidecar read them once at start. The baseline commit carries a fixed date, so two compiles of one config are byte-identical.
  • Manifests. vero harbor build --manifest records a SHA-256 manifest of the compiled task; --check recompiles and fails on drift. One manifest is committed per reported benchmark.
  • vero_requirement. A build may pin a published scaleapi-vero==<version> so the images install it instead of copying the source tree. Unset for now; the pin must equal the compiling version.
  • Target-model routing. Target models are named without a provider prefix; each build maps the name to a deployment through model_aliases on the evaluation scope, overridable with --param target_model_route=. The Terminal-Bench variant becomes build.routed.yaml with the optimizer route as a parameter.
  • inner_env is required, and rescore_candidate.py understands required parameters and applies the same target routing.
  • Docs and build files rewritten in plain language: READMEs, CONFIGURATION.md (including a section on compiled tasks), the runbook, and comments in every build file.
  • A small GAIA variant (build.shell.e2e.yaml, eight cases, 25-minute optimizer clock) exercises the whole trial in under an hour. Its score is not a result.

Verification

  • 184 tests pass across the affected files, including new tests for the deterministic compile, environment-resolved tokens, vero_requirement, and the sandbox-flag plumbing.
  • All builds compile; manifests reproduce with --check --param inner_env=modal.
  • The e2e variant ran live: optimizer stopped by its clock, verifier scored the submitted candidate, error block empty, both session archives present, W&B run finished with producer, evaluation and finalization counters.

🤖 Generated with Claude Code

RetriggerConfidence Score: 5/5

The PR appears safe to merge; no outstanding or newly introduced actionable failures remain.

Summary

  • Updates the compiled environment/vero/ checksum consistently across GAIA, OfficeQA, BrowseComp-Plus, and Terminal-Bench.
  • Updates each manifest’s informational source-commit metadata.
  • All previous findings are resolved, and no new actionable issue was identified.

Reviews (3) · Last reviewed commit: "Address review findings on the compiled-..."

Comment thread vero/src/vero/harbor/build/config.py
Comment thread harness-opt-bench/gaia/baseline/compiled.manifest.json Outdated
Comment thread harness-opt-bench/scripts/rescore_candidate.py
Comment thread harness-opt-bench/archive/swe-atlas-qna/baseline/build.yaml
varunursekar and others added 8 commits September 12, 2026 19:47
Nothing per-run is baked any more. The three scope tokens and the producer
allow-list arrive by environment (VERO_PRODUCER_TOKEN, VERO_EVALUATION_TOKEN,
VERO_FINALIZATION_TOKEN, VERO_PRODUCER_SCOPE): vero harbor run mints or
chooses them per launch, task.toml passes them to compose like secrets, and
the gateway and sidecar read them once at container start, so a later change
to the launcher's environment cannot move a running gateway's allowances.
The baseline commit is stamped with a fixed date so its hash depends on the
seed alone. Two compiles of one config are now byte-identical.

vero harbor build --manifest writes a SHA-256 manifest (one hash each for the
task-data and vero-source subtrees); --check recompiles and fails on drift.
A compiled.manifest.json is committed for every baseline that compiles.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
New build field vero_requirement (an exact pin such as scaleapi-vero==0.6.0).
When set, the compiler skips the source copy and both images install that
requirement with the extras each needs; the compiled task then holds no vero
and is small enough to commit (GAIA shell: 1.5 MB against 6.4 MB). The pin
must equal the vero doing the compiling, since the images read the configs it
wrote; a mismatch is refused at compile time.

Unset everywhere for now: 0.5.0 on PyPI predates this branch's gateway and
outer-limit changes, so a task compiled against it would not start. The GAIA
yamls carry the line commented out with that explanation. Manifests are
regenerated after the rebase onto the renamed package.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Harbor hands the Modal SDK no environment name, so sandboxes went to the
workspace default (main), where every cell before 2026-09 ran. Declaring
MODAL_ENVIRONMENT among each build's secrets carries it to the launcher and
the sidecar alike; the env files set it to enterprise. Manifests regenerated
for the extra task.toml line.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
build.shell.e2e.yaml is build.shell.yaml with partitions-e2e (2/3/3 cases),
six-run budgets, rescore_top_k 1, and optimizer_agent_timeout_seconds 1500,
so a trial reaches finalization inside an hour. It exercises compile, tokens,
evaluations, the agent clock handing over to the verifier, and the session
archive after a vero change. Its score is never reported.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…2e yaml comment

A plain-language section covering deterministic compiles, the committed
manifests and --check, per-run inputs arriving through the environment, and
the vero_requirement pin.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Build files, READMEs and the runbook are rewritten in plain language. The
evaluation environment is a required parameter (inner_env), target models are
named without a provider prefix and mapped to a deployment through the
evaluation scope's model_aliases (target_model_route), and the Terminal-Bench
variant becomes build.routed.yaml with the route as a parameter.

Kept as they were: the harbor extra the evaluation environment needs (now
overridable), the secrets list and optional telemetry block, and the sandbox
options that group and reclaim evaluation sandboxes. rescore_candidate.py
learns the required-parameter placeholder and applies the same target
routing. Manifests regenerated with inner_env=modal.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
The seven build files repeated the same twenty comment lines. Their meaning
now lives in a Deployment settings section, and each build file keeps a
pointer plus the notes specific to its benchmark.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
vero_requirement accepts only an exact pin of the VeRO distribution, and the
compiler refuses a pin it cannot check against the installed version.
rescore_candidate.py resolves build parameters from --param and then the
environment, as the build loader does. The archived builds get back the
sandbox options the rewrite dropped, including the keepalive the SWE-Atlas
images need. One generic comment left in the GAIA builds is removed.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@varunursekar
varunursekar merged commit 5ff3907 into rebuttal-prep Sep 13, 2026
7 of 11 checks passed
@varunursekar
varunursekar deleted the rebuttal-freeze branch September 13, 2026 03:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant