This release adds 3 notable features for engineering teams evaluating rollout.
✓ No known CVEs patched in this version
Topics
+14 more
Affected surfaces
Summary
AI summaryOpenAI agent runner adds optional sampling and endpoint parameters with fail‑closed API key handling.
Full changelog
v2.11.0
Released 2026-07-02.
Features
- The openai_agents runner accepts optional sampling and endpoint parameters:
temperature,top_p,top_k,base_url, andapi_key_envon the runner manifest, flowing into the SDK client and model settings. Absent fields keep the previous behavior byte-identical. Whenbase_urlis set the runner switches to the chat-completions API and excludes the custom client from tracing, so a third-party key is never sent to the default tracing endpoint. Every effective parameter is logged in the runner start event, so runs stay self-describing. Design validated in daily runs by @shanemmattner (#2159). (#2173) api_key_envis fail-closed: it must name a known LLM provider key from the built-in allowlist; anything else requires the operator to allow it viaBERNSTEIN_ALLOWED_API_KEY_ENVSon the host, which a repository cannot set. Requesting sampling parameters on an adapter without the newSUPPORTS_SAMPLING_PARAMScapability fails loudly instead of silently dropping them. (#2173)- SDK runners now write heartbeats, so they are visible to the stall watchdog between spawn and exit. (#2173)
Fixes
- The Docker sandbox path from v2.10.0 is hardened: each spawned agent gets its own sandbox session (one exec timeout no longer tears down every agent's container), committed work is bundled out of the container and fetched into the host repo under
sandbox/<session_id>refs, sandbox lifecycle events land in the HMAC-chained audit log with emissions serialized so concurrent lifecycles cannot fork the chain, and provisioning probes task-server reachability and warns on daemons without host networking. (#2162, #2172) - The
bernstein workerloop can spawn agents again: it constructed the spawner with arguments that never existed and raisedTypeErroron the first claimed task. The server URL now also reaches spawned agents through the environment allowlist. (#2163, #2171)
Dependencies
- Routine CI action digest updates (github/codeql-action, docker/setup-buildx-action).
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About chernistry/bernstein
Deterministic multi-agent orchestrator for 18 CLI coding agents (Claude Code, Codex, Cursor, Aider, Gemini CLI, OpenAI Agents SDK, and more). MCP server mode (stdio + HTTP/SSE) exposes the orchestrator to any MCP client. Git worktree isolation per agent, HMAC-chained audit trail, cost-aware model routing via contextual bandit. ~11K monthly PyPI downloads, Apache 2.0.
Related context
Related tools
Earlier breaking changes
- v3.7.1 `bernstein approve` and `bernstein reject` now enforce identifier regex `[A-Za-z0-9._-]{1,64}`.
- v3.7.1 Tampered mission ledger reports as unverified rather than not-found.
- v3.7.1 `mission define` now refuses phases without gate tasks.
- v3.5.0 MCP client, transport, and gateway become stateless; calls carry content‑derived trace IDs in _meta.
Beta — feedback welcome: [email protected]