Skip to content

Releases: Reflective-Lab/converge

v3.9.2

02 Jun 03:05

Choose a tag to compare

What's Changed

  • deps: bump opentelemetry_sdk from 0.31.0 to 0.32.0 by @dependabot[bot] in #54
  • deps: bump polars from 0.51.0 to 0.53.0 by @dependabot[bot] in #56
  • deps: bump hmac from 0.12.1 to 0.13.0 by @dependabot[bot] in #58
  • deps: bump rand from 0.8.6 to 0.10.1 by @dependabot[bot] in #59
  • deps: bump wasmtime from 43.0.2 to 44.0.1 by @dependabot[bot] in #57
  • deps: bump serde_json from 1.0.149 to 1.0.150 in the minor-and-patch group by @dependabot[bot] in #60
  • deps: bump opentelemetry-otlp from 0.31.1 to 0.32.0 by @dependabot[bot] in #62
  • deps: bump opentelemetry from 0.31.0 to 0.32.0 by @dependabot[bot] in #63
  • deps: bump opentelemetry_sdk from 0.31.0 to 0.32.0 by @dependabot[bot] in #61
  • deps: bump tracing-opentelemetry from 0.32.1 to 0.33.0 by @dependabot[bot] in #64
  • deps: bump async-nats from 0.48.0 to 0.49.0 by @dependabot[bot] in #66
  • deps: bump the minor-and-patch group across 1 directory with 4 updates by @dependabot[bot] in #65

Full Changelog: v3.9.1...v3.9.2

Converge v3.8.1 — Authority slice, extension-driven foundation

06 May 17:05

Choose a tag to compare

[3.8.1] - 2026-05-06

First release of the v3.8 line. Foundation has been refocused around the
authority slice; ML, analytics, policy, generic provider adapters, and
domain packs now live in dedicated extension repos.

