Coalent follows semantic versioning. Each release below lists what was Added, Changed, and Removed. Upgrading from 0.2 is backward-compatible — the new 0.3 features are opt-in (see the upgrade notes).
✦
Look for the New in v0.3 badge across the docs — it marks features introduced in the latest release.
- v0.3.0June 2026Latest
Understanding-keyed matching, semantic coverage, and tunable thresholds.
Added- Understanding-keyed matching — blends a topic score (query ↔ the unit's understanding) with the seed score (query ↔ the original query), weighted by understanding_weight (default 0.7). Kills surface-form false hits ("exchange policy" no longer hits "leave policy") while keeping paraphrase recall.
- Semantic per-claim coverage + escalation — a hit whose best claim under-covers the query escalates to fresh raw (the "never less than plain retrieval" floor, now semantic). Tunable via coverage_floor and enable_coverage_escalation; surfaced as result.coverage and result.escalated.
- Pluggable coverage_scorer + two-tier coverage_ceiling — cosine stays the zero-dep default; plug a cross-encoder / NLI / LLM-entailment check for containment, consulted only on borderline queries.
- Per-claim routing (route_by_claim) — optional late-interaction matching by the unit's best-matching claim.
- Embedder-aware default thresholds + calibrate_thresholds (labeled) and suggest_thresholds (labels-free).
- relevance_gate — a (query, chunks) -> chunks hook applied before synthesis (bring your own reranker).
- Depth knob on LLMSynthesizer (0.0–1.0) — trade synthesis cost against coverage completeness.
- Batch embeddings (embed_many), behavioral hit_queries, and richer stats() (reads, hits, escalations, escalation_rate, hit_rate).
Changed- coverage_floor is now a semantic max-per-claim cosine (was a lexical token-overlap fraction); hit_threshold gates the blended score and auto-derives per embedder.
- A unit's identity is its understanding — the seed query no longer drifts when a unit is rebuilt.
Removed- The lexical coverage gate — replaced by semantic per-claim coverage.
- v0.2.1June 2026
Smart embeddings — semantic cache hits out of the box.
Added- OpenAIEmbedder and FunctionEmbedder, plus a smart default that auto-uses OpenAI embeddings when coalent[openai] is installed and OPENAI_API_KEY is set — otherwise a lexical HashingEmbedder fallback with a warning.
- v0.2.0June 2026
First public release — a provenance-invalidated cognitive cache for AI agents and RAG.
Added- SemanticCache.get() — an embedding-keyed cache of decision-ready understanding that retains the raw evidence with every unit, so it can never return less than plain retrieval.
- Provenance invalidation — source_changed / source_deleted dirty only the units that used a source, and skip no-op changes via a content-hash compare; units re-materialize lazily on read.
- Retrievers (InMemory, Function, Composite, BaseVector) + bring-your-own-client adapters for Qdrant, Chroma, and pgvector.
- Synthesizers — LLMSynthesizer (citation-grounded) and JSONPassthroughSynthesizer (no LLM call); OpenAI / Anthropic / stub providers.
- Context intelligence, FreshnessPolicy (TTL + revalidate), persistence (SQLite / Redis), event connectors, LangGraph + MCP helpers, a CLI, and an eval harness.
The machine-readable source lives in CHANGELOG.md in the repository.