Repository navigation
Release Summary
NeMo Gym v0.7.0 introduces infrastructure for defining reusable agent-environment interaction patterns while improving the reliability of large-scale evaluation and training.
Highlights:
- Define reusable interaction patterns between agents and environments with Environment Servers that manage sessions, verification, cleanup, and failures
- Reuse compatible agent harnesses across tasks and environments through common sandbox and verification infrastructure
- Finish large evaluations reliably by respecting job time limits, keeping memory use predictable, and automatically resuming Slurm jobs after timeout or preemption
- Preserve token-level training trajectories with durable worker-side capture for vLLM and Megatron
- Launch multi-service OpenSandbox workloads from supported Compose files and pause or resume sandboxes without losing task state
First-Time Contributors
We welcomed 39 first-time contributors to NeMo Gym with this release:
- @pthombre added durable external-sink token capture with worker-owned staging and terminal attribution
- @lauradang added the Megatron worker capture backend and multimodal Megatron capture
- @iguehring-nvidia added per-job OpenTelemetry collection and routed NeMo Lens telemetry through the job collector
- @afourniernv added ATIF v1.7 export and reverification of supported external ATIF trajectories
- @waple0820, @deepbuilder, @lafrancef, @muskank7, @lilithgrigoryan, and @krishnpci expanded the environment catalog with Interactive Browser, ViBench, Terminal-Bench 4, Aegis v4, AssayBench, and Indian Banking
Thank you to all 91 NeMo Gym contributors this cycle, including 39 first-time contributors!
Build and Configure Environments
- Environment Servers define reusable interaction patterns that coordinate agent and resources sessions, verification, cleanup, and failures; v0.7 includes a built-in single-agent-turn implementation
- Prepare reusable environment datasets without custom conversion scripts and report metrics at task, dataset, and environment levels
- Reproduce benchmark setup through resolved manifests and catch configuration problems before servers start with strict validation
- Reduce startup and memory overhead for servers that do not use distributed execution
Configure Agent Harnesses
- Reuse compatible agent harnesses across tasks and environments while Environment Servers coordinate sandbox access, verification, and cleanup
Configure Models
- Scale multi-turn vLLM evaluation across nodes with Ray Serve and prefill/decode disaggregation while keeping each conversation on the backend holding its cached context
Configure Sandboxes
- Run and debug trusted workloads directly on your machine with the new Local provider; no container runtime required
- Run multi-service workloads on OpenSandbox from supported Compose YAML; pause or resume sandboxes to preserve long-lived task state
- Improve OpenSandbox reliability with configurable TLS verification, shared HTTP connections, and cleaner recovery from terminal and cancellation failures
Evaluation and Training
- Preserve complete token-level training data even when inference runs outside the NeMo Gym process by staging token records on vLLM or Megatron workers before returning responses
- Resume Slurm evaluations automatically after timeout or preemption while preserving the submission record and resolved configuration
- Finish within an allocation's walltime by stopping new work at a dispatch budget; unstarted rows remain available when the run resumes, and retry rules control which failures run again
- Keep driver memory predictable during large runs with bounded task admission and optional non-retaining collection
- Avoid inflated scores in incomplete runs by optionally counting missing rollouts as zero, and distinguish infrastructure failures from unsuccessful task outcomes
- Inspect and validate a fully resolved job configuration before submitting it
- Spread resource-heavy repeats across a run by scheduling each task's first rollout before its second
Inspect and Export Agent Runs
- Trust saved rollout evidence with health checks that catch failed model calls and missing turns across model and agent harness activity
- Trace slow or failing submitted evaluations end to end with a per-job OpenTelemetry collector and model-call capture
- Export NeMo Gym trajectories as ATIF v1.7 and re-verify supported ATIF trajectories from external systems
Environments and Benchmarks
- Software engineering and terminal tasks: repair production repositories with SWE-bench Pro; solve longer terminal tasks with Terminal-Bench 4; evaluate scientific code with SciCodePile; grade workspace changes with JobBench and Workspace-Bench; and build web apps from product requirements with ViBench
- Browser, search, and agentic tasks: interact with websites through local Playwright or remote CDP in Interactive Browser; evaluate deep and broad research with DeepSearchQA and WideSearch; compare chat quality through LMArena proxy evaluations; and train multi-step reasoning with Wordle
- Science, chemistry, and mathematics: rank genes from CRISPR screens with AssayBench, reason about organic reaction mechanisms with FukuyamaBench, edit molecules under toxicity constraints with MolDeTox, and evaluate mathematical proofs with expanded MathArena suites
- Safety and reward modeling: classify multimodal safety with Aegis v4, test sycophancy with False Statement Judge, and train models to act as Generative Reward Model judges
- Finance and professional tasks: evaluate multi-turn retail banking, search a local SEC filings corpus, reason over professional PDF documents with GDP.pdf, and run more robust multimodal and multi-stage GDPVal judging
See the Available Environments table for the full list.
Deprecation and Compatibility Notices
- NeMo Gym now routes each episode through an Environment Server, which coordinates the agent, resources, verification, cleanup, and failure handling. Existing agent-only configurations continue to work through an automatically generated
legacy_agentcompatibility server but emit a migration warning. Add an explicit Environment Server or runscripts/add_legacy_agent_environment_servers.py - Ray now requires version 2.58.0 or newer
- The optional vLLM dependency moved from vLLM 0.25.1 and FlashInfer 0.6.13 to vLLM 0.29.0 and FlashInfer 0.6.18; resync local model-server environments
Bug Fixes
- Constrained tokenizers and datasets versions for Python 3.13 and PyArrow compatibility and updated dependencies for security fixes
- Preserved structured Responses fields, upstream execution outcomes, and per-rollout seeds during conversion and replay
- Stopped local and OpenCode sandbox processes when their rollouts are cancelled
- Improved reliability across Terminal-Bench, SWE-bench Pro, Spider2, SciCode, and GDPVal
Documentation
- Added an observability section covering rollout evidence, OpenTelemetry, metrics, and distributed tracing
- Added a guide for comparing agent harnesses
- Added sandbox setup and operations guides for Docker Compose, Daytona, and OpenSandbox
- Expanded the CLI reference for ATIF export, reverification, dispatch budgets, missing-rollout accounting, interleaved repeats, and materialized tasksets
Changelog Details
- [6667815] Sync LibriSpeech-PC smoke audio metadata by @gwarmstrong :: PR: #3098
- cp: fix(docker): drop --ldconfig arg from enroot NVIDIA hook into main by @kajalj22 :: PR: #2983
- fix(docker): make source readable by the runtime UID by @kajalj22 :: PR: #2632
- feat(indian_banking): add multi-turn Indian retail-banking resources server by @krishnpci :: PR: #2881
- feat(opensandbox): add connection.tls_verify (default off) to the OpenSandbox provider by @hemildesai :: PR: #3104
- score reasoning only but completed responses as zero for lmarena_v3 by @jveronvialard :: PR: #3097
- [Super 3.5 evals] Update Sep 06, 2026 by @bxyu-nvidia :: PR: #3136
- add option to not increment endpoint retry limit by @jveronvialard :: PR: #3079
- feat(opensandbox): derive connection.protocol from a scheme in connection.domain by @hemildesai :: PR: #3137
- fix(benchmarks): bound the agent loop on single-turn benchmarks by @laszkiewiczp :: PR: #3145
- [Super 3.5 evals] vLLM endpoint tuning protocol by @bxyu-nvidia :: PR: #3149
- Fix agent override behavior for agents that were not overrides by @bxyu-nvidia :: PR: #3151
- feat(aalcr): add versioned v1.1 protocol by @teelinsan :: PR: #3152
- feat(orchestration): composability in gym eval submit by @prokotg :: PR: #3142
- CCC Environment Compile Solutions Once Optimization by @aleksficek :: PR: #3087
- fix: AUT-2228 route partial reruns to the current attempt by @svcnemo-autobot :: PR: #3163
- docs(fern): add v0.6.0 version snapshot for GA release by @kajalj22 :: PR: #3125
- Add ruler answer prefix by @hsiehjackson :: PR: #998
- Fix lc_niah timeout by @hsiehjackson :: PR: #3162
- fix(responses): preserve provider refusal signals by @mahanfathi :: PR: #3165
- Revert "perf(openai-utils): discriminate response item unions" by @ananthsub :: PR: #3183
- fix(vllm): optionally propagate context errors by @giuliolovisotto :: PR: #2964
- fix(openai-utils): normalize response tools for replay by @jepio :: PR: #3190
- fix(ci): AUT-2243 preserve scheduled nightly runs by @svcnemo-autobot :: PR: #3164
- Add IOI26 for evaluation by @SeanNaren :: PR: #3144
- Add default provider options for deepswe by @sdevare-nv :: PR: #3203
- feat(orchestration): extra args in vllm service by @prokotg :: PR: #3154
- docs: rewrite Switchyard model-server page for brevity and accuracy by @itayzit :: PR: #3170
- fix(swebench-pro): bound verification attempts so one instance cannot hold a run open by @wprazuch :: PR: #3185
- fix(nemotron_3.5_super): make P/D router topology and policy configurable by @laszkiewiczp :: PR: #3193
- feat(observability): correlate OpenCode calls with invocations by @giuliolovisotto :: PR: #2884
- feat(health): evaluate invocation-owned model calls by @giuliolovisotto :: PR: #2885
- perf(livecodebench): keep unit tests compressed until verification by @jubick1337 :: PR: #2806
- fix(equivalence_llm_judge): do not abort the run on a judge failure by @jubick1337 :: PR: #2805
- perf(openai-utils): discriminate response item unions by @ananthsub :: PR: #3217
- Bound text-only continuation nudges by @sgharghabi :: PR: #3198
- fix: expose accurate managed-server readiness by @aditya-malte :: PR: #3197
- Track SciCode token usage per problem and subproblem by @Kipok :: PR: #3304
- chore(orchestration): gym install robustness by @prokotg :: PR: #3211
- feat(orchestration): auto-default model_call_capture_dir per benchmark by @prokotg :: PR: #3320
- feat(orchestration): served_model_name on model-serving services by @prokotg :: PR: #3323
- fix(ci): AUT-2266 retry uv installer download by @svcnemo-autobot :: PR: #3325
- feat(core): define the shared failure-kind vocabulary by @waple0820 :: PR: #3213
- fix(verifiers_agent): never store the policy server's session cookie by @d-molinari :: PR: #3316
- shell: add a script for manual ephemeral sandbox shell by @psarna :: PR: #3330
- test: [1/3] add L1 environment verifier acceptance coverage by @yaoyu-33 :: PR: #3127
- [Super 3.5 evals] Upgrade vLLM 0.27.1 -> 0.29.0 nightly commit 2a02f6efe319c885e3ccbcecde402e0028f9ec1e by @bxyu-nvidia :: PR: #3340
- feat(benchmarks): add five MathArena benchmarks and a sycophancy judge by @wedu-nvidia :: PR: #3108
- Add Ray Serve gateway for multi-instance vLLM spanning multiple nodes per instance by @oyilmaz-nvidia :: PR: #3214
- Fix test failures introduced by PR 3340 by @bxyu-nvidia :: PR: #3370
- fix(verifiers_agent): carry the rollout capture prefix on the model client by @wprazuch :: PR: #3321
- feat: automationbench by @cmunley1 :: PR: #3187
- sandbox: catch up with shell.py test coverage by @psarna :: PR: #3369
- fix(finance_sec_search): read the judge's verdict, not the first [[N]] in its output by @ukanwat :: PR: #3367
- fix(ci): AUT-2282 exact coverage gate precision by @kajalj22 :: PR: #3373
- ci: make required checks merge_group-aware for merge queue readiness by @kajalj22 :: PR: #3344
- feat(terminus2): observability - record observed decision turns by @giuliolovisotto :: PR: #3362
- Reward Profiling Infra Update by @jkyi-nvidia :: PR: #2862
- docs: document scheduled GPU E2E tests in CONTRIBUTING by @kajalj22 :: PR: #3392
- feat(sandbox): add Docker Compose adapter by @hemildesai :: PR: #3332
- feat(birdbench): BM25-driven schema context with PK/FK info, plus SQL-comment and iterdump fixes by @dkmisra :: PR: #2898
- [Super 3.5 evals] Add mtp support by @bxyu-nvidia :: PR: #3394
- feat(orchestration): return and persist a record of every submission by @wprazuch :: PR: #3188
- Add experimental manifest flag and reference environment by @Glorf :: PR: #3147
- fix(ci): AUT-2317 install telemetry extra in full test suite to restore coverage by @svcnemo-autobot :: PR: #3398
- fix(rolemrc): correct BLEU/METEOR + judge wiring, report published roll-ups; add gym-native RAGTruth/RoleMRC benchmarks by @pachmu :: PR: #2822
- fix(server-utils): disable uvicorn proxy headers by default by @athitten :: PR: #3306
- fix(anyterminal_agent): carry the training-capture prefix on the model URL by @jiwasawa :: PR: #3397
- fix(genrm): isolate prompt cohort retries by @macandro96 :: PR: #2814
- fix(osworld): score unreadable result images as zero by @Glorf :: PR: #3401
- docs: use HTTPS clone URL in install and contributing guides by @sven-rankov :: PR: #3347
- fix(capture): preserve ancestry for reasoning Responses by @aroshanghias-nvd :: PR: #3301
- update automationbench readme by @cmunley1 :: PR: #3418
- Revert "fix(osworld): score unreadable result images as zero" by @Glorf :: PR: #3426
- feat(orchestration): persist resolved config by @prokotg :: PR: #3428
- feat(orchestration): add lit:/host:/runtime: env var prefixes for submit configs by @oyilmaz-nvidia :: PR: #3409
- feat: suggest-reviewers workflow by @kajalj22 :: PR: #3387
- Gnalbandyan/add hle verified by @gnalbandyan :: PR: #3324
- Stop sandboxes when post-start setup raises by @ekellbuch :: PR: #3425
- fix(opensandbox): honor TLS settings with null keepalive by @stephencge :: PR: #3438
- Add decontamination fixes for Browsecomp by @ritugala :: PR: #3376
- feat: add scheduled CODEOWNERS org-membership check (Python) by @kajalj22 :: PR: #3388
- feat: add GDP.pdf by @hsiehjackson :: PR: #3309
- feat(finance_sec_search): overlay supplementary ticker mappings by @ushnish-de :: PR: #3375
- ci: bump FW-CI-templates pin to v1.10.1 (fixes large-diff crash) by @kajalj22 :: PR: #3442
- Align MathArena grading defaults and add June ArXiv benchmarks by @Kipok :: PR: #3444
- fix: bound validation error logging by @athitten :: PR: #3337
- ci: AUT-2363 move claude-review prompt into standalone pr-review skill by @svcnemo-autobot :: PR: #3446
- Let the docker sandbox provider reattach to a container another process created by @ekellbuch :: PR: #3396
- Support buffered SSE with external token staging by @pthombre :: PR: #3382
- docs(contributing): align PR, code, and CI guidance by @yaoyu-33 :: PR: #3194
- ci: AUT-2365 comment merge queue run URL on PR when validation starts by @svcnemo-autobot :: PR: #3447
- feat: Add Haystack Agent harness by @OlegSudakov :: PR: #1989
- feat(docs): onboarding audit by @ritaneves :: PR: #3346
- Fix missed step errors in Gym's Harbor adapter by @tamohannes :: PR: #3443
- fix(cli): exit cleanly when
gym eval submitgets a missing or invalid --config by @sven-rankov :: PR: #3445 - feat(assaybench): add AssayBench phenotypic CRISPR screen prediction … by @lilithgrigoryan :: PR: #3475
- feat: unified sandboxed harness interface by @cmunley1 :: PR: #2015
- bug_fix(browsecomp): default exa_search_writes_pages to True by @ritugala :: PR: #3499
- Add TerminalBench 4.0 by @lafrancef :: PR: #3366
- ci: AUT-2303 report trigger type in Slack failure alerts by @svcnemo-autobot :: PR: #3379
- fix(bird_sql): distinguish result mismatches and timeouts from execution failures (#3355) by @ManoharPaturi :: PR: #3468
- fix: preserve sandboxed harness runner completion marker when stdout is redirected by @cmunley1 :: PR: #3515
- nemotron_3.5_super: let SBATCH_TIMELIMIT set the serving job's wall time by @giuliolovisotto :: PR: #3517
- feat(eval): reverify Relay ATIF trajectories by @afourniernv :: PR: #2737
- feat(opencode): observability - record OpenCode turns by @giuliolovisotto :: PR: #3363
- feat(orchestration): add --resolve-only to gym eval submit by @iguehring-nvidia :: PR: #3524
- fix(docker): AUT-2379 seed pre-commit cache without git metadata by @svcnemo-autobot :: PR: #3525
- fix(cli): serialize shared virtual environment setup by @Glorf :: PR: #3435
- fix(agent): stop trajectories on incomplete reasoning by @Kipok :: PR: #3536
- test(math_with_code): cover answer extraction and matching by @jpwang65535 :: PR: #3481
- [Super 3.5 evals] New/updated model configs; Allow non-pd setup; Remove PTY from SWE Pro; Fix TB2.1 interleaved thinking by @bxyu-nvidia :: PR: #3540
- fix(eval): recover judge errors and skip empty or oversized answers by @Kipok :: PR: #3538
- fix(miniswe): preserve model and tool observability by @lafrancef :: PR: #3527
- feat(core): report infrastructure failure from verify, not just a reward by @waple0820 :: PR: #2611
- fix(aalcr): classify empty legacy judge replies as failures by @yaoyu-33 :: PR: #3510
- feat(token-capture): add Megatron worker capture backend by @lauradang :: PR: #2823
- feat(docs): observability bug, 2891 by @ritaneves :: PR: #3360
- Fix skip_venv_if_present; Bump vLLM router commit by @bxyu-nvidia :: PR: #3551
- feat: register environment server type by @ananthsub :: PR: #3482
- Ultra 3 vllm tuning by @fsiino-nvidia :: PR: #2645
- fix(litellm_model): normalize native LiteLLM responses before NeMoGymResponse validation by @ManoharPaturi :: PR: #3413
- fix(terminal): retain Bullseye security packages during sandbox setup by @AdamRajfer :: PR: #3549
- feat: add manifests for resolved benchmarks by @ritaneves :: PR: #3535
- fix(benchmarks): reject manifest.yaml in benchmark discovery by @iguehring-nvidia :: PR: #3564
- feat(orchestration): record the installed Gym commit in the submission record by @iguehring-nvidia :: PR: #3529
- OpenSandbox API re-uses Gym global_aiohttp_client by @bxyu-nvidia :: PR: #3553
- fix(openai-utils): fail fast on spent-quota 429 and invalid-key 401/403 by @gchlebus :: PR: #3571
- feat(eval): export Gym trajectories as ATIF by @afourniernv :: PR: #2767
- feat(nooa-agent): add safe declarative configuration by @init-nikhil :: PR: #2744
- fix(gymnasium): release subclass state when episodes end by @athitten :: PR: #3440
- Rshahbazyan/add scicodepile benchmark by @rimashahbazyan :: PR: #3153
- Rshahbazyan/sci2 64 fukuyamabench sets bc by @rimashahbazyan :: PR: #3436
- Add MolDeTox resources server by @rimashahbazyan :: PR: #3437
- fix(critpt): include both turns in token usage by @Kipok :: PR: #3580
- feat(sandbox): add Sandbox pause and resume by @hemildesai :: PR: #2636
- feat(resources_servers): add interactive browser RL environment (local Playwright + remote CDP backends) by @waple0820 :: PR: #1865
- feat: define core episode types by @ananthsub :: PR: #3483
- feat: add environment server lifecycle by @ananthsub :: PR: #3484
- feat: define agent tool access contracts by @ananthsub :: PR: #3543
- feat: support task sandbox access by @ananthsub :: PR: #3545
- feat: add agent session lifecycle API by @ananthsub :: PR: #3485
- feat: add resources session lifecycle API by @ananthsub :: PR: #3544
- feat(osworld): isolate exact-trace and AgentENV environment support by @JeffPengCoder :: PR: #3592
- refactor(tb4): move rollout ownership to the agent server by @lafrancef :: PR: #3573
- fix(miniswe): restore bounded observations and length-aware recovery by @lafrancef :: PR: #3624
- feat: deepsearchqa and widesearch by @cmunley1 :: PR: #3186
- fix(nemo fabric): detect reasoning_content used by some harnesses by @cmunley1 :: PR: #3518
- docs: remove early development warning by @cwing-nvidia :: PR: #3631
- fix(osworld): resolve Python 3.13 NumPy metadata conflict by @JeffPengCoder :: PR: #3649
- ci: bump preflight workflows to v1.11.0 by @ko3n1g :: PR: #3658
- feat(sandbox): lifecycle telemetry: durations, retries, sandbox ids and a stop span by @iguehring-nvidia :: PR: #3633
- fix(sandbox): fail fast when attaching to a missing OpenSandbox PTY session by @hemildesai :: PR: #3641
- update harness agent readme by @cmunley1 :: PR: #3662
- feat(generative_reward_model): add GenRM training resources server by @HeyyyyyyG :: PR: #3635
- fix(genrm): bound cohort deadlines and failure cleanup by @yuhezhang-ai :: PR: #3351
- fix(token-id-capture): classify auxiliary model requests by @ananthsub :: PR: #2787
- feat(capture): stage framework attachments with the token record by @pthombre :: PR: #3513
- feat(orchestration): run an OpenTelemetry collector beside every benchmark job by @iguehring-nvidia :: PR: #3610
- SWE training sandbox migration by @sdevare-nv :: PR: #3327
- feat: jobbench environment by @cmunley1 :: PR: #3070
- feat(telemetry): report host and per-server memory usage by @ananthsub :: PR: #3584
- feat: workspacebench env by @cmunley1 :: PR: #3089
- fix: test file patch verification by @sdevare-nv :: PR: #3691
- [Super 3.5 evals] Update Sep 26, 2026 by @bxyu-nvidia :: PR: #3702
- test(nooa-agent): add stateful end-to-end smoke by @init-nikhil :: PR: #3432
- feat(nooa-agent): complete lifecycle observability by @init-nikhil :: PR: #2748
- feat(nooa-agent): project resource evidence by @init-nikhil :: PR: #2746
- feat(nooa-agent): embed Gym-backed runtime by @init-nikhil :: PR: #2745
- fix: remove swe resource benchmarks by @sdevare-nv :: PR: #3703
- feat(osworld): add sink-window history policy by @JeffPengCoder :: PR: #3139
- feat(orchestration): let a service claim its own nodes by @wprazuch :: PR: #3654
- feat(eval): enable observability by default for submitted jobs by @Glorf :: PR: #3414
- Serve SEC search from a local corpus in both finance servers by @ushnish-de :: PR: #3636
- Hwolff/deepagents agent server by @hwolff99 :: PR: #2929
- feat: add sandboxed Hermes for SWE-bench Pro by @j-nolan :: PR: #3542
- build: bump vllm to 0.29.0 and related CVE-flagged deps by @kajalj22 :: PR: #3734
- fix(sandbox): preserve Terminal-Bench reference-solution servers in OpenSandbox by @ekellbuch :: PR: #3441
- feat(server): allow servers to opt out of Ray by @ananthsub :: PR: #3622
- fix(model-server): preserve aliases in ORJSON responses by @ananthsub :: PR: #3047
- feat: add single-agent-turn environment server by @ananthsub :: PR: #3717
- chore(server): declare Ray usage for built-in servers by @ananthsub :: PR: #3728
- build: bump wandb to 0.30.0 and ray to 2.58.0 for bundled CVE fixes by @kajalj22 :: PR: #3737
- fix: replace CUDA base image's bundled Nsight Systems to resolve Go CVEs by @kajalj22 :: PR: #3739
- feat(benchmark): add Aegis v4 safety evaluator by @muskank7 :: PR: #3699
- fix(aegis_v4_safety): declare ray_enabled = False by @cmunley1 :: PR: #3752
- verifiers_agent: configurable policy-client deadlines by @d-molinari :: PR: #3741
- feat(finance_agent_v2): serve price_history from local daily records by @ushnish-de :: PR: #3736
- fix: tag environment datasets by @burtenshaw :: PR: #3429
- docs: fix spelling in server READMEs by @Superb0431 :: PR: #3688
- fix(example_session_state_mgmt): send initial_count from client.py by @cmunley1 :: PR: #3758
- fix(cli): report unresolved config interpolations cleanly in manifest validation by @AmirF194 :: PR: #2904
- feat: add legacy environment servers by @ananthsub :: PR: #3724
- fix(orchestration): fail evaluations with incomplete samples by @Glorf :: PR: #3716
- feat(orchestration): let a benchmark run its own harness by @wprazuch :: PR: #3760
- Add conf intervals of difference by @mpatel31415 :: PR: #3399
- feat(onboarding): complete benchmark manifest coverage by @ritaneves :: PR: #3660
- feat(vllm-model): forward gym session id as backend conversation id by @shuyixiong :: PR: #3582
- test(benchmarks): verify manifest catalog coverage by @ritaneves :: PR: #3709
- feat: add SWE Pro resources sessions by @ananthsub :: PR: #3718
- fix(ci): AUT-2446 install pycountry only for GPU E2E by @svcnemo-autobot :: PR: #3750
- feat(wordle): add Wordle environment by @cmunley1 :: PR: #3751
- fix(cli): bound Gym server startup wait by @ananthsub :: PR: #3735
- test: AUT-2445 make free local port coverage deterministic by @svcnemo-autobot :: PR: #3749
- fix(rollout-correlation): expose current_rollout_id() to model-server handlers by @shy982 :: PR: #3374
- perf(simple-agent): avoid duplicate verify conversion by @ananthsub :: PR: #3048
- fix(swe-agents): resolve jq by host architecture, bound the final make build attempt by @AmirF194 :: PR: #3778
- build: bump orjson, python-multipart, pyarrow, anyio, and remove ray's Java worker jar for CVE remediation by @kajalj22 :: PR: #3779
- refactor(agent): align miniSWE with pre-decoupling data flow by @lafrancef :: PR: #3680
- SWE: add committed patch capture by @sdevare-nv :: PR: #3731
- feat: run Hermes inside task sandboxes by @ananthsub :: PR: #3720
- feat(rollout): bound driver task admission and support non-retaining collection by @namtran1812 :: PR: #3497
- fix(capture): preserve token capture after synthetic completions by @pthombre :: PR: #3670
- feat(swebench-pro): configure Hermes for SWE-bench Pro by @ananthsub :: PR: #3722
- feat: route native tasks through environment servers by @ananthsub :: PR: #3721
- feat(resources): answer Environment Server seed and close by default by @ananthsub :: PR: #3786
- feat(orchestration): route Gym's Lens telemetry through the job collector by @iguehring-nvidia :: PR: #3619
- fix(docs): AUT-2456 preview approved PR mirror branches by @svcnemo-autobot :: PR: #3794
- fix(scaffold): AUT-2455 wrap standalone agents in environment servers by @svcnemo-autobot :: PR: #3793
- fix(orchestration): make Slurm job folders readable by other users by @wprazuch :: PR: #3811
- feat(orchestration): auto-resume for gym eval submit on Slurm by @wprazuch :: PR: #3813
- fix(scicode): propagate rollout observability by @fgalko-oss :: PR: #3762
- fix(model): preserve upstream execution outcomes by @Glorf :: PR: #3761
- swe_agents: export SANDBOX_TIMEOUT alongside COMMAND_EXEC_TIMEOUT for OpenHands by @michal2409 :: PR: #3578
- feat(orchestration): express prefill/decode disaggregation by @wprazuch :: PR: #3763
- fix(swe_pivot): a tool call missing its command argument is not a match by @linj-glitch :: PR: #3134
- Update abstention to use Nemotron RL QA training data by @mahanfathi :: PR: #3329
- fix(ci): AUT-2457 check lock freshness before dependency sync by @svcnemo-autobot :: PR: #3809
- feat: add swemer_oml by @sdevare-nv :: PR: #3799
- fix(cli): launch servers with their venv interpreter and harden spin-up by @Kh4L :: PR: #3681
- fix(openai-utils): accept provider extension fields in strict chat requests by @Kh4L :: PR: #3682
- feat(vllm-model): make the replayed reasoning key configurable by @Kh4L :: PR: #3683
- fix(cli): fail server suites on unrecognized exit codes by @yaoyu-33 :: PR: #3700
- fix(eval): preserve per-rollout seeds with existing metadata by @yaoyu-33 :: PR: #3672
- fix(benchmark): increase Aegis target output limit by @muskank7 :: PR: #3753
- feat(stirrup): align the GDPVal sandbox with AA v2 and harden the agent runtime by @Kh4L :: PR: #3685
- feat(rollout-collection): add --interleave-repeats by @jubick1337 :: PR: #3822
- feat(rollout): add a dispatch budget and an opt-in failure retry contract by @Kh4L :: PR: #3684
- feat(gdpval): harden judging with local judges and media inputs by @Kh4L :: PR: #3686
- feat(gdpval): harden multistage ELO orchestration by @Kh4L :: PR: #3687
- feat(verifiers_agent): emit the rollout evidence health checks read by @wprazuch :: PR: #3403
- fix(spider2): AUT-2464 avoid database downloads during test startup by @svcnemo-autobot :: PR: #3874
- fix(health): scope rollout_duplicate_identity to stage_index by @wprazuch :: PR: #3814
- feat(eval): let a benchmark declare what its prepare script needs by @wprazuch :: PR: #3869
- fix(sandbox): stop local subprocesses on cancellation by @yaoyu-33 :: PR: #3652
- fix(capture): mask rollouts with unconfirmed terminal IDs by @yaoyu-33 :: PR: #3694
- feat(interactive_browser): serve Environment Server resources sessions by @waple0820 :: PR: #3812
- feat(token-capture): admit multimodal Megatron capture requests by @lauradang :: PR: #3787
- fix(cli): pass config dict via process environment instead of command line (#3383) by @ManoharPaturi :: PR: #3472
- fix(telemetry): adopt nemo-lens SpanRegistry and reuse an existing Lens setup by @ananthsub :: PR: #3890
- feat(core): expose aiohttp pool wait telemetry by @athitten :: PR: #3632
- fix(terminal-bench): reopen downloaded reward files by @yaoyu-33 :: PR: #3899
- feat(core): align episode and rollout failure contracts by @yuhezhang-ai :: PR: #3877
- feat(gdpval): allow partial_completion on the final stage by @Kh4L :: PR: #3912
- fix(rollout_health): see the failed calls and empty turn lists it was skipping by @wprazuch :: PR: #3427
- fix(automationbench): keep openai on Gym's line, and say why the import failed by @wprazuch :: PR: #3925
- feat(eval): count a rollout that produced no row as zero by @jubick1337 :: PR: #3559
- fix(docker): optionally seed every server module's environment for offline server tests by @ko3n1g :: PR: #3878
- build: bump urllib3/PyJWT, upgrade OpenSSL, purge ray jar from uv cache by @kajalj22 :: PR: #3826
- feat(agent): add dedicated OpenCode and Pi sandboxed evaluation by @Kipok :: PR: #3575
- docs: shorten benchmark onboarding guidance by @ritaneves :: PR: #3713
- feat(interactive_browser): tag provider sessions with the episode by @waple0820 :: PR: #3932
- SWEmer oml blob restore by @sdevare-nv :: PR: #3876
- fix(opencode-agent): stop the sandbox when a rollout is cancelled (3931) by @svcnvidia-nemo-ci :: PR: #3952
- cp: CI fixes (#4054, #4055, #4061) into
r0.7.0by @ananthsub :: PR: #4083 - fix(model): preserve structured Responses fields in chat conversion (4057) by @svcnvidia-nemo-ci :: PR: #4078
- cp: tasksets, episode-request naming, and multi-agent environment servers (#3818, #4070, #3929, #4053) into
r0.7.0by @ananthsub :: PR: #4107 - feat(data): support materialized task dataset metrics (4060) by @svcnvidia-nemo-ci :: PR: #4115
- cp: Hermes session hardening and simple agent environment server sessions (#3554, #3784) into
r0.7.0by @ananthsub :: PR: #4113 - fix(agent): keep observations from every SimpleAgent session activation (4114) by @svcnvidia-nemo-ci :: PR: #4123
- ci: bump cherry-pick workflow to v1.12.2, alert Gym channel (4119) by @svcnvidia-nemo-ci :: PR: #4124
- docs(deepagents): fix generic agent launch instructions (3827) by @svcnvidia-nemo-ci :: PR: #4126
- fix(config): declare environment servers for agents added after the migration (4084) by @ananthsub :: PR: #4127
- feat(agent): allow session-owned tool execution (4111) by @svcnvidia-nemo-ci :: PR: #4130
- docs(token-capture): fix external agent harness guide (4102) by @svcnvidia-nemo-ci :: PR: #4133
- test(orchestration): stub pip in slurm quoting test (4122) by @svcnvidia-nemo-ci :: PR: #4132
- cp: NeMo User Sim materialized-row runtime (#3800) into
r0.7.0by @ffrujeri :: PR: #4156 - docs: add v0.7.0 release notes (4163) by @svcnvidia-nemo-ci :: PR: #4179
- fix(hermes): report native token usage (4139) by @svcnvidia-nemo-ci :: PR: #4185
- fix(opencode): replay reasoning as reasoning_content on Gym model servers (4180) by @svcnvidia-nemo-ci :: PR: #4191
- docs(infrastructure): correct system design page startup and rollout flow (4101) by @svcnvidia-nemo-ci :: PR: #4195
- fix(server): enable TCP keepalive on accepted server connections (3727) by @svcnvidia-nemo-ci :: PR: #3944
- docs: remove internal access details from Tavily setup (4112) by @svcnvidia-nemo-ci :: PR: #4190
- feat(nemo-user-sim): add generated validation tasks (3802) by @svcnvidia-nemo-ci :: PR: #4182
- fix(config): backport agent rename compatibility to r0.7.0 by @zyzhou5 :: PR: #4199
- chore(docker): remove Nsight Systems from the image (4183) by @svcnvidia-nemo-ci :: PR: #4189
- fix: install pycountry in codec deps installer (4146) by @svcnvidia-nemo-ci :: PR: #4202
- fix(security): bump msgpack to 1.2.3 (4068) by @svcnvidia-nemo-ci :: PR: #4184
- fix(scaffold): move a reused scorer's environment server with its agent (4085) by @svcnvidia-nemo-ci :: PR: #4203
- chore: never install gprof2dot/pathspec; purge dbus and gi bindings (4193) by @kajalj22 :: PR: #4205
- release: drop pre-release tag for v0.7.0 by @kajalj22 :: PR: #4208
- docs(fern): add v0.7.0 version snapshot for GA release (4207) by @svcnvidia-nemo-ci :: PR: #4211
- fix(security): bump aiohttp 3.14.1 -> 3.14.4 (4214) by @svcnvidia-nemo-ci :: PR: #4217
- docs(cli): fix cli-commands.mdx issues from NVBug 6854088 (4093) by @svcnvidia-nemo-ci :: PR: #4219
- docs(environments): fix new-environment.mdx issues from NVBug 6853090 (4175) by @svcnvidia-nemo-ci :: PR: #4246
- cp: automatic NeMo User Sim persona download (#4258) into
r0.7.0by @ffrujeri :: PR: #4260 - feat(data): task_data validation gating: auto mode, misplaced-field check, repo drift test (#2827) by @adil-a
- feat(telemetry): instrument the rollout path across Gym's server processes (#2647) by @ahmadki
- release: bump main to 0.7.0rc0 (#2847) by @ananthsub
- feat(benchmarks): explicit agent pin on benchmark datasets; scaffold generates the decoupled layout (#2724) by @adil-a
- add LMArena v3 and v2 proxy benchmarks (#2837) by @jveronvialard
- [Super 3.5 evals] Update Aug 28, 2026 (#2856) by @bxyu-nvidia
- Retry PTY takeover attach when execd's eviction times out (#2840) by @hemildesai
- [OpenSandbox] Ignore PTY reattach error (#2861) by @bxyu-nvidia
- ci: AUT-2179 temporarily disable Fireworks E2E test (#2871) by @svcnemo-autobot
- perf: serialize non-streaming responses with orjson in model server (#2867) by @ananthsub
- Make sidecar failure routing opt-in and loud about it (#2883) by @laszkiewiczp
- perf: use httptools for HTTP parsing (#2869) by @ananthsub
- docs(fern): clarify trajectory capability matrix (#2887) by @Glorf
- Mpatelka/gym compare v0 (#2635) by @mpatel31415
- fix(responses-converter): strip strict from function tools before engine dispatch (#2892) by @pthombre
- docs: fix switchyard.mdx inaccuracies (nvbug 6674632) (#2897) by @linj-glitch
- feat: Add SWE-bench Pro resources server. (#2498) by @ffrujeri
- fix(workplace-assistant): release session state after verification (#2886) by @ananthsub
- Remove redundancy from swe benchmark prompt (#2876) by @sdevare-nv
- Add ViBench resources server + agent (PRD-to-web-app benchmark) (#2674) by @deepbuilder
- [Super 3.5 Evals] Update Aug 31, 2026 (#2912) by @bxyu-nvidia
- [Unvalidated] Terminus 2 (#2913) by @bxyu-nvidia
- Add README for vibench_agent (#2906) by @deepbuilder
- fix: gym list benchmarks docs (#2819) by @marta-sd
- feat(cli): add strict mode for gym env validate command (#2844) by @marta-sd
- Update user prompt with task completion rules (#2930) by @sdevare-nv
- docs: update external harness token capture guide (#2349) by @ananthsub
- fix(cli): fail fast when
gym eval run --splithas no matching dataset (#2911) by @adil-a - fix(cli): allow repeated selector flags (#2843) by @marta-sd
- fix: update configs to specify allowed_agents (#2920) by @marta-sd
- fix(lmarena_v2, lmarena_v3): set max_steps=1 to stop unbounded rollout loops (#2931) by @laszkiewiczp
- fix(cli): preserve table cells in redirected output (#2949) by @ananthsub
- fix(ci): AUT-2199 run nightly jobs after skipped unit tests (#2938) by @svcnemo-autobot
- fix(pty): eliminate attach-refusal race, diagnose dead/OOM-killed sandboxes, clean exec stdout (#2893) by @hemildesai
- [Super 3.5 evals] Update Sep 02, 2026 (#2979) by @bxyu-nvidia
- fix(code_gen): apply 1e-6 float tolerance to LCB stdout comparison (#2956) by @fgalko-oss
- cp: docs: expand ATTRIBUTIONS.md to full 167-package inventory (#2547) into main (#2986) by @kajalj22
- cp: docs(legal): PinchBench modified-component notice and NVIDIA disclaimer (#2629) into main (#2985) by @kajalj22
- increase tau3 repeats 5->8 (#2962) by @e-dobrowolska
- [6667815] Surface nested HTTP errors and reject incompatible LibriSpeech model adapters (#2981) by @gwarmstrong
- feat(sandbox): local provider (#2863) by @cmunley1
- feat: capture cancelled model calls (#2794) by @elisam0
- fix: retry transient Apptainer image builds (#2098) by @pplattner
- fix: serialize AnyTerminal dependency setup (#2285) by @pplattner
- fix(scicode): forward generation parameters to sub-steps (#2995) by @jiacheng-xu
- Serve filings from the local SEC corpus when edgar_search found them (#2990) by @ushnish-de
- refactor(token-capture): deduplicate fingerprint helpers (#2996) by @ananthsub
- feat(finance_sec_search): Decline the layout convention for URLs it cannot name (#3046) by @ushnish-de
- feat(code_gen): accept any capitalisation of Yes/No in stdout comparison (#3051) by @fgalko-oss
- [Super 3.5 evals] Terminus2 Model call timeout parity; Servers cancel requests when client cancels requests (#3064) by @bxyu-nvidia
- fix(openai_utils): strip redundant outer tool-call names (#3061) by @wprazuch
- fix: preserve renamed config compatibility (#3067) by @ananthsub
- fix(rollout-collection): make run_examples() rollout-latency stamping opt-in (#3068) by @pthombre
- docs: v0.6.0 release notes (#2830) by @cwing-nvidia
- docs: add v0.6.0 README news (#3073) by @cwing-nvidia
- feat: document
--agent-typeCLI flag and agent swapping mechanism (#2793) by @marta-sd - keep incomplete_details alongside usage (#3077) by @jveronvialard
- docs(sandbox): OpenSandbox best-practices and debugging guides (#3062) by @hemildesai
- feat: add global timeout to terminal bench (#2826) by @elisam0
- Bump transformers, mlflow, hydra-core, sqlparse for CVE fixes (#2982) by @kajalj22
- cp: docs: Docker install path, Python 3.13.14 refs, enroot GPU toolkit (#2725) into main (#2984) by @kajalj22
- Upgrade Harbor Agent (#2596) by @activatedgeek
- feat(swebench,opencode): set EXECD_API_GRACE_SHUTDOWN=50ms in the sandbox env; initial poll 0.5s (#2997) by @hemildesai
- feat(token-id-capture): external-sink token capture (worker-owned staging, ledger, terminal attribution) (#2872) by @pthombre
- cp: docs(fern): add v0.5.1 version snapshot for GA release into main (#2987) by @kajalj22
- fix: write traces on timeout (Apptainer) + improve Hermes traces (#1973) by @elisam0
- [6667815] Sync LibriSpeech-PC smoke audio metadata (#3098) by @gwarmstrong
- fix(nemotron_3.5_super): pin a vllm-router build with prefix affinity fixes (#3080) by @sdevare-nv
- security: bump nltk, mlflow, and GitPython for CVE remediation (#3101) by @kajalj22
- Fix math with judge parsing and formatting (#3095) by @smahdavi4
- fix(nemotron_3.5_super): repin vllm-router to the current head of #238 (#3107) by @sdevare-nv
- docs: fix r0.6.0 documentation inconsistencies (#3090) by @ananthsub
- cp: fix(docker): drop --ldconfig arg from enroot NVIDIA hook into main (#2983) by @kajalj22
- fix(docker): make source readable by the runtime UID (#2632) by @kajalj22
- feat(indian_banking): add multi-turn Indian retail-banking resources server (#2881) by @krishnpci
- feat(opensandbox): add connection.tls_verify (default off) to the OpenSandbox provider (#3104) by @hemildesai
- score reasoning only but completed responses as zero for lmarena_v3 (#3097) by @jveronvialard
- [Super 3.5 evals] Update Sep 06, 2026 (#3136) by @bxyu-nvidia
- add option to not increment endpoint retry limit (#3079) by @jveronvialard
- feat(opensandbox): derive connection.protocol from a scheme in connection.domain (#3137) by @hemildesai
- fix(benchmarks): bound the agent loop on single-turn benchmarks (#3145) by @laszkiewiczp
- [Super 3.5 evals] vLLM endpoint tuning protocol (#3149) by @bxyu-nvidia
- Fix agent override behavior for agents that were not overrides (#3151) by @bxyu-nvidia
- feat(aalcr): add versioned v1.1 protocol (#3152) by @teelinsan
- feat(orchestration): composability in gym eval submit (#3142) by @prokotg
- CCC Environment Compile Solutions Once Optimization (#3087) by @aleksficek
- fix: AUT-2228 route partial reruns to the current attempt (#3163) by @svcnemo-autobot
- docs(fern): add v0.6.0 version snapshot for GA release (#3125) by @kajalj22
- Add ruler answer prefix (#998) by @hsiehjackson
- Fix lc_niah timeout (#3162) by @hsiehjackson
- fix(responses): preserve provider refusal signals (#3165) by @mahanfathi
- perf(openai-utils): discriminate response item unions (#2889) by @ananthsub
- Revert "perf(openai-utils): discriminate response item unions" (#3183) by @ananthsub
- fix(vllm): optionally propagate context errors (#2964) by @giuliolovisotto
- fix(openai-utils): normalize response tools for replay (#3190) by @jepio
- fix(ci): AUT-2243 preserve scheduled nightly runs (#3164) by @svcnemo-autobot
- Add IOI26 for evaluation (#3144) by @SeanNaren
- Add default provider options for deepswe (#3203) by @sdevare-nv
- feat(orchestration): extra args in vllm service (#3154) by @prokotg
- docs: rewrite Switchyard model-server page for brevity and accuracy (#3170) by @itayzit
- fix(swebench-pro): bound verification attempts so one instance cannot hold a run open (#3185) by @wprazuch
- fix(nemotron_3.5_super): make P/D router topology and policy configurable (#3193) by @laszkiewiczp
- [1/3] feat(observability): correlate OpenCode calls with invocations (#2884) by @giuliolovisotto
- feat(health): evaluate invocation-owned model calls (#2885) by @giuliolovisotto
- perf(livecodebench): keep unit tests compressed until verification (#2806) by @jubick1337
- fix(equivalence_llm_judge): do not abort the run on a judge failure (#2805) by @jubick1337
- perf(openai-utils): discriminate response item unions (#3217) by @ananthsub
- Bound text-only continuation nudges (#3198) by @sgharghabi
- fix: expose accurate managed-server readiness (#3197) by @aditya-malte
- Track SciCode token usage per problem and subproblem (#3304) by @Kipok
- chore(orchestration): gym install robustness (#3211) by @prokotg
- feat(orchestration): auto-default model_call_capture_dir per benchmark (#3320) by @prokotg
- feat(orchestration): served_model_name on model-serving services (#3323) by @prokotg
- fix(ci): AUT-2266 retry uv installer download (#3325) by @svcnemo-autobot
- feat(core): define the shared failure-kind vocabulary (#3213) by @waple0820
- fix(verifiers_agent): never store the policy server's session cookie (#3316) by @d-molinari
- shell: add a script for manual ephemeral sandbox shell (#3330) by @psarna
- test: [1/3] add L1 environment verifier acceptance coverage (#3127) by @yaoyu-33
- [Super 3.5 evals] Upgrade vLLM 0.27.1 -> 0.29.0 nightly commit 2a02f6efe319c885e3ccbcecde402e0028f9ec1e (#3340) by @bxyu-nvidia
- feat(benchmarks): add five MathArena benchmarks and a sycophancy judge (#3108) by @wedu-nvidia
- Add Ray Serve gateway for multi-instance vLLM spanning multiple nodes per instance (#3214) by @oyilmaz-nvidia
- Fix test failures introduced by PR 3340 (#3370) by @bxyu-nvidia
- fix(verifiers_agent): carry the rollout capture prefix on the model client (#3321) by @wprazuch
- feat: automationbench (#3187) by @cmunley1
- sandbox: catch up with shell.py test coverage (#3369) by @psarna
- fix(finance_sec_search): read the judge's verdict, not the first [[N]] in its output (#3367) by @ukanwat
- fix(ci): AUT-2282 exact coverage gate precision (#3373) by @kajalj22
- ci: make required checks merge_group-aware for merge queue readiness (#3344) by @kajalj22
- feat(terminus2): observability - record observed decision turns (#3362) by @giuliolovisotto
- Reward Profiling Infra Update (#2862) by @jkyi-nvidia
- docs: document scheduled GPU E2E tests in CONTRIBUTING (#3392) by @kajalj22
- feat(sandbox): add Docker Compose adapter (#3332) by @hemildesai
- feat(birdbench): BM25-driven schema context with PK/FK info, plus SQL-comment and iterdump fixes (#2898) by @dkmisra
- [Super 3.5 evals] Add mtp support (#3394) by @bxyu-nvidia
- feat(orchestration): return and persist a record of every submission (#3188) by @wprazuch
- Add experimental manifest flag and reference environment (#3147) by @Glorf
- fix(ci): AUT-2317 install telemetry extra in full test suite to restore coverage (#3398) by @svcnemo-autobot
- fix(rolemrc): correct BLEU/METEOR + judge wiring, report published roll-ups; add gym-native RAGTruth/RoleMRC benchmarks (#2822) by @pachmu
- fix(server-utils): disable uvicorn proxy headers by default (#3306) by @athitten
- fix(anyterminal_agent): carry the training-capture prefix on the model URL (#3397) by @jiwasawa
- fix(genrm): isolate prompt cohort retries (#2814) by @macandro96
- fix(osworld): score unreadable result images as zero (#3401) by @Glorf
- docs: use HTTPS clone URL in install and contributing guides (#3347) by @sven-rankov
- fix(capture): preserve ancestry for reasoning Responses (#3301) by @aroshanghias-nvd
- update automationbench readme (#3418) by @cmunley1
- Revert "fix(osworld): score unreadable result images as zero" (#3426) by @Glorf
- feat(orchestration): persist resolved config (#3428) by @prokotg
- feat(orchestration): add lit:/host:/runtime: env var prefixes for submit configs (#3409) by @oyilmaz-nvidia
- feat: suggest-reviewers workflow (Python implementation, no JS) (#3387) by @kajalj22
- Gnalbandyan/add hle verified (#3324) by @gnalbandyan
- Stop sandboxes when post-start setup raises (#3425) by @ekellbuch
- fix(opensandbox): honor TLS settings with null keepalive (#3438) by @stephencge
- Add decontamination fixes for Browsecomp (#3376) by @ritugala
- feat: add scheduled CODEOWNERS org-membership check (Python) (#3388) by @kajalj22
- feat: add GDP.pdf (#3309) by @hsiehjackson
- feat(finance_sec_search): overlay supplementary ticker mappings (#3375) by @ushnish-de
- ci: bump FW-CI-templates pin to v1.10.1 (fixes large-diff crash) (#3442) by @kajalj22
- Align MathArena grading defaults and add June ArXiv benchmarks (#3444) by @Kipok
- fix: bound validation error logging (#3337) by @athitten
- ci: AUT-2363 move claude-review prompt into standalone pr-review skill (#3446) by @svcnemo-autobot
- Let the docker sandbox provider reattach to a container another process created (#3396) by @ekellbuch
- Support buffered SSE with external token staging (#3382) by @pthombre
- docs(contributing): align PR, code, and CI guidance (#3194) by @yaoyu-33
- ci: AUT-2365 comment merge queue run URL on PR when validation starts (#3447) by @svcnemo-autobot
- feat: Add Haystack Agent harness (#1989) by @OlegSudakov
- feat(docs): onboarding audit (#3346) by @ritaneves
- Fix missed step errors in Gym's Harbor adapter (#3443) by @tamohannes
- fix(cli): exit cleanly when
gym eval submitgets a missing or invalid --config (#3445) by @sven-rankov - feat(assaybench): add AssayBench phenotypic CRISPR screen prediction … (#3475) by @lilithgrigoryan
- feat: unified sandboxed harness interface (#2015) by @cmunley1
- bug_fix(browsecomp): default exa_search_writes_pages to True (#3499) by @ritugala
- Add TerminalBench 4.0 (#3366) by @lafrancef
- ci: AUT-2303 report trigger type in Slack failure alerts (#3379) by @svcnemo-autobot
- fix(bird_sql): distinguish result mismatches and timeouts from execution failures (#3355) (#3468) by @ManoharPaturi
- fix: preserve sandboxed harness runner completion marker when stdout is redirected (#3515) by @cmunley1
- nemotron_3.5_super: let SBATCH_TIMELIMIT set the serving job's wall time (#3517) by @giuliolovisotto
- feat(eval): reverify Relay ATIF trajectories (#2737) by @afourniernv
- feat(opencode): observability - record OpenCode turns (#3363) by @giuliolovisotto
- feat(orchestration): add --resolve-only to gym eval submit (#3524) by @iguehring-nvidia
- fix(docker): AUT-2379 seed pre-commit cache without git metadata (#3525) by @svcnemo-autobot
- fix(cli): serialize shared virtual environment setup (#3435) by @Glorf
- test(math_with_code): cover answer extraction and matching (#3481) by @jpwang65535
- fix(agent): stop trajectories on incomplete reasoning (#3536) by @Kipok
- [Super 3.5 evals] New/updated model configs; Allow non-pd setup; Remove PTY from SWE Pro; Fix TB2.1 interleaved thinking (#3540) by @bxyu-nvidia
- fix(eval): recover judge errors and skip empty or oversized answers (#3538) by @Kipok
- fix(miniswe): preserve model and tool observability (#3527) by @lafrancef
- feat(core): report infrastructure failure from verify, not just a reward (#2611) by @waple0820
- fix(aalcr): classify empty legacy judge replies as failures (#3510) by @yaoyu-33
- feat(token-capture): add Megatron worker capture backend (#2823) by @lauradang
- feat(docs): observability bug, 2891 (#3360) by @ritaneves
- Fix skip_venv_if_present; Bump vLLM router commit (#3551) by @bxyu-nvidia
- Ultra 3 vllm tuning (#2645) by @fsiino-nvidia
- feat: register environment server type (#3482) by @ananthsub
- fix(litellm_model): normalize native LiteLLM responses before NeMoGymResponse validation (#3413) by @ManoharPaturi
- fix(terminal): retain Bullseye security packages during sandbox setup (#3549) by @AdamRajfer
- feat: add manifests for resolved benchmarks (#3535) by @ritaneves
- fix(benchmarks): reject manifest.yaml in benchmark discovery (#3564) by @iguehring-nvidia
- feat(orchestration): record the installed Gym commit in the submission record (#3529) by @iguehring-nvidia
- OpenSandbox API re-uses Gym global_aiohttp_client (#3553) by @bxyu-nvidia
- fix(openai-utils): fail fast on spent-quota 429 and invalid-key 401/403 (#3571) by @gchlebus
- feat(eval): export Gym trajectories as ATIF (#2767) by @afourniernv
- feat(nooa-agent): add safe declarative configuration (#2744) by @init-nikhil
- fix(gymnasium): release subclass state when episodes end (#3440) by @athitten
- Add scicodepile benchmark (#3153) by @rimashahbazyan
- Sci2 64 fukuyamabench sets bc (#3436) by @rimashahbazyan
- Add MolDeTox resources server (#3437) by @rimashahbazyan
- fix(critpt): include both turns in token usage (#3580) by @Kipok
- feat(sandbox): add Sandbox pause and resume (#2636) by @hemildesai
- feat(resources_servers): add interactive browser RL environment (local Playwright + remote CDP backends) (#1865) by @waple0820
- feat: define core episode types (#3483) by @ananthsub
- feat: add environment server lifecycle (#3484) by @ananthsub
- feat: define agent tool access contracts (#3543) by @ananthsub
- feat: support task sandbox access (#3545) by @ananthsub
- feat: add agent session lifecycle API (#3485) by @ananthsub
- feat: add resources session lifecycle API (#3544) by @ananthsub
- feat(osworld): isolate exact-trace and AgentENV environment support (#3592) by @JeffPengCoder
- refactor(tb4): move rollout ownership to the agent server (#3573) by @lafrancef
- fix(miniswe): restore bounded observations and length-aware recovery (#3624) by @lafrancef
- feat: deepsearchqa and widesearch (#3186) by @cmunley1
- fix(nemo fabric): detect reasoning_content used by some harnesses (#3518) by @cmunley1
- docs: remove early development warning (#3631) by @cwing-nvidia
- fix(osworld): resolve Python 3.13 NumPy metadata conflict (#3649) by @JeffPengCoder
- ci: bump preflight workflows to v1.11.0 (#3658) by @ko3n1g
- feat(sandbox): lifecycle telemetry: durations, retries, sandbox ids and a stop span (#3633) by @iguehring-nvidia
- fix(sandbox): fail fast when attaching to a missing OpenSandbox PTY session (#3641) by @hemildesai
- update harness agent readme (#3662) by @cmunley1
- feat(generative_reward_model): add GenRM training resources server (#3635) by @HeyyyyyyG
- fix(genrm): bound cohort deadlines and failure cleanup (#3351) by @yuhezhang-ai
- fix(token-id-capture): classify auxiliary model requests (#2787) by @ananthsub
- feat(capture): stage framework attachments with the token record (#3513) by @pthombre
- feat(orchestration): run an OpenTelemetry collector beside every benchmark job (#3610) by @iguehring-nvidia
- SWE training sandbox migration (#3327) by @sdevare-nv
- feat: jobbench environment (#3070) by @cmunley1
- feat(telemetry): report host and per-server memory usage (#3584) by @ananthsub
- feat: workspacebench env (#3089) by @cmunley1
- impl by @bxyu-nvidia
- Revert "impl" by @bxyu-nvidia
- fix: test file patch verification (#3691) by @sdevare-nv
- [Super 3.5 evals] Update Sep 26, 2026 (#3702) by @bxyu-nvidia
- feat(nooa-agent): embed Gym-backed runtime (#2745) by @init-nikhil
- feat(nooa-agent): project resource evidence (#2746) by @init-nikhil
- feat(nooa-agent): complete lifecycle observability (#2748) by @init-nikhil
- test(nooa-agent): add stateful end-to-end smoke (#3432) by @init-nikhil
- fix: remove swe resource benchmarks (#3703) by @sdevare-nv
- feat(osworld): add sink-window history policy (#3139) by @JeffPengCoder
- feat(orchestration): let a service claim its own nodes (#3654) by @wprazuch
- feat(eval): enable observability by default for submitted jobs (#3414) by @Glorf
- Serve SEC search from a local corpus in both finance servers (#3636) by @ushnish-de
- Hwolff/deepagents agent server (#2929) by @hwolff99
- feat: add sandboxed Hermes for SWE-bench Pro (#3542) by @j-nolan
- build: bump vllm to 0.29.0 and related CVE-flagged deps (#3734) by @kajalj22
- fix(sandbox): preserve Terminal-Bench reference-solution servers in OpenSandbox (#3441) by @ekellbuch
- feat(server): allow servers to opt out of Ray (#3622) by @ananthsub
- fix(model-server): preserve aliases in ORJSON responses (#3047) by @ananthsub
- feat: add single-agent-turn environment server (#3717) by @ananthsub
- chore(server): declare Ray usage for built-in servers (#3728) by @ananthsub
- build: bump wandb to 0.30.0 and ray to 2.58.0 for bundled CVE fixes (#3737) by @kajalj22
- fix: replace CUDA base image's bundled Nsight Systems to resolve Go CVEs (#3739) by @kajalj22
- feat(benchmark): add Aegis v4 safety evaluator (#3699) by @muskank7
- fix(aegis_v4_safety): declare ray_enabled false by @cmunley1
- verifiers_agent: configurable policy-client deadlines (#3741) by @d-molinari
- feat(finance_agent_v2): serve price_history from local daily records (#3736) by @ushnish-de
- fix: tag environment datasets (#3429) by @burtenshaw
- docs: fix spelling in server READMEs (#3688) by @Superb0431
- fix(example_session_state_mgmt): send initial_count from client.py (#3758) by @cmunley1
- fix(cli): report unresolved config interpolations cleanly in manifest validation (#2904) by @AmirF194
- feat: add legacy environment servers (#3724) by @ananthsub
- fix(orchestration): fail evaluations with incomplete samples (#3716) by @Glorf
- feat(orchestration): let a benchmark run its own harness (#3760) by @wprazuch
- Add conf intervals of difference (#3399) by @mpatel31415
- feat(onboarding): complete benchmark manifest coverage (#3660) by @ritaneves
- feat(vllm-model): forward gym session id as backend conversation id (#3582) by @shuyixiong
- test(benchmarks): verify manifest catalog coverage (#3709) by @ritaneves
- feat: add SWE Pro resources sessions (#3718) by @ananthsub
- fix(ci): AUT-2446 install pycountry only for GPU E2E (#3750) by @svcnemo-autobot
- fix(cli): bound Gym server startup wait (#3735) by @ananthsub
- test: AUT-2445 make free local port coverage deterministic (#3749) by @svcnemo-autobot
- feat(wordle): add Wordle environment (#3751) by @cmunley1
- fix(rollout-correlation): expose current_rollout_id() to model-server handlers (#3374) by @shy982
- perf(simple-agent): avoid duplicate verify conversion (#3048) by @ananthsub
- fix(swe-agents): resolve jq by host architecture, bound the final make build attempt (#3778) by @AmirF194
- build: bump orjson, python-multipart, pyarrow, anyio, and remove ray's Java worker jar for CVE remediation (#3779) by @kajalj22
- refactor(agent): align miniSWE with pre-decoupling data flow (#3680) by @lafrancef
- SWE: add committed patch capture (#3731) by @sdevare-nv
- feat: run Hermes inside task sandboxes (#3720) by @ananthsub
- feat(rollout): bound driver task admission and support non-retaining collection (#3497) by @namtran1812
- fix(capture): preserve token capture after synthetic completions (#3670) by @pthombre
- feat: route native tasks through environment servers (#3721) by @ananthsub
- feat(swebench-pro): configure Hermes for SWE-bench Pro (#3722) by @ananthsub
- feat(resources): answer Environment Server seed and close by default (#3786) by @ananthsub
- feat(orchestration): route Gym's Lens telemetry through the job collector (#3619) by @iguehring-nvidia
- fix(docs): AUT-2456 preview approved PR mirror branches (#3794) by @svcnemo-autobot
- fix(scaffold): AUT-2455 wrap standalone agents in environment servers (#3793) by @svcnemo-autobot
- fix(orchestration): make Slurm job folders readable by other users (#3811) by @wprazuch
- feat(orchestration): auto-resume for gym eval submit on Slurm (#3813) by @wprazuch
- fix(scicode): propagate rollout observability (#3762) by @fgalko-oss
- fix(model): preserve upstream execution outcomes (#3761) by @Glorf
- swe_agents: export SANDBOX_TIMEOUT alongside COMMAND_EXEC_TIMEOUT for OpenHands (#3578) by @michal2409
- feat(orchestration): express prefill/decode disaggregation (#3763) by @wprazuch
- fix(swe_pivot): a tool call missing its command argument is not a match (#3134) by @linj-glitch
- Update abstention to use Nemotron RL QA training data (#3329) by @mahanfathi
- fix(ci): AUT-2457 check lock freshness before dependency sync (#3809) by @svcnemo-autobot
- feat: add swemer_oml (#3799) by @sdevare-nv
- fix(cli): launch servers with their venv interpreter and harden spin-up (#3681) by @Kh4L
- fix(openai-utils): accept provider extension fields in strict chat requests (#3682) by @Kh4L
- feat(vllm-model): make the replayed reasoning key configurable (#3683) by @Kh4L
- fix(cli): fail server suites on unrecognized exit codes (#3700) by @yaoyu-33
- fix(eval): preserve per-rollout seeds with existing metadata (#3672) by @yaoyu-33
- fix(benchmark): increase Aegis target output limit (#3753) by @muskank7
- feat(stirrup): align the GDPVal sandbox with AA v2 and harden the agent runtime (#3685) by @Kh4L
- feat(rollout-collection): add --interleave-repeats (#3822) by @jubick1337
- feat(rollout): add a dispatch budget and an opt-in failure retry contract (#3684) by @Kh4L
- feat(gdpval): harden judging with local judges and media inputs (#3686) by @Kh4L
- feat(gdpval): harden multistage ELO orchestration (#3687) by @Kh4L
- feat(verifiers_agent): emit the rollout evidence health checks read (#3403) by @wprazuch
- fix(spider2): AUT-2464 avoid database downloads during test startup (#3874) by @svcnemo-autobot
- fix(health): scope rollout_duplicate_identity to stage_index (#3814) by @wprazuch
- feat(eval): let a benchmark declare what its prepare script needs (#3869) by @wprazuch
- fix(sandbox): stop local subprocesses on cancellation (#3652) by @yaoyu-33
- fix(capture): mask rollouts with unconfirmed terminal IDs (#3694) by @yaoyu-33
- feat(interactive_browser): serve Environment Server resources sessions (#3812) by @waple0820
- feat(token-capture): admit multimodal Megatron capture requests (#3787) by @lauradang
- fix(cli): pass config dict via process environment instead of command line (#3383) (#3472) by @ManoharPaturi
- fix(telemetry): adopt nemo-lens SpanRegistry and reuse an existing Lens setup (#3890) by @ananthsub
- feat(core): expose aiohttp pool wait telemetry (#3632) by @athitten
- fix(terminal-bench): reopen downloaded reward files (#3899) by @yaoyu-33
- feat(core): align episode and rollout failure contracts (#3877) by @yuhezhang-ai
- feat(gdpval): allow partial_completion on the final stage (#3912) by @Kh4L
- fix(rollout_health): see the failed calls and empty turn lists it was skipping (#3427) by @wprazuch
- fix(automationbench): keep openai on Gym's line, and say why the import failed (#3925) by @wprazuch
- feat(eval): count a rollout that produced no row as zero (#3559) by @jubick1337
- fix(docker): optionally seed every server module's environment for offline server tests (#3878) by @ko3n1g
- build: bump urllib3/PyJWT, upgrade OpenSSL, purge ray jar from uv cache (#3826) by @kajalj22
- feat(agent): add dedicated OpenCode and Pi sandboxed evaluation (#3575) by @Kipok
- docs: shorten benchmark onboarding guidance (#3713) by @ritaneves
- feat(interactive_browser): tag provider sessions with the episode (#3932) by @waple0820
- SWEmer oml blob restore (#3876) by @sdevare-nv
- fix(opencode-agent): stop the sandbox when a rollout is cancelled (3931) (#3952) by @svcnvidia-nemo-ci
- cp: CI fixes (#4054, #4055, #4061) into
r0.7.0(#4083) by @ananthsub - fix(model): preserve structured Responses fields in chat conversion (4057) (#4078) by @svcnvidia-nemo-ci
- cp: tasksets, episode-request naming, and multi-agent environment servers (#3818, #4070, #3929, #4053) into
r0.7.0(#4107) by @ananthsub - feat(data): support materialized task dataset metrics (4060) (#4115) by @svcnvidia-nemo-ci
- cp: Hermes session hardening and simple agent environment server sessions (#3554, #3784) into
r0.7.0(#4113) by @ananthsub - fix(agent): keep observations from every SimpleAgent session activation (4114) (#4123) by @svcnvidia-nemo-ci
- ci: bump cherry-pick workflow to v1.12.2, alert Gym channel (4119) (#4124) by @svcnvidia-nemo-ci
- docs(deepagents): fix generic agent launch instructions (3827) (#4126) by @svcnvidia-nemo-ci
- fix(config): declare environment servers for agents added after the migration (4084) (#4127) by @ananthsub
- feat(agent): allow session-owned tool execution (4111) (#4130) by @svcnvidia-nemo-ci
- docs(token-capture): fix external agent harness guide (4102) (#4133) by @svcnvidia-nemo-ci
- test(orchestration): stub pip in slurm quoting test (4122) (#4132) by @svcnvidia-nemo-ci
- cp: NeMo User Sim materialized-row runtime (#3800) into
r0.7.0(#4156) by @ffrujeri - docs: add v0.7.0 release notes (4163) (#4179) by @svcnvidia-nemo-ci
- fix(hermes): report native token usage (4139) (#4185) by @svcnvidia-nemo-ci
- fix(opencode): replay reasoning as reasoning_content on Gym model servers (4180) (#4191) by @svcnvidia-nemo-ci
- docs(infrastructure): correct system design page startup and rollout flow (4101) (#4195) by @svcnvidia-nemo-ci
- fix(server): enable TCP keepalive on accepted server connections (3727) (#3944) by @svcnvidia-nemo-ci
- docs: remove internal access details from Tavily setup (4112) (#4190) by @svcnvidia-nemo-ci
- feat(nemo-user-sim): add generated validation tasks (3802) (#4182) by @svcnvidia-nemo-ci
- fix(config): backport agent rename compatibility to r0.7.0 (#4199) by @zyzhou5
- chore(docker): remove Nsight Systems from the image (4183) (#4189) by @svcnvidia-nemo-ci
- fix: install pycountry in codec deps installer (4146) (#4202) by @svcnvidia-nemo-ci
- fix(security): bump msgpack to 1.2.3 (4068) (#4184) by @svcnvidia-nemo-ci
- fix(scaffold): move a reused scorer's environment server with its agent (4085) (#4203) by @svcnvidia-nemo-ci
- chore: never install gprof2dot/pathspec; purge dbus and gi bindings (4193) (#4205) by @kajalj22
- release: drop pre-release tag for v0.7.0 (#4208) by @kajalj22
- docs(fern): add v0.7.0 version snapshot for GA release (4207) (#4211) by @svcnvidia-nemo-ci
- fix(security): bump aiohttp 3.14.1 -> 3.14.4 (4214) (#4217) by @svcnvidia-nemo-ci
- docs(cli): fix cli-commands.mdx issues from NVBug 6854088 (4093) (#4219) by @svcnvidia-nemo-ci
- docs(environments): fix new-environment.mdx issues from NVBug 6853090 (4175) (#4246) by @svcnvidia-nemo-ci
- cp: automatic NeMo User Sim persona download (#4258) into
r0.7.0(#4260) by @ffrujeri