Commit Graph

3 Commits

  • .NET: Add Cosmos DB implementations for ChatMessageStore and CheckpointStore. (#1838)
    * draft commit
    
    * Added Cosmos agent thread and tests
    
    * revert unnecessary changes and fix tests
    
    * add multi-tenant support with hierarchical partition keys (and tests).
    
    * enhance transactional batch
    
    * address review comments
    
    * Address PR review comments from @westey-m
    
    * Merge upstream/main - resolve slnx conflicts
    
    * use param validation helpers
    
    * Replace useManagedIdentity boolean with TokenCredential parameter
    
    * Remove redundant suppressions and fix tests
    
    * Rename project from Microsoft.Agents.AI.Abstractions.CosmosNoSql to Microsoft.Agents.AI.CosmosNoSql
    
    * Refactor constructors to use chaining pattern
    
    * Reorder deserialization constructor parameters for consistency
    
    * Remove database/container IDs from serialized state
    
    * Remove auto-generation of MessageId
    
    * Optimize AddMessagesAsync to avoid enumeration when possible
    
    * Add MaxMessagesToRetrieve to limit context window
    
    * Make Role nullable instead of defaulting
    
    * Fix net472 build without rebasing 19 commits
    
    * Add Cosmos DB emulator to CI workflow
    
    * Fix Cosmos DB emulator tests: use Skip.If instead of Assert.Fail and start emulator before unit tests
    
    * Replace Skip.If() with conditional return to fix compilation
    
    * Use env var to skip Cosmos tests on non-Windows CI
    
    * Add Xunit.SkippableFact package to properly skip Cosmos tests on Linux
    
    * Change [Fact] to [SkippableFact] for proper test skipping behavior
    
    * Remove stale Microsoft.Agents.AI.Abstractions.CosmosNoSql directory
    
    * Fix code formatting: add braces, this. qualifications, and final newlines
    
    * Fix file encoding to UTF-8 with BOM, fix import ordering, and remove unnecessary using directives
    
    * Convert backing fields to auto-properties and remove Azure.Identity using directive
    
    * Fix CosmosChatMessageStore.cs encoding back to UTF-8 with BOM
    
    * Fix test file formatting: indentation, encoding, imports, this. qualifications, naming conventions, and simplify new expressions
    
    * Fix const field naming violations: Remove s_ prefix from const fields and add this. qualification to Dispose call
    
    * Add local .editorconfig for Cosmos DB tests to suppress IDE0005 false positives from multi-targeting
    
    * Fix IDE1006 naming violations: Rename TestDatabaseId to s_testDatabaseId and add final newlines
    
    * Address PR review comments
    
    Address Wesley's review comments:
    
    - Remove Cosmos DB package references from core projects
    
    - Delete duplicate test files from old package structure
    
    - Remove redundant parameter validation from extension methods
    
    Address Kiran's review comments:
    
    - Remove redundant 429 retry logic (SDK handles automatically)
    
    - Add explicit RequestEntityTooLarge error handling
    
    - Remove dead code in GetMessageCountAsync
    
    - Add defensive partition key validation comments
    
    * Fix IDE0001 formatting error in AgentProviderExtensions.cs. Use type alias to resolve namespace conflict between Azure.AI.Agents.Persistent.RunStatus and Microsoft.Agents.AI.Workflows.RunStatus. This eliminates the need for global:: qualifier which triggered the formatter warning.
    
    * Update package versions for Aspire 13.0.0 compatibility
    
    * Fix TargetFrameworks in Cosmos DB projects
    
    - Replace  with  which is defined in Directory.Build.props
    - Fix package reference from System.Linq.Async to System.Linq.AsyncEnumerable to match Directory.Packages.props
    
    * Remove redundant counter, add partition key validation, use factory pattern for deserialization