Skip to content

.NET: add public API analyzers - #7935

Merged
Vincent Biret (baywet) merged 9 commits into
mainfrom
ci/public-api-analyzers-dotnet
Aug 31, 2026
Merged

.NET: add public API analyzers#7935
Vincent Biret (baywet) merged 9 commits into
mainfrom
ci/public-api-analyzers-dotnet

Conversation

@baywet

Copy link
Copy Markdown
Member

Motivation & Context

The released .NET packages need build-time public API tracking so accidental public surface changes, source-breaking changes, and nullability changes are visible during review instead of only during packaging or release validation.

This change sets up Public API Analyzers for released .NET packages and adds shipped baselines for the APIs already released.

Description & Review Guide

  • What are the major changes?
    Adds Microsoft.CodeAnalysis.PublicApiAnalyzers 5.6.0 to released .NET packages, introduces nullable-enabled per-target-framework PublicAPI.Shipped.txt and PublicAPI.Unshipped.txt baselines, adds scripts to promote and validate unshipped API entries, and adds a workflow that opens or updates promotion PRs.
  • What is the impact of these changes?
    Builds for released packages now fail when public API additions, removals, or nullability changes are not represented in the API baseline files. Publish packaging also fails if any unshipped API entries remain.
  • What do you want reviewers to focus on?
    Please focus on the analyzer wiring in dotnet/nuget/nuget-package.props, the per-TFM baseline layout, and the shipped API promotion workflow.

Related Issue

Fixes #7933

No other open PR was found for this issue.

Contribution Checklist

  • The code builds clean without any errors or warnings
  • All unit tests pass, and I have added new tests where possible
  • The PR follows the Contribution Guidelines
  • This PR is linked to an issue and there is no other open PR for this issue (see Related Issue above).
  • This is not a breaking change. If it is a breaking change, add the breaking change label (or add "[BREAKING]" to the title prefix, before or after any language prefix) — a workflow keeps the label and title prefix in sync automatically.

Add PublicAPI analyzer coverage for released .NET packages, including nullable-aware shipped baselines and unshipped API publish validation.

Add automation to promote unshipped API entries into shipped baselines after release branches move forward.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI balanced review requested due to automatic review settings August 28, 2026 16:51
@agent-framework-automation agent-framework-automation Bot added documentation Usage: [Issues, PRs], Target: documentation in the code base and learn docs .NET Usage: [Issues, PRs], Target: .Net workflows Usage: [Issues, PRs], Target: Workflows labels Aug 28, 2026
@baywet
Vincent Biret (baywet) marked this pull request as ready for review August 28, 2026 16:52

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds public API tracking and release safeguards for released .NET packages.

Changes:

  • Adds nullable-aware shipped/unshipped API baselines per target framework.
  • Integrates Microsoft.CodeAnalysis.PublicApiAnalyzers and publish validation.
  • Adds API-promotion tooling, automation, and contributor guidance.

Reviewed changes

