Skip to content

chernistry/bernstein

v2.12.0 Security

This release includes 2 security fixes for security teams reviewing exposed deployments.

✓ No known CVEs patched
Read the diff → Tool health → What is this tool? →
This release patches 2 known CVEs

Topics

agent-orchestrator agentic-ai ai-agents aider air-gap audit-trail
+14 more
claude-code cli-tool codex-cli coding-agent deterministic-replay deterministic-scheduler hmac-audit mcp-server model-context-protocol multi-agent parallel-worktrees provenance python reproducibility

Affected surfaces

auth rbac

Summary

AI summary

Updates low/medium/high/max, AST01-AST10, and mapped/partial/todo across a mixed release.

Full changelog

v2.12.0

Released 2026-07-02.

Worker isolation, replay integrity, and security-taxonomy mapping.

Features

  • Deterministic runs now record whether provider-side context compaction was active for each agent request, folded into the HMAC/Merkle step fingerprint, so a replay that diverges because compaction rewrote what the model actually saw is detected and attributed rather than silent. In deterministic-record and hermetic-replay modes the adapter additionally makes a best-effort request to suppress the CLI's client-side auto-compaction. The fingerprint is the load-bearing guarantee; the suppression is best-effort. (replay integrity)
  • Model effort level (low/medium/high/max) is now a first-class routing and replay dimension. The deterministic cascade fills an effort level from task scope, complexity, and retry count when the caller has not pinned one, so trivial tasks stop overpaying, and the effective effort enters the step fingerprint. The journal record is schema-versioned: legacy records without an effort field verify byte-for-byte, and a changed effort is detected as divergence across the local reader, the offline receipt verifier, and the redacted-publish re-anchor. (deterministic scheduler + replay)
  • bernstein audit export --standard owasp-asi and --standard owasp-skills produce a control-coverage view mapping the OWASP Top 10 for Agentic Applications (ASI01-ASI10) and Agentic Skills Top 10 (AST01-AST10) onto the mechanisms and audit-event types a run already emits, alongside the existing EU AI Act Article 12 export. Partially-covered controls are reported as partial in the summary (mapped/partial/todo) rather than hidden. (HMAC audit chain)
  • bernstein interop a2a conformance verifies an emitted agent card round-trips: JCS canonicalization, detached Ed25519 JWS signature, required fields, expiry, and issuer, each reported pass or fail, so an operator can prove a card verifies offline. (Ed25519 signed identity)

Security

  • Spawned workers can no longer silently enable embedded agent-team coordination. The per-adapter environment filter strips the CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS gate (and forward-looking *_AGENT_TEAMS variants) by default even from an operator-widened allowlist and even after the secrets overlay, and the Claude adapter pins the gate off in the merged worker settings file. Enabling it requires an explicit host opt-in (BERNSTEIN_ALLOW_EMBEDDED_AGENT_TEAMS), which records an adapter.embedded_agent_teams_enabled event to the HMAC audit chain so an embedded team is attested rather than invisible. This preserves the one-worker-one-audit-trail invariant. (env isolation + audit chain)
  • bernstein doctor now reports when a discovered adapter CLI is below a known-safe version floor, using a data-driven advisory map, so an out-of-date spawned agent surfaces as a supply-chain warning rather than a silent risk. (adapter conformance + doctor)

Breaking Changes

  • Default environment filter now strips `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` (and future `*_AGENT_TEAMS`) variables; enabling them requires explicit host opt‑in via `BERNSTEIN_ALLOW_EMBEDDED_AGENT_TEAMS`.
  • Model effort level is a first‑class routing dimension; the deterministic cascade infers an effort when unpinned, and the journal schema now versioned with an `effort` field.

Security Fixes

  • Worker isolation blocks embedded agent‑team coordination by default; enabling it requires explicit host opt‑in (`BERNSTEIN_ALLOW_EMBEDDED_AGENT_TEAMS`) and logs an `adapter.embedded_agent_teams_enabled` event.
  • `bernstein doctor` now reports adapters below known‑safe version floors as supply‑chain warnings.

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

Track chernistry/bernstein

Get notified when new releases ship.

Sign up free

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.

All releases →

Related context

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]