Skip to content

Commit c800a6a

Browse files
committed
Merge origin/main into fix/server-lifetime-task-runners
Signed-off-by: King Star <mcxin.y@gmail.com>
2 parents bde2e3e + c0d3d65 commit c800a6a

29 files changed

Lines changed: 248 additions & 72 deletions

.github/skills/breaking-changes/references/classification.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ Before dismissing a potential break, review the PR description and all PR commen
122122
Every dismissed potential break must be reported to the user with enough detail for them to verify the conclusion. The audit must:
123123

124124
1. **Identify what would normally be breaking and why** (e.g., "CP0005 — adding abstract member `Completion` to abstract class `McpClient`")
125-
2. **Explain the specific reason for dismissal** (e.g., "Bug fix correcting incorrect behavior per the MCP spec" or "`McpClient`'s only accessible constructor is `protected` and marked `[Experimental(MCPEXP002)]` with message 'Subclassing McpClient and McpServer is experimental and subject to change.'")
125+
2. **Explain the specific reason for dismissal** (e.g., "Bug fix correcting incorrect behavior per the MCP spec" or "`McpClient`'s only accessible constructor is `protected` and marked `[Experimental(MCPEXP002)]` with message 'This C# SDK extensibility API is experimental and subject to change.'")
126126
3. **Cite any supporting discussion** from the PR description or comments (e.g., "Reviewers discussed the addition and did not flag it as a breaking concern; compatibility suppressions were added for CP0005")
127127
4. **Conclude with the dismissal and its category** (e.g., "Dismissed — bug fix correcting spec-non-compliant behavior" or "Dismissed — exclusively gated by `[Experimental]` API. Do not apply the `breaking-change` label.")
128128

.github/workflows/ci-build-test.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,19 +38,19 @@ jobs:
3838

3939
steps:
4040
- name: 📥 Clone the repo
41-
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
41+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
4242
with:
4343
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis
4444

4545
- name: 🔧 Set up .NET
46-
uses: actions/setup-dotnet@c2fa09f4bde5ebb9d1777cf28262a3eb3db3ced7 # v5.2.0
46+
uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0
4747
with:
4848
dotnet-version: |
4949
10.0.x
5050
9.0.x
5151
5252
- name: 🔧 Set up Node.js
53-
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
53+
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
5454
with:
5555
node-version: '22'
5656

.github/workflows/ci-code-coverage.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@ jobs:
1010
publish-coverage:
1111
runs-on: ubuntu-latest
1212
steps:
13-
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
13+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
1414
- name: Setup .NET
15-
uses: actions/setup-dotnet@c2fa09f4bde5ebb9d1777cf28262a3eb3db3ced7 # v5.2.0
15+
uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0
1616
with:
1717
dotnet-version: |
1818
10.0.x
@@ -24,7 +24,7 @@ jobs:
2424
pattern: testresults-*
2525

2626
- name: Combine coverage reports
27-
uses: danielpalme/ReportGenerator-GitHub-Action@7ae927204961589fcb0b0be245c51fbbc87cbca2 # 5.5.5
27+
uses: danielpalme/ReportGenerator-GitHub-Action@049f7ec958c672fd31d5cc1cb01622dc8d2e23ab # 5.5.10
2828
with:
2929
reports: "**/*.cobertura.xml"
3030
targetdir: "${{ github.workspace }}/report"

.github/workflows/codeql.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ jobs:
4747
# your codebase is analyzed, see https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/codeql-code-scanning-for-compiled-languages
4848
steps:
4949
- name: Checkout repository
50-
uses: actions/checkout@v6
50+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
5151

5252
# Add any setup steps before running the `github/codeql-action/init` action.
5353
# This includes steps like installing compilers or runtimes (`actions/setup-node`

.github/workflows/copilot-setup-steps.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,10 @@ jobs:
1111
contents: read
1212

1313
steps:
14-
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
14+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
1515

1616
- name: Install .NET SDK
17-
uses: actions/setup-dotnet@v5.2.0
17+
uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0
1818
with:
1919
global-json-file: global.json
2020

.github/workflows/docs.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ jobs:
4343
runs-on: ubuntu-latest
4444
steps:
4545
- name: Checkout docs orchestration
46-
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
46+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
4747
with:
4848
# A release event otherwise checks out the released tag. Keep the
4949
# orchestration scripts and picker assets current with main.
@@ -52,7 +52,7 @@ jobs:
5252
fetch-depth: 0
5353

5454
- name: .NET Setup
55-
uses: actions/setup-dotnet@c2fa09f4bde5ebb9d1777cf28262a3eb3db3ced7 # v5.2.0
55+
uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0
5656
with:
5757
dotnet-version: |
5858
10.0.x

.github/workflows/markdown-link-check.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ jobs:
1616
runs-on: ubuntu-latest
1717
steps:
1818
- name: Checkout
19-
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
19+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
2020

2121
- name: Markup Link Checker (mlc)
2222
uses: becheran/mlc@7ec24825cefe0c9c8c6bac48430e1f69e3ec356e # v1.2.0

.github/workflows/release.yml

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -56,12 +56,12 @@ jobs:
5656

5757
steps:
5858
- name: Clone the repo
59-
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
59+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
6060
with:
6161
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis
6262

