Skip to content

Releases: rendro/sediment

v0.5.1

30 Mar 21:32
5d18c1b

Choose a tag to compare

Bump version to 0.5.1 (#62)

v0.5.0

14 Feb 01:11
fbbfe6e

Choose a tag to compare

What's new

Full CLI access to all tools

All 4 MCP tools (store, recall, list, forget) are now available as CLI subcommands, so you can use Sediment directly from the terminal without an MCP client.

sediment store "preferred test framework is pytest"
sediment store -                          # read from stdin
sediment recall "what test framework?"
sediment list --scope global
sediment forget <id>
  • --json flag: All commands support --json for machine-readable output, making it easy to integrate with scripts and pipelines
  • --scope on list: Filter by project, global, or all
  • Stdin support: sediment store - reads content from stdin

Other changes

  • replace_id parameter on store: Atomically replace an existing item, preserving graph lineage and recording validation (#55)

Install / upgrade

cargo install sediment-mcp

# or via Homebrew
brew upgrade sediment

v0.4.4

08 Feb 03:33
69fed70

Choose a tag to compare

What's new

  • Multi-model embedding support: Select from 4 embedding models via SEDIMENT_EMBEDDING_MODEL env var:
    • all-MiniLM-L6-v2 (default, 384-dim)
    • e5-small-v2 (384-dim)
    • bge-small-en-v1.5 (384-dim)
    • bge-base-en-v1.5 (768-dim)
  • Asymmetric query/document embeddings: Models that use prefixes (e5, bge) now apply the correct prefix for queries vs documents
  • Dynamic embedding dimensions: Support for both 384-dim and 768-dim models
  • SHA-256 integrity verification for all model artifacts (weights, tokenizer, config)

Benchmarks

Updated BENCHMARKS.md with results from 6 systems (1,000 memories, 200 queries):

Metric Sediment ChromaDB Mem0 MCP Memory Svc Basic Memory MCP Server Mem
R@1 50% 47% 47% 38% 9% 1%
MRR 62% 61% 61% 49% 10% 2%
Recency@1 100% 14% 14% 10% 0% 0%
Dedup 99% 0% 0% 0% 0% 0%

all-MiniLM-L6-v2 remains the default — tied with bge-base-en-v1.5 on quality but ~2x faster.

v0.4.3

07 Feb 19:47
d656091

Choose a tag to compare

What's Changed

Safety & Correctness Fixes

  • Fix consolidation merge deleting items when supersedes edge creation fails
  • Fix non-atomic delete ordering — item deleted first, orphaned chunks are benign
  • Cap stdin drain loop at 100MB to prevent indefinite blocking
  • Fix panic on multi-byte UTF-8 characters in chunk overlap calculation
  • Fix stale FTS index — rebuild with .replace(true) before each search
  • Fix consolidation TOCTOU race by reusing fetched items instead of double-fetch
  • Reduce trust_bonus edge coefficient from 0.02 to 0.005 to prevent ranking collapse
  • Add empty content/query validation
  • Clamp RetryConfig max_attempts to minimum 1

Performance

  • Add composite indexes on graph_edges (from_id, edge_type) and (to_id, edge_type)
  • Cap co-access query at LIMIT 50
  • Lazy AccessTracker — only opened for recall, not store/list/forget
  • Guard chunk merge pass against exceeding max_chunk_size

Cleanup

  • Remove dead code: -91 lines across 11 files
  • Move test-only helpers behind #[cfg(test)]
  • Remove unused _filters param from list_items
  • Fix ChunkResult offset docstrings (byte offsets, not character positions)
  • Remove CHANGELOG.md (GitHub releases serve as changelog)
  • Fix CLAUDE.md database terminology (Two-Database Hybrid)

Full diff: v0.4.2...v0.4.3

v0.4.2

07 Feb 14:01
f614263

Choose a tag to compare

What's Changed

Retrieval Quality

  • Power-law FTS boost: replace linear BM25-normalized boost with power-law scaling, concentrating boost on top FTS hits while staying grounded in actual BM25 relevance scores
  • Tuned parameters via grid search (FTS_BOOST_MAX=0.12, FTS_GAMMA=2.0) — R@1: 45.5%, R@5: 78.0%, MRR: 59.3%, nDCG@5: 57.4%
  • FTS params overridable via env vars in bench builds for parameter sweeps

Latency

  • Batch chunk-to-item lookups (~30-60ms savings at 1,000 items)
  • Raise brute-force vector search threshold to 5,000 rows for better accuracy on small tables
  • Combined decay query: merge access + validation count lookups into single SQLite query

v0.4.1

07 Feb 01:06
8153139

Choose a tag to compare

Changes

  • Replace RRF (Reciprocal Rank Fusion) with additive FTS boost in search_items(), recovering ~10pp on Recall@1
  • The additive boost (0.08 / (1 + fts_rank)) preserves vector similarity magnitude while using FTS as a targeted keyword tie-breaker

Benchmark (1000 memories, 200 queries)

Approach Recall@1 Recall@5 MRR
Additive boost (0.08) 46.5% 73.0% 59.2%
RRF (K=60) 37.0% 73.5% 53.2%

v0.4.0

06 Feb 19:12
ed20c34

Choose a tag to compare

What's Changed

Search Quality Improvements

  • Exact vector search for small databases (<5000 rows): bypass_vector_index() avoids lossy IVF_PQ quantization at small scale; refine_factor(10) for larger databases recovers ranking accuracy
  • Reciprocal Rank Fusion replaces hand-tuned FTS boost: standard RRF (k=60) fuses vector similarity ranking with full-text keyword ranking, replacing the benchmark-specific additive constant. SearchResult.similarity preserves clean vector similarity for downstream decay scoring.
  • Cross-project penalty increased from 5pp to 12.5pp: different-project items get 0.875x penalty (was 0.95x), better balancing project isolation vs cross-project discoverability

Other

  • Added bench feature flag for benchmark tooling (created_at override on store)

v0.3.3

06 Feb 02:36
a9c2b79

Choose a tag to compare

What's Changed

Git-based project identity

Project IDs are now derived from the git repo's initial (root) commit hash, so the same repo cloned anywhere gets the same project_id. Non-git directories fall back to a random UUID.

Automatic migration

When an existing UUID-based project gains a git root commit, stored items are migrated in-place — LanceDB items and graph nodes are updated to the new ID on the next server startup.

Shallow clone safety

Shallow clones are detected via git rev-parse --is-shallow-repository and fall back to UUID to avoid using a truncated history's root commit.

Other fixes

  • Improved SQL string sanitization (*/ stripping to prevent comment injection)
  • Fixed rustfmt and clippy warnings across the codebase

Full Changelog: v0.3.2...v0.3.3

v0.3.2

05 Feb 02:12

Choose a tag to compare

Bump version to 0.3.2

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

v0.3.1

04 Feb 02:58
9dbdc48

Choose a tag to compare

What's Changed

  • Optimize CLAUDE.md instructions for proactive usage by @rendro in #32
  • Bump version to 0.3.1 by @rendro in #33

Full Changelog: v0.3.0...v0.3.1