What chroma-core/chroma shipped
Written by FoxPlug from the repository's own releases; not affiliated with Trychroma. Paste your own repository in the box below and FoxPlug writes the same weekly update for your product. This page is an automatic summary of the releases, pull requests and commits in github.com/chroma-core/chroma; Trychroma did not write it and does not use or endorse FoxPlug. Every line links to the change it describes.
Get a weekly update like this for your product, free
Week of October 19, 2026
What shipped
- The hierarchical index now stores four-bit centroid codes during commit, so opening a reader loads them directly. Pull request #7910
- The Helm chart now exposes query-service termination grace and minReadySeconds settings. Pull request #7924
- The cluster test now pulls its coordinator test MinIO image from a GHCR mirror. Pull request #7941
- JavaScript builds and releases now use Node 22.23.4 for native-binding builds and publication. Pull request #7940
- A new build was published as version 1.5.10.dev326 with a pip package and container images. Release
Why it matters
Faster reader open for hierarchical indexes and more control over query-service rollouts affect people running Chroma in production. The rest keeps CI and release workflows on supported runtimes and stable infrastructure.
Changelog entry
- Persist reader centroid codes during commit for faster hierarchical index open. Pull request #7910
- Expose query-service termination grace and minReadySeconds in the Helm chart. Pull request #7924
- Use patched Node 22.23.4 for JavaScript builds and releases. Pull request #7940
- Pull coordinator test MinIO from a GHCR mirror in cluster tests. Pull request #7941
- Publish build 1.5.10.dev326 as a pip package and container images. Release
This week: hierarchical index readers load stored centroid codes directly, Helm gains query-service termination grace and minReadySeconds, and JS builds move to Node 22.23.4.
This week in Chroma: opening a hierarchical index now loads stored four-bit centroid codes directly, which avoids recomputing them on open. The Helm chart exposes query-service termination grace and minReadySeconds so rollouts can be tuned. JavaScript builds and releases now use Node 22.23.4 for native-binding builds and publication. The cluster test pulls its coordinator test MinIO image from a GHCR mirror to avoid container start timeouts. A new build, 1.5.10.dev326, is available as a pip package and container images.
Week of October 12, 2026
What shipped
- Released version 1.6.0 as a bug fix release that stays backwards compatible. Pull request #7907
- Published a development build 1.5.10.dev324 from main with matching pip package and container images. Release
- Removed hierarchical replication in the index so each vector is assigned to a single nearest candidate leaf. Pull request #7913
- Fixed stale cached compaction cursors so former log hosts stop overstating pending-record backlog after a collection moves. Pull request #7905
- Backported the stale compaction cursor refresh as a hotfix for former log hosts that kept writing rejected until compaction caught up. Pull request #7908
- Revalidated compaction backpressure so cache refresh reduces backlog alerts and unnecessary write rejections from outdated progress reports. Pull request #7914
- Changed reader navigation to four-bit centroids with full-precision queries to improve navigation accuracy and reduce posting list scanning and reranking. Pull request #7897
- Added the ability to query saved checkpoints so read performance can be measured from a persisted index without reloading the corpus. Pull request #7911
- Stored each parent's child IDs, four-bit centroid codes and distance correction values together in immutable buffers to speed reader scoring. Pull request #7903
- Updated the incremental index benchmark to account for build wall time beyond the checkpoint phase timers. Pull request #7896
Why it matters
This week brought a bug fix release plus several fixes around stale compaction cursors that could overstate backlog and cause rejected writes after a collection moved hosts. The index saw a move to single-leaf assignment and higher precision reader navigation, and benchmarks can now measure read performance directly from saved checkpoints.
Changelog entry
- Release 1.6.0, a backwards compatible bug fix release. Pull request #7907
- Release development build 1.5.10.dev324 with pip package and container images. Release
- Refresh stale compaction cursors when a collection moves between log hosts. Pull request #7905
- Hotfix backport refreshing stale compaction cursors on former log hosts. Pull request #7908
- Revalidate compaction backpressure by increasing cache refresh. Pull request #7914
- Remove hierarchical replication; single-leaf assignment is the only behavior. Pull request #7913
- Use four-bit centroids and full-precision queries for reader navigation. Pull request #7897
- Query saved checkpoints to measure read performance from a persisted index. Pull request #7911
- Keep parent child IDs, centroid codes and distance corrections in immutable buffers for reader scoring. Pull request #7903
- Account for build wall time in the incremental index benchmark. Pull request #7896
1.6.0 is out, a backwards compatible bug fix release. Also this week: stale compaction cursors fixed so former log hosts stop overstating backlog and rejecting writes, single-leaf assignment as the only index behavior, and higher precision reader navigation.
This week we shipped 1.6.0, a backwards compatible bug fix release, along with a development build from main. Several fixes address stale compaction cursors: when a collection moves hosts, former hosts could keep reporting already-compacted records as pending, overstating backlog and causing rejected writes until compaction caught up. Those cursors now refresh, and a hotfix backports the change. On the index side, single-leaf assignment is now the only behavior, and reader navigation uses four-bit centroids with full-precision queries for better accuracy and less posting list scanning. The benchmark can now query saved checkpoints to measure read performance without reloading the corpus, and it accounts for build wall time.
Week of October 5, 2026
What shipped
- A new development build of the project was published at version 1.5.10.dev321, available as a source package and container image. Release
- Posting-list reads now use hardware bit counts, so the vector comparisons that dominate query time can run with dedicated bit-count instructions instead of ordinary instructions in the portable x86 build. Pull request #7861
- Wikipedia checkpoint preparation now decodes up to four local benchmark shards concurrently rather than one after another. Pull request #7872
- Checkpoint loading now selects only the required Parquet row groups instead of decoding every column in the overlapping file and discarding earlier vectors. Pull request #7860
- Checkpoint version checks now fill the version cache by metadata block, reducing the work needed before a vector can be moved between leaves. Pull request #7874
- Balancing now scores a parent's children from shared parent payloads, avoiding a fetch of every child's node while moving vectors between leaves. Pull request #7852
- Deleted index resources are reclaimed transactionally, including database teardown, with live writers invalidated before HNSW files are removed and orphan cleanup retried at startup and hourly. Pull request #7767
- Cached local HNSW indexes now open CRT streams only for bounded load and checkpoint operations instead of holding them for the index lifetime, which previously exhausted the Windows default stream limit after roughly 128 resident segments. Pull request #7869
- Concurrent cache misses for the same local HNSW index are now serialized by identity, preventing two native writers from sharing the same persistent files. Pull request #7765
- Garbage collection now pins its plan and verifies durability before deletion, so an overlapping run cannot substitute a newer plan or a stale manifest during the delete phase. Pull request #7850
Why it matters
This week focuses on making the index layer more reliable under real workloads: writes to invalid indexes are rejected, deleted resources are reclaimed, and cache behavior no longer runs out of file streams. Checkpoint preparation and loading get faster by decoding shards in parallel and reading only the Parquet row groups that are needed. Several fixes also protect data during merges and garbage collection, so interrupted or overlapping operations cannot drop vectors.
Changelog entry
- Publish development build 1.5.10.dev321 as a source package and container image. Release
- Use hardware bit counts for posting-list reads so compressed vector comparisons can use dedicated instructions. Pull request #7861
- Decode up to four local Wikipedia benchmark shards in parallel during checkpoint preparation. Pull request #7872
- Skip repeated dataset decoding between checkpoints by selecting only the required Parquet row groups. Pull request #7860
- Fill the checkpoint version cache by metadata block instead of per-vector lookups. Pull request #7874
- Score balancing children from shared parent payloads instead of fetching each child's node. Pull request #7852
- Reclaim deleted index resources transactionally and reject loads from stale segment descriptors. Pull request #7767
- Close cached local HNSW files when idle by opening streams only for bounded disk operations. Pull request #7869
- Serialize cache misses by index identity so concurrent writers do not share persistent files. Pull request #7765
- Pin the garbage collection plan and verify durability before deletion. Pull request #7850
- Reject writes to invalid local indexes before appending to the log. Pull request #7770
- Purge the log safely after backfill errors without discarding vector data. Pull request #7766
New dev build 1.5.10.dev321. Parallel shard decoding and row-group-only checkpoint loads speed up preparation. Writes to invalid indexes are rejected, deleted index resources are reclaimed, and idle HNSW streams are closed so Windows no longer runs out after ~128 segments.
A new development build is available at version 1.5.10.dev321. Checkpoint preparation now decodes Wikipedia benchmark shards in parallel, and loading skips Parquet columns that fall outside the checkpoint range, cutting repeated decoding work. On the reliability side, writes to invalid indexes are rejected before they grow the log, deleted index resources are reclaimed transactionally with orphan cleanup retried at startup and hourly, and cached local HNSW indexes open CRT streams only for load and checkpoint instead of holding them for the index lifetime, which previously exhausted the Windows default stream limit after roughly 128 resident segments. Garbage collection now pins its plan and verifies durability before deleting.
Week of September 28, 2026
What shipped
- Index writer now caches vector versions to avoid repeated blockfile reads during leaf posting list cleanup. Pull request #7842
- Vector addition batches now buffer worker postings by leaf before flush, organizing data for contiguous reads instead of point reads. Pull request #7841
- Tree navigation for vector addition keeps child centroids in a packed buffer to reduce lock contention during centroid scoring. Pull request #7838
- Index reopening defers posting-list loads until vectors are actually added, reducing memory usage during checkpoint operations. Pull request #7810
- New GET endpoint /api/v2/tenants/{tenant}/databases_count exposes tenant database count without listing all databases. Pull request #7837
- Batch database lookup endpoint POST /api/v2/tenants/{tenant}/databases/batch/get returns up to 1,000 database records by ID in a single query. Pull request #7818
- Filter validation now rejects metadata and document filters deeper than 64 nesting levels before recursive parsing. Pull request #7761
- HNSW segment loading now validates persisted native dimensions and rejects mismatched queries. Pull request #7763
- Garbage collection now discovers RLS nodes from the memberlist instead of scanning persisted manifests. Pull request #7823
- Database list pagination now forwards limit and offset to single-region SysDB to prevent oversized responses. Pull request #7826
Why it matters
This week's changes focus on index performance through better caching and data organization, API efficiency for bulk database operations, and correctness fixes in validation, garbage collection, and pagination. Together they reduce memory pressure, improve query latency, and prevent invalid states.
Changelog entry
- PERF: Index writer caches vector versions to avoid blockfile reads during leaf posting list cleanup Pull request #7842
- PERF: Vector addition batches organize worker postings by leaf for contiguous reads Pull request #7841
- PERF: Tree navigation keeps child centroids in packed buffer during vector addition Pull request #7838
- PERF: Index reopening defers posting-list loads until vectors are added Pull request #7810
- ENH: Add tenant-scoped database count endpoint without listing all databases Pull request #7837
- ENH: Add batch database lookup endpoint for up to 1,000 databases by ID Pull request #7818
- BUG: Validate filter nesting depth to prevent stack exhaustion Pull request #7761
- BUG: Validate HNSW native dimensions before loading segments Pull request #7763
- BUG: Discover RLS nodes from memberlist instead of persisted manifests Pull request #7823
- BUG: Bound database list pagination to prevent oversized responses Pull request #7826
- Release 1.5.10.dev312 published Release
Weekly digest: Index caching and buffering reduce reader locks [0,1,2,9]. Bulk database lookups and pagination fixes improve API efficiency [4,10,19]. Validation and GC fixes strengthen correctness [12,15,16].
This week in chroma-core/chroma: Performance improvements to vector indexing through better version caching and leaf buffering reduce lock contention and memory usage. New bulk database query endpoints enable efficient multi-database lookups. Correctness fixes validate HNSW dimensions, bound filter nesting depth, and improve garbage collection node discovery. Release 1.5.10.dev312 is available.
Week of September 21, 2026
What shipped
- Foundation catalog API now supports creating, listing, and describing a tenant's Foundations with product identity and database association. Pull request #7713
- API routes now accept tenant and Foundation identifiers in the request path to support multiple private memory resources per tenant. Pull request #7712
- MCP clients can select a specific Foundation through per-Foundation path routing at /mcp/tenants/{tenant}/foundations/{foundation}. Pull request #7714
- Agent query spend is now debited against Foundation price cards after response streams complete. Pull request #7759
- Foundation creation is paused during migration to prevent new Foundations from being missed when registering the product-record table. Pull request #7782
- Metadata service now properly returns segment row read errors instead of crashing. Pull request #7785
- Benchmark dataset cache now flushes file handles before renaming cached files to prevent stale data. Pull request #7717
- Exponential backoff test now bounds timing by elapsed time rather than fixed duration for more reliable results. Pull request #7718
Why it matters
This week adds multi-tenant Foundation support with explicit routing and billing integration. The catalog-backed API lets tenants manage multiple private databases, while spend tracking ensures accurate pricing against Foundation price cards. Bug fixes prevent data loss and billing errors during this expansion.
Changelog entry
- Foundation-api: Add Foundation catalog creation, listing, and description endpoints backed by product catalog Pull request #7713
- Foundation-api: Support explicit tenant and Foundation selection in API request paths Pull request #7712
- Foundation-api: Add per-Foundation MCP endpoint routing at /mcp/tenants/{tenant}/foundations/{foundation} Pull request #7714
- Foundation-api: Debit agent query spend against Foundation price cards after response completion Pull request #7759
- Foundation-api: Pause Foundation creation during product-record table migration Pull request #7782
- Sysdb: Return segment row read errors instead of crashing metadata service Pull request #7785
- Benchmark: Flush cached dataset file handles before renaming Pull request #7717
- Wal3: Bound exponential backoff test by elapsed time instead of fixed duration Pull request #7718
1.5.10.dev301 released. Foundation catalog API now live: create, list, describe Foundations. Multi-tenant routing supported. Spend tracking integrated. Docs updated.
1.5.10.dev301 released. Major Foundation management features now available: create and manage multiple private memory resources per tenant with catalog-backed APIs. Foundation-specific routing through /mcp/tenants/{tenant}/foundations/{foundation}. Agent query spending is now tracked and debited against Foundation price cards. Documentation updated and billing bugs fixed.
Week of September 14, 2026
What shipped
- Float metadata values now survive SQLite log round trips with full precision, fixing equality filters that would miss records after log replay. Pull request #7755
- Work queue service GetWork now paces results using optional token bucketing while preserving FIFO and failure filtering. Pull request #7748
- Append operations now expose contention as structured AppendOutcome, distinguishing between committed, contention, and independent failures. Pull request #7653
- SysDB now supports looking up databases by ID through a new GET endpoint with tenant isolation. Pull request #7709
- SysDB database listing now properly honors limit and offset pagination parameters. Pull request #7710
- Latency measurement moved to a shared chroma-metrics crate, removing storage dependency on tracing and fastrace. Pull request #7658
- Parquet statistics disabled for opaque WAL3 body columns to reduce unnecessary metadata overhead. Pull request #7645
- Log service build configuration unified across Tilt environments by removing local overrides. Pull request #7749
- MinIO test image pinned to digest on quay.io to avoid Docker Hub rate limits and improve reproducibility. Pull request #7741
Why it matters
This week addresses core correctness issues in metadata handling and pagination, improves operational efficiency through caching and token pacing, and refactors internal code organization. These changes strengthen reliability for users relying on metadata queries and work scheduling while reducing infrastructure friction.
Changelog entry
- Fixed: Float metadata values now preserve precision through SQLite log JSON round trips Pull request #7755
- Enhanced: Work queue service GetWork results now paced with optional token bucketing Pull request #7748
- Enhanced: Append contention exposed as structured AppendOutcome instead of error interpretation Pull request #7653
- Enhanced: SysDB supports database lookup by ID with tenant isolation Pull request #7709
- Fixed: SysDB database listing now respects limit and offset pagination Pull request #7710
- Refactored: Operation latency measurement moved to shared chroma-metrics crate Pull request #7658
- Optimized: Parquet statistics disabled for WAL3 opaque body columns Pull request #7645
- Fixed: MinIO test image pinned to digest for reproducibility Pull request #7741
Week's updates: float metadata precision fixed for log round trips, work queue pacing added, database pagination honored, and append contention now structured for clearer error handling.
This week's updates improve core reliability and efficiency: metadata floats now maintain precision through database round trips, work queues pace results with token bucketing, database pagination is properly enforced, and append contention is exposed as structured outcomes. Plus internal refactoring: latency measurement moved to shared metrics, agent request prefixes cached, and test infrastructure pinned for reproducibility.