Skip to content

chore: bump renderers to 0.1.11, verifiers and prime-envs to main - #3441

Merged
hallerite merged 10 commits into
mainfrom
chore/bump-renderers-0.1.11
Aug 31, 2026
Merged

chore: bump renderers to 0.1.11, verifiers and prime-envs to main#3441
hallerite merged 10 commits into
mainfrom
chore/bump-renderers-0.1.11

Conversation

@hallerite

@hallerite hallerite commented Aug 31, 2026

Copy link
Copy Markdown
Member

Summary

  • Require renderers[multimodal]>=0.1.11 in prime-rl: renderers 0.1.11 makes transformers optional behind the [transformers] / [multimodal] extras, and prime-rl loads HF tokenizers (renderers.base.load_tokenizer / create_renderer) and renders image content — the multimodal extra carries transformers + pillow.
  • Bump the floor to renderers>=0.1.11 in prime-rl-configs, which only imports config types and MODEL_RENDERER_MAP and needs no extra.
  • Update the renderers submodule to the 0.1.11 release tag.
  • Bump the verifiers submodule to current main (66915aaa): renderers 0.1.11 bump + legacy RendererClient removal (chore: bump renderers to 0.1.11; drop legacy RendererClient verifiers#2478), MCP 2026-07-28 adoption (mcp==2.0.0), aiohttp>=3.14.
  • Bump the prime-envs submodule to main (39906ac2, which includes feat: make prime-envs compatible with verifiers main / mcp 2 prime-envs#789): verifiers' mcp==2.0.0 pin was unresolvable against automationbench's mcp<2 and browsecomp_plus's mcp>=1,<2 pins in the shared workspace lock; [feat] max vio in sft #789 removed automationbench_env entirely (its automation-bench git dep leaves the lock), dropped browsecomp_plus's stale pin, and migrated the enterprise_ops_gym / mcp_atlas tool servers to mcp 2 (validated e2e via Prime Inference — see [feat] max vio in sft #789's description for results).
  • Refresh the lock (pillow enters the tree; transformers moves behind the extra markers; mcp 2.0.0, aiohttp 3.14, openai-agents 0.20, tau2-bench 0.3.1 follow the submodule bumps).

prime-rl doesn't use the renderer pool APIs removed in renderers 0.1.11, and nothing in prime-rl imports verifiers.legacy.

enterprise_ops_gym and mcp_atlas, which imported mcp.server.fastmcp internals at runtime, are migrated to the mcp 2 MCPServer override pattern in PrimeIntellect-ai/prime-envs#789 (included via the submodule pointer).

Submodule commits pulled in by this bump

renderers cb824391 (v0.1.10) → 9b47901d (v0.1.11), 5 commits:

verifiers b2e4e815e2103d6f (main), 24 commits
prime-envs 26dafdc91f1e050a (main), 7 commits

Verification

  • uv lock --check
  • uv run --no-project --with pre-commit pre-commit run --files pyproject.toml packages/prime-rl-configs/pyproject.toml uv.lock

🤖 Generated with Claude Code


Note

Medium Risk
Wide dependency and MCP 2.0 upgrades affect many evaluation environments and HTTP/MCP tool servers; regressions are most likely in multimodal rendering and MCP-based envs rather than core RL entrypoints.

Overview
This PR raises dependency floors and refreshes the workspace lock to match updated verifiers and prime-envs submodules.

Renderers: prime-rl and the lock now require renderers[multimodal]>=0.1.11 so multimodal rendering (HF tokenizers / images) still pulls transformers and pillow after renderers made those optional. prime-rl-configs only bumps to renderers>=0.1.11 (no extra).

Verifiers ecosystem: Lock metadata moves many prime-envs packages to verifiers>=0.3.1 and drops redundant direct pins on datasets, openai, httpx, and prime-sandboxes where verifiers now supplies them. Verifiers itself pins mcp==2.0.0, aiohttp>=3.14, renderers[multimodal]>=0.1.11, and drops openai-agents (and related packages) from the resolved graph.

MCP / tool envs: automationbench-env is removed from the workspace manifest and lock. enterprise-ops-gym (0.2.0) and mcp-atlas (0.4.0) add mcp>=2,<3 and shed older HTTP/sandbox pins aligned with MCP 2.

Transitive updates in uv.lock include mcp 2.0.0 (via httpx2), aiohttp 3.14.3, openai 2.54.0, and tau2-bench 0.3.1, plus renderers optional-deps layout (multimodal / transformers extras).

Reviewed by Cursor Bugbot for commit 1386784. Bugbot is set up for automated code reviews on this repo. Configure here.

renderers 0.1.11 makes transformers optional, splitting it into the
[transformers] and [multimodal] (transformers + pillow) extras. Depend
on renderers[multimodal] in prime-rl, which loads HF tokenizers and
renders image content, and bump the floor in prime-rl-configs, which
only imports config types and stays extra-free. Update the renderers
submodule to the 0.1.11 release and refresh the lock.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
samsja
samsja previously approved these changes Aug 31, 2026
verifiers moves to current main (renderers 0.1.11 bump, legacy
RendererClient removal, MCP 2026-07-28 adoption, aiohttp>=3.14).
Its mcp==2.0.0 pin conflicts with automationbench's and
browsecomp_plus's mcp 1.x pins, so prime-envs moves to main plus
PrimeIntellect-ai/prime-envs#789, which drops those pins; re-point to
prime-envs main once that PR merges.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@hallerite hallerite changed the title chore: bump renderers to 0.1.11 chore: bump renderers to 0.1.11, verifiers and prime-envs to main Aug 31, 2026
hallerite and others added 6 commits August 31, 2026 18:37
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
PrimeIntellect-ai/prime-envs#789 now removes automationbench_env
instead of migrating it; the env and its automation-bench git dep
leave the workspace lock.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
enterprise_ops_gym and mcp_atlas now run their dynamic-schema tool
servers on MCPServer overrides and declare mcp>=2,<3 directly.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…erged mcp2 branch

verifiers main now includes the legacy (v0) stack removal (#2480);
prime-rl only consumes verifiers.v1. prime-envs moves to
PrimeIntellect-ai/prime-envs#789 merged with its main (judge
standardization, Prime VM defaults).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
xeophon pushed a commit to PrimeIntellect-ai/prime-envs that referenced this pull request Aug 31, 2026
## Summary

Makes prime-envs compatible with verifiers main, which pins `mcp==2.0.0`
(the MCP 2026-07-28 adoption, PrimeIntellect-ai/verifiers#2474) and
removes `mcp.server.fastmcp`. Unblocks the verifiers submodule bump in
prime-rl (PrimeIntellect-ai/prime-rl#3441).

- **automationbench_env**: removed entirely rather than migrated (team
decision — superseded by the Verified fork; its `mcp<2` pin was the hard
workspace-lock conflict). Also drops its row from the tool_use README
index. Nothing else in prime-envs or prime-rl references it.
- **browsecomp_plus**: upstream #777 already dropped its `mcp>=1,<2`
pin; on the merged tree this PR removes the stale FastMCP comment it
left behind (changelog entry added). It imports nothing from mcp itself.
- **enterprise_ops_gym / mcp_atlas**: both tool servers advertised
dynamic, service-defined tool schemas by installing fastmcp `Tool`
objects with a passthrough `FuncMetadata` into the private tool manager
— runtime-broken under mcp 2. Migrated to the pattern verifiers'
nemo_gym toolset established in #2474: `register` overrides
`MCPServer.list_tools` / `call_tool` (the public methods its protocol
handlers dispatch through at request time), serving `mcp.types.Tool`
entries with the live schemas verbatim and wrapping forwarded results in
`CallToolResult`. Argument validation stays with the backing services,
as before. Both now declare `mcp>=2,<3` directly and are version-bumped
(enterprise-ops-gym 0.2.0, mcp-atlas 0.4.0) for the breaking change.

## E2E results (hosted model via Prime Inference)

Same tasks, same model (`openai/gpt-5.6-luna` via api.pinference.ai),
same flags (`-n 2 -r 1`, max-turns 8, max-tokens 1024), prime VM
runtimes. **main stack** = env from prime-envs main + released verifiers
0.3.1 (mcp 1.x, FastMCP path); **PR stack** = env from this branch +
verifiers main (mcp 2, MCPServer path).

| Run | main stack | PR stack |
|---|---|---|
| enterprise_ops_gym task 0 (calendar kickoff) | reward **1.0**,
verifier pass rate 1.0 | reward **1.0**, verifier pass rate 1.0 |
| enterprise_ops_gym task 1 (Helios roadmap) | reward **0.0**, pass rate
0.4 | reward **0.0**, pass rate 0.4 |

The model received the dynamic tool catalog over the wire, called the
gym MCP tools, mutated the seeded databases through them, and the SQL
end-state verifiers scored **identically on both stacks** — including
matching per-verifier pass rates on the failed task (a model/task
failure, identical on both sides). This exercises the migrated
`register`/`list_tools`/`call_tool` path end-to-end against live
services.

mcp_atlas (with the documented source installs for env + verifiers)
completed on both stacks — healthy multi-turn tool loops (5–8 tool-call
rounds per rollout, no tool errors), rollouts `ok`, judge-scored:

| Run | main stack | PR stack |
|---|---|---|
| mcp_atlas task 0 (local-files QA) | coverage **1.0** (6 calls) |
coverage **0.0** (8 calls) |
| mcp_atlas task 1 (Santiago communes QA) | coverage **0.3** (7 calls) |
coverage **0.5** (5 calls) |

Unlike EOG's deterministic SQL verifiers, atlas scores are single-sample
LLM-judge coverage under temperature sampling — the per-task deltas go
both directions and there is no mechanical divergence in the traces
(both stacks listed and called the dynamic Atlas tools over MCP without
errors). Earlier atlas attempts failed **identically on both stacks** at
infra layers before any MCP code (GHCR image rejection — since fixed
upstream and merged in; then the source-install requirements).

## Verification

- Functional smoke test on mcp 2.0.0: both migrated toolsets driven
through a real `MCPServer`'s public `list_tools`/`call_tool` — dynamic
schemas served verbatim (`input_schema` intact), forwarded results
wrapped in `CallToolResult`, unknown tools raise.
- mcp 2.0.0 source check (re Bugbot): the SDK's protocol handlers
dispatch late through `self.list_tools()` / `self.call_tool(...)` —
there is no `on_list_tools`/`on_call_tool` init binding — so the
instance-attribute overrides are the supported interception point.
- ruff check clean; root `uv lock --check` passes.

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

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> **Medium Risk**
> Removes an entire taskset and changes how two stateful MCP proxies
advertise and dispatch tools; behavior is intended to be unchanged, but
this touches multi-turn grading paths.
> 
> **Overview**
> Updates prime-envs for **verifiers main**, which pins **MCP 2** and
drops `mcp.server.fastmcp`.
> 
> **`automationbench_env` is removed** (package, docs, and tool-use
index row) because it could not be reconciled with the MCP 2 lock and is
superseded elsewhere.
> 
> **`enterprise_ops_gym`** and **`mcp_atlas`** no longer register
dynamic tools via FastMCP internals. Their tool servers override
**`MCPServer.list_tools` / `call_tool`** to expose live service schemas
as `mcp.types.Tool` and return **`CallToolResult`**, matching the
verifiers pattern for dynamic catalogs. Both declare **`mcp>=2,<3`** and
are version-bumped (**0.2.0** / **0.4.0**).
> 
> **`browsecomp_plus`** only drops a stale FastMCP-era dependency
comment and notes MCP 2 in the changelog; it does not import MCP
directly.
> 
> <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit
4cb5269. 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]
> ### Migrate `enterprise_ops_gym` and `mcp_atlas` toolsets to MCP 2 and
remove `automationbench_env`
> - Replaces FastMCP internals (`FastMCP`, `Tool`, `ArgModelBase`,
`_PassthroughMetadata`) in `enterprise_ops_gym` and `mcp_atlas` with MCP
2 `MCPServer` registration that overrides `list_tools` and `call_tool`
directly on the server instance.
> - `register` now assigns instance coroutines for dynamic tool listing
and dispatch; `call_tool` returns `CallToolResult` with `TextContent`
and raises `ValueError` for unknown tool names.
> - Deletes the `automationbench_env` environment package and removes
its taskset row from the `tool_use` README.
> - Both updated packages bump versions and add a direct `mcp>=2,<3`
dependency constraint in their `pyproject.toml`.
> - Risk: installing these packages now requires MCP 2.x; consumers
still on MCP 1.x / FastMCP will fail to resolve dependencies. The
removed `_PassthroughMetadata` and `_EMPTY_ARG_MODEL` shims in
[toolset.py](https://github.com/PrimeIntellect-ai/prime-envs/pull/789/files#diff-801ef4ed1395fe376f6de7d8884a88b72fdbbbddb93d8dff3e9e8c2588d2c5a9)
and
[toolset.py](https://github.com/PrimeIntellect-ai/prime-envs/pull/789/files#diff-e51faf9f76fd939f40f8e0f3256c2e72307821c3a3f306a03fb06e0bee62f8b4)
mean any external code relying on those private symbols breaks.
>
> <!-- Macroscope's review summary starts here -->
>
> <sup><a href="https://app.macroscope.com">Macroscope</a> summarized
4cb5269.</sup>
> <!-- Macroscope's review summary ends here -->
>
<!-- Macroscope's pull request summary ends here -->

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
hallerite and others added 2 commits August 31, 2026 19:28
…merged

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@hallerite
hallerite merged commit c176840 into main Aug 31, 2026
16 of 19 checks passed
@hallerite
hallerite deleted the chore/bump-renderers-0.1.11 branch August 31, 2026 20:14
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.

3 participants