github PrimeIntellect-ai/verifiers v0.3.1

9 hours ago

Highlights

  • Model interception. Primitives to inspect, rewrite, or stop canonical vf.Request and vf.Response boundaries with @vf.intercept and @vf.stop for live monitoring of agent rollouts. (#2164, #2165, #2166, #2229, #2178).
  • Persistent ACP sessions. Claude Code, Codex, Hermes, Kimi Code, OpenClaw, Pi, Pool, and RLM now use one live ACP session per rollout. Native conversation state remains intact across turns (#2291).
  • Configurable task hooks. Config can plug in stop conditions, metrics, and rewards from Python modules or files. Config entries can override decorated hooks and their priority, weight, or metadata (#2309, #2323).
  • Training-native episode and run artifacts. Episodes now carry task, group, run, policy, reference-logprob, and loss-weight data. Stable task keys, named run directories, exact config capture, and native Platform uploads make resume and training handoffs durable (#2278, #2357, #2358, #2409, #2429).
  • Runtime and serving improvements. Eval uses elastic env serving by default and propagates cancellation to workers. Prime sandboxes default to VM isolation and support unbounded lifetimes. (#2356, #2362, #2396, #2401, #2412, #2413, #2422, #2428).

Breaking

Legacy and environment packages

  • The v0 implementation moves under verifiers.legacy. Existing v0 imports remain aliased. The v1 bridge is removed, including vf.LegacyEnvConfig, EvalConfig.legacy, --legacy.id, init --v0, legacy serve routes, and row-indexed v1 resume. Use the vf-* entrypoints for v0 environments (#2303).
  • Example environment IDs drop the -v1 suffix. For example, use gsm8k instead of gsm8k-v1. These packages now require Python 3.11 or later (#2303).

Runtimes and serving

  • Prime VM is the default runtime. Eval and GEPA no longer default to subprocess. Validate and debug no longer default to Docker. Set the runtime explicitly to keep local execution, such as --env.agent.runtime.type subprocess for eval or --runtime.type docker for validate and debug (#2356).
  • Prime sandboxes no longer have a 24-hour hard lifetime. VM sandboxes and containers without an idle timeout can run indefinitely. Use idle_timeout or explicit deletion for cleanup (#2412, #2413).
  • Eval uses the env-server pool by default. The server boolean and --server flag are removed. Use --no-serve for in-process execution. run_eval now takes only the config, and run_eval_server is removed (#2422).
  • rich is now an optional config block. Replace --rich false with --no-rich. Run logs now live under logs/attempt_<n>/eval.log; use the logs/latest symlink (#2422).

Run configs and records

  • Run output uses output_dir / run.dir. The top-level uuid fields are removed. Use run.name, run.dir, and the process-created run.id. Resume is now a boolean flag on the saved config, not --resume <dir> (#2358).
  • Saved configs use separate launch and resolved paths. Launch TOML lives at configs/<cli>.toml. Resolved JSON lives at configs/resolved/<cli>.json. Resume and replay can still read the earlier configs/<cli>.json layout (#2429).
  • Episode records are the durable artifact. Episode.task is required. Run data moves from Trace.run to Episode.run. Bare-trace JSONL input, Trace.record_run, and Episode.of are removed (#2409).

Plugins and APIs

  • V1 no longer installs Hub plugins automatically. Install each taskset, harness, judge, or env package before use. Plugin IDs must name installed packages; org/name[@version] IDs no longer resolve (#2390).
  • ACP harnesses require live sessions. The ACP export and one-shot runner are removed. Use ACPConfig, ACPHarness, and rollout-scoped sessions (#2291).
  • Custom dialects must implement interception methods. Dialect.parse_request now returns vf.Request. Dialects must implement request rewriting, response rewriting, and stream event generation. Rollout.open() can return False when a pre-open stop fires (#2164, #2165, #2166, #2229).
  • Retry replay requires x-stainless-retry-count. Clients without this header resample repeated requests instead of replaying a recorded response (#2368).

Changelog

New Contributors

Full Changelog: v0.3.0...v0.3.1

Don't miss a new verifiers release

NewReleases is sending notifications on new releases.