Copilot reviewed 74 out of 84 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
.github/workflows/promote-shipped-apis.yml Automates API-baseline promotion PRs.
CONTRIBUTING.md Documents API-baseline workflow.
dotnet/Directory.Packages.props Pins the analyzer package.
dotnet/nuget/nuget-package.props Wires analyzers and publish validation.
dotnet/eng/scripts/promote-shipped-apis.ps1 Promotes unshipped API entries.
dotnet/eng/scripts/test-unshipped-public-apis.ps1 Rejects unshipped APIs during publishing.
dotnet/src/Microsoft.Agents.AI/PublicAPI/net8.0/PublicAPI.Shipped.txt Records net8.0 shipped APIs.
dotnet/src/Microsoft.Agents.AI/PublicAPI/net8.0/PublicAPI.Unshipped.txt Initializes net8.0 unshipped APIs.
dotnet/src/Microsoft.Agents.AI/PublicAPI/net9.0/PublicAPI.Shipped.txt Records net9.0 shipped APIs.
dotnet/src/Microsoft.Agents.AI/PublicAPI/net9.0/PublicAPI.Unshipped.txt Initializes net9.0 unshipped APIs.
dotnet/src/Microsoft.Agents.AI/PublicAPI/net10.0/PublicAPI.Shipped.txt Records net10.0 shipped APIs.
dotnet/src/Microsoft.Agents.AI/PublicAPI/net10.0/PublicAPI.Unshipped.txt Initializes net10.0 unshipped APIs.
dotnet/src/Microsoft.Agents.AI/PublicAPI/net472/PublicAPI.Shipped.txt Records net472 shipped APIs.
dotnet/src/Microsoft.Agents.AI/PublicAPI/net472/PublicAPI.Unshipped.txt Initializes net472 unshipped APIs.
dotnet/src/Microsoft.Agents.AI/PublicAPI/netstandard2.0/PublicAPI.Shipped.txt Records netstandard2.0 shipped APIs.
dotnet/src/Microsoft.Agents.AI/PublicAPI/netstandard2.0/PublicAPI.Unshipped.txt Initializes netstandard2.0 unshipped APIs.
dotnet/src/Microsoft.Agents.AI.Abstractions/PublicAPI/net8.0/PublicAPI.Shipped.txt Records net8.0 shipped APIs.
dotnet/src/Microsoft.Agents.AI.Abstractions/PublicAPI/net8.0/PublicAPI.Unshipped.txt Initializes net8.0 unshipped APIs.
dotnet/src/Microsoft.Agents.AI.Abstractions/PublicAPI/net9.0/PublicAPI.Shipped.txt Records net9.0 shipped APIs.
dotnet/src/Microsoft.Agents.AI.Abstractions/PublicAPI/net9.0/PublicAPI.Unshipped.txt Initializes net9.0 unshipped APIs.
dotnet/src/Microsoft.Agents.AI.Abstractions/PublicAPI/net10.0/PublicAPI.Shipped.txt Records net10.0 shipped APIs.
dotnet/src/Microsoft.Agents.AI.Abstractions/PublicAPI/net10.0/PublicAPI.Unshipped.txt Initializes net10.0 unshipped APIs.
dotnet/src/Microsoft.Agents.AI.Abstractions/PublicAPI/net472/PublicAPI.Shipped.txt Records net472 shipped APIs.
dotnet/src/Microsoft.Agents.AI.Abstractions/PublicAPI/net472/PublicAPI.Unshipped.txt Initializes net472 unshipped APIs.
dotnet/src/Microsoft.Agents.AI.Abstractions/PublicAPI/netstandard2.0/PublicAPI.Shipped.txt Records netstandard2.0 shipped APIs.
dotnet/src/Microsoft.Agents.AI.Abstractions/PublicAPI/netstandard2.0/PublicAPI.Unshipped.txt Initializes netstandard2.0 unshipped APIs.
dotnet/src/Microsoft.Agents.AI.Harness/PublicAPI/net8.0/PublicAPI.Shipped.txt Records net8.0 shipped APIs.
dotnet/src/Microsoft.Agents.AI.Harness/PublicAPI/net8.0/PublicAPI.Unshipped.txt Initializes net8.0 unshipped APIs.
dotnet/src/Microsoft.Agents.AI.Harness/PublicAPI/net9.0/PublicAPI.Shipped.txt Records net9.0 shipped APIs.
dotnet/src/Microsoft.Agents.AI.Harness/PublicAPI/net9.0/PublicAPI.Unshipped.txt Initializes net9.0 unshipped APIs.
dotnet/src/Microsoft.Agents.AI.Harness/PublicAPI/net10.0/PublicAPI.Shipped.txt Records net10.0 shipped APIs.
dotnet/src/Microsoft.Agents.AI.Harness/PublicAPI/net10.0/PublicAPI.Unshipped.txt Initializes net10.0 unshipped APIs.
dotnet/src/Microsoft.Agents.AI.Harness/PublicAPI/net472/PublicAPI.Shipped.txt Records net472 shipped APIs.
dotnet/src/Microsoft.Agents.AI.Harness/PublicAPI/net472/PublicAPI.Unshipped.txt Initializes net472 unshipped APIs.
dotnet/src/Microsoft.Agents.AI.Harness/PublicAPI/netstandard2.0/PublicAPI.Shipped.txt Records netstandard2.0 shipped APIs.
dotnet/src/Microsoft.Agents.AI.Harness/PublicAPI/netstandard2.0/PublicAPI.Unshipped.txt Initializes netstandard2.0 unshipped APIs.
dotnet/src/Microsoft.Agents.AI.OpenAI/PublicAPI/net8.0/PublicAPI.Shipped.txt Records net8.0 shipped APIs.
dotnet/src/Microsoft.Agents.AI.OpenAI/PublicAPI/net8.0/PublicAPI.Unshipped.txt Initializes net8.0 unshipped APIs.
dotnet/src/Microsoft.Agents.AI.OpenAI/PublicAPI/net9.0/PublicAPI.Shipped.txt Records net9.0 shipped APIs.
dotnet/src/Microsoft.Agents.AI.OpenAI/PublicAPI/net9.0/PublicAPI.Unshipped.txt Initializes net9.0 unshipped APIs.
dotnet/src/Microsoft.Agents.AI.OpenAI/PublicAPI/net10.0/PublicAPI.Shipped.txt Records net10.0 shipped APIs.
dotnet/src/Microsoft.Agents.AI.OpenAI/PublicAPI/net10.0/PublicAPI.Unshipped.txt Initializes net10.0 unshipped APIs.
dotnet/src/Microsoft.Agents.AI.OpenAI/PublicAPI/net472/PublicAPI.Shipped.txt Records net472 shipped APIs.
dotnet/src/Microsoft.Agents.AI.OpenAI/PublicAPI/net472/PublicAPI.Unshipped.txt Initializes net472 unshipped APIs.
dotnet/src/Microsoft.Agents.AI.OpenAI/PublicAPI/netstandard2.0/PublicAPI.Shipped.txt Records netstandard2.0 shipped APIs.
dotnet/src/Microsoft.Agents.AI.OpenAI/PublicAPI/netstandard2.0/PublicAPI.Unshipped.txt Initializes netstandard2.0 unshipped APIs.
dotnet/src/Microsoft.Agents.AI.Workflows/PublicAPI/net8.0/PublicAPI.Shipped.txt Records net8.0 shipped APIs.
dotnet/src/Microsoft.Agents.AI.Workflows/PublicAPI/net8.0/PublicAPI.Unshipped.txt Initializes net8.0 unshipped APIs.
dotnet/src/Microsoft.Agents.AI.Workflows/PublicAPI/net9.0/PublicAPI.Shipped.txt Records net9.0 shipped APIs.
dotnet/src/Microsoft.Agents.AI.Workflows/PublicAPI/net9.0/PublicAPI.Unshipped.txt Initializes net9.0 unshipped APIs.
dotnet/src/Microsoft.Agents.AI.Workflows/PublicAPI/net10.0/PublicAPI.Shipped.txt Records net10.0 shipped APIs.
dotnet/src/Microsoft.Agents.AI.Workflows/PublicAPI/net10.0/PublicAPI.Unshipped.txt Initializes net10.0 unshipped APIs.
dotnet/src/Microsoft.Agents.AI.Workflows/PublicAPI/net472/PublicAPI.Shipped.txt Records net472 shipped APIs.
dotnet/src/Microsoft.Agents.AI.Workflows/PublicAPI/net472/PublicAPI.Unshipped.txt Initializes net472 unshipped APIs.
dotnet/src/Microsoft.Agents.AI.Workflows/PublicAPI/netstandard2.0/PublicAPI.Shipped.txt Records netstandard2.0 shipped APIs.
dotnet/src/Microsoft.Agents.AI.Workflows/PublicAPI/netstandard2.0/PublicAPI.Unshipped.txt Initializes netstandard2.0 unshipped APIs.
dotnet/src/Microsoft.Agents.AI.Workflows.Declarative/PublicAPI/net8.0/PublicAPI.Shipped.txt Records net8.0 shipped APIs.
dotnet/src/Microsoft.Agents.AI.Workflows.Declarative/PublicAPI/net8.0/PublicAPI.Unshipped.txt Initializes net8.0 unshipped APIs.
dotnet/src/Microsoft.Agents.AI.Workflows.Declarative/PublicAPI/net9.0/PublicAPI.Shipped.txt Records net9.0 shipped APIs.
dotnet/src/Microsoft.Agents.AI.Workflows.Declarative/PublicAPI/net9.0/PublicAPI.Unshipped.txt Initializes net9.0 unshipped APIs.
dotnet/src/Microsoft.Agents.AI.Workflows.Declarative/PublicAPI/net10.0/PublicAPI.Shipped.txt Records net10.0 shipped APIs.
dotnet/src/Microsoft.Agents.AI.Workflows.Declarative/PublicAPI/net10.0/PublicAPI.Unshipped.txt Initializes net10.0 unshipped APIs.
dotnet/src/Microsoft.Agents.AI.Workflows.Declarative/PublicAPI/net472/PublicAPI.Shipped.txt Records net472 shipped APIs.
dotnet/src/Microsoft.Agents.AI.Workflows.Declarative/PublicAPI/net472/PublicAPI.Unshipped.txt Initializes net472 unshipped APIs.
dotnet/src/Microsoft.Agents.AI.Workflows.Declarative/PublicAPI/netstandard2.0/PublicAPI.Shipped.txt Records netstandard2.0 shipped APIs.
dotnet/src/Microsoft.Agents.AI.Workflows.Declarative/PublicAPI/netstandard2.0/PublicAPI.Unshipped.txt Initializes netstandard2.0 unshipped APIs.
dotnet/src/Microsoft.Agents.AI.Workflows.Declarative.Mcp/PublicAPI/net8.0/PublicAPI.Shipped.txt Records net8.0 shipped APIs.
dotnet/src/Microsoft.Agents.AI.Workflows.Declarative.Mcp/PublicAPI/net8.0/PublicAPI.Unshipped.txt Initializes net8.0 unshipped APIs.
dotnet/src/Microsoft.Agents.AI.Workflows.Declarative.Mcp/PublicAPI/net9.0/PublicAPI.Shipped.txt Records net9.0 shipped APIs.
dotnet/src/Microsoft.Agents.AI.Workflows.Declarative.Mcp/PublicAPI/net9.0/PublicAPI.Unshipped.txt Initializes net9.0 unshipped APIs.
dotnet/src/Microsoft.Agents.AI.Workflows.Declarative.Mcp/PublicAPI/net10.0/PublicAPI.Shipped.txt Records net10.0 shipped APIs.
dotnet/src/Microsoft.Agents.AI.Workflows.Declarative.Mcp/PublicAPI/net10.0/PublicAPI.Unshipped.txt Initializes net10.0 unshipped APIs.
dotnet/src/Microsoft.Agents.AI.Workflows.Declarative.Mcp/PublicAPI/net472/PublicAPI.Shipped.txt Records net472 shipped APIs.
dotnet/src/Microsoft.Agents.AI.Workflows.Declarative.Mcp/PublicAPI/net472/PublicAPI.Unshipped.txt Initializes net472 unshipped APIs.
dotnet/src/Microsoft.Agents.AI.Workflows.Declarative.Mcp/PublicAPI/netstandard2.0/PublicAPI.Shipped.txt Records netstandard2.0 shipped APIs.
dotnet/src/Microsoft.Agents.AI.Workflows.Declarative.Mcp/PublicAPI/netstandard2.0/PublicAPI.Unshipped.txt Initializes netstandard2.0 unshipped APIs.
dotnet/src/Microsoft.Agents.AI.GitHub.Copilot/PublicAPI/net8.0/PublicAPI.Shipped.txt Records net8.0 shipped APIs.
dotnet/src/Microsoft.Agents.AI.GitHub.Copilot/PublicAPI/net8.0/PublicAPI.Unshipped.txt Initializes net8.0 unshipped APIs.
dotnet/src/Microsoft.Agents.AI.GitHub.Copilot/PublicAPI/net9.0/PublicAPI.Shipped.txt Records net9.0 shipped APIs.
dotnet/src/Microsoft.Agents.AI.GitHub.Copilot/PublicAPI/net9.0/PublicAPI.Unshipped.txt Initializes net9.0 unshipped APIs.
dotnet/src/Microsoft.Agents.AI.GitHub.Copilot/PublicAPI/net10.0/PublicAPI.Shipped.txt Records net10.0 shipped APIs.
dotnet/src/Microsoft.Agents.AI.GitHub.Copilot/PublicAPI/net10.0/PublicAPI.Unshipped.txt Initializes net10.0 unshipped APIs.
dotnet/src/Microsoft.Agents.AI.Workflows.Generators/PublicAPI/netstandard2.0/PublicAPI.Shipped.txt Records generator shipped APIs.
dotnet/src/Microsoft.Agents.AI.Workflows.Generators/PublicAPI/netstandard2.0/PublicAPI.Unshipped.txt Initializes generator unshipped APIs.

