Skip to content

feat!: drop v0 env compat - #3226

Merged
mikasenghaas merged 19 commits into
mainfrom
feat/deprecate-v0-envs
Aug 11, 2026
Merged

feat!: drop v0 env compat#3226
mikasenghaas merged 19 commits into
mainfrom
feat/deprecate-v0-envs

Conversation

@mikasenghaas

@mikasenghaas mikasenghaas commented Aug 9, 2026

Copy link
Copy Markdown
Member

Summary

Companion to the verifiers v1-legacy-bridge removal and the research-environments _v1 rename. prime-rl drops every v0 compat path:

  • Configs: EnvConfig/EnvServerConfig lose the [legacy] block, is_legacy, the legacy/env conflict validators, and resolve_legacy_env_kwargs; the launcher no longer copies a legacy section into per-source env-server TOMLs; resolve_env_config no longer injects max_seq_len into legacy kwargs.
  • Env server entrypoint: always serves a taskset (serve_env(config_data=..., max_concurrent=...)) — the bridge fork is gone.
  • Orchestrator: Env always loads its taskset client-side — info(), run_group(), and task_idx addressing are gone with the protocol. requires_group_scoring and all its consumers go: permit cost is always one episode (acquire()/release() are unit-valued, InflightRollout.rollout_count removed, the run_group fan-out in handle_completed_rollout removed), the group-scored-partial drop policy in the train sink is gone, and the eval sink's buffered-count carve-out simplifies.
  • TrainSource / EvalSource: rows always carry the task; next_example() takes no permit argument, and the pending-draw head-of-line hold (which only existed for multi-permit group draws) is removed — pending_env leaves the checkpoint state (old checkpoints load fine; the key is ignored).
  • GroupState.task is required; task_idx derives from task.data.idx for error markers.
  • Env renames: all taskset ids drop the -v1 suffix across configs/, examples/, k8s/, docs, skills, and the uv workspace members; proposer_solver_v1 import in the algorithm config follows.
  • Ports the qwen3-vl features-payload test from the v0 RendererClient to renderers.client.generate — the path the v1 train client actually drives.
  • Pins the deps/verifiers and deps/research-environments submodules to the merged companion commits, floors verifiers>=0.3.1.dev14, and relocks. Unit suite passes against the renamed packages (596 tests; the tests/unit/train modules need the flash-attn extra and were skipped locally).

Breaking

  • [legacy] config blocks are rejected: any TOML with legacy = { id = ... } under a train/eval source or env-server config fails validation. Migration: port the env to a v1 taskset and set env = { taskset = { id = "<id>" } }.
  • Taskset ids drop -v1 in all configs (e.g. reverse-text-v1reverse-text).
  • Checkpoint note: TrainSource.state_dict() no longer records pending_env; resuming an old checkpoint ignores the key (only ever set for group-scoring v0 envs).

Both companions are merged: deps/verifiers pins main d53ab56f (verifiers#2303 + #2311 + the #2314 catalog revert, released as 0.3.1.dev14 — the floor here) and deps/research-environments pins main c0a0d1d7a (research-environments#754).

🤖 Generated with Claude Code


Note

High Risk
Removes legacy env and task id compatibility across orchestration, configs, and checkpoints (pending_env ignored on resume); misconfigured or unmigrated TOMLs will fail validation or resolve wrong tasksets at runtime.

Overview
Breaking change that aligns prime-rl with verifiers v1-only envs and renamed tasksets: configs must use env.taskset.id (no [legacy]), and ids like reverse-text-v1 become reverse-text everywhere (configs, examples, docs, workspace members).

Orchestrator is simplified to a single dispatch path: tasksets load client-side, each rollout is one run with task_data (no task_idx, run_group, or requires_group_scoring). Permit accounting is one episode per in-flight task; train/eval sources no longer gate scheduling on permit cost or hold a pending_env draw.

Config/runtime: EnvConfig / EnvServerConfig drop legacy fields and validators; env-server and RL launcher TOMLs no longer emit legacy. hierarchical_grpo imports proposer_solver instead of proposer_solver_v1. tasks_per_minute is documented as a global dispatch limit.

Deps/tests: verifiers>=0.3.1.dev14, workspace env package paths renamed; Qwen3-VL e2e test uses renderers.client.generate instead of v0 RendererClient.

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

mikasenghaas and others added 18 commits August 9, 2026 04:06
The verifiers legacy bridge is removed upstream, so every v0 code path
goes:

- configs: drop the [legacy] block, is_legacy, the legacy/env conflict
  validators, and resolve_legacy_env_kwargs from EnvConfig and
  EnvServerConfig; env-server TOMLs no longer carry a legacy section
- env-server entrypoint: always serve a taskset (no bridge fork)
- orchestrator: Env always loads its taskset client-side (info()/
  run_group()/task_idx addressing removed); requires_group_scoring and
  its consumers (variable permit costs, group-scored partial drops,
  run_group fan-out) are gone — one permit is one episode everywhere
- TrainSource rows always carry the task; the pending-draw head-of-line
  hold and per-env permit costs are gone (next_example takes no args)
- GroupState.task is required; task_idx derives from task.data.idx
- env taskset ids drop the -v1 suffix across configs, examples, docs,
  skills, and the workspace members (companion renames in verifiers and
  research-environments)
- port the qwen3-vl features-payload test from the v0 RendererClient to
  renderers.client.generate (the path the v1 train client drives)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…and relock

deps/verifiers -> feat/legacy-package (6a8de86), deps/research-environments
-> feat/drop-v1-suffix (27ed790). Re-pin to the merged commits before landing.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
v0 code stays in place upstream; the branch now only removes the v1
legacy bridge and the -v1 suffixes (lock unchanged).

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>
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>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Submodules resolve to the feature-branch heads, which contain main's
bumps (verifiers model-call timeout fix, research-environments toolset
register() fix — the latter now merged into the rename branch).

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>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
deps/verifiers -> main 91d4f69e6 (#2303 merged); research-environments
-> the rename branch head with the automationbench_env collision fix.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The first dev release carrying the v0 deprecation (verifiers#2303);
submodule follows main.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ts parent

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…1.dev13

deps/verifiers -> f24b8ec0 (#2311), deps/research-environments ->
c0a0d1d7a (#754); 0.3.1.dev13 is the release cut from that verifiers
commit.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@mikasenghaas
mikasenghaas marked this pull request as ready for review August 11, 2026 01:44
Picks up the model-catalog revert (verifiers#2314).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@mikasenghaas mikasenghaas changed the title feat!: drop v0 env compat (orchestrator, configs, env names) feat!: drop v0 env compat Aug 11, 2026
@mikasenghaas
mikasenghaas merged commit 03f12ef into main Aug 11, 2026
17 checks passed
@mikasenghaas
mikasenghaas deleted the feat/deprecate-v0-envs branch August 11, 2026 04:54
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.

2 participants