Skip to content

Releases: lance-format/lance-context

v0.6.1

Choose a tag to compare

@lance-community lance-community released this 10 Jul 21:51

What's Changed

  • feat(rollout): count-triggered self-merge of MemWAL shards into base table by @beinan in #127
  • feat(python): rollout store bindings (local + remote) by @beinan in #128

Full Changelog: v0.6.0...v0.6.1

v0.6.0

Choose a tag to compare

@lance-community lance-community released this 09 Jul 09:08

What's Changed

  • docs: add retrieval-quality eval example + examples index by @dcfocus in #122
  • Design doc: native RolloutDB schema for lance-context by @beinan in #123
  • Native RolloutRecord schema and RolloutStore for RL rollout storage by @beinan in #124
  • Add rollout support to the remote store layer by @beinan in #125
  • feat(rollout): MemWAL ingest with server-id sharding by @beinan in #126

Full Changelog: v0.5.1...v0.6.0

v0.5.1

Choose a tag to compare

@lance-community lance-community released this 01 Jul 04:43

What's Changed

  • test: fix stale _DummyInner mock signatures in test_embeddings.py by @dcfocus in #120
  • docs: design doc for offline memory consolidation (auto-dream) (#99) by @dcfocus in #114
  • perf: lazy + projected payload reads (#116) by @dcfocus in #118
  • feat: multi-modal embeddings + cross-modal retrieval (#117) by @dcfocus in #119
  • feat: external media references — store large media by typed payload URI (#115) by @dcfocus in #121

Full Changelog: v0.5.0...v0.5.1

v0.5.0

Choose a tag to compare

@lance-community lance-community released this 27 Jun 07:22

lance-context v0.5.0

This release delivers an end-to-end post-training data pipeline and a retrieval-quality evaluation harness, together with write-path and performance improvements to the storage core. It is a backward-compatible feature release: all changes are additive, no public APIs were removed or modified, and no data migration is required when upgrading from v0.4.1.

Highlights

  • Post-training data pipeline — curate stored context records into trainable datasets (SFT, preference, and RL-rollout) with reproducible, manifest-backed exports, group-disjoint train/eval splits, and optional dataset statistics.
  • Retrieval-quality evaluation — measure recall@k, precision@k, MRR, nDCG@k, and hit-rate against labeled query sets, including cross-version A/B comparison.
  • Bulk insert-or-replace by external_id for efficient, idempotent ingestion.
  • Sub-linear uniqueness validation, eliminating the prior O(n²) cost on incremental and bulk writes.

Post-training data pipeline

  • Raw-log ingestion. Helpers to normalize raw logs into faithful ContextRecords as the upstream stage of the pipeline. (#101)
  • Curation and export. export_training produces SFT, preference (DPO/SimPO/ORPO paired, KTO unpaired, and judge-ranked N-way), and RL-rollout (GRPO/RLVR groups) datasets as JSONL with a reproducible manifest. Curation performs lifecycle-correct filtering, semantic deduplication, decontamination against a holdout set, and reward thresholding. (#96, #111)
  • Reproducible train/eval split. Deterministic, group-disjoint partitioning (for example, by session_id) prevents leakage across the train/eval boundary, with each side emitting its own manifest. (#103, #112)
  • Dataset statistics report. An optional statistics artifact summarizes example, role, source, and tenant counts; token-length distribution; per-group counts; curation exclusions by reason; and reward distribution. (#104, #113)

Retrieval and evaluation

  • Evaluation harness. evaluate and evaluate_versions compute recall@k, precision@k, MRR, nDCG@k, and hit-rate over labeled query sets for both vector and hybrid retrieval, with per-metric cross-version deltas and reproducible, version-pinned reports. (#98, #110)

Write path

  • Bulk upsert. upsert_many performs insert-or-replace by external_id in a single operation, returning per-record results and composing with the indexed uniqueness validation below. (#102, #109)

Performance

  • Indexed uniqueness validation. Full-dataset scans on write have been replaced with projected, index-accelerated lookups, removing the O(n²) cost of incremental and bulk appends while preserving existing collision semantics. (#100, #108)

New public APIs

  • Context.export_training(...) — curate and export trainable datasets (SFT / preference / rollout), with optional train/eval split and statistics.
  • Context.evaluate(...) and Context.evaluate_versions(...) — retrieval-quality metrics and cross-version A/B evaluation.
  • Context.upsert_many(...) — bulk insert-or-replace by external_id.

Equivalent capabilities are available in the Rust core (ContextStore) and, where applicable, the REST server and client.

Compatibility

This release is fully backward compatible with v0.4.1. All additions are additive; no existing public API has been removed or changed, and no data migration is required.

Full Changelog: v0.4.1...v0.5.0

v0.4.1

Choose a tag to compare

@lance-community lance-community released this 17 Jun 06:19

What's Changed

  • ci: publish all Rust workspace crates by @dcfocus in #86
  • feat: pluggable embedding provider registry by @dcfocus in #87
  • feat: support deferred embedding via update/RecordPatch (#88) by @dcfocus in #93
  • feat: expose filters and lifecycle options in REST list and search (#89) by @dcfocus in #92
  • feat: expose state metadata in Python API by @xuzha in #91
  • feat: add partitioned context namespace helper by @dcfocus in #94
  • Add RemoteContext Python bindings for HTTP client by @beinan in #95

New Contributors

  • @xuzha made their first contribution in #91

Full Changelog: v0.4.0...v0.4.1

v0.4.0

Choose a tag to compare

@lance-community lance-community released this 12 Jun 05:53

What's Changed

  • feat: add record relationships by @dcfocus in #69
  • fix: align Python version classifiers by @dcfocus in #71
  • feat: add hybrid retrieval API by @dcfocus in #76
  • feat: expose record parity APIs over REST by @dcfocus in #79
  • feat: make embedding dimension configurable by @dcfocus in #78
  • feat: add configurable vector-search distance metric by @dcfocus in #77
  • feat: persist distance_metric in dataset schema metadata by @dcfocus in #83
  • feat: add upsert and partial update APIs by @dcfocus in #84

Full Changelog: v0.3.3...v0.4.0

v0.3.3

Choose a tag to compare

@lance-community lance-community released this 10 Jun 23:11

What's Changed

  • fix: relax Python Lance runtime dependencies by @dcfocus in #68

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

v0.3.2

Choose a tag to compare

@lance-community lance-community released this 10 Jun 17:15

What's Changed

  • ci: build manylinux 2.28 Python wheels by @dcfocus in #65

Full Changelog: v0.3.1...v0.3.2

v0.3.1

Choose a tag to compare

@lance-community lance-community released this 10 Jun 06:03

What's Changed

  • feat: add lifecycle retention filters by @dcfocus in #62
  • Add REST API server, Rust client SDK, and point lookup by @beinan in #66

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

v0.3.0

Choose a tag to compare

@lance-community lance-community released this 10 Jun 00:44

What's Changed

  • docs: bump pypi example to 0.2.4 by @beinan in #40
  • docs(example): add Claude Code E2E workflow by @beinan in #42
  • ci: optimize build times with shared caching and streamlined workflows by @beinan in #43
  • feat: generalize storage_options for GCS/Azure and any object_store backend by @dcfocus in #46
  • Upgrade lance to 7.0.0 by @beinan in #47
  • feat: integrate MemWAL for context storage by @beinan in #36
  • Add multi-session MemWAL sharding example by @beinan in #48
  • Add configurable V1 blob encoding for large payload columns by @beinan in #49
  • Add configurable scalar index on id column by @beinan in #50
  • fix: read context records through MemWAL scanner by @beinan in #51
  • feat: support external record identifiers by @dcfocus in #57
  • feat: add batch append API by @dcfocus in #58
  • feat: add logical delete/forget API by @dcfocus in #59
  • Add async Python API (AsyncContext) by @beinan in #61
  • feat: add metadata filters for context retrieval by @dcfocus in #60

Full Changelog: v0.2.4...v0.3.0