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 summaryDashboard gains scoped token authentication with governance receipts, agy adapter adds nightly conformance canary, run review board projects runs into a web view.
Changes in this release
| Type | Severity | Summary | CVE |
|---|---|---|---|
| Feature | Medium |
Dashboard now supports scoped tokens with read‑only or operator scope. Dashboard now supports scoped tokens with read‑only or operator scope. Source: llm_adapter@2026-07-15 Confidence: high |
— |
| Feature | Medium |
CLI command `bernstein dashboard-token` issues, lists, and revokes scoped tokens; revocation is a signed journal row. CLI command `bernstein dashboard-token` issues, lists, and revokes scoped tokens; revocation is a signed journal row. Source: llm_adapter@2026-07-15 Confidence: high |
— |
| Feature | Medium |
agy adapter added to the matrix with golden transcripts and contract fixture. agy adapter added to the matrix with golden transcripts and contract fixture. Source: llm_adapter@2026-07-15 Confidence: high |
— |
| Feature | Medium |
Nightly conformance canary probes adapters and stores sealed receipts in the audit chain. Nightly conformance canary probes adapters and stores sealed receipts in the audit chain. Source: llm_adapter@2026-07-15 Confidence: high |
— |
| Feature | Medium |
Run review board provides deterministic web projection of run journal with sealed evidence bundles. Run review board provides deterministic web projection of run journal with sealed evidence bundles. Source: llm_adapter@2026-07-15 Confidence: high |
— |
| Feature | Medium |
Windows platform layer gains process‑cleanup receipts, Job Object grouping, and junction‑aware worktree isolation groundwork. Windows platform layer gains process‑cleanup receipts, Job Object grouping, and junction‑aware worktree isolation groundwork. Source: llm_adapter@2026-07-15 Confidence: high |
— |
| Feature | Medium |
`bernstein skills package` builds agent skill/plugin bundles with versioned manifest and lineage receipt on install. `bernstein skills package` builds agent skill/plugin bundles with versioned manifest and lineage receipt on install. Source: llm_adapter@2026-07-15 Confidence: high |
— |
| Feature | Medium |
Every dashboard authentication decision records a signed governance receipt in the journal. Every dashboard authentication decision records a signed governance receipt in the journal. Source: llm_adapter@2026-07-15 Confidence: low |
— |
| Dependency | Low |
Dependency updates performed. Dependency updates performed. Source: llm_adapter@2026-07-15 Confidence: high |
— |
| Bugfix | Low |
All open scanner alerts resolved: applied idiom cleanups, moved dashboard password comparison to a costly key derivation, and marked two false‑positive log lines. All open scanner alerts resolved: applied idiom cleanups, moved dashboard password comparison to a costly key derivation, and marked two false‑positive log lines. Source: llm_adapter@2026-07-15 Confidence: low |
— |
Full changelog
v3.3.0
Released 2026-07-11.
An operator-capability release. The dashboard gains authentication with
scoped tokens whose every decision lands a governance receipt, a new agy
adapter joins the matrix with a nightly conformance canary sealing its
probe results, and the run review board projects the run journal into a
web view backed by sealed evidence bundles. Groundwork lands for Windows
parity and for installing bernstein as an agent skill or plugin.
Dashboard authentication and scoped tokens (#2366)
The dashboard is no longer an all-or-nothing surface. Operators issue
scoped credentials, and every authentication decision is a receipt:
- Password login and scoped bearer tokens coexist; tokens carry either a
read-only or an operator scope, and route access is enforced per scope. - Token grants and revocations are signed journal rows; a tampered grant
fails signature verification and is treated as no grant at all. - Every allow or deny decision is recorded as a governance journal
receipt, so an access review can reconstruct exactly who reached which
surface and under which credential. bernstein dashboard-tokenissues, lists, and revokes tokens from the
CLI; revocation is itself a signed journal row, never a silent delete.
agy adapter and adapter conformance canary (#2368)
agy joins the adapter matrix, and adapter contracts are now exercised
nightly instead of waiting for a user's broken run:
- The agy adapter maps goals onto the agy CLI with the same contract
surface as every other adapter, including golden transcripts and a
contract fixture. - A nightly canary probes every primary adapter against whatever upstream
version is installed; each probe result is a sealed, content-addressed
receipt mirrored into the audit chain. - A last-green table names the newest upstream version each adapter
passed with, and every row carries the hash of the receipt that
attested it.bernstein doctorreads the same projection and advises
when the installed version is newer than the last attested one. - Issue automation is threshold-gated and deduplicated: one upstream
flake never opens an issue, and the same failure fingerprint never
opens two.
Run review board core (#2365)
Finished runs can now be reviewed on a board instead of by reading raw
journals:
- The board is a deterministic projection of the run journal: the same
journal always produces the same board state, byte for byte, with no
hand-maintained status anywhere. - A web view lists runs with their outcomes, decisions, and artefacts,
consuming sealed evidence bundles so what the reviewer sees is what the
journal attests. - Further review-board phases (annotations, sign-off flows) are tracked
separately.
Windows parity groundwork (#2367)
The platform layer gains the pieces Windows needs, validated so far on
the existing test matrix:
- Process cleanup emits reap receipts into the audit chain, so a killed
worker tree is reconstructable after the fact on every platform. - Job Object process management groups worker processes on Windows the
way process groups do on POSIX, closing the orphaned-child gap. - Worktree isolation is junction-aware, so per-task isolation survives
filesystems where symlinks require elevation. - Full validation on Windows runners is tracked separately.
Agent skill and plugin packaging groundwork (#2369)
Installing bernstein as an agent skill or plugin gets its packaging
foundation:
bernstein skills packagebuilds a skill/plugin bundle from the
packaged templates, with a manifest generated from the package version
so the bundle can never drift from the release.- Each install produces a lineage receipt, so an installed bundle can be
traced back to the exact release artefact it came from. - Remaining distribution surfaces are tracked separately.
Housekeeping
- Resolved all open scanner alerts: applied suggested idiom cleanups,
moved dashboard password comparison onto a computationally expensive
key derivation, and annotated two exception-name-only log lines as
scanner false positives. - Dependency updates.
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]