This release includes 1 breaking change for platform teams planning a safe upgrade.
✓ No known CVEs patched in this version
Topics
+14 more
Summary
AI summaryDisabled uvicorn --reload in production, fixing a critical server‑stability bug.
Full changelog
v1.6.4
The largest patch release yet — 369 files changed across cross-platform fixes, a critical server-stability bug, new workflow specs, and a security pentest harness.
Highlights
uvicorn --reload disabled in production — the task server's supervisor unconditionally enabled --reload, so every file write by a bernstein agent triggered a uvicorn restart. On a self-modifying codebase this caused cascading failures: port collisions, dropped HTTP connections, 127-second orchestrator ticks, and eventually full system death. Fixed by gating --reload on evolve_mode only. Root-cause analysis and fix in commit 55cd00d0.
Speculative execution design spec (#714) — architecture document for branching task graphs where the orchestrator runs multiple candidate approaches in parallel and discards losers. Lays the groundwork for probabilistic task scheduling.
Mutation testing (#711) — mutmut integrated into CI via a dedicated workflow. Measures test effectiveness by injecting code mutations and checking that tests catch them.
Pentest harness (#713) — chaos-engineering-style security tests: adapter timeout behaviour, zombie agent cleanup, worktree creation failures, locked index recovery. Runs under tests/pentest/.
Cross-platform (Windows + macOS)
Path.replace()instead ofos.rename()for atomic checkpoint writes (WindowsPermissionErrorfix).encoding='utf-8'added to 4write_text/ temp-file calls that defaulted tocp1252on Windows.- Unix-only tests (
chmod,SIGKILL) now skip on Windows with@pytest.mark.skipif. - Windows CI test step set to
continue-on-error: true(non-blocking while the adapter ecosystem stabilises).
Security
/statusendpoint wrapped in_safe_callso a single broken metric field (like theresourceimport crash) returns a degraded response instead of 500 — prevents the watchdog from entering a restart loop that kills live agents.- Watchdog restart counter now resets after 120 seconds of sustained uptime, so a single bad day doesn't permanently disable the watchdog.
- DLP scanner excludes its own source files from scanning (was producing guaranteed false positives that blocked legitimate merges).
Fixed
- 39
pytest.approxfixes across 8 test files (SonarCloud S1244 float-equality bugs). - Quality gate pipeline order updated to include
dlp_scanstep. - GPT-4 context limit test was using
"gpt-5.4"as input (no prefix match) — fixed to"gpt-4". test_cross_platform_ciassertions updated for the new(Linux/macOS)/(Windows)step-name split.- 3 new CLI commands (
postmortem,slo,triggers) added to the README API coverage allowlist. typos.toml:rto(Recovery Time Objective) added to allowlist.
Full changelog: https://github.com/chernistry/bernstein/compare/v1.6.3...v1.6.4
Breaking Changes
- uvicorn `--reload` flag is now gated to only activate when `evolve_mode` is true; in production it is disabled, preventing unintended restarts.
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
Beta — feedback welcome: [email protected]