Repository navigation
Scan for line breaks in a single pass in SpanLineEnumerator - #682
Merged
Merged
Conversation
This was referenced Oct 12, 2026
This was referenced Oct 18, 2026
This was referenced Oct 26, 2026
This was referenced Nov 3, 2026
This was referenced Nov 10, 2026
JacekSmi
added a commit
to JacekSmi/PolishOpenData
that referenced
this pull request
Nov 11, 2026
Pinned [Microsoft.Bcl.AsyncInterfaces](https://github.com/dotnet/dotnet) at 10.0.14. <details> <summary>Release notes</summary> _Sourced from [Microsoft.Bcl.AsyncInterfaces's releases](https://github.com/dotnet/dotnet/releases)._ ## 10.0.0-preview.6.25358.103 You can build .NET 10.0 Preview 6 from the repository by cloning the release tag `v10.0.0-preview.6.25358.103` and following the build instructions in the [main README.md](https://github.com/dotnet/dotnet/blob/v10.0.0-preview.6.25358.103/README.md#building). Alternatively, you can build from the sources attached to this release directly. More information on this process can be found in the [dotnet/dotnet repository](https://github.com/dotnet/dotnet/blob/v10.0.0-preview.6.25358.103/README.md#building-from-released-sources). Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023 ## 10.0.0-preview.5.25277.114 You can build .NET 10.0 Preview 5 from the repository by cloning the release tag `v10.0.0-preview.5.25277.114` and following the build instructions in the [main README.md](https://github.com/dotnet/dotnet/blob/v10.0.0-preview.5.25277.114/README.md#building). Alternatively, you can build from the sources attached to this release directly. More information on this process can be found in the [dotnet/dotnet repository](https://github.com/dotnet/dotnet/blob/v10.0.0-preview.5.25277.114/README.md#building-from-released-sources). Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023 ## 10.0.0-preview.4.25258.110 You can build .NET 10.0 Preview 4 from the repository by cloning the release tag `v10.0.0-preview.4.25258.110` and following the build instructions in the [main README.md](https://github.com/dotnet/dotnet/blob/v10.0.0-preview.4.25258.110/README.md#building). Alternatively, you can build from the sources attached to this release directly. More information on this process can be found in the [dotnet/dotnet repository](https://github.com/dotnet/dotnet/blob/v10.0.0-preview.4.25258.110/README.md#building-from-released-sources). Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023 ## 10.0.0-preview.3.25171.5 You can build .NET 10.0 Preview 3 from the repository by cloning the release tag `v10.0.0-preview.3.25171.5` and following the build instructions in the [main README.md](https://github.com/dotnet/dotnet/blob/v10.0.0-preview.3.25171.5/README.md#building). Alternatively, you can build from the sources attached to this release directly. More information on this process can be found in the [dotnet/dotnet repository](https://github.com/dotnet/dotnet/blob/v10.0.0-preview.3.25171.5/README.md#building-from-released-sources). Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023 ## 10.0.0-preview.2.25163.2 You can build .NET 10.0 Preview 2 from the repository by cloning the release tag `v10.0.0-preview.2.25163.2` and following the build instructions in the [main README.md](https://github.com/dotnet/dotnet/blob/v10.0.0-preview.2.25163.2/README.md#building). Alternatively, you can build from the sources attached to this release directly. More information on this process can be found in the [dotnet/dotnet repository](https://github.com/dotnet/dotnet/blob/v10.0.0-preview.2.25163.2/README.md#building-from-released-sources). Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023 ## 10.0.0-preview.1.25080.5 You can build .NET 10.0 Preview 1 from the repository by cloning the release tag `v10.0.0-preview.1.25080.5` and following the build instructions in the [main README.md](https://github.com/dotnet/dotnet/blob/v10.0.0-preview.1.25080.5/README.md#building). Alternatively, you can build from the sources attached to this release directly. More information on this process can be found in the [dotnet/dotnet repository](https://github.com/dotnet/dotnet/blob/v10.0.0-preview.1.25080.5/README.md#building-from-released-sources). Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023 ## 9.0.123 <!-- This file is a template for a GitHub release notes post. --> <!-- The line prefixed by 'Title:' will be submitted as the title of the release notes, and the rest of the file will be submitted as the body. --> You can build .NET 9.0 from the repository by cloning the release tag `v9.0.123` and following the build instructions in the [main README.md](https://github.com/dotnet/dotnet/blob/v9.0.123/README.md#building). Alternatively, you can build from the sources attached to this release directly. More information on this process can be found in the [dotnet/dotnet repository](https://github.com/dotnet/dotnet/blob/v9.0.123/README.md#building-from-released-sources). Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023 ## 9.0.122 <!-- This file is a template for a GitHub release notes post. --> <!-- The line prefixed by 'Title:' will be submitted as the title of the release notes, and the rest of the file will be submitted as the body. --> You can build .NET 9.0 from the repository by cloning the release tag `v9.0.122` and following the build instructions in the [main README.md](https://github.com/dotnet/dotnet/blob/v9.0.122/README.md#building). Alternatively, you can build from the sources attached to this release directly. More information on this process can be found in the [dotnet/dotnet repository](https://github.com/dotnet/dotnet/blob/v9.0.122/README.md#building-from-released-sources). Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023 ## 9.0.121 <!-- This file is a template for a GitHub release notes post. --> <!-- The line prefixed by 'Title:' will be submitted as the title of the release notes, and the rest of the file will be submitted as the body. --> You can build .NET 9.0 from the repository by cloning the release tag `v9.0.121` and following the build instructions in the [main README.md](https://github.com/dotnet/dotnet/blob/v9.0.121/README.md#building). Alternatively, you can build from the sources attached to this release directly. More information on this process can be found in the [dotnet/dotnet repository](https://github.com/dotnet/dotnet/blob/v9.0.121/README.md#building-from-released-sources). Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023 ## 9.0.120 <!-- This file is a template for a GitHub release notes post. --> <!-- The line prefixed by 'Title:' will be submitted as the title of the release notes, and the rest of the file will be submitted as the body. --> You can build .NET 9.0 from the repository by cloning the release tag `v9.0.120` and following the build instructions in the [main README.md](https://github.com/dotnet/dotnet/blob/v9.0.120/README.md#building). Alternatively, you can build from the sources attached to this release directly. More information on this process can be found in the [dotnet/dotnet repository](https://github.com/dotnet/dotnet/blob/v9.0.120/README.md#building-from-released-sources). Attached is a PGP signature for the GitHub generated tarball. You can find the public key at https://dot.net/release-key-2023 ## 9.0.119 <!-- This file is a template for a GitHub release notes post. --> <!-- The line prefixed by 'Title:' will be submitted as the title of the release notes, and the rest of the file will be submitted as the body. --> You can build .NET 9.0 from the repository by cloning the release tag `v9.0.119` and following the build instructions in the [main README.md](https://github.com/dotnet/dotnet/blob/v9.0.119/README.md#building). Alternatively, you can build from the sources attached to this release directly. More information on this process can be found in the [dotnet/dotnet repository](https://github.com/dotnet/dotnet/blob/v9.0.119/README.md#building-from-released-sources). Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023 ## 9.0.118 <!-- This file is a template for a GitHub release notes post. --> <!-- The line prefixed by 'Title:' will be submitted as the title of the release notes, and the rest of the file will be submitted as the body. --> You can build .NET 9.0 from the repository by cloning the release tag `v9.0.118` and following the build instructions in the [main README.md](https://github.com/dotnet/dotnet/blob/v9.0.118/README.md#building). Alternatively, you can build from the sources attached to this release directly. More information on this process can be found in the [dotnet/dotnet repository](https://github.com/dotnet/dotnet/blob/v9.0.118/README.md#building-from-released-sources). Attached is a PGP signature for the GitHub generated tarball. You can find the public key at https://dot.net/release-key-2023 ## 9.0.117 <!-- This file is a template for a GitHub release notes post. --> <!-- The line prefixed by 'Title:' will be submitted as the title of the release notes, and the rest of the file will be submitted as the body. --> You can build .NET 9.0 from the repository by cloning the release tag `v9.0.117` and following the build instructions in the [main README.md](https://github.com/dotnet/dotnet/blob/v9.0.117/README.md#building). Alternatively, you can build from the sources attached to this release directly. More information on this process can be found in the [dotnet/dotnet repository](https://github.com/dotnet/dotnet/blob/v9.0.117/README.md#building-from-released-sources). Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023 ## 9.0.116 <!-- This file is a template for a GitHub release notes post. --> <!-- The line prefixed by 'Title:' will be submitted as the title of the release notes, and the rest of the file will be submitted as the body. --> You can build .NET 9.0 from the repository by cloning the release tag `v9.0.116` and following the build instructions in the [main README.md](https://github.com/dotnet/dotnet/blob/v9.0.116/README.md#building). Alternatively, you can build from the sources attached to this release directly. More information on this process can be found in the [dotnet/dotnet repository](https://github.com/dotnet/dotnet/blob/v9.0.116/README.md#building-from-released-sources). Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023 ## 9.0.115 <!-- This file is a template for a GitHub release notes post. --> <!-- The line prefixed by 'Title:' will be submitted as the title of the release notes, and the rest of the file will be submitted as the body. --> You can build .NET 9.0 from the repository by cloning the release tag `v9.0.115` and following the build instructions in the [main README.md](https://github.com/dotnet/dotnet/blob/v9.0.115/README.md#building). Alternatively, you can build from the sources attached to this release directly. More information on this process can be found in the [dotnet/dotnet repository](https://github.com/dotnet/dotnet/blob/v9.0.115/README.md#building-from-released-sources). Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023 ## 9.0.114 <!-- This file is a template for a GitHub release notes post. --> <!-- The line prefixed by 'Title:' will be submitted as the title of the release notes, and the rest of the file will be submitted as the body. --> You can build .NET 9.0 from the repository by cloning the release tag `v9.0.114` and following the build instructions in the [main README.md](https://github.com/dotnet/dotnet/blob/v9.0.114/README.md#building). Alternatively, you can build from the sources attached to this release directly. More information on this process can be found in the [dotnet/dotnet repository](https://github.com/dotnet/dotnet/blob/v9.0.114/README.md#building-from-released-sources). Attached is the PGP signature for the GitHub generated tarball. You can find the public key at https://dot.net/release-key-2023 ## 9.0.113 <!-- This file is a template for a GitHub release notes post. --> <!-- The line prefixed by 'Title:' will be submitted as the title of the release notes, and the rest of the file will be submitted as the body. --> You can build .NET 9.0 from the repository by cloning the release tag `v9.0.113` and following the build instructions in the [main README.md](https://github.com/dotnet/dotnet/blob/v9.0.113/README.md#building). Alternatively, you can build from the sources attached to this release directly. More information on this process can be found in the [dotnet/dotnet repository](https://github.com/dotnet/dotnet/blob/v9.0.113/README.md#building-from-released-sources). Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023 ## 9.0.112 <!-- This file is a template for a GitHub release notes post. --> <!-- The line prefixed by 'Title:' will be submitted as the title of the release notes, and the rest of the file will be submitted as the body. --> You can build .NET 9.0 from the repository by cloning the release tag `v9.0.112` and following the build instructions in the [main README.md](https://github.com/dotnet/dotnet/blob/v9.0.112/README.md#building). Alternatively, you can build from the sources attached to this release directly. More information on this process can be found in the [dotnet/dotnet repository](https://github.com/dotnet/dotnet/blob/v9.0.112/README.md#building-from-released-sources). Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023 ## 9.0.111 <!-- This file is a template for a GitHub release notes post. --> <!-- The line prefixed by 'Title:' will be submitted as the title of the release notes, and the rest of the file will be submitted as the body. --> You can build .NET 9.0 from the repository by cloning the release tag `v9.0.111` and following the build instructions in the [main README.md](https://github.com/dotnet/dotnet/blob/v9.0.111/README.md#building). Alternatively, you can build from the sources attached to this release directly. More information on this process can be found in the [dotnet/dotnet repository](https://github.com/dotnet/dotnet/blob/v9.0.111/README.md#building-from-released-sources). Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023 ## 9.0.110 <!-- This file is a template for a GitHub release notes post. --> <!-- The line prefixed by 'Title:' will be submitted as the title of the release notes, and the rest of the file will be submitted as the body. --> You can build .NET 9.0 from the repository by cloning the release tag `v9.0.110` and following the build instructions in the [main README.md](https://github.com/dotnet/dotnet/blob/v9.0.110/README.md#building). Alternatively, you can build from the sources attached to this release directly. More information on this process can be found in the [dotnet/dotnet repository](https://github.com/dotnet/dotnet/blob/v9.0.110/README.md#building-from-released-sources). Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023 ## 9.0.109 <!-- This file is a template for a GitHub release notes post. --> <!-- The line prefixed by 'Title:' will be submitted as the title of the release notes, and the rest of the file will be submitted as the body. --> You can build .NET 9.0 from the repository by cloning the release tag `v9.0.109` and following the build instructions in the [main README.md](https://github.com/dotnet/dotnet/blob/v9.0.109/README.md#building). Alternatively, you can build from the sources attached to this release directly. More information on this process can be found in the [dotnet/dotnet repository](https://github.com/dotnet/dotnet/blob/v9.0.109/README.md#building-from-released-sources). Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023 ## 9.0.101 You can build .NET 9.0 from the repository by cloning the release tag `v9.0.101` and following the build instructions in the [main README.md](https://github.com/dotnet/dotnet/blob/v9.0.101/README.md#building). Alternatively, you can build from the sources attached to this release directly. More information on this process can be found in the [dotnet/dotnet repository](https://github.com/dotnet/dotnet/blob/v9.0.101/README.md#building-from-released-sources). Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023 ## 9.0.7 You can build .NET 9.0 from the repository by cloning the release tag `v9.0.7` and following the build instructions in the [main README.md](https://github.com/dotnet/dotnet/blob/v9.0.7/README.md#building). Alternatively, you can build from the sources attached to this release directly. More information on this process can be found in the [dotnet/dotnet repository](https://github.com/dotnet/dotnet/blob/v9.0.7/README.md#building-from-released-sources). Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023 ## 9.0.6 You can build .NET 9.0 from the repository by cloning the release tag `v9.0.6` and following the build instructions in the [main README.md](https://github.com/dotnet/dotnet/blob/v9.0.6/README.md#building). Alternatively, you can build from the sources attached to this release directly. More information on this process can be found in the [dotnet/dotnet repository](https://github.com/dotnet/dotnet/blob/v9.0.6/README.md#building-from-released-sources). Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023 ## 9.0.5 You can build .NET 9.0 from the repository by cloning the release tag `v9.0.5` and following the build instructions in the [main README.md](https://github.com/dotnet/dotnet/blob/v9.0.5/README.md#building). Alternatively, you can build from the sources attached to this release directly. More information on this process can be found in the [dotnet/dotnet repository](https://github.com/dotnet/dotnet/blob/v9.0.5/README.md#building-from-released-sources). Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023 ## 9.0.4 You can build .NET 9.0 from the repository by cloning the release tag `v9.0.4` and following the build instructions in the [main README.md](https://github.com/dotnet/dotnet/blob/v9.0.4/README.md#building). Alternatively, you can build from the sources attached to this release directly. More information on this process can be found in the [dotnet/dotnet repository](https://github.com/dotnet/dotnet/blob/v9.0.4/README.md#building-from-released-sources). Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023 ## 9.0.3 You can build .NET 9.0 from the repository by cloning the release tag `v9.0.3` and following the build instructions in the [main README.md](https://github.com/dotnet/dotnet/blob/v9.0.3/README.md#building). Alternatively, you can build from the sources attached to this release directly. More information on this process can be found in the [dotnet/dotnet repository](https://github.com/dotnet/dotnet/blob/v9.0.3/README.md#building-from-released-sources). Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023 ## 9.0.2 You can build .NET 9.0 from the repository by cloning the release tag `v9.0.2` and following the build instructions in the [main README.md](https://github.com/dotnet/dotnet/blob/v9.0.2/README.md#building). Alternatively, you can build from the sources attached to this release directly. More information on this process can be found in the [dotnet/dotnet repository](https://github.com/dotnet/dotnet/blob/v9.0.2/README.md#building-from-released-sources). Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023 ## 9.0.1 You can build .NET 9.0 from the repository by cloning the release tag `v9.0.1` and following the build instructions in the [main README.md](https://github.com/dotnet/dotnet/blob/v9.0.1/README.md#building). Alternatively, you can build from the sources attached to this release directly. More information on this process can be found in the [dotnet/dotnet repository](https://github.com/dotnet/dotnet/blob/v9.0.1/README.md#building-from-released-sources). Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023 ## 9.0.0 You can build .NET 9.0 from the repository by cloning the release tag `v9.0.0` and following the build instructions in the [main README.md](https://github.com/dotnet/dotnet/blob/v9.0.0/README.md#building). Alternatively, you can build from the sources attached to this release directly. More information on this process can be found in the [dotnet/dotnet repository](https://github.com/dotnet/dotnet/blob/v9.0.0/README.md#building-from-released-sources). Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023 ## 9.0.0-rc.2.24473.5 You can build NET 9.0 RC2 from the repository by cloning the release tag `v9.0.0-rc.2.24473.5` and following the build instructions in the [main README.md](https://github.com/dotnet/dotnet/blob/v9.0.0-rc.2.24473.5/README.md#building). Alternatively, you can build from the sources attached to this release directly. More information on this process can be found in the [dotnet/dotnet repository](https://github.com/dotnet/dotnet/blob/v9.0.0-rc.2.24473.5/README.md#building-from-released-sources). Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023 ## 9.0.0-rc.1.24431.7 You can build .NET 9.0 RC1 from the repository by cloning the release tag `v9.0.0-rc.1.24431.7` and following the build instructions in the [main README.md](https://github.com/dotnet/dotnet/blob/v9.0.0-rc.1.24431.7/README.md#building). Alternatively, you can build from the sources attached to this release directly. More information on this process can be found in the [dotnet/dotnet repository](https://github.com/dotnet/dotnet/blob/v9.0.0-rc.1.24431.7/README.md#building-from-released-sources). Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023 ## 9.0.0-preview.7.24405.7 You can build .NET 9.0 Preview 7 from the repository by cloning the release tag `v9.0.0-preview.7.24405.7` and following the build instructions in the [main README.md](https://github.com/dotnet/dotnet/blob/v9.0.0-preview.7.24405.7/README.md#building). Alternatively, you can build from the sources attached to this release directly. More information on this process can be found in the [dotnet/dotnet repository](https://github.com/dotnet/dotnet/blob/v9.0.0-preview.7.24405.7/README.md#building-from-released-sources). Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023 ## 9.0.0-preview.6.24327.7 You can build .NET 9.0 Preview 6 from the repository by cloning the release tag `v9.0.0-preview.6.24327.7` and following the build instructions in the [main README.md](https://github.com/dotnet/dotnet/blob/v9.0.0-preview.6.24327.7/README.md#building). Alternatively, you can build from the sources attached to this release directly. More information on this process can be found in the [dotnet/dotnet repository](https://github.com/dotnet/dotnet/blob/v9.0.0-preview.6.24327.7/README.md#building-from-released-sources). Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023 ## 8.0.133 <!-- This file is a template for a GitHub release notes post. --> <!-- The line prefixed by 'Title:' will be submitted as the title of the release notes, and the rest of the file will be submitted as the body. --> You can build .NET 8.0 from the repository by cloning the release tag `v8.0.133` and following the build instructions in the [main README.md](https://github.com/dotnet/dotnet/blob/v8.0.133/README.md#building). Alternatively, you can build from the sources attached to this release directly. More information on this process can be found in the [dotnet/dotnet repository](https://github.com/dotnet/dotnet/blob/v8.0.133/README.md#building-from-released-sources). Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023 ## 8.0.132 <!-- This file is a template for a GitHub release notes post. --> <!-- The line prefixed by 'Title:' will be submitted as the title of the release notes, and the rest of the file will be submitted as the body. --> You can build .NET 8.0 from the repository by cloning the release tag `v8.0.132` and following the build instructions in the [main README.md](https://github.com/dotnet/dotnet/blob/v8.0.132/README.md#building). Alternatively, you can build from the sources attached to this release directly. More information on this process can be found in the [dotnet/dotnet repository](https://github.com/dotnet/dotnet/blob/v8.0.132/README.md#building-from-released-sources). Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023 ## 8.0.131 <!-- This file is a template for a GitHub release notes post. --> <!-- The line prefixed by 'Title:' will be submitted as the title of the release notes, and the rest of the file will be submitted as the body. --> You can build .NET 8.0 from the repository by cloning the release tag `v8.0.131` and following the build instructions in the [main README.md](https://github.com/dotnet/dotnet/blob/v8.0.131/README.md#building). Alternatively, you can build from the sources attached to this release directly. More information on this process can be found in the [dotnet/dotnet repository](https://github.com/dotnet/dotnet/blob/v8.0.131/README.md#building-from-released-sources). Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023 ## 8.0.130 <!-- This file is a template for a GitHub release notes post. --> <!-- The line prefixed by 'Title:' will be submitted as the title of the release notes, and the rest of the file will be submitted as the body. --> You can build .NET 8.0 from the repository by cloning the release tag `v8.0.130` and following the build instructions in the [main README.md](https://github.com/dotnet/dotnet/blob/v8.0.130/README.md#building). Alternatively, you can build from the sources attached to this release directly. More information on this process can be found in the [dotnet/dotnet repository](https://github.com/dotnet/dotnet/blob/v8.0.130/README.md#building-from-released-sources). Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023 ## 8.0.129 <!-- This file is a template for a GitHub release notes post. --> <!-- The line prefixed by 'Title:' will be submitted as the title of the release notes, and the rest of the file will be submitted as the body. --> You can build .NET 8.0 from the repository by cloning the release tag `v8.0.129` and following the build instructions in the [main README.md](https://github.com/dotnet/dotnet/blob/v8.0.129/README.md#building). Alternatively, you can build from the sources attached to this release directly. More information on this process can be found in the [dotnet/dotnet repository](https://github.com/dotnet/dotnet/blob/v8.0.129/README.md#building-from-released-sources). Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023 ## 8.0.128 <!-- This file is a template for a GitHub release notes post. --> <!-- The line prefixed by 'Title:' will be submitted as the title of the release notes, and the rest of the file will be submitted as the body. --> You can build .NET 8.0 from the repository by cloning the release tag `v8.0.128` and following the build instructions in the [main README.md](https://github.com/dotnet/dotnet/blob/v8.0.128/README.md#building). Alternatively, you can build from the sources attached to this release directly. More information on this process can be found in the [dotnet/dotnet repository](https://github.com/dotnet/dotnet/blob/v8.0.128/README.md#building-from-released-sources). Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023 ## 8.0.127 <!-- This file is a template for a GitHub release notes post. --> <!-- The line prefixed by 'Title:' will be submitted as the title of the release notes, and the rest of the file will be submitted as the body. --> You can build .NET 8.0 from the repository by cloning the release tag `v8.0.127` and following the build instructions in the [main README.md](https://github.com/dotnet/dotnet/blob/v8.0.127/README.md#building). Alternatively, you can build from the sources attached to this release directly. More information on this process can be found in the [dotnet/dotnet repository](https://github.com/dotnet/dotnet/blob/v8.0.127/README.md#building-from-released-sources). Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023 ## 8.0.126 <!-- This file is a template for a GitHub release notes post. --> <!-- The line prefixed by 'Title:' will be submitted as the title of the release notes, and the rest of the file will be submitted as the body. --> You can build .NET 8.0 from the repository by cloning the release tag `v8.0.126` and following the build instructions in the [main README.md](https://github.com/dotnet/dotnet/blob/v8.0.126/README.md#building). Alternatively, you can build from the sources attached to this release directly. More information on this process can be found in the [dotnet/dotnet repository](https://github.com/dotnet/dotnet/blob/v8.0.126/README.md#building-from-released-sources). Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023 ## 8.0.125 <!-- This file is a template for a GitHub release notes post. --> <!-- The line prefixed by 'Title:' will be submitted as the title of the release notes, and the rest of the file will be submitted as the body. --> You can build .NET 8.0 from the repository by cloning the release tag `v8.0.125` and following the build instructions in the [main README.md](https://github.com/dotnet/dotnet/blob/v8.0.125/README.md#building). Alternatively, you can build from the sources attached to this release directly. More information on this process can be found in the [dotnet/dotnet repository](https://github.com/dotnet/dotnet/blob/v8.0.125/README.md#building-from-released-sources). Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023 ## 8.0.124 <!-- This file is a template for a GitHub release notes post. --> <!-- The line prefixed by 'Title:' will be submitted as the title of the release notes, and the rest of the file will be submitted as the body. --> You can build .NET 8.0 from the repository by cloning the release tag `v8.0.124` and following the build instructions in the [main README.md](https://github.com/dotnet/dotnet/blob/v8.0.124/README.md#building). Alternatively, you can build from the sources attached to this release directly. More information on this process can be found in the [dotnet/dotnet repository](https://github.com/dotnet/dotnet/blob/v8.0.124/README.md#building-from-released-sources). Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023 ## 8.0.123 <!-- This file is a template for a GitHub release notes post. --> <!-- The line prefixed by 'Title:' will be submitted as the title of the release notes, and the rest of the file will be submitted as the body. --> You can build .NET 8.0 from the repository by cloning the release tag `v8.0.123` and following the build instructions in the [main README.md](https://github.com/dotnet/dotnet/blob/v8.0.123/README.md#building). Alternatively, you can build from the sources attached to this release directly. More information on this process can be found in the [dotnet/dotnet repository](https://github.com/dotnet/dotnet/blob/v8.0.123/README.md#building-from-released-sources). Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023 ## 8.0.122 <!-- This file is a template for a GitHub release notes post. --> <!-- The line prefixed by 'Title:' will be submitted as the title of the release notes, and the rest of the file will be submitted as the body. --> You can build .NET 8.0 from the repository by cloning the release tag `v8.0.122` and following the build instructions in the [main README.md](https://github.com/dotnet/dotnet/blob/v8.0.122/README.md#building). Alternatively, you can build from the sources attached to this release directly. More information on this process can be found in the [dotnet/dotnet repository](https://github.com/dotnet/dotnet/blob/v8.0.122/README.md#building-from-released-sources). Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023 ## 8.0.121 <!-- This file is a template for a GitHub release notes post. --> <!-- The line prefixed by 'Title:' will be submitted as the title of the release notes, and the rest of the file will be submitted as the body. --> You can build .NET 8.0 from the repository by cloning the release tag `v8.0.121` and following the build instructions in the [main README.md](https://github.com/dotnet/dotnet/blob/v8.0.121/README.md#building). Alternatively, you can build from the sources attached to this release directly. More information on this process can be found in the [dotnet/dotnet repository](https://github.com/dotnet/dotnet/blob/v8.0.121/README.md#building-from-released-sources). Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023 ## 8.0.120 <!-- This file is a template for a GitHub release notes post. --> <!-- The line prefixed by 'Title:' will be submitted as the title of the release notes, and the rest of the file will be submitted as the body. --> You can build .NET 8.0 from the repository by cloning the release tag `v8.0.120` and following the build instructions in the [main README.md](https://github.com/dotnet/dotnet/blob/v8.0.120/README.md#building). Alternatively, you can build from the sources attached to this release directly. More information on this process can be found in the [dotnet/dotnet repository](https://github.com/dotnet/dotnet/blob/v8.0.120/README.md#building-from-released-sources). Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023 ## 8.0.119 <!-- This file is a template for a GitHub release notes post. --> <!-- The line prefixed by 'Title:' will be submitted as the title of the release notes, and the rest of the file will be submitted as the body. --> You can build .NET 8.0 from the repository by cloning the release tag `v8.0.119` and following the build instructions in the [main README.md](https://github.com/dotnet/dotnet/blob/v8.0.119/README.md#building). Alternatively, you can build from the sources attached to this release directly. More information on this process can be found in the [dotnet/dotnet repository](https://github.com/dotnet/dotnet/blob/v8.0.119/README.md#building-from-released-sources). Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023 ## 8.0.18 You can build .NET 8.0 from the repository by cloning the release tag `v8.0.18` and following the build instructions in the [main README.md](https://github.com/dotnet/dotnet/blob/v8.0.18/README.md#building). Alternatively, you can build from the sources attached to this release directly. More information on this process can be found in the [dotnet/dotnet repository](https://github.com/dotnet/dotnet/blob/v8.0.18/README.md#building-from-released-sources). Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023 ## 8.0.17 You can build .NET 8.0 from the repository by cloning the release tag `v8.0.17` and following the build instructions in the [main README.md](https://github.com/dotnet/dotnet/blob/v8.0.17/README.md#building). Alternatively, you can build from the sources attached to this release directly. More information on this process can be found in the [dotnet/dotnet repository](https://github.com/dotnet/dotnet/blob/v8.0.17/README.md#building-from-released-sources). Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023 ## 8.0.16 You can build .NET 8.0 from the repository by cloning the release tag `v8.0.16` and following the build instructions in the [main README.md](https://github.com/dotnet/dotnet/blob/v8.0.16/README.md#building). Alternatively, you can build from the sources attached to this release directly. More information on this process can be found in the [dotnet/dotnet repository](https://github.com/dotnet/dotnet/blob/v8.0.16/README.md#building-from-released-sources). Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023 ## 8.0.15 You can build .NET 8.0 from the repository by cloning the release tag `v8.0.15` and following the build instructions in the [main README.md](https://github.com/dotnet/dotnet/blob/v8.0.15/README.md#building). Alternatively, you can build from the sources attached to this release directly. More information on this process can be found in the [dotnet/dotnet repository](https://github.com/dotnet/dotnet/blob/v8.0.15/README.md#building-from-released-sources). Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023 ## 8.0.14 You can build .NET 8.0 from the repository by cloning the release tag `v8.0.14` and following the build instructions in the [main README.md](https://github.com/dotnet/dotnet/blob/v8.0.14/README.md#building). Alternatively, you can build from the sources attached to this release directly. More information on this process can be found in the [dotnet/dotnet repository](https://github.com/dotnet/dotnet/blob/v8.0.14/README.md#building-from-released-sources). Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023 ## 8.0.13 You can build .NET 8.0 from the repository by cloning the release tag `v8.0.13` and following the build instructions in the [main README.md](https://github.com/dotnet/dotnet/blob/v8.0.13/README.md#building). Alternatively, you can build from the sources attached to this release directly. More information on this process can be found in the [dotnet/dotnet repository](https://github.com/dotnet/dotnet/blob/v8.0.13/README.md#building-from-released-sources). Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023 ## 8.0.12 You can build .NET 8.0 from the repository by cloning the release tag `v8.0.12` and following the build instructions in the [main README.md](https://github.com/dotnet/dotnet/blob/v8.0.12/README.md#building). Alternatively, you can build from the sources attached to this release directly. More information on this process can be found in the [dotnet/dotnet repository](https://github.com/dotnet/dotnet/blob/v8.0.12/README.md#building-from-released-sources). Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023 ## 8.0.11 You can build .NET 8.0 from the repository by cloning the release tag `v8.0.11` and following the build instructions in the [main README.md](https://github.com/dotnet/dotnet/blob/v8.0.11/README.md#building). Alternatively, you can build from the sources attached to this release directly. More information on this process can be found in the [dotnet/dotnet repository](https://github.com/dotnet/dotnet/blob/v8.0.11/README.md#building-from-released-sources). Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023 ## 8.0.10 You can build .NET 8.0 from the repository by cloning the release tag `v8.0.10` and following the build instructions in the [main README.md](https://github.com/dotnet/dotnet/blob/v8.0.10/README.md#building). Alternatively, you can build from the sources attached to this release directly. More information on this process can be found in the [dotnet/dotnet repository](https://github.com/dotnet/dotnet/blob/v8.0.10/README.md#building-from-released-sources). Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023 ## 8.0.8 You can build .NET 8.0 from the repository by cloning the release tag `v8.0.8` and following the build instructions in the [main README.md](https://github.com/dotnet/dotnet/blob/v8.0.8/README.md#building). Alternatively, you can build from the sources attached to this release directly. More information on this process can be found in the [dotnet/dotnet repository](https://github.com/dotnet/dotnet/blob/v8.0.8/README.md#building-from-released-sources). Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023 Commits viewable in [compare view](https://github.com/dotnet/dotnet/commits). </details> Updated [Microsoft.Bcl.AsyncInterfaces](https://github.com/dotnet/dotnet) from 10.0.12 to 10.0.14. <details> <summary>Release notes</summary> _Sourced from [Microsoft.Bcl.AsyncInterfaces's releases](https://github.com/dotnet/dotnet/releases)._ No release notes found for this version range. Commits viewable in [compare view](https://github.com/dotnet/dotnet/commits). </details> Updated [Microsoft.Bcl.TimeProvider](https://github.com/dotnet/dotnet) from 10.0.12 to 10.0.14. <details> <summary>Release notes</summary> _Sourced from [Microsoft.Bcl.TimeProvider's releases](https://github.com/dotnet/dotnet/releases)._ No release notes found for this version range. Commits viewable in [compare view](https://github.com/dotnet/dotnet/commits). </details> Updated [Microsoft.Extensions.AI.Abstractions](https://github.com/dotnet/extensions) from 10.10.0 to 10.11.0. <details> <summary>Release notes</summary> _Sourced from [Microsoft.Extensions.AI.Abstractions's releases](https://github.com/dotnet/extensions/releases)._ ## 10.11.0 # .NET Extensions 10.11.0 This release adds optional scope capture for buffered logs and updates experimental HTTP latency enrichment APIs. It also includes fixes for AI streaming and function invocation, evaluation reports, HybridCache invalidation, and logging. ## Experimental API Changes ### New Experimental APIs * Optional logging-scope capture for global and per-request log buffering through `GlobalLogBufferingOptions.IncludeScopes` and `PerRequestLogBufferingOptions.IncludeScopes` (`EXTEXP0003`) #7813 ### Breaking Changes to Experimental APIs * Incoming HTTP latency log enrichment: `AddHttpLatencyTelemetry` is renamed to `AddHttpServerLatencyTelemetry` and moves from `HttpLatencyTelemetryServiceCollectionExtensions` to `HttpLoggingServiceCollectionExtensions`. It remains experimental under `EXTEXP0013` in this release. #7730 ## What's Changed ### AI * Yield final image when streaming with HostedImageGenerationTool #7774 by @iamAdarshh * Make the default tool-rejection message state that the decision is final #7784 by @manjunathshiva * AI: Remove obsolete OpenAI JsonPatch workaround #7815 by @jozkee (co-authored by @Copilot) * Ignore empty model IDs in streaming responses #7816 by @valkiara * Honor FunctionInvocationContext.Terminate when the function throws #7801 by @gjz22 * Fix ChatResponseUpdate.Clone dropping ContinuationToken #7699 by @dfedoryshchev * Decode non-base64 data URIs in DataContent to the octets they encode #7798 by @Laurianti ### AI Evaluation * [M.E.AI.Evaluation.Reporting] Fix context and metric interpretation visualization #7738 by @grafanaKibana * Fix tokenizer attaching punctuation to number tokens #7766 by @tahakocal * Order iteration results numerically #7769 by @tahakocal * Score GLEU against the best matching reference #7768 by @tahakocal ### Telemetry and Observability * Optionally preserve logging scopes in buffered log records #7813 by @evgenyfedorov2 (co-authored by @Copilot) * Fix OOM from unbounded enumeration of ExtendedLogger tag joiners #7819 by @evgenyfedorov2 (co-authored by @Copilot) * Fix log buffering race by removing the rule selector cache #7803 by @evgenyfedorov2 (co-authored by @Copilot) ### ASP.NET Core Extensions * Rename AddHttpLatencyTelemetry to AddHttpServerLatencyTelemetry (API-approved shape) #7730 by @EasyL0ver (co-authored by @Copilot) * Fix ArgumentNullException in per-request log buffering at the end of a request #7811 by @evgenyfedorov2 (co-authored by @Copilot) ### AI Project Templates * Align aichatweb local vector-store keys with Guid record keys #7804 by @jongalloway (co-authored by @adamsitnik @Copilot) ### Caching ... (truncated) ## 10.10.1 This release fixes two OpenAI integration issues: a TypeLoadException on tool-carrying Responses API calls and a streaming crash against third-party OpenAI-compatible endpoints, by upgrading the OpenAI SDK to 2.14.0. ## Packages in this release | Package | Version | |---------|---------| | Microsoft.Extensions.AI.OpenAI | `10.10.1` | | Microsoft.Extensions.AI.Abstractions | `10.10.1` | ## What's Changed ### AI * Upgrade OpenAI SDK to 2.14.0 #7761 by @zxyao145 ## Acknowledgements * @zxyao145 made their first contribution in #7761 * @zxyao145 submitted issue #7760 (resolved by #7761) * @jozkee @wtgodbe reviewed pull requests **Full Changelog**: https://github.com/dotnet/extensions/compare/v10.10.0...v10.10.1 Commits viewable in [compare view](https://github.com/dotnet/extensions/compare/v10.10.0...v10.11.0). </details> Updated [Microsoft.Extensions.Caching.Memory](https://github.com/dotnet/dotnet) from 10.0.12 to 10.0.14. <details> <summary>Release notes</summary> _Sourced from [Microsoft.Extensions.Caching.Memory's releases](https://github.com/dotnet/dotnet/releases)._ No release notes found for this version range. Commits viewable in [compare view](https://github.com/dotnet/dotnet/commits). </details> Pinned [Microsoft.Extensions.DependencyInjection](https://github.com/dotnet/dotnet) at 10.0.14. <details> <summary>Release notes</summary> _Sourced from [Microsoft.Extensions.DependencyInjection's releases](https://github.com/dotnet/dotnet/releases)._ No release notes found for this version range. Commits viewable in [compare view](https://github.com/dotnet/dotnet/commits). </details> Pinned [Microsoft.Extensions.DependencyInjection](https://github.com/dotnet/dotnet) at 10.0.14. <details> <summary>Release notes</summary> _Sourced from [Microsoft.Extensions.DependencyInjection's releases](https://github.com/dotnet/dotnet/releases)._ No release notes found for this version range. Commits viewable in [compare view](https://github.com/dotnet/dotnet/commits). </details> Updated [Microsoft.Extensions.Hosting](https://github.com/dotnet/dotnet) from 10.0.12 to 10.0.14. <details> <summary>Release notes</summary> _Sourced from [Microsoft.Extensions.Hosting's releases](https://github.com/dotnet/dotnet/releases)._ No release notes found for this version range. Commits viewable in [compare view](https://github.com/dotnet/dotnet/commits). </details> Pinned [Microsoft.Extensions.Http](https://github.com/dotnet/dotnet) at 10.0.14. <details> <summary>Release notes</summary> _Sourced from [Microsoft.Extensions.Http's releases](https://github.com/dotnet/dotnet/releases)._ No release notes found for this version range. Commits viewable in [compare view](https://github.com/dotnet/dotnet/commits). </details> Updated [Microsoft.Extensions.Http.Resilience](https://github.com/dotnet/extensions) from 10.10.0 to 10.11.0. <details> <summary>Release notes</summary> _Sourced from [Microsoft.Extensions.Http.Resilience's releases](https://github.com/dotnet/extensions/releases)._ ## 10.11.0 # .NET Extensions 10.11.0 This release adds optional scope capture for buffered logs and updates experimental HTTP latency enrichment APIs. It also includes fixes for AI streaming and function invocation, evaluation reports, HybridCache invalidation, and logging. ## Experimental API Changes ### New Experimental APIs * Optional logging-scope capture for global and per-request log buffering through `GlobalLogBufferingOptions.IncludeScopes` and `PerRequestLogBufferingOptions.IncludeScopes` (`EXTEXP0003`) #7813 ### Breaking Changes to Experimental APIs * Incoming HTTP latency log enrichment: `AddHttpLatencyTelemetry` is renamed to `AddHttpServerLatencyTelemetry` and moves from `HttpLatencyTelemetryServiceCollectionExtensions` to `HttpLoggingServiceCollectionExtensions`. It remains experimental under `EXTEXP0013` in this release. #7730 ## What's Changed ### AI * Yield final image when streaming with HostedImageGenerationTool #7774 by @iamAdarshh * Make the default tool-rejection message state that the decision is final #7784 by @manjunathshiva * AI: Remove obsolete OpenAI JsonPatch workaround #7815 by @jozkee (co-authored by @Copilot) * Ignore empty model IDs in streaming responses #7816 by @valkiara * Honor FunctionInvocationContext.Terminate when the function throws #7801 by @gjz22 * Fix ChatResponseUpdate.Clone dropping ContinuationToken #7699 by @dfedoryshchev * Decode non-base64 data URIs in DataContent to the octets they encode #7798 by @Laurianti ### AI Evaluation * [M.E.AI.Evaluation.Reporting] Fix context and metric interpretation visualization #7738 by @grafanaKibana * Fix tokenizer attaching punctuation to number tokens #7766 by @tahakocal * Order iteration results numerically #7769 by @tahakocal * Score GLEU against the best matching reference #7768 by @tahakocal ### Telemetry and Observability * Optionally preserve logging scopes in buffered log records #7813 by @evgenyfedorov2 (co-authored by @Copilot) * Fix OOM from unbounded enumeration of ExtendedLogger tag joiners #7819 by @evgenyfedorov2 (co-authored by @Copilot) * Fix log buffering race by removing the rule selector cache #7803 by @evgenyfedorov2 (co-authored by @Copilot) ### ASP.NET Core Extensions * Rename AddHttpLatencyTelemetry to AddHttpServerLatencyTelemetry (API-approved shape) #7730 by @EasyL0ver (co-authored by @Copilot) * Fix ArgumentNullException in per-request log buffering at the end of a request #7811 by @evgenyfedorov2 (co-authored by @Copilot) ### AI Project Templates * Align aichatweb local vector-store keys with Guid record keys #7804 by @jongalloway (co-authored by @adamsitnik @Copilot) ### Caching ... (truncated) ## 10.10.1 This release fixes two OpenAI integration issues: a TypeLoadException on tool-carrying Responses API calls and a streaming crash against third-party OpenAI-compatible endpoints, by upgrading the OpenAI SDK to 2.14.0. ## Packages in this release | Package | Version | |---------|---------| | Microsoft.Extensions.AI.OpenAI | `10.10.1` | | Microsoft.Extensions.AI.Abstractions | `10.10.1` | ## What's Changed ### AI * Upgrade OpenAI SDK to 2.14.0 #7761 by @zxyao145 ## Acknowledgements * @zxyao145 made their first contribution in #7761 * @zxyao145 submitted issue #7760 (resolved by #7761) * @jozkee @wtgodbe reviewed pull requests **Full Changelog**: https://github.com/dotnet/extensions/compare/v10.10.0...v10.10.1 Commits viewable in [compare view](https://github.com/dotnet/extensions/compare/v10.10.0...v10.11.0). </details> Updated [Microsoft.Extensions.TimeProvider.Testing](https://github.com/dotnet/extensions) from 10.10.0 to 10.11.0. <details> <summary>Release notes</summary> _Sourced from [Microsoft.Extensions.TimeProvider.Testing's releases](https://github.com/dotnet/extensions/releases)._ ## 10.11.0 # .NET Extensions 10.11.0 This release adds optional scope capture for buffered logs and updates experimental HTTP latency enrichment APIs. It also includes fixes for AI streaming and function invocation, evaluation reports, HybridCache invalidation, and logging. ## Experimental API Changes ### New Experimental APIs * Optional logging-scope capture for global and per-request log buffering through `GlobalLogBufferingOptions.IncludeScopes` and `PerRequestLogBufferingOptions.IncludeScopes` (`EXTEXP0003`) #7813 ### Breaking Changes to Experimental APIs * Incoming HTTP latency log enrichment: `AddHttpLatencyTelemetry` is renamed to `AddHttpServerLatencyTelemetry` and moves from `HttpLatencyTelemetryServiceCollectionExtensions` to `HttpLoggingServiceCollectionExtensions`. It remains experimental under `EXTEXP0013` in this release. #7730 ## What's Changed ### AI * Yield final image when streaming with HostedImageGenerationTool #7774 by @iamAdarshh * Make the default tool-rejection message state that the decision is final #7784 by @manjunathshiva * AI: Remove obsolete OpenAI JsonPatch workaround #7815 by @jozkee (co-authored by @Copilot) * Ignore empty model IDs in streaming responses #7816 by @valkiara * Honor FunctionInvocationContext.Terminate when the function throws #7801 by @gjz22 * Fix ChatResponseUpdate.Clone dropping ContinuationToken #7699 by @dfedoryshchev * Decode non-base64 data URIs in DataContent to the octets they encode #7798 by @Laurianti ### AI Evaluation * [M.E.AI.Evaluation.Reporting] Fix context and metric interpretation visualization #7738 by @grafanaKibana * Fix tokenizer attaching punctuation to number tokens #7766 by @tahakocal * Order iteration results numerically #7769 by @tahakocal * Score GLEU against the best matching reference #7768 by @tahakocal ### Telemetry and Observability * Optionally preserve logging scopes in buffered log records #7813 by @evgenyfedorov2 (co-authored by @Copilot) * Fix OOM from unbounded enumeration of ExtendedLogger tag joiners #7819 by @evgenyfedorov2 (co-authored by @Copilot) * Fix log buffering race by removing the rule selector cache #7803 by @evgenyfedorov2 (co-authored by @Copilot) ### ASP.NET Core Extensions * Rename AddHttpLatencyTelemetry to AddHttpServerLatencyTelemetry (API-approved shape) #7730 by @EasyL0ver (co-authored by @Copilot) * Fix ArgumentNullException in per-request log buffering at the end of a request #7811 by @evgenyfedorov2 (co-authored by @Copilot) ### AI Project Templates * Align aichatweb local vector-store keys with Guid record keys #7804 by @jongalloway (co-authored by @adamsitnik @Copilot) ### Caching ... (truncated) ## 10.10.1 This release fixes two OpenAI integration issues: a TypeLoadException on tool-carrying Responses API calls and a streaming crash against third-party OpenAI-compatible endpoints, by upgrading the OpenAI SDK to 2.14.0. ## Packages in this release | Package | Version | |---------|---------| | Microsoft.Extensions.AI.OpenAI | `10.10.1` | | Microsoft.Extensions.AI.Abstractions | `10.10.1` | ## What's Changed ### AI * Upgrade OpenAI SDK to 2.14.0 #7761 by @zxyao145 ## Acknowledgements * @zxyao145 made their first contribution in #7761 * @zxyao145 submitted issue #7760 (resolved by #7761) * @jozkee @wtgodbe reviewed pull requests **Full Changelog**: https://github.com/dotnet/extensions/compare/v10.10.0...v10.10.1 Commits viewable in [compare view](https://github.com/dotnet/extensions/compare/v10.10.0...v10.11.0). </details> Updated [ModelContextProtocol](https://github.com/modelcontextprotocol/csharp-sdk) from 2.2.0 to 2.3.0. <details> <summary>Release notes</summary> _Sourced from [ModelContextProtocol's releases](https://github.com/modelcontextprotocol/csharp-sdk/releases)._ ## 2.3.0 This release improves HTTP discovery, OAuth, protocol interoperability, and shutdown reliability, preserves registration order for server primitives, and exposes a `TimeProvider` for deterministic client timeout tests. It also corrects optional server-identity handling; applications reading `McpClient.ServerInfo` should adopt nullable handling. ## Breaking Changes Refer to the [C# SDK Versioning](https://csharp.sdk.modelcontextprotocol.io/v2/versioning.html) documentation for details on versioning and breaking change policies. 1. **`McpClient.ServerInfo` is nullable — #1903** * Its return annotation changes from `Implementation` to `Implementation?`. Existing non-nullable assignments or dereferences can produce nullable warnings and fail warnings-as-errors builds. * On `2026-07-28` connections, `ServerInfo` is `null` when the server omits optional identity metadata from `server/discover`. Legacy `initialize` still requires `serverInfo`. Reading the property before connecting still throws `InvalidOperationException`. * Migrate with a null check or a fallback such as `client.ServerInfo?.Name ?? "Unknown server"`. Self-reported identity must not be used for security decisions. * This corrective source-compatibility change is intentionally included in 2.3.0. ## What's Changed * Correct protocol-version telemetry for stateless server spans #1810 by @luisangelrod * Preserve HTTP errors and correct discovery fallback handling #1791 by @PranavSenthilnathan (co-authored by @Copilot) * Make modern Streamable HTTP status mapping deterministic #1837 by @jstar0 * Modern responses wait for the first protocol message before sending headers; long-running silent handlers may need progress output or an appropriate HTTP timeout. Legacy eager-header behavior is preserved. * Accept opaque legacy metadata and correct request-scoped capabilities and discovery advertisement #1852 by @halter73 (co-authored by @Copilot) * Avoid redundant SSE fallback after discovery is rejected with 400 or 404 #1855 by @scottt732 * Close server stdin before waiting for graceful stdio process exit #1838 by @luisangelrod * Preserve insertion order when listing server tools, prompts, and resources #1924 by @PederHP (co-authored by Claude Opus 5.5) * Allow missing optional server identity in discovery and make `ServerInfo` nullable #1903 by @Coding-Professional * Include JSON parse details in Streamable HTTP 400 responses #1844 by @ump45nose * Exclude OAuth from `DiscoverProbeTimeout`, expose `McpClientOptions.TimeProvider` for deterministic timeout tests, and default SSE to legacy initialization #1719 by @halter73 (co-authored by @Copilot) * OAuth remains subject to the overall `InitializationTimeout` and caller cancellation; it is excluded only from the short discovery-probe budget. * Modern discovery over SSE requires both explicit `HttpTransportMode.Sse` and `ProtocolVersion = "2026-07-28"`; pinning the version with `AutoDetect` is not equivalent. * Preserve numeric progress tokens in `RequestOptions` serialization #1832 by @dfedoryshchev * Dispose legacy SSE POST responses to release connections deterministically #1841 by @yalcinfu22 (co-authored by Claude Fable 5) ## Documentation Updates * Document standing support for new MCP specification revisions #1826 by @halter73 (co-authored by @Copilot) ## Test Improvements * Stabilize discovery-capable test connections while retaining initialization deadlines #1943 by @tarekgh ## Repository Infrastructure Updates * Add a source selector for manual documentation publishes #1828 by @jeffhandley (co-authored by @Copilot) * Update SourceLink's private build dependency to resolve a vulnerable Git dependency #1873 by @halter73 (co-authored by @Copilot) * Correct obsolete `McpServerFactory` references in Copilot instructions #1892 by @Zir0-93 * Update Microsoft.Extensions.AI and AI.Abstractions to 10.11.0 and align shared System dependencies to 10.0.13 #1940 ## Acknowledgements * @scottt732 made their first contribution in #1855 * @Zir0-93 made their first contribution in #1892 * @Coding-Professional made their first contribution in #1903 ... (truncated) Commits viewable in [compare view](https://github.com/modelcontextprotocol/csharp-sdk/compare/v2.2.0...v2.3.0). </details> Updated [Polyfill](https://github.com/SimonCropp/Polyfill) from 11.4.0 to 11.4.5. <details> <summary>Release notes</summary> _Sourced from [Polyfill's releases](https://github.com/SimonCropp/Polyfill/releases)._ ## 11.4.5 - [x] [#680](https://github.com/SimonCropp/Polyfill/pull/680) Avoid per-read char[] allocation in StringStream on older targets - [x] [#681](https://github.com/SimonCropp/Polyfill/pull/681) Insert spans into List with a single shift - [x] [#682](https://github.com/SimonCropp/Polyfill/pull/682) Scan for line breaks in a single pass in SpanLineEnumerator - [x] [#683](https://github.com/SimonCropp/Polyfill/pull/683) Encode Base64Url without intermediate strings and arrays - [x] [#684](https://github.com/SimonCropp/Polyfill/pull/684) Override WriteByte in WritableMemoryStream - [x] [#685](https://github.com/SimonCropp/Polyfill/pull/685) Block copy in List AddRange(ReadOnlySpan) and CopyTo(Span) - [x] [#686](https://github.com/SimonCropp/Polyfill/pull/686) Avoid quadratic separator search in SplitAny for char separators - [x] [#687](https://github.com/SimonCropp/Polyfill/pull/687) Cache the last ReadAsync task in the memory stream polyfills - [x] [#688](https://github.com/SimonCropp/Polyfill/pull/688) Use the span based Convert APIs in the Base64 polyfill - [x] [#689](https://github.com/SimonCropp/Polyfill/pull/689) Index into IList sources in Take(Range) and TakeLast - [x] [#690](https://github.com/SimonCropp/Polyfill/pull/690) Find string separators in a single pass in SplitAny - [x] [#691](https://github.com/SimonCropp/Polyfill/pull/691) Defer the Adler-32 modulo in the ZLibStream polyfill - [x] [#692](https://github.com/SimonCropp/Polyfill/pull/692) Make the SkipLast polyfill streaming - [x] [#693](https://github.com/SimonCropp/Polyfill/pull/693) Grow geometrically in CollectionsMarshal.SetCount - [x] [#694](https://github.com/SimonCropp/Polyfill/pull/694) Copy in blocks in StringBuilder.CopyTo(int, Span<char>, int) - [x] [#695](https://github.com/SimonCropp/Polyfill/pull/695) Use the runtime's HashSet.TryGetValue when it exists - [x] [#696](https://github.com/SimonCropp/Polyfill/pull/696) Port the BCL string algorithm for Path.GetRelativePath - [x] [#697](https://github.com/SimonCropp/Polyfill/pull/697) Size the buffers of the Base64 OperationStatus overloads by the data - [x] [#698](https://github.com/SimonCropp/Polyfill/pull/698) Only materialize the requested range in StringBuilder.Append(StringBuilder, int, int) - [x] [#699](https://github.com/SimonCropp/Polyfill/pull/699) Pre-size the dict…
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.
SpanLineEnumerator.MoveNext(theEnumerateLinespolyfill, active below net6) searched for the next line break withremaining.IndexOfAny(newlines)over six values. On runtimes where the spanIndexOfAny(values)is not vectorized (theSystem.Memorypackage on .NET Framework / netstandard2.0) that call scans the whole remainder once per value and keeps the lowest hit.\nis the last value in the list, so on LF-only text everyMoveNextrescanned the rest of the input for the five values that never occur, making enumeration quadratic.This replaces the call with a single forward pass that tests each char against
\n,\r,\f,U+0085,U+2028andU+2029. The set of recognised line breaks,\r\nhandling and the trailing-empty-line behaviour are unchanged.Measurements
net48, Release, x64, best of 3, enumerating 8,000 lines of ~30 chars:
Tests
New
PolyfillTests_SpanLineEnumerator.cs(runs against the polyfill below net6 and the BCL from net6):\r\nas one break,\n\ras two, leading/trailing/consecutive breaks, the empty string, and neighbouring chars that must not split (\v,\t,U+0084,U+0086,U+2027,U+202A)MoveNextkeeps returning false after the end