Skip to content

chernistry/bernstein

v3.8.1 Bugfix

This release fixes issues for SREs watching stability and regressions.

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

✓ No known CVEs patched in this version

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

breaking_upgrade

Summary

AI summary

Fixed bernstein doctor crash due to missing runtime dependency and local dashboard auth lockout.

Changes in this release

Dependency Medium

Adds 'packaging' as a direct runtime dependency.

Adds 'packaging' as a direct runtime dependency.

Source: llm_adapter@2026-07-20

Confidence: medium

Bugfix Medium

Fixes local dashboard locking out operators on loopback with auth configured.

Fixes local dashboard locking out operators on loopback with auth configured.

Source: llm_adapter@2026-07-20

Confidence: medium

Bugfix Low

Restores ability to rebuild the bundled web UI after Tailwind version mismatch.

Restores ability to rebuild the bundled web UI after Tailwind version mismatch.

Source: llm_adapter@2026-07-20

Confidence: medium

Full changelog

v3.8.1

Patch release: two operator-facing fixes to the local dashboard and a missing runtime dependency, both surfaced by an end-to-end run of the released 3.8.0 build.

Fixed

  • bernstein doctor no longer crashes on a clean install (#2735). doctor (and its adapter last-green, security-floor, and advisory checks) import packaging.version at runtime, but packaging was only present transitively via dev tooling and was never a declared runtime dependency, so a uv tool install bernstein shipped without it and doctor raised ModuleNotFoundError: No module named 'packaging'. packaging is now a direct runtime dependency, with a contract test that fails if any runtime module imports it while it is undeclared.
  • The local dashboard no longer locks the operator out (#2736). Running bernstein gui serve on loopback with dashboard auth configured loaded the UI shell but returned 401 on every data panel, because the local serve path never handed the browser a credential and the bundled SPA wrote the onboarding token to a different localStorage key than the API layer read. The local serve path now seeds a token for the loopback browser, and the shipped SPA bundle was rebuilt so the write and read keys agree. External unauthenticated access still returns 401; the auth posture is unchanged.

Build

  • The bundled web UI could not be rebuilt: an earlier dependency bump moved it to Tailwind v4 while the stylesheet and PostCSS config stayed on the v3 form, so npm run build failed. Tailwind is pinned back to the version the configuration targets, and the regenerated bundle ships with this release.

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]