Releases: Siddhant-K-code/distill
v0.9.1
What's New
OpenAPI 3.1 Spec & Interactive Docs (#91, closes #23)
Distill now ships with a complete OpenAPI 3.1 specification and serves interactive Swagger UI at /docs.
Endpoints documented:
- Dedupe (
/v1/dedupe,/v1/dedupe/stream) - Pipeline (
/v1/pipeline) - Batch (
/v1/batch) - Memory (
store,recall,forget,expire,supersede,stats) - Sessions (
create,push,context,get,delete) - Health (
/health,/metrics)
Usage:
distill api
# Open http://localhost:8080/docs for interactive API explorer
# Fetch spec: curl http://localhost:8080/openapi.yamlThe spec is embedded in the binary — no external files needed at runtime.
v0.9.0
What's New
This release adds five major memory features that make Distill agents more reliable, secure, and context-aware.
Multi-Provider Embedding Support (#83, closes #25)
Distill now supports Ollama and Cohere as embedding providers alongside OpenAI. Use --embedding-provider ollama to run fully local — no API key needed.
- 15 new unit tests for the Ollama client
--embedding-providerand--embedding-base-urlflags on all commands- Config file support via
embedding.providerandembedding.base_url
Memory Expiry & Supersession (#84, closes #79)
Memories can now be expired or superseded without deleting them. Expired entries are excluded from recall by default but remain for auditing.
POST /v1/memory/expireandPOST /v1/memory/supersedeendpointsmemory_expireandmemory_supersedeMCP tools- TTL support via
expires_aton store include_expiredflag on recall to retrieve expired entries- 12 new tests
Sensitivity Tagging (#85, closes #82)
Pattern-based classification detects PII, credentials, and internal references at write time. No LLM calls — classification adds <1ms.
- Auto-classification via
auto_classify: trueon store max_sensitivityandsensitive_chunksin recall response- Built-in patterns: AWS keys, OpenAI keys, GitHub tokens, emails, phone numbers, SSNs, credit cards
- Configurable internal domain detection
- 17 classifier tests + 4 benchmarks, 7 memory integration tests
Conflict Detection (#88, closes #77)
When a new memory is semantically similar to an existing one but not a duplicate, Distill now flags the conflict in the store response. The entry is still stored — conflicts are surfaced, not blocked.
- Configurable
conflict_threshold(default: 0.35) conflictsarray in store response with both entry IDs and texts- Caller can resolve via
supersedeendpoint - 7 new tests
Task-Relevance Ranking (#89, closes #78)
Recall now accepts boost tags, task context, and a minimum relevance filter to rank results by what matters for the current task.
boost_tags— relevance boost for matching tagstask_context— source-matching boostmin_relevance— filter out low-scoring results- 6 new tests
Other
- README reframed around memory reliability (#86, closes #80, #81)
- Lint fix for staticcheck QF1003 (#87)
- Closed #76 (persist memory across sessions) — already implemented
Stats
v0.8.0
Changelog
- 9c55236 fix(ci): fix golangci-lint v2 config schema
- 8d766fb fix(ci): migrate to golangci-lint v2, fix lint violations
- e72e2b4 fix(ci): pin golangci-lint to v1.64.8 and add config
- f5863b2 fix(lint): resolve errcheck, unused, and ineffassign violations
- 8847f14 fix(render): bump GO_VERSION to 1.24.2 to match go.mod
v0.7.0
Changelog
- 9514130 build(deps): bump go.opentelemetry.io/otel 1.40→1.41 and otel/sdk 1.40→1.43 (#46)
- 2e1cc24 build: include shell completion scripts in GoReleaser archives (#73)
- 68f7248 feat(batch): async batch processing with worker pool (#71)
- 50d5a5a feat(cli): shell completion scripts for bash/zsh/fish/powershell (#68)
- 1b600f7 feat(pipeline): unified dedup→compress→summarize pipeline (#70)
- 2c4e975 fix: revert go directive to 1.24.0 after dependabot bump (#75)
- a9a40b0 test(bench): benchmark suite for cluster, MMR, selector, and compress (#69)
v0.6.0
Changelog
- 2e16c7d build: add Makefile for common development tasks (#66)
- b671cd6 feat(cache): TTL-aware cache tracker for batch workloads (#61)
- c4455b8 feat(commits): semantic commit analysis with risk scoring (#64)
- 1c67071 feat(embedding): multi-provider abstraction layer (#62)
- 85cf702 feat(graph): code change impact graph with blast-radius queries (#65)
- 903b339 feat(logging): structured slog logger with JSON/text output (#67)
- 677ae8f feat(summarize): hierarchical multi-level conversation summarization (#63)
v0.5.0
Changelog
- 7085327 Add Dependabot configuration file
- 98f423c build(deps): bump github.com/buger/jsonparser from 1.1.1 to 1.1.2 (#43)
- 94f7348 build(deps): bump google.golang.org/grpc from 1.78.0 to 1.79.3 (#45)
- 8569bb9 feat(cache): PatternDetector emits cache_control annotations (#55)
- 0917f08 feat(cache): cache-aware dedup and prefix stability validator (#59)
- c172c7b feat(memory): memory decay lifecycle events and cache boundary hints (#58)
- 255658f feat(metrics): cache write cost accounting in /metrics (#57)
- 7ca5e8a feat(metrics): per-call-site cache hit rate tracking (#60)
- 4d44256 feat(session): session-aware cache boundary manager (#56)
- 115be85 fix: enable --memory and --session flags in Render start command (#39)
v0.4.0
v0.3.0
v0.2.0
Changelog
- 8fe6855 Add 'Build with Ona' badge and update README (#12)
- e3ee431 Add 'Build with Ona' badge to README
- 87e8c25 Add KV cache for repeated context patterns (#17)
- 1581b43 Add semantic compression module (#13)
- 9943a7e Fix Docker workflow permissions for ghcr.io push (#14)
- 5b11d6d Update GitHub funding configuration
- 871ebaa Update README to align with website (#15)
- 0f8a10d feat: add Prometheus metrics endpoint (#19)
- ee88338 feat: add configuration file support (distill.yaml) (#18)