From 801b9b3370a052f11b89031f71f672ab63661e9b Mon Sep 17 00:00:00 2001 From: Copilot <198982749+Copilot@users.noreply.github.com> Date: Thu, 14 May 2026 15:28:03 -0700 Subject: [PATCH 1/2] Add rate-limiting RetryAfter fixes to What's New for .NET 11 Preview 4 (#37151) * Initial plan * Add rate-limiting fixes include file for preview4 Agent-Logs-Url: https://github.com/dotnet/AspNetCore.Docs/sessions/ff6f5db4-b8a9-4897-bae7-31d2ce227450 Co-authored-by: wadepickett <10985336+wadepickett@users.noreply.github.com> * Add code sample from source release notes to rate-limiting include file Agent-Logs-Url: https://github.com/dotnet/AspNetCore.Docs/sessions/ec595e41-7255-4739-a28b-d3514c2caf95 Co-authored-by: wadepickett <10985336+wadepickett@users.noreply.github.com> * Apply suggestion from @wadepickett Removing cross-link until is avaialble in API ref build. * Update rate-limiting-retry-after-preview4.md Removing code snippet per review suggestion. It is not relevant to the ASP.NET Core rate limiting middleware scenario. * Rename include file to rate-limiting-retry-after-preview-4.md and update reference Agent-Logs-Url: https://github.com/dotnet/AspNetCore.Docs/sessions/4542cc0b-fadf-40e6-8735-4156936fe239 Co-authored-by: wadepickett <10985336+wadepickett@users.noreply.github.com> * Apply suggestion from @danroth27 Co-authored-by: Daniel Roth * Apply suggestion from @wadepickett * Apply suggestion from @wadepickett Fix per gewarren review suggestion. --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: wadepickett <10985336+wadepickett@users.noreply.github.com> Co-authored-by: Wade Pickett Co-authored-by: Daniel Roth --- aspnetcore/release-notes/aspnetcore-11.md | 4 +++- .../includes/rate-limiting-retry-after-preview-4.md | 9 +++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) create mode 100644 aspnetcore/release-notes/aspnetcore-11/includes/rate-limiting-retry-after-preview-4.md diff --git a/aspnetcore/release-notes/aspnetcore-11.md b/aspnetcore/release-notes/aspnetcore-11.md index bfff8f1bedfd..671698e45f7b 100644 --- a/aspnetcore/release-notes/aspnetcore-11.md +++ b/aspnetcore/release-notes/aspnetcore-11.md @@ -5,7 +5,7 @@ author: wadepickett description: Learn about the new features in ASP.NET Core in .NET 11. ms.author: wpickett ms.custom: mvc -ms.date: 05/13/2026 +ms.date: 05/14/2026 uid: aspnetcore-11 --- # What's new in ASP.NET Core in .NET 11 @@ -80,6 +80,8 @@ This section describes miscellaneous new features in .NET 11. [!INCLUDE[](~/release-notes/aspnetcore-11/includes/runtime-async-shared-framework-preview4.md)] +[!INCLUDE[](~/release-notes/aspnetcore-11/includes/rate-limiting-retry-after-preview-4.md)] + ## Breaking changes Use the articles in [Breaking changes in .NET](/dotnet/core/compatibility/breaking-changes) to find breaking changes that might apply when upgrading an app to a newer version of .NET. diff --git a/aspnetcore/release-notes/aspnetcore-11/includes/rate-limiting-retry-after-preview-4.md b/aspnetcore/release-notes/aspnetcore-11/includes/rate-limiting-retry-after-preview-4.md new file mode 100644 index 000000000000..df94af6351df --- /dev/null +++ b/aspnetcore/release-notes/aspnetcore-11/includes/rate-limiting-retry-after-preview-4.md @@ -0,0 +1,9 @@ +### Rate-limiting middleware returns accurate `Retry-After` headers + +The now reports a metadata value that accurately reflects the next window boundary. Apps that propagate this metadata to the `Retry-After` response header in their callback now produce correct retry intervals automatically, with no code changes required. + +Additional fixes in `System.Threading.RateLimiting` resolve an issue where mishandled partial token refills during zero-permit acquisition, and improve the chained rate limiter returned by to correctly forward idle-duration and replenishment behavior from its inner limiters. + +For an overview of the rate limiting middleware, see [Rate limiting middleware in ASP.NET Core](/aspnet/core/performance/rate-limit). + +Thank you [@asbjornvad](https://github.com/asbjornvad) and [@apoorvdarshan](https://github.com/apoorvdarshan) for these contributions! From 6d0c7556b44d0a4e2bf66b0fc21ca9619b0440bc Mon Sep 17 00:00:00 2001 From: Copilot <198982749+Copilot@users.noreply.github.com> Date: Thu, 14 May 2026 18:02:30 -0700 Subject: [PATCH 2/2] Update SKILL.md: file naming convention and PR description requirements (#37153) * Initial plan * Update SKILL.md: file naming convention and PR description requirements Agent-Logs-Url: https://github.com/dotnet/AspNetCore.Docs/sessions/b5cfc3ed-13cb-4124-a283-42ac196468f7 Co-authored-by: wadepickett <10985336+wadepickett@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: wadepickett <10985336+wadepickett@users.noreply.github.com> --- .../whats-new-include-content-rules/SKILL.md | 32 ++++++++++++++----- 1 file changed, 24 insertions(+), 8 deletions(-) diff --git a/.github/skills/whats-new-include-content-rules/SKILL.md b/.github/skills/whats-new-include-content-rules/SKILL.md index d3a41c78cf9e..605401dfc52f 100644 --- a/.github/skills/whats-new-include-content-rules/SKILL.md +++ b/.github/skills/whats-new-include-content-rules/SKILL.md @@ -23,22 +23,25 @@ All include files go in: ### File naming convention -* Lowercase, hyphenated, descriptive names. -* Append the preview number suffix to each filename: `-preview{N}` (where `{N}` is the preview number, e.g., `-preview2`). +* Lowercase, hyphenated, descriptive names using whole words only. +* Each word and number must be separated by a hyphen. Do not combine words or abbreviate them, and do not combine numbers with words. + - **Wrong**: `infer-pk-display-name-preview2.md` (`pk` is an abbreviation, and `preview2` combines a word with a number) + - **Correct**: `infer-passkey-display-name-preview-2.md` (whole words, number separated by hyphen) +* Append the preview number suffix to each filename: `-preview-{N}` (where `{N}` is the preview number, e.g., `-preview-2`). **CRITICAL**: Every new file MUST include the preview suffix. This was a mistake in the initial automation — a file was created without the suffix and had to be corrected. * Examples: - - `native-otel-tracing-preview2.md` - - `openapi-3-2-support-preview2.md` - - `infer-passkey-display-name-preview2.md` - - `performance-improvements-preview2.md` + - `native-otel-tracing-preview-2.md` + - `openapi-3-2-support-preview-2.md` + - `infer-passkey-display-name-preview-2.md` + - `performance-improvements-preview-2.md` ### One file per feature * Create one include file per feature or section. * **Exception — Performance**: Combine all performance improvements into a - single `performance-improvements-preview{N}.md` file. + single `performance-improvements-preview-{N}.md` file. ### Exclusions — do NOT create include files for @@ -133,7 +136,8 @@ All include files go in: Before completing, verify: -- [ ] Every new include filename ends with `-preview{N}`. +- [ ] Every new include filename ends with `-preview-{N}`. +- [ ] Every word and number in filenames is separated by a hyphen (no abbreviations, no combined word-numbers). - [ ] No Blazor content was included. - [ ] No bug-fix-only content was included. - [ ] All `` IDs are verified (or explicitly flagged as needing verification). @@ -148,6 +152,18 @@ Before completing, verify: --- +## PR description requirements + +* The very first line of the PR description must be `Fixes dotnet/AspNetCore.Docs#{ISSUE NUMBER}` (where `{ISSUE NUMBER}` is the number of the issue this PR addresses), followed by a blank line before any other content. +* Example: + ``` + Fixes dotnet/AspNetCore.Docs#10000 + + Summary of changes... + ``` + +--- + ## Example: Correctly formatted include file ```markdown