Commit Graph

3 Commits

  • .NET: CI hardening — split Functions tests, re-enable skipped integration tests (#5717)
    * Split DurableTask/AzureFunctions integration tests into dedicated CI job
    
    - Add -TestProjectNameExclude parameter to New-FilteredSolution.ps1
    - Add 'functions' and 'core' path filters to paths-filter job
    - Exclude DurableTask/AzureFunctions from main dotnet-test job
    - Remove emulator setup from dotnet-test (no longer needed)
    - Add new dotnet-test-functions job (ubuntu/net10.0 only, path-conditional)
    - Update merge gate and report job to include dotnet-test-functions
    
    Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
    
    * Address PR feedback: add Workflows.Generators to core filter, drop dotnetChanges gate from functions job
    
    Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
    
    * Re-enable Anthropic integration tests
    
    Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
    
    * Upgrade Anthropic SDK 12.13.0 -> 12.20.0 to fix M.E.AI incompatibility
    
    Fixes MissingMethodException on WebSearchToolResultContent.get_Results()
    caused by Anthropic 12.13.0 being compiled against an older
    Microsoft.Extensions.AI.Abstractions version.
    
    Suppress RT0003 in AI.Abstractions.csproj as the transitive reference
    from the upgraded Anthropic SDK conflicts with the explicit one.
    
    Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
    
    * Fix Anthropic unit test mocks for SDK 12.20.0 interface changes
    
    Add missing interface members: IAnthropicClient.WebhookKey,
    IBetaService.MemoryStores, IBetaService.Webhooks, IBetaService.UserProfiles
    
    Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
    
    * Re-enable CheckSystem declarative integration tests
    
    The CheckSystem.yaml tests were temporarily skipped in PR #4270 during
    the Azure.AI.Projects 2.0.0-beta.1 SDK update. Since then, the system
    variable plumbing (SystemScope, SetLastMessageAsync, conversation
    initialization) has been significantly updated and stabilized. The
    other tests in these same files pass reliably using the same
    infrastructure.
    
    Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
    
    * Fix CheckSystem test case to expect 1 response
    
    The CheckSystem workflow sends a 'PASSED!' SendActivity when all system
    variables are populated, producing 1 AgentResponseEvent. The test case
    had min_response_count: 0 with no max, so the assertion defaulted max
    to 0 and failed with 'Response count greater than expected: 0 (Actual: 1)'.
    Updated to expect exactly 1 response, matching the SendActivity pattern.
    
    Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
    
    * Re-enable Foundry OpenAPI server-side tool integration test
    
    Remove Skip="For manual testing only" from
    AsAIAgent_WithOpenAPITool_NativeSDKCreation_InvokesServerSideToolAsync.
    The test already uses RetryFact(3 retries, 5s delay) to handle
    transient failures from the external restcountries.com API.
    
    Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
    
    * Include workflow file in functions/core path filters
    
    A PR editing only dotnet-build-and-test.yml would skip
    dotnet-test-functions because the workflow path was missing
    from both the functions and core path filter lists.
    
    Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
    
    * Rename filter parameters for consistency
    
    TestProjectNameFilter  -> TestProjectNameIncludeFilter
    TestProjectNameExclude -> TestProjectNameExcludeFilter
    
    Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
    
    * Remove unnecessary RT0003 warning suppression
    
    The RT0003 suppression was added during the Anthropic SDK 12.20.0
    upgrade but the warning no longer fires. Removing it to keep the
    NoWarn list minimal.
    
    Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
    
    * Remove duplicate WebhookKey properties from merge
    
    Both our branch and main added WebhookKey to the Anthropic test
    mock classes, resulting in CS0102 duplicate definition errors.
    
    Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
    
    ---------
    
    Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
  • .NET: Bump Azure.AI.Projects to 2.0.0 GA (#5060)
    * Bump Azure.AI.Projects to 2.0.0 GA
    
    - Update Azure.AI.Projects from 2.0.0-beta.2 to 2.0.0 in CPM
    - Update Azure.Identity from 1.19.0 to 1.20.0 (transitive dep)
    - Update System.ClientModel from 1.9.0 to 1.10.0 (transitive dep)
    - Rename types per Azure.AI.Projects.Agents 2.0.0 breaking changes:
      - AgentVersion -> ProjectsAgentVersion
      - AgentRecord -> ProjectsAgentRecord
      - AgentDefinition -> ProjectsAgentDefinition
      - AgentVersionCreationOptions -> ProjectsAgentVersionCreationOptions
      - PromptAgentDefinition -> DeclarativeAgentDefinition
      - AgentTool -> ProjectsAgentTool
      - AgentsClient -> AgentAdministrationClient
      - .Agents property -> .AgentAdministrationClient
    - Add using Azure.AI.Projects.Memory namespace (types moved)
    - Update AGENTS.md with BOM and output capture conventions
    
    * Address PR review feedback
    
    - Rename AIProjectClient parameter to aiProjectClient in AsChatClientAgent overloads
    - Fix XML doc: ProjectsAgentTool namespace from Azure.AI.Projects.OpenAI to Azure.AI.Projects.Agents
    - Rename test method to reflect DeclarativeAgentDefinition terminology
  • .NET: Rename Microsoft.Agents.AI.AzureAI to Microsoft.Agents.AI.Foundry and consolidate FoundryMemory (#5042)
    * Update Foundry Responses as ChatClientAgent
    
    * Migrate obsolete AzureAI integration tests to versioned agent pattern
    
    Replace obsolete CreateAIAgentAsync/GetAIAgentAsync calls with
    Agents.CreateAgentVersionAsync() + AsAIAgent(AgentVersion) in all
    AzureAI integration tests.
    
    - Rename AIProjectClient* test files to FoundryVersionedAgent*
    - Register AIFunction tools in PromptAgentDefinition.Tools for
      server-side visibility via AsOpenAIResponseTool()
    - Skip structured output tests (AzureAIProjectChatClient clears
      ResponseFormat for versioned agents)
    - Remove all [Obsolete] attributes and #pragma warning disable CS0618
    
    * Merge FoundryMemory package into AzureAI under Memory/ folder
    
    Move all FoundryMemory source, unit tests, and integration tests into
    the Microsoft.Agents.AI.AzureAI package. Change namespace from
    Microsoft.Agents.AI.FoundryMemory to Microsoft.Agents.AI.AzureAI.
    
    - Add [Experimental] to FoundryMemoryProviderOptions and Scope
    - Rename internal AIProjectClientExtensions to MemoryStoreExtensions
    - Update AzureAI .csproj with Compliance.Abstractions, Redaction
    - Remove FoundryMemory from solution and release filter
    - Update sample to reference AzureAI instead of FoundryMemory
    - Delete old Microsoft.Agents.AI.FoundryMemory project and tests
    
    * Add EnsureMemoryStoreCreatedAsync and memory existence checks to integration tests
    
    - Ensure memory store is created before testing memory operations
    - Add AZURE_AI_EMBEDDING_DEPLOYMENT_NAME config setting
    - Assert memories exist in store via SearchMemoriesAsync before cleanup
    - Verify scope isolation with direct memory store queries
    
    * Fix and rename AzureAI unit tests for RAPI vs Versioned clarity
    
    - Rename AsAIAgentAsync_* to AsAIAgent_* (drop Async from method group)
    - Add _Rapi_ prefix to non-versioned (Responses API) tests
    - Add _Versioned_ prefix to versioned agent tests where needed
    - Fix RAPI tests: assert GetService<AIProjectClient>() is null
    - Fix Versioned tests: assert IsType<FoundryAgent> and
      GetService<AIProjectClient>() returns the client instance
    - Fix UserAgent header tests: proper HTTP handler routing
    - Fix ChatClient_UsesDefaultConversationIdAsync test setup
    - All 153 unit tests pass with 0 failures
    
    * Rename Microsoft.Agents.AI.AzureAI to Microsoft.Agents.AI.Foundry
    
    Rename the project, namespace, folder, and all references from
    Microsoft.Agents.AI.AzureAI to Microsoft.Agents.AI.Foundry.
    Also rename Workflows.Declarative.AzureAI to .Foundry.
    
    - Rename src, unit test, integration test, and workflow folders
    - Update namespaces in all source and test .cs files
    - Update ProjectReferences in ~47 sample and test .csproj files
    - Update solution files (.slnx, .slnf)
    - Update sample using statements
    - Update READMEs, SKILL.md, ADRs in docs/
    - Disable package validation baseline for renamed packages
    - Fix UTF-8 BOM encoding on all affected .cs files
    - AzureAI.Persistent left completely unchanged
    
    * Fix format: remove ImplicitUsings, add explicit usings, fix BOM encoding
    
    - Remove ImplicitUsings=enable from Foundry csproj to resolve IDE0005
      on shared ReplacingRedactor.cs
    - Add explicit System usings to all source files that relied on them
    - Sort usings alphabetically per editorconfig rules
    - Fix UTF-8 BOM on 12 sample Program.cs files
    - Rename Azure AI Foundry Agents to Microsoft Foundry Agents in docs