Repository navigation
Release v2.4.0 - #2001
Merged
Merged
Release v2.4.0#2001
Conversation
Co-authored-by: Tarek Mahmoud Sayed <[email protected]>
Co-authored-by: Empiree <[email protected]> Co-authored-by: Tarek Mahmoud Sayed <[email protected]> Co-authored-by: Tarek Mahmoud Sayed <[email protected]>
Co-authored-by: Peder <[email protected]> Co-authored-by: Peder Holdgaard Pedersen <[email protected]>
Signed-off-by: FenjuFu <[email protected]> Signed-off-by: FenjuFu <[email protected]> Co-authored-by: Tarek Mahmoud Sayed <[email protected]> Co-authored-by: Tarek Mahmoud Sayed <[email protected]>
…ror body (#1849) Co-authored-by: ump45nose <[email protected]> Co-authored-by: Stephen Halter <[email protected]>
Co-authored-by: Tarek Mahmoud Sayed <[email protected]> Co-authored-by: Tarek Mahmoud Sayed <[email protected]>
…directory (#1850) Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
) Co-authored-by: Copilot App <[email protected]> Co-authored-by: Tarek Mahmoud Sayed <[email protected]>
…livering messages (#1933)
…nk (#1975) Co-authored-by: jeffhandley <[email protected]> Co-authored-by: Copilot <[email protected]>
…1972) Co-authored-by: Copilot App <[email protected]>
#1968) Co-authored-by: Copilot App <[email protected]> Co-authored-by: Tarek Mahmoud Sayed <[email protected]>
Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Jeff Handley <[email protected]>
Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Jeff Handley <[email protected]>
Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Jeff Handley <[email protected]>
Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Jeff Handley <[email protected]>
Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Jeff Handley <[email protected]>
Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Jeff Handley <[email protected]>
Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Jeff Handley <[email protected]>
Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Jeff Handley <[email protected]>
* Require stable identities for authenticated HTTP sessions Fail closed when authenticated stateful Streamable HTTP or legacy SSE users lack a non-empty NameIdentifier, sub, or UPN claim. Consider all authenticated identities, ignore unauthenticated ownership claims, and preserve claim precedence and type/value/issuer binding. Carry the captured identity through session creation and migration, forward the original authenticated principal, and document IClaimsTransformation for custom identifiers. Cover anonymous-owned session protection, secondary identities, ownership isolation, principal propagation, and migration snapshots with SDK regressions. Squashes the canonical advisory implementation through 44efea55326e791983fa87901f5ad3356d671e0c plus reviewed claim-lookup and test cleanup. Original source fix: bd3b432b3b457da6073b66e5d375eba983aa0bed. Co-authored-by: Copilot App <[email protected]> * Simplify the claims transformation documentation example Show the agreed single-identity custom-user-id mapping with a NameIdentifier idempotency guard and preserved claim issuer. Keep the authentication setup guidance and runtime identity requirements unchanged. Co-authored-by: Copilot App <[email protected]> * Wait for server readiness in graceful stdio shutdown test Complete the MCP initialization handshake before disposing the transport so the shutdown budget excludes server startup. Use TestConstants.DefaultTimeout while retaining the zero-exit assertion. Co-authored-by: Copilot <[email protected]> Copilot-Session: 5e585e8e-901d-4e18-8f75-5425ebef4249 --------- Co-authored-by: Copilot App <[email protected]> Co-authored-by: Jeff Handley <[email protected]> Copilot-Session: 5e585e8e-901d-4e18-8f75-5425ebef4249
* Require stable identities for authenticated HTTP sessions Fail closed when authenticated stateful Streamable HTTP or legacy SSE users lack a non-empty NameIdentifier, sub, or UPN claim. Consider all authenticated identities, ignore unauthenticated ownership claims, and preserve claim precedence and type/value/issuer binding. Carry the captured identity through session creation and migration, forward the original authenticated principal, and document IClaimsTransformation for custom identifiers. Cover anonymous-owned session protection, secondary identities, ownership isolation, principal propagation, and migration snapshots with SDK regressions. Squashes the canonical advisory implementation through 44efea55326e791983fa87901f5ad3356d671e0c plus reviewed claim-lookup and test cleanup. Original source fix: bd3b432b3b457da6073b66e5d375eba983aa0bed. Co-authored-by: Copilot App <[email protected]> * Simplify the claims transformation documentation example Show the agreed single-identity custom-user-id mapping with a NameIdentifier idempotency guard and preserved claim issuer. Keep the authentication setup guidance and runtime identity requirements unchanged. Co-authored-by: Copilot App <[email protected]> * Wait for server readiness in graceful stdio shutdown test Complete the MCP initialization handshake before disposing the transport so the shutdown budget excludes server startup. Use TestConstants.DefaultTimeout while retaining the zero-exit assertion. Co-authored-by: Copilot <[email protected]> Copilot-Session: 5e585e8e-901d-4e18-8f75-5425ebef4249 --------- Co-authored-by: Copilot App <[email protected]> Co-authored-by: Jeff Handley <[email protected]> Copilot-Session: 5e585e8e-901d-4e18-8f75-5425ebef4249
Co-authored-by: jeffhandley <[email protected]> Co-authored-by: Copilot <[email protected]> Copilot-Session: 31750ec3-6eef-4c89-bf64-2bd317a692d9
Co-authored-by: Tarek Mahmoud Sayed <[email protected]>
Resolved OAuth PKCE expectation conflicts using main's stricter validation behavior. Co-authored-by: Copilot App <[email protected]>
Co-authored-by: Copilot App <[email protected]>
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.
Release v2.4.0
MCP Skills support is introduced with experimental APIs in the new ModelContextProtocol.Extensions.Skills package. The release also strengthens OAuth handling and improves transport/session reliability/discovery. MCP Apps now match protocol property names case-sensitively.
What's Changed
Documentation Updates
Test Improvements
Repository Infrastructure Updates
Acknowledgements
DelegatingMcpServerTooladvertises a non-objectoutputSchemato pre-2026-07-28 clients (regression from 1.4.1) #1916 (resolved by Fix legacy output schemas for delegating server tools #1928)Full Changelog: v2.3.1...v2.4.0
Note
Drafted with GitHub Copilot assistance.
API Compatibility Report
Release clean and pack passed. Core's four generated suppressions match the tracked entries exactly; no suppression files were changed. Skills clears its package validation baseline and was not shipped in v2.3.1, so it has no prior-release ApiCompat baseline.
API Diff Report
Compared with v2.3.1:
Note
This pull request description was prepared with GitHub Copilot assistance.