Skip to content

Fix run-env, which failed on every clean install - #3

Merged
aaygan29 merged 1 commit into
mainfrom
fix/run-env-generate-config
Aug 10, 2026
Merged

Fix run-env, which failed on every clean install#3
aaygan29 merged 1 commit into
mainfrom
fix/run-env-generate-config

Conversation

@aaygan29

Copy link
Copy Markdown
Owner

The bug

aimpoint run-env raised a pydantic ValidationError before running a single sample, on
every clean install. It is the repository's main entry point, so a fresh clone could validate
environments and pass its tests but could not actually run an eval.

Inspect's eval() has no config parameter. It forwards unknown keywords into
GenerateConfig(**kwargs), so config=GenerateConfig(seed=...) became
GenerateConfig(config=...) and failed immediately. Generation settings go in as keyword
arguments.

Why nothing caught it

The suite was green the whole time. Every test drove inspect_eval directly, so nothing
covered run, the one function the CLI calls. A suite that reaches past its own entry point
can be entirely green on a product nobody can start.

tests/test_runner.py now exercises run the way the CLI does, checks the run card
serialises, and pins the rule that a single replicate suppresses the headline.

Dependency floor

Raised to the version this is verified against. The keyword form and the config object form
are not compatible, so the previous floor of 0.3.130 advertised support that could not have
worked with this call.

Verification

Cloned fresh from this branch, uv sync, then:

uv run aimpoint run-env --env safety_judgment --model mockllm/model --replicates 1 --limit 2

Completes, computes all four baselines, writes a run card, and correctly suppresses the
headline with only 1 replicate(s); headline suppressed.

`aimpoint run-env` raised a pydantic ValidationError before running a
single sample. Inspect's `eval()` has no `config` parameter and forwards
unknown keywords into `GenerateConfig(**kwargs)`, so passing
`config=GenerateConfig(seed=...)` became `GenerateConfig(config=...)` and
failed immediately. Generation settings go in as keyword arguments.

The whole suite was green throughout. Every test drove `inspect_eval`
directly, so nothing covered the one function the CLI calls, and a suite
that reaches past its own entry point can be entirely green on a product
nobody can start. tests/test_runner.py now exercises `run` the way the CLI
does, checks the run card serialises, and pins the rule that a single
replicate suppresses the headline.

Also raises the inspect-ai floor to the version this is verified against.
The keyword and `config` object forms are not compatible, so the old floor
of 0.3.130 advertised support that could not have worked.
@aaygan29
aaygan29 merged commit 758bb5e into main Aug 10, 2026
3 checks passed
@aaygan29
aaygan29 deleted the fix/run-env-generate-config branch August 10, 2026 19:35
aaygan29 added a commit that referenced this pull request Aug 10, 2026
`aimpoint run-env` raised a pydantic ValidationError before running a
single sample. Inspect's `eval()` has no `config` parameter and forwards
unknown keywords into `GenerateConfig(**kwargs)`, so passing
`config=GenerateConfig(seed=...)` became `GenerateConfig(config=...)` and
failed immediately. Generation settings go in as keyword arguments.

The whole suite was green throughout. Every test drove `inspect_eval`
directly, so nothing covered the one function the CLI calls, and a suite
that reaches past its own entry point can be entirely green on a product
nobody can start. tests/test_runner.py now exercises `run` the way the CLI
does, checks the run card serialises, and pins the rule that a single
replicate suppresses the headline.

Also raises the inspect-ai floor to the version this is verified against.
The keyword and `config` object forms are not compatible, so the old floor
of 0.3.130 advertised support that could not have worked.

Co-authored-by: Aayush Gandhi <aayushgandhi@Aayushs-MacBook-Air.local>
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