Skip to content

chernistry/bernstein

v1.10.6 Breaking

This release includes 2 breaking changes for platform teams planning a safe upgrade.

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

✓ No known CVEs patched in this version

Topics

agent-framework agent-orchestrator agentic-ai ai-agents ai-coding aider
+14 more
anthropic claude-code cli-tool codex-cli coding-agent deterministic-scheduler hmac-audit llm mcp-server model-context-protocol multi-agent parallel-worktrees python swe-bench

Affected surfaces

auth

Summary

AI summary

Telegram driver now uses standard python-telegram-bot v22 long‑poll integration, removing the optional bridge architecture and its configuration.

Full changelog

v1.10.6

A scope-cleanup and documentation release. The Telegram driver collapses back to the standard python-telegram-bot long-poll integration. Comprehensive operator docs land for the v1.10.5 compliance, A2A, adapter, and research-grade surfaces.

Changed — chat bridge

  • One Telegram driver, the obvious one. bernstein.core.chat.drivers.telegram is now the standard python-telegram-bot v22 long-poll driver. Plug in a bot API token from @BotFather, set the chat id, restart. The earlier optional bridge-router-service architecture has been removed because it pointed at a deployment most users could not stand up themselves.
  • Notification sink simplified. TelegramSink accepts either a live TelegramBridge (via config["bridge"], useful when chat-serve and notifications share one bot) or a token string (via config["token"], the sink builds and owns its own bridge). The earlier preference-flag tangle is gone.

Operator action (1.10.5 → 1.10.6)

If 1.10.5 was running with the optional bridge architecture, switch over before upgrading:

  1. Talk to @BotFather on Telegram, create a bot, copy the API token.
  2. Set BERNSTEIN_TG_TOKEN in the deployment env (or pass it via the chat sink config).
  3. Set the target chat id in the sink config.
  4. Restart bernstein.

The previous bridge env vars are no longer read.

Documentation

A multi-area sweep covering the v1.10.5 surface. The shape was: where a user of v1.10.5 would have had to read the source to understand the new feature, there is now an operator-facing page.

New pages:

  • docs/architecture/a2a.md — A2A v1.0 contract: JCS body (RFC 8785), detached JWS (RFC 7515), Ed25519 (RFC 8037), JWKS layout, RFC 8707 audience binding, cold-start RLock rationale.
  • docs/security/keystore.md — persistent keystore: filesystem layout, O_EXCL plus 0o600 semantics on creation, refusal-to-load on wider perms, 24-hour rotation grace window, operator runbook.
  • docs/security/audit-dsse-envelope.md — DSSE / in-toto v1 envelope, four-check verification model, standalone stdlib-only verifier at tools/verify_audit_dsse.py.
  • docs/compliance/eu-ai-act-article-12-bundle.md — operator guide for the deterministic Article 12 evidence pack: manifest + events.jsonl + data_catalog + clause_map, retention pin, narrow + HMAC + third-party verifiers.
  • docs/adapters/deepseek.md — DeepSeek V4-Flash + V4-Pro routing through the ollama adapter, EU-residency guard, octet-aware host check, vLLM endpoint shape for the 1.6T variant.
  • docs/security/owasp-asi.md — ASI01-10 detector pack, context envelope, opt-out via BERNSTEIN_DISABLE_OWASP_ASI=1.
  • docs/security/mcp-signing.md — Ed25519 manifest signing over JCS, supply-chain scanner targeting the four common attack classes, strict / warn-only matrix, mcp_unsigned_loaded_total metric.
  • docs/security/credential-scoping.md — default-on credential scoping policy chain, fail-closed semantics, storage-sink scrubber.
  • docs/concepts/wiki-build.md, jsonl-memory-log.md, sandbox-selector.md, scaffold.md, team-hub.md, orchestrator-hardening.md — explainers for the research-grade slices.
  • docs/eval/ab-runner.md — A/B runner primitive.
  • docs/observability/llm-watcher.md — opt-in Haiku watcher.

Updates:

  • docs/security/audit-log.mdaudit slice deterministic subset extractor section.
  • docs/reference/cli-reference.md--max-cost-usd, audit slice, scaffold, wiki build.
  • docs/operations/cost-optimization.md--max-cost-usd hard-cap section.
  • docs/compliance/finos-aigf-mapping.md — control-mapping prose refreshed.
  • docs/compliance/regulatory-lineage.md — KMS adapter dispatch + dual-signature countersign.
  • docs/operations/security-and-identity.md — Install fingerprint v1.0 section + kill switch.
  • docs/security/AUDIT.md — Article 12 file location row + cross-links.
  • docs/operations/compliance.md — cross-link list extended.
  • docs/adapters/ADAPTER_GUIDE.md — 44 adapters; Junie + Q Developer full profiles; ollama section now covers DeepSeek V4 + residency guard.
  • docs/adapters/compatibility.md — refreshed matrix.
  • mkdocs.yml — fourteen new nav entries.

Removed

  • src/bernstein/core/chat/drivers/_legacy_telegram.py — content promoted to drivers/telegram.py.
  • tests/unit/test_chat_telegram_bridge.py — no more bridge to test.

Honesty note

The OWASP ASI detector pack defaults to on in source. The v1.10.5 release notes said "off by default"; the new operator page reflects the source. If the intended default is off, BERNSTEIN_DISABLE_OWASP_ASI=1 is the kill switch and the source default is the place to flip.


Full changelog: https://github.com/sipyourdrink-ltd/bernstein/compare/v1.10.5...v1.10.6

Breaking Changes

  • Removed `src/bernstein/core/chat/drivers/_legacy_telegram.py` and its associated bridge implementation; `python-telegram-bot` v22 long‑poll driver is now the only Telegram integration.
  • Environment variables previously read for the optional bridge (e.g., legacy bridge vars) are no longer processed; configuration must use `BERNSTEIN_TG_TOKEN`, chat ID, and updated sink config.

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

Beta — feedback welcome: [email protected]