Skip to content

Clean up empty NeMo Gym extra - #2476

Merged
xeophon merged 2 commits into
mainfrom
chore-remove-empty-nemo-gym-extra
Aug 31, 2026
Merged

Clean up empty NeMo Gym extra#2476
xeophon merged 2 commits into
mainfrom
chore-remove-empty-nemo-gym-extra

Conversation

@xeophon

@xeophon xeophon commented Aug 31, 2026

Copy link
Copy Markdown
Member

Overview

Remove obsolete optional-extra metadata left behind after the NeMo Gym dependency moved into its isolated resource-server script. This is packaging cleanup that aligns declarations with the existing runtime design; no server or evaluation logic changes.

Details

  • Remove the empty nemo-gym optional extra from Verifiers.
  • Make the bundled weather environment depend on plain verifiers instead of the obsolete extra.
  • Keep nemo-gym==0.4.0 and MCP 1.x isolated in the managed server script while the main Verifiers process uses MCP 2.

Note

Remove empty nemo-gym extra from pyproject.toml

Deletes the empty nemo-gym optional dependency group from pyproject.toml and updates environments/nemo_gym_weather/pyproject.toml to depend on base verifiers instead of verifiers[nemo-gym].

  • Risk: pip install .[nemo-gym] will no longer work since the extra is removed.

Macroscope summarized be7f8be.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Aug 31, 2026

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review Completed 2026-08-31T17:33:53.271004Z 83433f2 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@xeophon
xeophon enabled auto-merge (squash) August 31, 2026 17:32

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 83433f20bc

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread pyproject.toml
@macroscopeapp

macroscopeapp Bot commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at be7f8be

Macroscope's review found this PR approvable — This is a two-file packaging cleanup that removes an empty optional extra and updates the bundled environment to depend on base verifiers, without changing production code or runtime paths. The cited resolution issue concerns the old dependency string, which is removed in the same diff.

You can add or adjust custom eligibility rules. Learn more.

@xeophon
xeophon merged commit df618d9 into main Aug 31, 2026
12 of 13 checks passed
@xeophon
xeophon deleted the chore-remove-empty-nemo-gym-extra branch August 31, 2026 18:04
hallerite added a commit that referenced this pull request Sep 2, 2026
Pure deletions; no behaviour change.

- configs/eval, configs/gepa, configs/rl, configs/zero3.yaml,
  configs/endpoints.toml: v0 `vf-eval` / training formats, unreferenced
  since the v0 stack was removed; drop the test filter that skipped them