💡 Add a code-review agent skill for context-aware, tailored reviews. Learn more in the docs.

Comment thread dotnet/eng/scripts/test-unshipped-public-apis.ps1 Outdated
Comment thread .github/workflows/promote-shipped-apis.yml
Comment thread .github/workflows/promote-shipped-apis.yml

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

MAF Automated Review — Iteration 1

Result: Findings reported
Scope: full PR (1 commit(s)): 6e37574ced15
Model: gpt-5.6-sol

Overview

The PR consistently enables nullable-aware public API analysis for released packages, supplies per-TFM baselines, and adds automated validation and promotion scripts with scoped staging and lease-protected pushes. The analyzer is centrally pinned and private, while publish validation rejects populated unshipped files. Two baseline lifecycle gaps remain: the initial shipped snapshots include an API added after the latest release, and missing per-TFM baseline files silently disable both analysis and publish validation.

Reviewed the supplied pull-request change set across correctness, security/reliability, architecture, and failure behavior.
2 verified findings remained after source verification (2 medium) across 2 files. Details are attached to the affected lines below.

Affected areas: dotnet/nuget/nuget-package.props, dotnet/src/Microsoft.Agents.AI/PublicAPI/net8.0/PublicAPI.Shipped.txt

Comment thread dotnet/src/Microsoft.Agents.AI/PublicAPI/net8.0/PublicAPI.Shipped.txt Outdated
Comment thread dotnet/nuget/nuget-package.props Outdated
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Mohammed Sanaullah (sanaullahmohammed) pushed a commit to sanaullahmohammed/NexusOps that referenced this pull request Sep 3, 2026
Updated
[Microsoft.Agents.AI](https://github.com/microsoft/agent-framework) from
1.19.0 to 1.20.0.

<details>
<summary>Release notes</summary>

_Sourced from [Microsoft.Agents.AI's
releases](https://github.com/microsoft/agent-framework/releases)._

## 1.20.0

## What's Changed
* .NET: Bump AWSSDK.Extensions.Bedrock.MEAI from 4.0.6.10 to 4.0.101.8
by @​dependabot[bot] in
microsoft/agent-framework#7829
* .NET: Stabilize Foundry recovery tests by @​rogerbarreto in
microsoft/agent-framework#7817
* .NET: fix: preserve Responses logprobs field by @​he-yufeng in
microsoft/agent-framework#5860
* .NET: Honor cancellation for Foundry-hosted workflow responses by
@​rogerbarreto with @​Copilot in
microsoft/agent-framework#7842
* .NET: Use Responses API for hosted web search in AG-UI by
@​rogerbarreto with @​Copilot in
microsoft/agent-framework#7843
* .NET: Bump Aspire.Hosting from 13.1.0 to 13.5.2 by @​dependabot[bot]
in microsoft/agent-framework#7826
* .NET: Suppress false positive Zip Slip alert by @​SergeyMenshykh in
microsoft/agent-framework#7858
* .NET: added Mem0Sharp integration for in-memory storage in agent
samples. by @​jihadkhawaja in
microsoft/agent-framework#7792
* .NET: Annotate DevUI aggregator static-analysis false positives by
@​SergeyMenshykh in
microsoft/agent-framework#7864
* .NET: Rename CommunityToolkit.VectorData.CosmosNoSql to AzureCosmosDB
by @​adamsitnik in
microsoft/agent-framework#7878
* .NET: chore: upgrades aspnet openapi dependency by @​baywet in
microsoft/agent-framework#7870
* .NET: Simplify A2A function tool samples by @​SergeyMenshykh in
microsoft/agent-framework#7861
* .NET: Bump Azure.AI.AgentServer.Invocations from 1.0.0-beta.5 to
1.0.0-beta.6 by @​dependabot[bot] in
microsoft/agent-framework#7886
* .NET: docs: updates the contributing information for CFS users by
@​baywet in microsoft/agent-framework#7869
* Bump CommunityToolkit.VectorData.InMemory from 1.0.0 to 1.0.1 by
@​dependabot[bot] in
microsoft/agent-framework#7888
* .NET: Remove retired OpenAI Assistants integration tests by
@​rogerbarreto in microsoft/agent-framework#7896
* .NET: Simplify A2A client-server sample by @​SergeyMenshykh in
microsoft/agent-framework#7891
* Bump Dapr.AI.Microsoft.Extensions from 1.18.4 to 1.18.5 by
@​dependabot[bot] in
microsoft/agent-framework#7889
* .NET: docs/workflow fileinput sample dotnet by @​baywet in
microsoft/agent-framework#7913
* .NET: Add timeout for wait-for-first-completion by @​westey-m in
microsoft/agent-framework#7911
* .NET: Fix duplicate Foundry AgentHost port binding by @​rogerbarreto
in microsoft/agent-framework#7932
* .NET: tests: removes dependency on fluent assersion because of
licensing concerns by @​baywet in
microsoft/agent-framework#7938
* .NET: docs(decisions): resolve duplicate ADR sequence numbers (0016,
0021, 0024) by @​jluocsa in
microsoft/agent-framework#6046
* .NET: Bump Azure.Core from 1.61.0 to 1.62.0 by @​dependabot[bot] in
microsoft/agent-framework#7954
* .NET: Improve Cosmos DB Emulator startup reliability by @​TheovanKraay
in microsoft/agent-framework#3932
* .NET: add public API analyzers by @​baywet in
microsoft/agent-framework#7935
* .NET: Update version for 1.20.0 release by @​SergeyMenshykh in
microsoft/agent-framework#7972

## New Contributors
* @​madanmishra1223 made their first contribution in
microsoft/agent-framework#7705
* @​YashvantHange made their first contribution in
microsoft/agent-framework#7850
* @​jihadkhawaja made their first contribution in
microsoft/agent-framework#7792
* @​adamsitnik made their first contribution in
microsoft/agent-framework#7878
* @​baywet made their first contribution in
microsoft/agent-framework#7870
* @​Namraa310806 made their first contribution in
microsoft/agent-framework#7901
* @​Sweetteabittersugar made their first contribution in
microsoft/agent-framework#7903
* @​shoemoney made their first contribution in
microsoft/agent-framework#7837
* @​jluocsa made their first contribution in
microsoft/agent-framework#6046

**Full Changelog**:
microsoft/agent-framework@dotnet-1.19.0...dotnet-1.20.0

Commits viewable in [compare
view](microsoft/agent-framework@dotnet-1.19.0...dotnet-1.20.0).
</details>

Updated
[Microsoft.Agents.AI.OpenAI](https://github.com/microsoft/agent-framework)
from 1.19.0 to 1.20.0.

<details>
<summary>Release notes</summary>

_Sourced from [Microsoft.Agents.AI.OpenAI's
releases](https://github.com/microsoft/agent-framework/releases)._

## 1.20.0

## What's Changed
* .NET: Bump AWSSDK.Extensions.Bedrock.MEAI from 4.0.6.10 to 4.0.101.8
by @​dependabot[bot] in
microsoft/agent-framework#7829
* .NET: Stabilize Foundry recovery tests by @​rogerbarreto in
microsoft/agent-framework#7817
* .NET: fix: preserve Responses logprobs field by @​he-yufeng in
microsoft/agent-framework#5860
* .NET: Honor cancellation for Foundry-hosted workflow responses by
@​rogerbarreto with @​Copilot in
microsoft/agent-framework#7842
* .NET: Use Responses API for hosted web search in AG-UI by
@​rogerbarreto with @​Copilot in
microsoft/agent-framework#7843
* .NET: Bump Aspire.Hosting from 13.1.0 to 13.5.2 by @​dependabot[bot]
in microsoft/agent-framework#7826
* .NET: Suppress false positive Zip Slip alert by @​SergeyMenshykh in
microsoft/agent-framework#7858
* .NET: added Mem0Sharp integration for in-memory storage in agent
samples. by @​jihadkhawaja in
microsoft/agent-framework#7792
* .NET: Annotate DevUI aggregator static-analysis false positives by
@​SergeyMenshykh in
microsoft/agent-framework#7864
* .NET: Rename CommunityToolkit.VectorData.CosmosNoSql to AzureCosmosDB
by @​adamsitnik in
microsoft/agent-framework#7878
* .NET: chore: upgrades aspnet openapi dependency by @​baywet in
microsoft/agent-framework#7870
* .NET: Simplify A2A function tool samples by @​SergeyMenshykh in
microsoft/agent-framework#7861
* .NET: Bump Azure.AI.AgentServer.Invocations from 1.0.0-beta.5 to
1.0.0-beta.6 by @​dependabot[bot] in
microsoft/agent-framework#7886
* .NET: docs: updates the contributing information for CFS users by
@​baywet in microsoft/agent-framework#7869
* Bump CommunityToolkit.VectorData.InMemory from 1.0.0 to 1.0.1 by
@​dependabot[bot] in
microsoft/agent-framework#7888
* .NET: Remove retired OpenAI Assistants integration tests by
@​rogerbarreto in microsoft/agent-framework#7896
* .NET: Simplify A2A client-server sample by @​SergeyMenshykh in
microsoft/agent-framework#7891
* Bump Dapr.AI.Microsoft.Extensions from 1.18.4 to 1.18.5 by
@​dependabot[bot] in
microsoft/agent-framework#7889
* .NET: docs/workflow fileinput sample dotnet by @​baywet in
microsoft/agent-framework#7913
* .NET: Add timeout for wait-for-first-completion by @​westey-m in
microsoft/agent-framework#7911
* .NET: Fix duplicate Foundry AgentHost port binding by @​rogerbarreto
in microsoft/agent-framework#7932
* .NET: tests: removes dependency on fluent assersion because of
licensing concerns by @​baywet in
microsoft/agent-framework#7938
* .NET: docs(decisions): resolve duplicate ADR sequence numbers (0016,
0021, 0024) by @​jluocsa in
microsoft/agent-framework#6046
* .NET: Bump Azure.Core from 1.61.0 to 1.62.0 by @​dependabot[bot] in
microsoft/agent-framework#7954
* .NET: Improve Cosmos DB Emulator startup reliability by @​TheovanKraay
in microsoft/agent-framework#3932
* .NET: add public API analyzers by @​baywet in
microsoft/agent-framework#7935
* .NET: Update version for 1.20.0 release by @​SergeyMenshykh in
microsoft/agent-framework#7972

## New Contributors
* @​madanmishra1223 made their first contribution in
microsoft/agent-framework#7705
* @​YashvantHange made their first contribution in
microsoft/agent-framework#7850
* @​jihadkhawaja made their first contribution in
microsoft/agent-framework#7792
* @​adamsitnik made their first contribution in
microsoft/agent-framework#7878
* @​baywet made their first contribution in
microsoft/agent-framework#7870
* @​Namraa310806 made their first contribution in
microsoft/agent-framework#7901
* @​Sweetteabittersugar made their first contribution in
microsoft/agent-framework#7903
* @​shoemoney made their first contribution in
microsoft/agent-framework#7837
* @​jluocsa made their first contribution in
microsoft/agent-framework#6046

**Full Changelog**:
microsoft/agent-framework@dotnet-1.19.0...dotnet-1.20.0

Commits viewable in [compare
view](microsoft/agent-framework@dotnet-1.19.0...dotnet-1.20.0).
</details>

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Yashvant Mahadev Hange (YashvantHange) added a commit to YashvantHange/agent-framework that referenced this pull request Sep 4, 2026
The public API analyzers added in microsoft#7935 require every public member of a
released package to be listed in that package's PublicAPI baseline for each
target framework. DefaultSourceName was added before those analyzers landed,
so this branch built clean on its own but failed RS0016 once merged with main.

Add the entry to all five Microsoft.Agents.AI baselines. Unshipped rather than
Shipped, since the member has not been released yet; the promotion workflow
moves it across after a release.
Yashvant Mahadev Hange (YashvantHange) added a commit to YashvantHange/agent-framework that referenced this pull request Sep 4, 2026
Three things main changed under this branch, none of which conflicted:

Declare ICheckpointRestorationObserver in the Workflows public API baseline
for all five target frameworks. microsoft#7935 added the public API analyzers, so a new
public type now fails the build with RS0016 unless it is listed. Only the
interface needs an entry: the manager members are on internal types or are
explicit implementations of an internal interface, and Foundry.Hosting is not
a released package.

Rewrite the restore-observer tests in xUnit. microsoft#7938 removed FluentAssertions
from the tree over licensing, and this file was the last one still importing
it, so it no longer compiled.

Acquire the Foundry state store inside the prune try block. Reaching for the
binding outside it meant a store the binding could not hand over threw past
the catch that reports a refused prune, into the runner's blanket suppression
of everything this observer throws. That contradicted both the method's own
docs and the interface contract that an implementation reports its failures,
and it was a silence this branch introduced: the same failure used to surface
loudly from RetrieveCheckpointAsync.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Usage: [Issues, PRs], Target: documentation in the code base and learn docs .NET Usage: [Issues, PRs], Target: .Net workflows Usage: [Issues, PRs], Target: Workflows

Projects

None yet

Development

Successfully merging this pull request may close these issues.

.NET: Set up PublicAPI analyzers and shipped API promotion

5 participants