# What changed in chromadb

> 47 changes in chromadb 1 from its official release notes, upgrade guides and advisories: 5 breaking, 23 new APIs and options. Each one cited. Sources checked 2026-10-18. HTML: https://unstale.sh/npm/chromadb/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## chromadb 1

### Breaking changes

- Callers must specify an output collection when using the statistics wrapper. (1.3.6) — [release notes](https://github.com/chroma-core/chroma/releases/tag/1.3.6)
- The JS client validates that an embedding function is provided when a sparse source key is set. (1.3.5) — [release notes](https://github.com/chroma-core/chroma/releases/tag/1.3.5)
- The Rust client type was renamed from ChromaClient to ChromaHttpClient. (1.2.2) — [release notes](https://github.com/chroma-core/chroma/releases/tag/1.2.2)
- The Rust client option default_database_name was renamed to database_name. (1.2.2) — [release notes](https://github.com/chroma-core/chroma/releases/tag/1.2.2)
- Limits users from setting index parameters. (1.2.2) — [release notes](https://github.com/chroma-core/chroma/releases/tag/1.2.2)

### New APIs and options

- Cache types are now configurable. (1.3.6) — [release notes](https://github.com/chroma-core/chroma/releases/tag/1.3.6)
- Exposes host and port as CloudClient constructor parameters. (1.3.6) — [release notes](https://github.com/chroma-core/chroma/releases/tag/1.3.6)
- Adds CMEK support to storage, the compactor, the log service, and the collection schema. (1.3.6) — [release notes](https://github.com/chroma-core/chroma/releases/tag/1.3.6)
- Makes detach a Collection method. (1.3.6) — [release notes](https://github.com/chroma-core/chroma/releases/tag/1.3.6)
- Allows specifying multiple filter keys when retrieving statistics. (1.3.6) — [release notes](https://github.com/chroma-core/chroma/releases/tag/1.3.6)
- Adds a key parameter to filter statistics results. (1.3.6) — [release notes](https://github.com/chroma-core/chroma/releases/tag/1.3.6)
- The JS client adds getCollectionByCrn API support. (1.3.6) — [release notes](https://github.com/chroma-core/chroma/releases/tag/1.3.6)
- Adds sparse vector labels to the Python client. (1.3.6) — [release notes](https://github.com/chroma-core/chroma/releases/tag/1.3.6)
- Adds a Python wrapper API for the statistics function. (1.3.6) — [release notes](https://github.com/chroma-core/chroma/releases/tag/1.3.6)
- A Google GenAI embedding function is available. (1.3.5) — [release notes](https://github.com/chroma-core/chroma/releases/tag/1.3.5)
- A Nomic embedding function is available. (1.3.5) — [release notes](https://github.com/chroma-core/chroma/releases/tag/1.3.5)
- The Python client supports EF environment variables without a prefix. (1.3.5) — [release notes](https://github.com/chroma-core/chroma/releases/tag/1.3.5)
- The Python client adds keepalive and maximum-connection controls. (1.3.5) — [release notes](https://github.com/chroma-core/chroma/releases/tag/1.3.5)
- A Transformers.js embedding function is available with compatibility with Python. (1.3.5) — [release notes](https://github.com/chroma-core/chroma/releases/tag/1.3.5)
- A BM25 embedding function is added to Python, allowing developers to use it for embeddings. (1.3.3) — [release notes](https://github.com/chroma-core/chroma/releases/tag/1.3.3)
- Qwen was added to the list of JS packages. (1.3.2) — [release notes](https://github.com/chroma-core/chroma/releases/tag/1.3.2)
- The Rust client adds BM25 support. (1.2.2) — [release notes](https://github.com/chroma-core/chroma/releases/tag/1.2.2)
- Adds a chroma_cloud() constructor for ChromaClientOptions. (1.2.2) — [release notes](https://github.com/chroma-core/chroma/releases/tag/1.2.2)
- The Rust client adds delete_collection() for deleting a collection. (1.2.2) — [release notes](https://github.com/chroma-core/chroma/releases/tag/1.2.2)
- The Rust client adds get_collection() for retrieving a collection. (1.2.2) — [release notes](https://github.com/chroma-core/chroma/releases/tag/1.2.2)
- Makes get_tenant_id() public in the Rust client. (1.2.2) — [release notes](https://github.com/chroma-core/chroma/releases/tag/1.2.2)
- Schemas support the Key object. (1.2.2) — [release notes](https://github.com/chroma-core/chroma/releases/tag/1.2.2)
- The search API can embed query strings. (1.2.2) — [release notes](https://github.com/chroma-core/chroma/releases/tag/1.2.2)

### Behavior and default changes

- Chroma Cloud embedding functions can obtain the API key from the client, or from a header when available for authentication. (1.3.6) — [release notes](https://github.com/chroma-core/chroma/releases/tag/1.3.6)
- The EF package is automatically loaded when installed. (1.3.5) — [release notes](https://github.com/chroma-core/chroma/releases/tag/1.3.5)
- The default embedding function is automatically loaded with a schema. (1.3.5) — [release notes](https://github.com/chroma-core/chroma/releases/tag/1.3.5)
- Makes get_database_name() public in the Rust client. (1.2.2) — [release notes](https://github.com/chroma-core/chroma/releases/tag/1.2.2)
- Rust client methods accept AsRef<str> instead of String or Into<String>. (1.2.2) — [release notes](https://github.com/chroma-core/chroma/releases/tag/1.2.2)
- Modifying a collection updates its schema. (1.2.2) — [release notes](https://github.com/chroma-core/chroma/releases/tag/1.2.2)

### Fixes and other changes

- Supports blank tasks for ChromaCloudQwenEmbeddingFunction. (1.3.6) — [release notes](https://github.com/chroma-core/chroma/releases/tag/1.3.6)
- Read/write schema errors distinguish user errors, which return 400, from internal errors, which return 500. (1.3.6) — [release notes](https://github.com/chroma-core/chroma/releases/tag/1.3.6)
- The JS client returns error messages from the server, making server-side error details available to callers. (1.3.6) — [release notes](https://github.com/chroma-core/chroma/releases/tag/1.3.6)
- Embedding functions in schemas are validated. (1.3.5) — [release notes](https://github.com/chroma-core/chroma/releases/tag/1.3.5)
- Garbage collection now handles soft-deleted attached functions. (1.3.5) — [release notes](https://github.com/chroma-core/chroma/releases/tag/1.3.5)
- The TypeScript vector config source key now accepts Key. (1.3.5) — [release notes](https://github.com/chroma-core/chroma/releases/tag/1.3.5)
- Hydration is fixed for Qwen embedding functions that use custom prompts or tasks. (1.3.3) — [release notes](https://github.com/chroma-core/chroma/releases/tag/1.3.3)
- Fixed sparse autoembed queries on the search API. (1.3.2) — [release notes](https://github.com/chroma-core/chroma/releases/tag/1.3.2)
- Fixes the API path used by collection.modify() in the Rust client. (1.2.2) — [release notes](https://github.com/chroma-core/chroma/releases/tag/1.2.2)
- Fixes forking after it was disabled until request and response types matched. (1.2.2) — [release notes](https://github.com/chroma-core/chroma/releases/tag/1.2.2)
- The Python client exports hosted ef from utils. (1.2.2) — [release notes](https://github.com/chroma-core/chroma/releases/tag/1.2.2)
- Fixes sparse auto-embedding in the Python client. (1.2.2) — [release notes](https://github.com/chroma-core/chroma/releases/tag/1.2.2)
- The Rust client serializes Where clauses. (1.2.2) — [release notes](https://github.com/chroma-core/chroma/releases/tag/1.2.2)
