Vally 0.12.0
Released on 2026-07-30.
Breaking
vally evalno longer statically validates executor names: theunknown-executorlint check was removed, and unknown executors now fail at runtime with an “available executors” error. (#812)environment.gitblocks are now validated at load time for every environment (including named environments not referenced by an eval), so specs with unknown or invalid nestedgitfields that previously loaded silently now fail. (#811)
Features
- New OpenTelemetry CLI usage telemetry emits one PII-safe span per command; it is on by default and can be disabled via
VALLY_TELEMETRY_OPTOUTorDO_NOT_TRACK. (#755) - New
--executor <name>flag onvally evaloverridesdefaults.executorfor every eval in the run. (#812) - The
diff-contains,diff-not-contains, anddiff-emptygraders now support 0-basedturn:scoping for multi-turn stimuli. (#814) - The
max-repeatandloop-outcomegraders gain opt-in periodic loop detection viamax_cycle_period(default1, up to10). (#771)
Fixed
vally servenow waits for a genuinelisteningevent, so bind failures such asEADDRINUSEsurface as a clean error instead of crashing after a misleading “listening” log. (#802)- A Claude CLI hard timeout is no longer misreported as a launch failure, preserving the captured partial output. (#780)
- File graders now match dotfiles (e.g.
.gitignore, files under.github/) and report an indeterminate failure on unreadable candidates instead of a false pass. (#796) --verboseagain shows the Agent Output section for failing trials in multi-trial runs. (#775)