Releases: Reflective-Lab/converge
v3.9.2
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
[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-knowledgeextracted to the mnemos extension repo
(~/dev/extensions/mnemos). Foundation no longer ships vector storage,
agentic memory, or learning implementations. Downstream consumers must
depend onmnemosdirectly. See ADR-008. - BREAKING:
converge-analyticsextracted 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 onprismdirectly. - BREAKING:
converge-domainandexamples/*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 onatelier-domain. - BREAKING:
converge-policyextracted to the arbiter extension
repo (~/dev/extensions/arbiter). Cedar policy engine, policy suggestors,
and ed25519-signed delegation tokens now live in arbiter. Foundation
converge-packkeeps 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 onmanifolddirectly. - 3,469 lines of dead code: orphaned
consensus/module, brokenbilling/
module, orphanedstress_tests.rs. ContextViewalias (useContextdirectly).
Changed
- BREAKING: Provider contract crate renamed from
converge-provider-api
toconverge-provider. Generic adapter implementations moved to Manifold. - BREAKING:
ContextViewremoved — useContext(the trait); the
concrete implementation is nowContextState. Consumers using
converge_core::ContextViewmust change toconverge_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 viaregister_suggestor_in_pack. - Policy Suggestor adapters:
PolicyGateSuggestor,
DelegationVerifySuggestor,FlowGateSuggestorbridge Cedar policy
evaluation into the convergence loop. - Pack typing primitives:
UnitIntervalgovernance primitive,
Fact::parse_content/ProposedFact::parse_contenttyped
deserialization,AgentEffect::push/extendfor incremental
composition. - Compile-fail contract tests (7): prove at compile time that wrong
API usage is impossible — no Fact construction without kernel authority,
no orphanAgenttrait, noregister_in_pack, immutable facts, closed
ContextKeyenum. - 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-profilejustfile recipe: per-bench targets with optional
features and explicitPERF_MODE(save|compare).
Fixed
[lib] bench = falseonconverge-coreandconverge-optimizationso
cargo bench --bench NAMEno longer also runs the lib unittest binary
in bench mode (which rejects--save-baseline).- Stability workflow: install
protocon bench-compile / bench-run / soak
jobs; remove the deadlive-endpointsjob; bumpcargo-deny-actionto
v2 (matches the modern config schema); allow0BSDlicense
(vec_mut_scan via--all-features). - Dependabot auto-merge: drop the approval step. Branch protection on
maindoes not require reviews, andGITHUB_TOKENis not permitted
to approve PRs — the step blocked every dependabot PR.
Dependencies
firestore0.45.1 → 0.48.0metrics-exporter-prometheus0.16.2 → 0.18.3reqwest0.12.28 → 0.13.3 (major)toml0.8.23 → 1.1.2+spec-1.1.0 (major; tracks TOML 1.1 spec)schneegans/dynamic-badges-action1.7.0 → 1.8.0
v3.7.3
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
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
ContextViewremoved — useContext(the trait) andContextState(the concrete type). All downstream consumers updated.ConvergeResultnow requiresintegrity—Engine::runreturns anIntegrityProof(merkle root, Lamport clock, fact count) alongside the converged context.- Provider capability contracts moved —
ChatBackend,ModelSelector,ChatRequest/Responsenow live inconverge-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:
AgentEffectis proposal-only —with_fact()has been removedFacthas no public constructor — only thePromotionGateinsideconverge-corecan promoteValidatedProposalandValidationReporthave private fields — no forgery via struct literalsProposal<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 agents — SolverSuggestor<P: Pack> wraps all 11 optimization domain packs as Suggestor implementations. No separate pipeline.
Policy as first-class agents — PolicyGateSuggestor, 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 providers — KongBackend (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
runwayrepo — converge workspace is now kernel + providers only converge-tool/converge-axiomextracted to separate repo
Known Limitations
bipartite_matching()inconverge-optimizationcontains atodo!()— will panic if calledrsa0.9.x has a medium-severity advisory (Marvin attack, no upstream fix — transitive viajsonwebtoken)
Full Changelog: v3.0.3...v3.7.1
v3.0.3
[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
MistralBackendas a liveChatBackendBraveSearchProviderandTavilySearchProviderasWebSearchBackendimplementations
Changed
- Unified the live provider path on
ChatBackend, with OpenAI, Anthropic, Gemini, and Mistral using the canonical multi-turn request/response types - Canonical
ChatMessagehistory now carries assistanttool_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
protocbefore 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 toorganism-domain. Includes all knowledge agents (SignalCaptureAgent,HypothesisGeneratorAgent, etc.), invariants (ClaimHasProvenanceInvariant, etc.), and evals (ClaimProvenanceEval,ExperimentMetricsEval).
v3.0.1
Full Changelog: v2.1.2...v3.0.1
Converge v2.1.0 — Kong AI Gateway Provider
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
Breaking Changes from 1.x
Type System Reconciliation
ProposedFact: addedconfidence: f64andprovenance: String— every proposal carries confidence and originAgentEffect: changed from enum to struct{ facts, proposals }— agents can emit both facts and proposals in one executionAgent::acceptsandAgent::execute: take&dyn ContextViewinstead of&ContextAgent::dependencies: returns&[ContextKey]instead ofVec<ContextKey>TryFrom<ProposedFact> for Fact: type-safe promotion with confidence validation
New: Platform Primitives
- Truth execution:
TruthDefinition,TruthKind { Job, Policy, Invariant },TruthCatalogtrait - Criterion evaluation:
CriterionEvaluatortrait with four-wayCriterionResult(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:
ContextStoretrait (GAT async) withload_context/save_context - Event capture:
ExperienceEventObserverfor 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