Repository navigation
Conversation
This was referenced Oct 3, 2026
Open
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
Fork-specific branding and package instructions contradict the target repository’s package identity.
Review effort: Balanced
Findings: 2
Open (2)
What changed in this PR
Migrates the client to Chroma API v2 while improving compatibility, cancellation, error handling, dependency injection, and CI coverage.
Changes:
- Migrates endpoints and defaults to API v2.
- Adds cancellation support and fixes response/request handling.
- Expands tests and CI across Chroma and .NET versions.
| File | Description |
|---|---|
v2-migration/MIGRATION_GUIDE_V2.md |
Adds migration guidance. |
Samples/ChromaDB.Client.Sample/Program.cs |
Uses the v2 endpoint. |
README.md |
Documents compatibility and migration. |
ChromaDB.Client/Models/Responses/GeneralError.cs |
Supports v2 error fields. |
ChromaDB.Client/Models/Responses/CollectionEntriesQueryResponse.cs |
Handles optional distances and data. |
ChromaDB.Client/Models/Responses/CollectionEntriesGetResponse.cs |
Makes response data optional. |
ChromaDB.Client/Models/Requests/CollectionModifyRequest.cs |
Corrects modify field names. |
ChromaDB.Client/Common/HttpClientHelpers.cs |
Adds cancellation, URI construction, and error handling. |
ChromaDB.Client/Common/CollectionQueryEntryMapper.cs |
Maps optional distances. |
ChromaDB.Client/Common/ClientConstants.cs |
Changes the default endpoint to v2. |
ChromaDB.Client/Common/ChromaHttpClient.cs |
Avoids mutating shared HTTP clients. |
ChromaDB.Client/ChromaDB.Client.csproj |
Updates version and package metadata. |
ChromaDB.Client/ChromaCollectionQueryEntry.cs |
Makes distance nullable. |
ChromaDB.Client/ChromaCollectionClient.cs |
Migrates collection operations to v2. |
ChromaDB.Client/ChromaClient.cs |
Migrates client operations to v2. |
ChromaDB.Client.Tests/TestContainer/ChromaDBBuilder.cs |
Makes the tested Chroma image configurable. |
ChromaDB.Client.Tests/DependencyInjectionTests.cs |
Tests DI registration. |
ChromaDB.Client.Tests/CollectionClientTests.cs |
Strengthens modify and embedding tests. |
ChromaDB.Client.Tests/CollectionClientQueryTests.cs |
Tests omitted distances. |
ChromaDB.Client.Tests/CollectionClientCUDTests.cs |
Adapts CRUD tests across server versions. |
ChromaDB.Client.Tests/ClientTests.cs |
Tests shared HTTP clients and errors. |
ChromaDB.Client.Tests/ClientResetTests.cs |
Handles version-specific reset settings. |
ChromaDB.Client.Tests/ClientAuthTests.cs |
Skips removed Chroma 1.x authentication. |
ChromaDB.Client.Tests/ChromaTestsBase.cs |
Adds version-aware test helpers. |
ChromaDB.Client.Tests/ChromaDB.Client.Tests.csproj |
Tests alternate client target frameworks. |
ChromaDB.Client.Tests/CancellationTests.cs |
Verifies cancellation propagation. |
ChromaDB.Client.DependencyInjection/ChromaDB.Client.DependencyInjection.csproj |
Updates DI package metadata. |
ChromaDB.Client.DependencyInjection/ChromaClientExtensions.cs |
Registers configuration options. |
.github/workflows/ci.yml |
Adds server matrix, packaging, and publishing updates. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
This was referenced Oct 3, 2026
…ls after the unchanged ones
…se given, when a write fails halfway
… exposed to KD-49
2.12.0: SkipUnchangedEmbeddings, an upsert strategy for KD-49
…attempts of ReadRetries.Default
…ng, and a search answer for every search
Filter the documents with three characters in the tests of contains, as Chroma Cloud needs since KD-57
Read again after errors of the server that can pass, with the exponential backoff with full jitter of AWS
…lter on the documents, as Chroma Cloud needs since KD-57
Delete with three characters in the test of a delete by ids with a filter on the documents, as Chroma Cloud needs since KD-57
Version 2.14.0
Bump the versions to 2.14.1
…that use it through CommunityToolkit.VectorData.Chroma
README: list the uses and citations of the client in Used by
…uickstart The devcontainer runs .NET 10 next to Chroma 1.5.9 on port 8000. Samples/quickstart.cs is a file-based app that takes ChromaDotNet.Client 2.14.0 from NuGet. The README gets the Codespaces badge and a short section.
Laurianti
marked this pull request as draft
October 15, 2026 23:44
Try the client in a Codespace
The filter goes to the server as it is. Version 2.15.0 for the client and DI.
ChromaWhereOperator.FromDictionary, version 2.15.0
Used by: BotSharp.Plugin.Chroma
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Status (October 16, 2026): This pull request was meant to bring the work back here, so that the client could continue from this repository. It has had no answer since it was opened on October 3, 2026, so the client now continues in ChromaDotNet/ChromaDB.Client, published as ChromaDotNet.Client: v2 API and Chroma Cloud, tested with Chroma 0.4.10 to 1.5.9, used by the AI and Aspire Community Toolkits of the .NET Foundation. I contacted the owners of ChromaDB.Client through NuGet. This pull request stays as a draft, for reference. Issues and contributions are welcome in ChromaDotNet.
masterDelegatingHandlerthat rewrites the v1 callsThis pull request collects the work of ChromaDotNet/ChromaDB.Client: the pending pull requests #80 by @inlineHamed and #82 by @richlander, fixes for the open issues, and new features. Each change keeps its own commit and author. The branch follows the fork's
main, so the pull request stays current.Where the packages are used:
What it brings:
$containsand$regexfilters, URIs.The CI runs the whole suite against Chroma versions from 0.4.10 to 1.5.9, with both APIs;
docs/COMPATIBILITY.mdlists the versions tested and their differences. Every change is in the release notes.Breaking changes: the asynchronous methods end in
Async, lists and metadata are read-only, and a few types changed. The migration guide shows how to adapt.Fixes #69 (opened by @cincuranet)
Fixes #78 (reported by @Lingchar, with the fix proposed there)
Fixes #79 (reported by @hannahhaken)
Fixes #81 (reported by @mubarak0443)
Fixes #76 (opened by @luisquintanilla)
Fixes #83 (reported by @Chris-Maina)
Fixes #5
Fixes #33
Fixes #6
Supersedes #80 and #82.
Co-authored-by: Rich 2608468+richlander@users.noreply.github.com
Co-authored-by: Hamed 11094468+inlineHamed@users.noreply.github.com