Vally 0.4.0
Released on 2026-05-04.
Breaking
- Node.js minimum version is now
>=22. constraints.max_duration_msrenamed toconstraints.max_duration. Accepts duration strings (e.g."2m").- Duration fields (
config.timeout, gradertimeout, MCPtimeout,constraints.max_duration, CLI--timeout) now require a unit suffix (e.g.5m,30s,500ms). Bare numbers are no longer accepted.
Features
- Grade Copilot CLI output produced outside of vally (#212)
- Preserve executor session logs (#203)
- Add captured stdout and stderr to the result json files (#263)
- Add metric-threshold graders:
token-budget,tool-call-count,turn-count,error-count,wall-time— check trajectory metrics against configurablemaxthresholds in eval.yaml. - Human-friendly duration support: timeout fields now accept duration strings like
5m,30s,500ms,2hwith a required unit suffix. Applies to eval configtimeout, gradertimeout(run-command, program), MCP servertimeout,constraints.max_duration, and CLI--timeout. NewparseDuration,isValidDuration,formatDurationutilities exported from@microsoft/vally(#264)
Changed
@github/copilot-sdkis now a required runtime dependency for core/CLI Copilot execution and LLM grading paths. (#258)- Clarify why –executor-plugin is repeatable (#261)
- Harbor: emit oracles for completed and exit-success graders (#208)
- Harbor: make dir names valid Docker image refs (#238)
- Update the install instructions now that we’re on public npm, and also make sure we test the doc site builds in CI (#252)