Removed

  • BREAKING: converge-knowledge extracted to the mnemos extension repo
    (~/dev/extensions/mnemos). Foundation no longer ships vector storage,
    agentic memory, or learning implementations. Downstream consumers must
    depend on mnemos directly. See ADR-008.
  • BREAKING: converge-analytics extracted to the prism extension repo
    (~/dev/extensions/prism). Foundation no longer ships Polars/Burn ML
    pipelines, training agents, or analytics packs. Downstream consumers must
    depend on prism directly.
  • BREAKING: converge-domain and examples/* extracted to the
    atelier showcase repo (~/dev/atelier). The four built-in domain packs
    (trust, money, delivery, data_metrics) and 13 worked examples now live in
    atelier. Downstream consumers depend on atelier-domain.
  • BREAKING: converge-policy extracted to the arbiter extension
    repo (~/dev/extensions/arbiter). Cedar policy engine, policy suggestors,
    and ed25519-signed delegation tokens now live in arbiter. Foundation
    converge-pack keeps the gate trait and authorization vocabulary.
  • BREAKING: converge-provider-adapters (LLM, search, tool, embedding,
    reranker, vector adapters) extracted to the manifold extension repo.
    Foundation no longer ships ready-made vendor adapters; downstream
    consumers depend on manifold directly.
  • 3,469 lines of dead code: orphaned consensus/ module, broken billing/
    module, orphaned stress_tests.rs.
  • ContextView alias (use Context directly).

Changed

  • BREAKING: Provider contract crate renamed from converge-provider-api
    to converge-provider. Generic adapter implementations moved to Manifold.
  • BREAKING: ContextView removed — use Context (the trait); the
    concrete implementation is now ContextState. Consumers using
    converge_core::ContextView must change to converge_core::Context.

Added

  • Optimization Suggestor adapter: SolverSuggestor<P: Pack> wraps all
    11 optimization domain packs as first-class Suggestors. Every solver
    participates in the convergence loop via register_suggestor_in_pack.
  • Policy Suggestor adapters: PolicyGateSuggestor,
    DelegationVerifySuggestor, FlowGateSuggestor bridge Cedar policy
    evaluation into the convergence loop.
  • Pack typing primitives: UnitInterval governance primitive,
    Fact::parse_content / ProposedFact::parse_content typed
    deserialization, AgentEffect::push / extend for incremental
    composition.
  • Compile-fail contract tests (7): prove at compile time that wrong
    API usage is impossible — no Fact construction without kernel authority,
    no orphan Agent trait, no register_in_pack, immutable facts, closed
    ContextKey enum.
  • CI/CD infrastructure: pre-commit hooks, GitHub Actions
    (CI / Security / Coverage / Stability), dependabot auto-merge,
    self-hosted coverage badges across converge, organism, and axiom.
  • 700+ new tests across all modules: property tests, negative tests,
    edge cases, serde roundtrips, async paths with mocked LLM backends.
  • performance-profile justfile recipe: per-bench targets with optional
    features and explicit PERF_MODE (save|compare).

Fixed

  • [lib] bench = false on converge-core and converge-optimization so
    cargo bench --bench NAME no longer also runs the lib unittest binary
    in bench mode (which rejects --save-baseline).
  • Stability workflow: install protoc on bench-compile / bench-run / soak
    jobs; remove the dead live-endpoints job; bump cargo-deny-action to
    v2 (matches the modern config schema); allow 0BSD license
    (vec_mut_scan via --all-features).
  • Dependabot auto-merge: drop the approval step. Branch protection on
    main does not require reviews, and GITHUB_TOKEN is not permitted
    to approve PRs — the step blocked every dependabot PR.

Dependencies

  • firestore 0.45.1 → 0.48.0
  • metrics-exporter-prometheus 0.16.2 → 0.18.3
  • reqwest 0.12.28 → 0.13.3 (major)
  • toml 0.8.23 → 1.1.2+spec-1.1.0 (major; tracks TOML 1.1 spec)
  • schneegans/dynamic-badges-action 1.7.0 → 1.8.0

v3.7.3

23 Apr 11:24

Choose a tag to compare

Patch release for the formation-builder substrate.

Highlights:

  • Adds formation template catalog semantics and grouped kernel formation surfaces for downstream builders.
  • Records HITL gate decisions as experience events and validates HITL resume gate IDs.
  • Adds formation correlation IDs and role-scoped provider backend requirements.
  • Publishes Organism handoff guidance for formation compilation, business strategy, and the vendor-selection proof wedge.

Validation:

  • cargo check --workspace --all-targets
  • cargo test --all-targets --workspace
  • cargo fmt --all --check
  • just test-layout
  • cargo clippy --all-targets -- -D warnings

v3.7.1 — Sealed Promotion Gate

21 Apr 18:16

Choose a tag to compare

What's Changed Since v3.0.3

This release covers seven minor releases of architectural work: the promotion gate is now fully sealed, the convergence loop is cleaner, and the codebase is significantly leaner.


Breaking Changes

  • ContextView removed — use Context (the trait) and ContextState (the concrete type). All downstream consumers updated.
  • ConvergeResult now requires integrityEngine::run returns an IntegrityProof (merkle root, Lamport clock, fact count) alongside the converged context.
  • Provider capability contracts movedChatBackend, ModelSelector, ChatRequest/Response now live in converge-provider-api. Downstream crates depend on the lightweight API crate, not the full engine.

Promotion Gate — Now Fully Sealed

The "agents suggest, engine decides" invariant is now enforced at compile time with no escape hatch:

  • AgentEffect is proposal-onlywith_fact() has been removed
  • Fact has no public constructor — only the PromotionGate inside converge-core can promote
  • ValidatedProposal and ValidationReport have private fields — no forgery via struct literals
  • Proposal<Validated> cannot be deserialized or constructed outside the gate
  • 26 compile-fail tests prove the gate is sealed across all public crate boundaries

New Capabilities

Formation pattern — multiple heterogeneous suggestors (domain logic, policy gates, optimizers, knowledge) converge in a single Engine::run. See examples/formation-mixed.

Optimization as first-class agentsSolverSuggestor<P: Pack> wraps all 11 optimization domain packs as Suggestor implementations. No separate pipeline.

Policy as first-class agentsPolicyGateSuggestor, DelegationVerifySuggestor, and FlowGateSuggestor bring Cedar policy evaluation into the convergence loop.

Run integrity — every ConvergeResult carries a tamper-evident IntegrityProof: SHA-256 content hashes, Lamport logical clock, and a Merkle root over all promoted facts.

New providersKongBackend (Konnect Key Auth, retry, tool calling), OpenRouterBackend (100+ models, cost metadata), ResilientChatBackend (retry + format fallback).


Quality

  • 700+ new tests — property tests, negative tests, soak tests, compile-fail contracts
  • Stability testing framework — Criterion benchmarks, chaos tests, soak tests, automated weekly regression detection
  • Dead code removed — 3,469 lines of orphaned modules deleted
  • Zero clippy warnings — workspace-wide clean pass

Workspace

  • Deployment and infra moved to the runway repo — converge workspace is now kernel + providers only
  • converge-tool / converge-axiom extracted to separate repo

Known Limitations

  • bipartite_matching() in converge-optimization contains a todo!() — will panic if called
  • rsa 0.9.x has a medium-severity advisory (Marvin attack, no upstream fix — transitive via jsonwebtoken)

Full Changelog: v3.0.3...v3.7.1

v3.0.3

13 Apr 23:21

Choose a tag to compare

[3.0.3] - 2026-04-14

Added

  • Live endpoint coverage for OpenAI, Anthropic, Gemini, Mistral, Brave, and Tavily, including happy-path and negative credential/model tests
  • MistralBackend as a live ChatBackend
  • BraveSearchProvider and TavilySearchProvider as WebSearchBackend implementations

Changed

  • Unified the live provider path on ChatBackend, with OpenAI, Anthropic, Gemini, and Mistral using the canonical multi-turn request/response types
  • Canonical ChatMessage history now carries assistant tool_calls, so real tool loops can round-trip without provider-specific patching
  • Anthropic tool-call and tool-result history now round-trip against the live API
  • Model selection now filters unavailable providers before choosing a backend and routes chat independently from web search

Fixed

  • GitHub Actions now install protoc before protobuf builds
  • Provider feature builds now include the async runtime dependency they actually use
  • Repo docs and KB pages now describe the canonical chat/search split and Anthropic's provider-native JSON behavior correctly

Removed

  • Knowledge lifecycle pack (packs::knowledge) — moved to organism-domain. Includes all knowledge agents (SignalCaptureAgent, HypothesisGeneratorAgent, etc.), invariants (ClaimHasProvenanceInvariant, etc.), and evals (ClaimProvenanceEval, ExperimentMetricsEval).

v3.0.1

12 Apr 08:40

Choose a tag to compare

Full Changelog: v2.1.2...v3.0.1

Converge v2.1.0 — Kong AI Gateway Provider

31 Mar 09:20

Choose a tag to compare

New: Kong AI Gateway Provider

KongProvider routes LLM calls through Kong AI Gateway, adding enterprise governance to any upstream model:

  • Rate limiting per team/consumer
  • PII detection on prompts
  • Token usage and cost tracking
  • Centralized observability

Usage

converge-provider = { version = "2.1", features = ["kong"] }
use converge_provider::{KongProvider, LlmProvider, LlmRequest};

let provider = KongProvider::from_env("my-route")?;
// Reads KONG_AI_GATEWAY_URL and KONG_API_KEY from env

let response = provider.complete(&LlmRequest::new("Analyze this vendor"))?;

Also available via the provider factory:

let provider = create_provider("kong", "my-route")?;

Full crate list at v2.1.0

All 9 publishable crates updated: converge-traits, converge-core, converge-mcp, converge-provider, converge-experience, converge-knowledge, ortools-sys, converge-optimization, converge-domain.

Converge v2.0.0 — Platform Primitives & Type Safety

30 Mar 17:17

Choose a tag to compare

Breaking Changes from 1.x

Type System Reconciliation

  • ProposedFact: added confidence: f64 and provenance: String — every proposal carries confidence and origin
  • AgentEffect: changed from enum to struct { facts, proposals } — agents can emit both facts and proposals in one execution
  • Agent::accepts and Agent::execute: take &dyn ContextView instead of &Context
  • Agent::dependencies: returns &[ContextKey] instead of Vec<ContextKey>
  • TryFrom<ProposedFact> for Fact: type-safe promotion with confidence validation

New: Platform Primitives

  • Truth execution: TruthDefinition, TruthKind { Job, Policy, Invariant }, TruthCatalog trait
  • Criterion evaluation: CriterionEvaluator trait with four-way CriterionResult (Met { evidence }, Blocked { reason, approval_ref }, Unmet { reason }, Indeterminate)
  • Pack-scoped execution: engine.register_in_pack(pack_id, agent) + TypesRootIntent.active_packs
  • run_with_types_intent_and_hooks(): single entry point for application-level truth execution
  • Honest stopping: StopReason::HumanInterventionRequired { criteria, approval_refs }
  • Durable state: ContextStore trait (GAT async) with load_context / save_context
  • Event capture: ExperienceEventObserver for run-scoped event observation

Infrastructure

  • Owner: Reflective Labs (kenneth@reflective.se)
  • License: MIT throughout (79 files migrated from proprietary headers)
  • All examples updated for current API
  • 1,627 tests passing

Proven in Production

These primitives are exercised by crm.prio.ai with 9 executable truths, 105 tests, and a Svelte/Tauri desktop app with SurrealDB persistence.

🤖 Generated with Claude Code