6363
- name: Set up .NET
64-
uses: actions/setup-dotnet@c2fa09f4bde5ebb9d1777cf28262a3eb3db3ced7 # v5.2.0
64+
uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0
6565
with:
6666
dotnet-version: |
6767
10.0.x
@@ -84,10 +84,10 @@ jobs:
8484
version_suffix_args: ${{ github.event_name != 'release' && format('--version-suffix "{0}"', inputs.version_suffix_override || format('ci.{0}', github.run_number)) || '' }}
8585

8686
steps:
87-
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
87+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
8888

8989
- name: Setup .NET
90-
uses: actions/setup-dotnet@c2fa09f4bde5ebb9d1777cf28262a3eb3db3ced7 # v5.2.0
90+
uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0
9191
with:
9292
dotnet-version: |
9393
10.0.x
@@ -114,10 +114,10 @@ jobs:
114114
packages: write
115115

116116
steps:
117-
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
117+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
118118

119119
- name: Setup .NET
120-
uses: actions/setup-dotnet@c2fa09f4bde5ebb9d1777cf28262a3eb3db3ced7 # v5.2.0
120+
uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0
121121
with:
122122
dotnet-version: 10.0.x
123123

@@ -149,7 +149,7 @@ jobs:
149149
packages: write
150150

151151
steps:
152-
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
152+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
153153

154154
- name: Download build artifacts
155155
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
@@ -169,10 +169,10 @@ jobs:
169169
permissions: { }
170170

171171
steps:
172-
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
172+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
173173

174174
- name: Setup .NET
175-
uses: actions/setup-dotnet@c2fa09f4bde5ebb9d1777cf28262a3eb3db3ced7 # v5.2.0
175+
uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0
176176
with:
177177
dotnet-version: 10.0.x
178178

Directory.Packages.props

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,8 @@
6363

6464
<!-- Testing dependencies -->
6565
<ItemGroup>
66-
<PackageVersion Include="Anthropic" Version="12.17.0" />
67-
<PackageVersion Include="coverlet.collector" Version="10.0.0">
66+
<PackageVersion Include="Anthropic" Version="12.39.0" />
67+
<PackageVersion Include="coverlet.collector" Version="10.0.1">
6868
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
6969
<PrivateAssets>all</PrivateAssets>
7070
</PackageVersion>
@@ -75,7 +75,7 @@
7575
<PackageVersion Include="Microsoft.Extensions.Logging.Console" Version="$(System10Version)" />
7676
<PackageVersion Include="Microsoft.Extensions.Options" Version="$(System10Version)" />
7777
<PackageVersion Include="Microsoft.Extensions.TimeProvider.Testing" Version="10.1.0" />
78-
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="18.5.1" />
78+
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="18.8.1" />
7979
<PackageVersion Include="Moq" Version="4.20.72" />
8080
<PackageVersion Include="OpenTelemetry" Version="1.15.3" />
8181
<PackageVersion Include="OpenTelemetry.Exporter.InMemory" Version="1.15.3" />
@@ -88,7 +88,7 @@
8888
<PackageVersion Include="Serilog.Sinks.Console" Version="6.1.1" />
8989
<PackageVersion Include="Serilog.Sinks.Debug" Version="3.0.0" />
9090
<PackageVersion Include="Serilog.Sinks.File" Version="7.0.0" />
91-
<PackageVersion Include="Serilog" Version="4.3.1" />
91+
<PackageVersion Include="Serilog" Version="4.4.0" />
9292
<PackageVersion Include="System.Linq.AsyncEnumerable" Version="$(System10Version)" />
9393
<PackageVersion Include="xunit.v3" Version="3.2.2" />
9494
<PackageVersion Include="xunit.runner.visualstudio" Version="3.1.5" />

docs/list-of-diagnostics.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ If you use experimental APIs, you will get one of the diagnostics shown below. T
2828
| Diagnostic ID | Description |
2929
| :------------ | :---------- |
3030
| `MCPEXP001` | Experimental APIs tied to MCP specification features. Reuse this ID for newly introduced experimental spec features, and add feature-specific messages/URLs in `Experimentals`. |
31-
| `MCPEXP002` | Experimental SDK APIs unrelated to the MCP specification itself, including subclassing `McpClient`/`McpServer` (see [#1363](https://github.com/modelcontextprotocol/csharp-sdk/pull/1363)) and `RunSessionHandler`, which may be removed or change signatures in a future release (consider using `ConfigureSessionOptions` instead). |
31+
| `MCPEXP002` | Experimental SDK extensibility APIs used to implement features in standalone packages without requiring Core to understand those features. For example, the Tasks package uses these APIs to extend the SDK while keeping the Tasks concept out of Core. This includes `McpClient`/`McpServer` subclassing, custom request handlers, alternate handlers and filters, outgoing request interception, and `RunSessionHandler`. These APIs remain experimental until additional extensibility scenarios validate the design. |
3232
| `MCPEXP003` | Experimental MCP Apps extension APIs. MCP Apps is the first official MCP extension (`io.modelcontextprotocol/ui`), enabling servers to deliver interactive UIs inside AI clients (see [MCP Apps specification](https://github.com/modelcontextprotocol/ext-apps/blob/main/specification/2026-01-26/apps.mdx)). |
3333

3434
## Obsolete APIs

0 commit comments

Comments
 (0)