- pyproject: inert nemo-gym dependency-metadata (not a dependency since
  #2476), pytest markers no test applies, cellpylib warning filter
- Harness.run: superseded by HarnessSession.turn, zero callers
- Agents.__iter__/__len__: no reader in verifiers, prime-rl, or the env repos
- utils.git.snapshot_untracked: never called
- cli.output.saved_config_path: drop the pre-#2429 configs/<cli>.json
  fallback; eval/gepa usage gate: drop the --taskset./--harness. prefixes
  of flags removed in #2157/#2237
- mcp: ServerBase.EXTRAS and RUNTIME_PYTHON hooks that no server declares
- prime_agent: SUPPORTS_RESUME is never read on an ACP harness

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
xeophon pushed a commit that referenced this pull request Sep 2, 2026
Pure deletions. Every item has zero references in verifiers, prime-rl,
prime-envs and community-environments (grep + GitHub code search);
nothing here changes behaviour.

**v0 config trees (−820 lines).** `configs/eval/`, `configs/gepa/`,
`configs/rl/`, `configs/zero3.yaml`, `configs/endpoints.toml` are the
`vf-eval` / DeepSpeed formats of the removed v0 stack.
`tests/v1/test_configs.py` already excluded them; the filter goes with
them.

**pyproject.** The `[[tool.uv.dependency-metadata]] nemo-gym` block is
inert (nemo-gym stopped being a dependency in #2476; the PEP 723 header
in `tasksets/nemo_gym/server.py` is the one that is used), so `uv.lock`
loses its manifest entry. Markers `integration`, `slow`, `unit`,
`parsers`, `rubrics`, `environments` are applied by no test; the
`cellpylib` warning filter targets a package that is not in the lock.

**Dead code.**
- `Harness.run()`: the pre-session launch/resume dispatch, superseded by
`HarnessSession.turn`.
- `Agents.__iter__`/`__len__`: no reader anywhere; every env addresses
agents by attribute.
- `saved_config_path`: the fallback to the pre-#2429
`configs/<cli>.json` location. Only `configs/resolved/` is written.
- `eval`/`gepa` usage gate: the `--taskset.`/`--harness.` prefixes kept
alive for flags removed in #2157/#2237.
- `ServerBase.EXTRAS` and the `RUNTIME_PYTHON` hook in `mcp/launch.py`:
declared by no server anywhere.
- `PrimeAgentHarness.SUPPORTS_RESUME`: `ACPHarness` overrides
`session()`, so both sites that read the flag short-circuit before
reaching it.

`snapshot_untracked` was removed in the first revision and restored in
the second: prime-envs #792 calls it from four SWE tasksets
(`capture_patch(ignore=...)`). Open PRs in the env repos are now part of
the check.

Deliberately not in this PR: anything on the `Trace`/`Episode` record
model (`Episode` aggregates, `PolicySpan.drift`, `Trace.last_message`) —
those have downstream consumers outside this repo; `agent_config_fields`
(its `_declared_agent_configs` twin checks field defaults, not values,
so swapping is not a pure deletion), `WireTrace`, `InterceptionError`,
the `Branch` trainer-side properties, and every docs/docstring wording
fix. Those are separate PRs.

Checks run on the branch: `ruff check`, `ruff format --check`, `ty check
verifiers`, and `pytest tests/v1 -m "not e2e"` (82 passed).

🤖 Generated with [Claude Code](https://claude.com/claude-code)

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> **Low Risk**
> Mostly deletions of unreferenced configs and code; the only behavioral
tweaks are stricter CLI axis detection, resolved-config-only replay
paths, and always running full MCP sandbox installs.
> 
> **Overview**
> Removes **v0-era configuration** that is no longer part of the v1
stack: the entire `configs/eval/`, `configs/gepa/`, `configs/rl/` trees,
`configs/endpoints.toml`, and `configs/zero3.yaml`. Config validation in
`tests/v1/test_configs.py` no longer special-cases `endpoints.toml`.
> 
> **Tooling cleanup** drops the unused `nemo-gym`
`[[tool.uv.dependency-metadata]]` block from `pyproject.toml` (and the
matching `uv.lock` manifest), unused pytest markers, and a `cellpylib`
warning filter for a package not in the lock.
> 
> **Dead v1 code paths** are deleted without replacing callers:
`Harness.run()` (segment dispatch now lives on `HarnessSession.turn`),
`Agents.__iter__`/`__len__`, legacy resolved-config lookup in
`saved_config_path`, narrowed `eval`/`gepa` CLI usage gates (no
`--taskset.` / `--harness.` shortcuts), MCP sandbox install no longer
honors `ServerBase.EXTRAS` or `RUNTIME_PYTHON`, and
`PrimeAgentHarness.SUPPORTS_RESUME` (unused because ACP harnesses use
`session()`).
> 
> <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit
8389294. Bugbot is set up for automated
code reviews on this repo. Configure
[here](https://www.cursor.com/dashboard/bugbot).</sup>
<!-- /CURSOR_SUMMARY -->

<!-- Macroscope's pull request summary starts here -->
<!-- Macroscope will only edit the content between these invisible
markers, and the markers themselves will not be visible in the GitHub
rendered markdown. -->
<!-- If you delete either of the start / end markers from your PR's
description, Macroscope will append its summary at the bottom of the
description. -->
> [!NOTE]
> ### Remove v0 config files, dead code, and fix CLI usage-gate bypass
in v1
> - Deletes leftover v0 configs under `configs/` (endpoint registry,
eval/gepa/rl TOMLs, `zero3.yaml`) and removes unused pytest markers,
dependency metadata, and dead class members (`Agents.__iter__`,
`Agents.__len__`, `ServerBase.EXTRAS`,
`PrimeAgentHarness.SUPPORTS_RESUME`).
> - Restricts the typed-axis usage-gate bypass in
[main.py](https://github.com/PrimeIntellect-ai/verifiers/pull/2496/files#diff-1335625d1379d7f1a4bf6a2f961d4b5fde5f3a9bfb8eb4cc736859f08698a8c8)
and
[gepa.py](https://github.com/PrimeIntellect-ai/verifiers/pull/2496/files#diff-dc87040f272d5f7871025c1cd9da91e56670d1cf1deff808037cb5bc356376bc)
to `--env.`/`--serve.` prefixes only; `--taskset.` and `--harness.`
arguments no longer suppress the usage message.
> - Removes the `configs/` fallback in
[output.py](https://github.com/PrimeIntellect-ai/verifiers/pull/2496/files#diff-07fce45dd0fa633f34d25e19962ab801b705a509774833de0d81bfe872787e8b):
`saved_config_path` now searches only `configs/resolved/`.
> - Changes non-subprocess MCP server launch in
[launch.py](https://github.com/PrimeIntellect-ai/verifiers/pull/2496/files#diff-989d87123d40d48511f9e1df74594d2e30776e9a99c11eca49d9cc20bf9e2230)
to always install a sandbox venv and use its Python, dropping the
`RUNTIME_PYTHON` override and server-class extras suffix.
> - Risk: non-subprocess MCP servers no longer honor a prebuilt
`RUNTIME_PYTHON` executable; `saved_config_path` returns `None` for runs
with JSON only under `configs/` rather than `configs/resolved/`.
>
> <!-- Macroscope's review summary starts here -->
>
> <sup><a href="https://app.macroscope.com">Macroscope</a> summarized
8389294.</sup>
> <!-- Macroscope's review summary ends here -->
>
<!-- Macroscope's pull request summary ends here -->

---------

Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
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