Conversation
Bumps the actions-deps group with 2 updates: [softprops/action-gh-release](https://github.com/softprops/action-gh-release) and [dependabot/fetch-metadata](https://github.com/dependabot/fetch-metadata). Updates `softprops/action-gh-release` from 2 to 3 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/softprops/action-gh-release/releases">softprops/action-gh-release's releases</a>.</em></p> <blockquote> <h2>v3.0.0</h2> <p><code>3.0.0</code> is a major release that moves the action runtime from Node 20 to Node 24. Use <code>v3</code> on GitHub-hosted runners and self-hosted fleets that already support the Node 24 Actions runtime. If you still need the last Node 20-compatible line, stay on <code>v2.6.2</code>.</p> <h2>What's Changed</h2> <h3>Other Changes 🔄</h3> <ul> <li>Move the action runtime and bundle target to Node 24</li> <li>Update <code>@types/node</code> to the Node 24 line and allow future Dependabot updates</li> <li>Keep the floating major tag on <code>v3</code>; <code>v2</code> remains pinned to the latest <code>2.x</code> release</li> </ul> <h2>v2.6.2</h2> <!-- raw HTML omitted --> <h2>What's Changed</h2> <h3>Other Changes 🔄</h3> <ul> <li>chore(deps): bump picomatch from 4.0.3 to 4.0.4 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/softprops/action-gh-release/pull/775">softprops/action-gh-release#775</a></li> <li>chore(deps): bump brace-expansion from 5.0.4 to 5.0.5 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/softprops/action-gh-release/pull/777">softprops/action-gh-release#777</a></li> <li>chore(deps): bump vite from 8.0.0 to 8.0.5 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/softprops/action-gh-release/pull/781">softprops/action-gh-release#781</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/softprops/action-gh-release/compare/v2...v2.6.2">https://github.com/softprops/action-gh-release/compare/v2...v2.6.2</a></p> <h2>v2.6.1</h2> <p><code>2.6.1</code> is a patch release focused on restoring linked discussion thread creation when <code>discussion_category_name</code> is set. It fixes <code>[#764](https://github.com/softprops/action-gh-release/issues/764)</code>, where the draft-first publish flow stopped carrying the discussion category through the final publish step.</p> <p>If you still hit an issue after upgrading, please open a report with the bug template and include a minimal repro or sanitized workflow snippet where possible.</p> <h2>What's Changed</h2> <h3>Bug fixes 🐛</h3> <ul> <li>fix: preserve discussion category on publish by <a href="https://github.com/chenrui333"><code>@chenrui333</code></a> in <a href="https://redirect.github.com/softprops/action-gh-release/pull/765">softprops/action-gh-release#765</a></li> </ul> <h2>v2.6.0</h2> <p><code>2.6.0</code> is a minor release centered on <code>previous_tag</code> support for <code>generate_release_notes</code>, which lets workflows pin GitHub's comparison base explicitly instead of relying on the default range. It also includes the recent concurrent asset upload recovery fix, a <code>working_directory</code> docs sync, a checked-bundle freshness guard for maintainers, and clearer immutable-prerelease guidance where GitHub platform behavior imposes constraints on how prerelease asset uploads can be published.</p> <p>If you still hit an issue after upgrading, please open a report with the bug template and include a minimal repro or sanitized workflow snippet where possible.</p> <h2>What's Changed</h2> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md">softprops/action-gh-release's changelog</a>.</em></p> <blockquote> <h2>0.1.13</h2> <ul> <li>fix issue with multiple runs concatenating release bodies <a href="https://redirect.github.com/softprops/action-gh-release/pull/145">#145</a></li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/softprops/action-gh-release/commit/b4309332981a82ec1c5618f44dd2e27cc8bfbfda"><code>b430933</code></a> release: cut v3.0.0 for Node 24 upgrade (<a href="https://redirect.github.com/softprops/action-gh-release/issues/670">#670</a>)</li> <li><a href="https://github.com/softprops/action-gh-release/commit/c2e35e05a74208bafbfcbdae5ebc9da7236e980f"><code>c2e35e0</code></a> chore(deps): bump the npm group across 1 directory with 7 updates (<a href="https://redirect.github.com/softprops/action-gh-release/issues/783">#783</a>)</li> <li>See full diff in <a href="https://github.com/softprops/action-gh-release/compare/v2...v3">compare view</a></li> </ul> </details> <br /> Updates `dependabot/fetch-metadata` from 2.5.0 to 3.1.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/dependabot/fetch-metadata/releases">dependabot/fetch-metadata's releases</a>.</em></p> <blockquote> <h2>v3.1.0</h2> <h2>What's Changed</h2> <ul> <li>Add permissions to all workflows by <a href="https://github.com/truggeri"><code>@truggeri</code></a> in <a href="https://redirect.github.com/dependabot/fetch-metadata/pull/687">dependabot/fetch-metadata#687</a></li> <li>build(deps-dev): bump globals from 16.0.0 to 17.4.0 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/dependabot/fetch-metadata/pull/690">dependabot/fetch-metadata#690</a></li> <li>build(deps-dev): bump esbuild from 0.27.4 to 0.28.0 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/dependabot/fetch-metadata/pull/693">dependabot/fetch-metadata#693</a></li> <li>build(deps-dev): bump <code>@hono/node-server</code> from 1.19.10 to 1.19.13 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/dependabot/fetch-metadata/pull/694">dependabot/fetch-metadata#694</a></li> <li>build(deps-dev): bump hono from 4.12.7 to 4.12.12 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/dependabot/fetch-metadata/pull/695">dependabot/fetch-metadata#695</a></li> <li>Dynamically update the tracking tag in action by <a href="https://github.com/truggeri"><code>@truggeri</code></a> in <a href="https://redirect.github.com/dependabot/fetch-metadata/pull/696">dependabot/fetch-metadata#696</a></li> <li>fix: handle duplicate dependency names in parseMetadataLinks by <a href="https://github.com/devantler"><code>@devantler</code></a> in <a href="https://redirect.github.com/dependabot/fetch-metadata/pull/700">dependabot/fetch-metadata#700</a></li> <li>fix: remove $ anchor from updateFragment regex to handle pip directory suffixes by <a href="https://github.com/devantler"><code>@devantler</code></a> in <a href="https://redirect.github.com/dependabot/fetch-metadata/pull/698">dependabot/fetch-metadata#698</a></li> <li>Updates to README for permissions clarification by <a href="https://github.com/truggeri"><code>@truggeri</code></a> in <a href="https://redirect.github.com/dependabot/fetch-metadata/pull/697">dependabot/fetch-metadata#697</a></li> <li>fix: resolve update-type null for Python, Composer, and Terraform PRs by <a href="https://github.com/vitorsdcs"><code>@vitorsdcs</code></a> in <a href="https://redirect.github.com/dependabot/fetch-metadata/pull/704">dependabot/fetch-metadata#704</a></li> <li>build(deps-dev): bump globals from 17.4.0 to 17.5.0 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/dependabot/fetch-metadata/pull/703">dependabot/fetch-metadata#703</a></li> <li>build(deps): bump actions/create-github-app-token from 3.0.0 to 3.1.1 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/dependabot/fetch-metadata/pull/701">dependabot/fetch-metadata#701</a></li> <li>build(deps): bump <code>@actions/github</code> from 9.0.0 to 9.1.0 in the dependencies group across 1 directory by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/dependabot/fetch-metadata/pull/702">dependabot/fetch-metadata#702</a></li> <li>build(deps-dev): bump hono from 4.12.12 to 4.12.14 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/dependabot/fetch-metadata/pull/705">dependabot/fetch-metadata#705</a></li> <li>v3.1.0 by <a href="https://github.com/fetch-metadata-action-automation"><code>@fetch-metadata-action-automation</code></a>[bot] in <a href="https://redirect.github.com/dependabot/fetch-metadata/pull/692">dependabot/fetch-metadata#692</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/devantler"><code>@devantler</code></a> made their first contribution in <a href="https://redirect.github.com/dependabot/fetch-metadata/pull/700">dependabot/fetch-metadata#700</a></li> <li><a href="https://github.com/vitorsdcs"><code>@vitorsdcs</code></a> made their first contribution in <a href="https://redirect.github.com/dependabot/fetch-metadata/pull/704">dependabot/fetch-metadata#704</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/dependabot/fetch-metadata/compare/v3...v3.1.0">https://github.com/dependabot/fetch-metadata/compare/v3...v3.1.0</a></p> <h2>v3.0.0</h2> <p>The breaking change is requiring Node.js version v24 as the Actions runtime.</p> <h2>What's Changed</h2> <ul> <li>feat: Parse versions from metadata links by <a href="https://github.com/ppkarwasz"><code>@ppkarwasz</code></a> in <a href="https://redirect.github.com/dependabot/fetch-metadata/pull/632">dependabot/fetch-metadata#632</a></li> <li>Upgrade actions core and actions github packages by <a href="https://github.com/truggeri"><code>@truggeri</code></a> in <a href="https://redirect.github.com/dependabot/fetch-metadata/pull/649">dependabot/fetch-metadata#649</a></li> <li>docs: Add notes for using <code>alert-lookup</code> with App Token by <a href="https://github.com/sue445"><code>@sue445</code></a> in <a href="https://redirect.github.com/dependabot/fetch-metadata/pull/656">dependabot/fetch-metadata#656</a></li> <li>feat!: update Node.js version to v24 by <a href="https://github.com/sturman"><code>@sturman</code></a> in <a href="https://redirect.github.com/dependabot/fetch-metadata/pull/671">dependabot/fetch-metadata#671</a></li> <li>Switch build tooling from ncc to esbuild by <a href="https://github.com/truggeri"><code>@truggeri</code></a> in <a href="https://redirect.github.com/dependabot/fetch-metadata/pull/676">dependabot/fetch-metadata#676</a></li> <li>Add --legal-comments=none to esbuild build commands by <a href="https://github.com/jeffwidman"><code>@jeffwidman</code></a> in <a href="https://redirect.github.com/dependabot/fetch-metadata/pull/679">dependabot/fetch-metadata#679</a></li> <li>Bump tsconfig target from es2022 to es2024 by <a href="https://github.com/jeffwidman"><code>@jeffwidman</code></a> in <a href="https://redirect.github.com/dependabot/fetch-metadata/pull/680">dependabot/fetch-metadata#680</a></li> <li>Remove vestigial outDir from tsconfig.json by <a href="https://github.com/jeffwidman"><code>@jeffwidman</code></a> in <a href="https://redirect.github.com/dependabot/fetch-metadata/pull/681">dependabot/fetch-metadata#681</a></li> <li>Switch tsconfig module resolution to bundler by <a href="https://github.com/jeffwidman"><code>@jeffwidman</code></a> in <a href="https://redirect.github.com/dependabot/fetch-metadata/pull/682">dependabot/fetch-metadata#682</a></li> <li>Remove skipLibCheck from tsconfig.json by <a href="https://github.com/jeffwidman"><code>@jeffwidman</code></a> in <a href="https://redirect.github.com/dependabot/fetch-metadata/pull/683">dependabot/fetch-metadata#683</a></li> <li>Add typecheck step to CI by <a href="https://github.com/jeffwidman"><code>@jeffwidman</code></a> in <a href="https://redirect.github.com/dependabot/fetch-metadata/pull/685">dependabot/fetch-metadata#685</a></li> <li>Enable noImplicitAny in tsconfig.json by <a href="https://github.com/jeffwidman"><code>@jeffwidman</code></a> in <a href="https://redirect.github.com/dependabot/fetch-metadata/pull/684">dependabot/fetch-metadata#684</a></li> <li>Upgrade <code>@actions/core</code> to ^3.0.0 by <a href="https://github.com/truggeri"><code>@truggeri</code></a> in <a href="https://redirect.github.com/dependabot/fetch-metadata/pull/677">dependabot/fetch-metadata#677</a></li> <li>Upgrade <code>@actions/github</code> to ^9.0.0 and <code>@octokit/request-error</code> to ^7.1.0 by <a href="https://github.com/truggeri"><code>@truggeri</code></a> in <a href="https://redirect.github.com/dependabot/fetch-metadata/pull/678">dependabot/fetch-metadata#678</a></li> <li>Bump qs from 6.14.0 to 6.14.1 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/dependabot/fetch-metadata/pull/651">dependabot/fetch-metadata#651</a></li> <li>Bump hono from 4.11.1 to 4.11.4 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/dependabot/fetch-metadata/pull/652">dependabot/fetch-metadata#652</a></li> <li>Bump hono from 4.11.4 to 4.11.7 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/dependabot/fetch-metadata/pull/653">dependabot/fetch-metadata#653</a></li> <li>Bump hono from 4.11.7 to 4.12.0 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/dependabot/fetch-metadata/pull/657">dependabot/fetch-metadata#657</a></li> <li>Bump qs from 6.14.1 to 6.14.2 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/dependabot/fetch-metadata/pull/655">dependabot/fetch-metadata#655</a></li> <li>Bump <code>@modelcontextprotocol/sdk</code> from 1.25.1 to 1.26.0 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/dependabot/fetch-metadata/pull/654">dependabot/fetch-metadata#654</a></li> <li>Bump <code>@hono/node-server</code> from 1.19.9 to 1.19.10 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/dependabot/fetch-metadata/pull/665">dependabot/fetch-metadata#665</a></li> <li>Bump hono from 4.12.2 to 4.12.5 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/dependabot/fetch-metadata/pull/664">dependabot/fetch-metadata#664</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/dependabot/fetch-metadata/commit/25dd0e34f4fe68f24cc83900b1fe3fe149efef98"><code>25dd0e3</code></a> v3.1.0 (<a href="https://redirect.github.com/dependabot/fetch-metadata/issues/692">#692</a>)</li> <li><a href="https://github.com/dependabot/fetch-metadata/commit/e073f50d732cb48d48fb80afedb4fa61361626e9"><code>e073f50</code></a> Merge pull request <a href="https://redirect.github.com/dependabot/fetch-metadata/issues/705">#705</a> from dependabot/dependabot/npm_and_yarn/hono-4.12.14</li> <li><a href="https://github.com/dependabot/fetch-metadata/commit/0670e167df1fbee1b0d07121de6a182ddebdd674"><code>0670e16</code></a> build(deps-dev): bump hono from 4.12.12 to 4.12.14</li> <li><a href="https://github.com/dependabot/fetch-metadata/commit/7a7fe10a42310e65df80af6c771e9aa5d59842d1"><code>7a7fe10</code></a> Merge pull request <a href="https://redirect.github.com/dependabot/fetch-metadata/issues/702">#702</a> from dependabot/dependabot/npm_and_yarn/dependencies-...</li> <li><a href="https://github.com/dependabot/fetch-metadata/commit/5168191cea3d4daa635bff6c796b4f0faeba522d"><code>5168191</code></a> Updating dist build</li> <li><a href="https://github.com/dependabot/fetch-metadata/commit/23882e175b2f16bc495c89aa50940399c6a17504"><code>23882e1</code></a> build(deps): bump <code>@actions/github</code> in the dependencies group</li> <li><a href="https://github.com/dependabot/fetch-metadata/commit/1072469591c13fda1d8dba1d1ac2e80187e247d7"><code>1072469</code></a> Merge pull request <a href="https://redirect.github.com/dependabot/fetch-metadata/issues/701">#701</a> from dependabot/dependabot/github_actions/actions/cre...</li> <li><a href="https://github.com/dependabot/fetch-metadata/commit/43f8a0055c8e32587be67e097dff89a6823c9752"><code>43f8a00</code></a> build(deps): bump actions/create-github-app-token from 3.0.0 to 3.1.1</li> <li><a href="https://github.com/dependabot/fetch-metadata/commit/b4d904a50935c8ebe744da148ea8a18a43fe72e1"><code>b4d904a</code></a> Merge pull request <a href="https://redirect.github.com/dependabot/fetch-metadata/issues/703">#703</a> from dependabot/dependabot/npm_and_yarn/globals-17.5.0</li> <li><a href="https://github.com/dependabot/fetch-metadata/commit/c8046bb877d9989cc848797de1b944bc3e93ef82"><code>c8046bb</code></a> build(deps-dev): bump globals from 17.4.0 to 17.5.0</li> <li>Additional commits viewable in <a href="https://github.com/dependabot/fetch-metadata/compare/21025c705c08248db411dc16f3619e6b5f9ea21a...25dd0e34f4fe68f24cc83900b1fe3fe149efef98">compare view</a></li> </ul> </details> <br /> Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore <dependency name> major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself) - `@dependabot ignore <dependency name> minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself) - `@dependabot ignore <dependency name>` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself) - `@dependabot unignore <dependency name>` will remove all of the ignore conditions of the specified dependency - `@dependabot unignore <dependency name> <ignore condition>` will remove the ignore condition of the specified dependency and ignore conditions </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Updated [Microsoft.Extensions.Http.Resilience](https://github.com/dotnet/extensions) from 10.4.0 to 10.6.0. <details> <summary>Release notes</summary> _Sourced from [Microsoft.Extensions.Http.Resilience's releases](https://github.com/dotnet/extensions/releases)._ ## 10.6.0 Version 10.6.0 stabilizes the response continuation token and background-response APIs in Microsoft.Extensions.AI.Abstractions. Most other AI work for May shipped in 10.5.1; this monthly release rolls those changes up alongside dependency updates and a small Resource Monitoring cleanup. ## Experimental API Changes ### Now Stable * ResponseContinuationToken and background-response APIs are now stable (previously `MEAI001`) #7512 ## What's Changed ### AI * Stabilize ResponseContinuationToken / background-response APIs #7512 by @jozkee (co-authored by @Copilot) ## Repository Infrastructure Updates * Update version to 10.6.0 #7458 by @jeffhandley * [main] Update dependencies from dotnet/arcade #7451 * Bump follow-redirects from 1.15.11 to 1.16.0 in /src/Libraries/Microsoft.Extensions.AI.Evaluation.Reporting/TypeScript/azure-devops-report/tasks/PublishAIEvaluationReport #7469 * Merge release/10.5 into main #7470 by @jeffhandley * Bump microsoft.visualstudio.slngen.tool from 12.0.13 to 12.0.32 #7484 * Bump postcss from 8.5.9 to 8.5.12 in /src/Libraries/Microsoft.Extensions.AI.Evaluation.Reporting/TypeScript #7494 * Bump dotnet-reportgenerator-globaltool from 5.5.7 to 5.5.9 #7504 * Rename release-notes skill to write-release-notes #7511 by @jeffhandley (co-authored by @Copilot) ## Acknowledgements * @wtgodbe @tarekgh @peterwald @JeremyLikness @eiriktsarpalis @ericstj @evgenyfedorov2 reviewed pull requests **Full Changelog**: dotnet/extensions@v10.5.2...v10.6.0 ## 10.5.2 This patch release ships a single fix to `Microsoft.Extensions.VectorData.Abstractions`, correcting `StorageName` resolution when external serialization is enabled. `Microsoft.Extensions.VectorData.ConformanceTests`, `Microsoft.Extensions.AI.Abstractions`, `Microsoft.Extensions.AI`, and `Microsoft.Extensions.AI.OpenAI` are published alongside it for version coherency — they contain no code changes from 10.5.1. ## Packages in this release | Package | Version | | --- | --- | | Microsoft.Extensions.VectorData.Abstractions | 10.5.2 | | Microsoft.Extensions.VectorData.ConformanceTests | 10.5.2 | | Microsoft.Extensions.AI.Abstractions | 10.5.2 | | Microsoft.Extensions.AI | 10.5.2 | | Microsoft.Extensions.AI.OpenAI | 10.5.2 | ## What's Changed ### Microsoft.Extensions.VectorData.Abstractions - Minor fixes to MEVD.Abstractions: correct `StorageName` behavior when external serialization is enabled, and disable a warning for `net462`. (by @roji in [#7475](dotnet/extensions#7475)) **Full Changelog**: dotnet/extensions@v10.5.1...v10.5.2 ## 10.5.1 Version 10.5.1 of the Microsoft.Extensions.AI packages stabilizes CodeInterpreter, WebSearch, and ImageGeneration tool content types. The release adds new experimental tool search and OpenAI request policy hooks. And the OpenTelemetry gen-ai semantic conventions are updated to align with v1.41. The 'aiagent-webapi' project template in Microsoft.Agents.AI.ProjectTemplates is updated to align with v1.3.0 of Agent Framework, updating the OpenTelemetry dependencies within the template projects as well. ## Packages in this release | Package | Version | |---------|---------| | Microsoft.Extensions.AI | 10.5.1 | | Microsoft.Extensions.AI.Abstractions | 10.5.1 | | Microsoft.Extensions.AI.OpenAI | 10.5.1 | | Microsoft.Extensions.AI.Templates | 10.5.1-preview.3.26251.3 | | Microsoft.Agents.AI.ProjectTemplates | 1.3.0-preview.1.26251.3 | ## Experimental API Changes ### Now Stable The following types previously emitted the `MEAI001` experimental diagnostic and are now stable. * CodeInterpreter and WebSearch tool content types are now stable #7493 * `CodeInterpreterToolCallContent` * `CodeInterpreterToolResultContent` * `WebSearchToolCallContent` * `WebSearchToolResultContent` * ImageGeneration tool content types and tool are now stable #7476 * `ImageGenerationToolCallContent` * `ImageGenerationToolResultContent` * `HostedImageGenerationTool` * `ImageGenerationOptions` * `ImageGenerationResponseFormat` (the `Hosted` enum value remains experimental) * `IImageGenerator` and the rest of the image generation infrastructure also remain experimental ### New Experimental APIs The following new APIs emit the `MEAI001` experimental diagnostic. * New experimental API: `HostedToolSearchTool` with `DeferredTools` for tool-search-driven deferred tool loading #7471 * New experimental API: `OpenAIRequestPolicies` extension hook for appending `System.ClientModel.PipelinePolicy` instances to outgoing OpenAI requests #7495 ### Breaking Changes to Experimental APIs * `WebSearchToolResultContent.Results` was renamed to `Outputs` as part of the stabilization in #7493, aligning with `CodeInterpreterToolResultContent.Outputs`. The original `Results` property was included in version 10.4.0 and 10.5.0; this is a binary breaking change and consumers need to update to consume the updated property. ```diff WebSearchToolResultContent content = ...; - IList<AIContent>? items = content.Results; + IList<AIContent>? items = content.Outputs; ``` ... (truncated) ## 10.5.0 HTTP Logging Middleware APIs in `Microsoft.AspNetCore.Diagnostics.Middleware` are now stable. This release also transfers `Microsoft.Extensions.VectorData.Abstractions` and `Microsoft.Extensions.VectorData.ConformanceTests` from the [Semantic Kernel](https://github.com/microsoft/semantic-kernel) repository into dotnet/extensions, jumping from 10.1.0 to 10.5.0 for consistent versioning. The release also delivers fixes across the AI libraries, AI Evaluation, and Service Discovery. ## Breaking Changes 1. **Rename `VectorStoreVectorAttribute` constructor parameter #7460** * The `Dimensions` parameter was renamed to `dimensions` (lowercase). This is a source-breaking change only — binary compatibility is preserved. * If you use the named argument syntax `new VectorStoreVectorAttribute(Dimensions: 1536)`, update it to `new VectorStoreVectorAttribute(dimensions: 1536)`. ## Experimental API Changes ### Now Stable * HTTP Logging Middleware APIs are now stable (previously `EXTEXP0013`): `AddHttpLogEnricher<T>`, `IHttpLogEnricher`, and `RequestHeadersLogEnricherOptions.HeadersDataClasses` #7380 ## What's Changed ### AI * Fix OpenAIResponsesChatClient to respect "store":false in responses #7417 by @stephentoub * Fix InvalidOperationException in CoalesceWebSearchToolCallContent #7419 by @stephentoub * Handle F# optional parameters in AIFunctionFactory schema generation #7439 by @eiriktsarpalis * Fix ComputerCallResponseItem using Item.Id instead of CallId #7446 by @jozkee * Fix HostedFileContent with image MIME type sent as input_file instead of input_image #7438 by @stephentoub (co-authored by @copilot) * Guard Activity.Current restore with null check in OpenTelemetry streaming clients #7443 by @stephentoub (co-authored by @copilot) * Enable stateless mode in remote MCP server template (released as v1.2.0 on 2026-04-01) #7441 by @jeffhandley ### Vector Data * Move Microsoft.Extensions.VectorData.Abstractions over from Semantic Kernel #7434 by @roji * Rename VectorStoreVectorAttribute dimensions constructor parameter #7460 by @roji ### AI Evaluation * Add Path Validation for DiskBasedResponseCache and DiskBasedResultStore #7397 by @peterwald * Update brace-expansion for CVE-2026-33750 #7457 by @SamMonoRT ### ASP.NET Core Extensions * Removing experimental attribute from Http logging middleware #7380 by @mariamgerges ### Service Discovery * Implement RFC6761 reserved DNS names handling #6924 by @rzikm ## Documentation Updates * Remove per-library CHANGELOG.md files #7413 by @jeffhandley ## Test Improvements ... (truncated) ## 10.4.1 This release of the Microsoft.Extensions.AI packages adds new experimental APIs for Realtime client sessions and Text-to-Speech, along with OpenTelemetry and middleware improvements. ## Packages in this release | Package | Version | |---------|---------| | Microsoft.Extensions.AI.Abstractions | 10.4.1 | | Microsoft.Extensions.AI | 10.4.1 | | Microsoft.Extensions.AI.OpenAI | 10.4.1 | ## Experimental API Changes ### New Experimental APIs * New experimental API: Realtime Client Sessions #7285 and #7399 * New experimental API: Text-to-Speech Client #7381 ### Changes to Experimental APIs * Hosted File Download Stream: write-path methods now explicitly throw `NotSupportedException` #7394 ## What's Changed ### AI * Add `ITextToSpeechClient` abstraction, middleware, and OpenAI implementation #7381 by @stephentoub * Realtime Client Proposal #7285 by @tarekgh * Add `VoiceActivityDetection` options to realtime session abstractions #7399 by @tarekgh * Make `UriContent` `mediaType` parameter optional with inference from URI file extension #7398 by @stephentoub (co-authored by @Copilot) * Emit `gen_ai.client.operation.exception` via `ILogger LoggerMessage` on OpenTelemetry instrumentation classes #7379 by @stephentoub (co-authored by @Copilot) * Support `invoke_workflow` as an equivalent parent span to `invoke_agent` in `FunctionInvokingChatClient` #7382 by @stephentoub (co-authored by @Copilot) * Make `HostedFileDownloadStream` explicitly read-only #7394 by @stephentoub (co-authored by @Copilot) ## Documentation Updates * Document JSON schema derivation for return types in AIFunctionFactory #7400 by @stephentoub (co-authored by @Copilot) ## Test Improvements * Fix test warnings #7369 by @jozkee * Add tests for JSON deserialization of serializable types #7373 by @stephentoub (co-authored by @Copilot) ## Repository Infrastructure Updates * Update Package Validation Baseline to 10.4.0 #7389 by @jeffhandley (co-authored by @Copilot) * Update ModelContextProtocol libraries to version 1.0.0 #7340 by @stephentoub (co-authored by @Copilot) ## Acknowledgements * @eiriktsarpalis @ericstj @CodeBlanch @lmolkova @adamsitnik @joperezr reviewed pull requests ... (truncated) Commits viewable in [compare view](dotnet/extensions@v10.4.0...v10.6.0). </details> Updated [Microsoft.NET.Test.Sdk](https://github.com/microsoft/vstest) from 18.4.0 to 18.5.1. <details> <summary>Release notes</summary> _Sourced from [Microsoft.NET.Test.Sdk's releases](https://github.com/microsoft/vstest/releases)._ ## 18.5.1 ## What's Changed * Fix System.Collections.Immutable binding mismatch in Common.dll (rel/18.5) by @nohwnd in microsoft/vstest#15720 * Port verify-binding-redirects.ps1 to rel/18.5 by @nohwnd in microsoft/vstest#15719 * Bump to 18.5.1 by @nohwnd in microsoft/vstest#15721 **Full Changelog**: microsoft/vstest@v18.5.0...v18.5.1 ## 18.5.0⚠️ Unlisted on Nuget, because of #15718 ## What's Changed * Add runtime configs by @nohwnd in microsoft/vstest#15377 * Add net8.0 target for TranslationLayer by @nohwnd in microsoft/vstest#15375 * Determine architecture of remote process on windows by @nohwnd in microsoft/vstest#15396 * Updating System.Collections.Immutable package reference to version 9.0.0 by @MSLukeWest in microsoft/vstest#15392 * Dump via netcore tool on windows by @nohwnd in microsoft/vstest#15397 * Fix answer file splitting by @nohwnd in microsoft/vstest#15381 * Run tests against vsix runner by @nohwnd in microsoft/vstest#15419 **Full Changelog**: microsoft/vstest@v18.4.0...v18.5.0 Commits viewable in [compare view](microsoft/vstest@v18.4.0...v18.5.1). </details> Updated [System.CommandLine](https://github.com/dotnet/dotnet) from 2.0.5 to 2.0.8. <details> <summary>Release notes</summary> _Sourced from [System.CommandLine'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> Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore <dependency name> major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself) - `@dependabot ignore <dependency name> minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself) - `@dependabot ignore <dependency name>` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself) - `@dependabot unignore <dependency name>` will remove all of the ignore conditions of the specified dependency - `@dependabot unignore <dependency name> <ignore condition>` will remove the ignore condition of the specified dependency and ignore conditions </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
## Summary Closes part of #326 (investigation of Nx upstream Docker tweaks). Plan deliberately scoped to three changes: 1. **Adopt `currentOsVariantOverride=docker`** — append the line to `mediaserver.conf` at build time via `CreateMatrix/Dockerfile.cs`, regenerating 10 product Dockerfiles. Mirrors upstream's [`54bbd16`](networkoptix/nxvms-docker@54bbd16) (CI-3164). The two base images are untouched (they don't install mediaserver). 2. **Document upstream's `ignoreRootTool=true` deviation** — add a sub-bullet under Known Issues > Licensing noting that upstream's [`4285f93`](networkoptix/nxvms-docker@4285f93) (VMS-60430) disabled root-tool entirely, and explaining why NxWitness deliberately does not follow (license enforcement depends on root-tool). 3. **Refresh README compose examples** — add `tmpfs /tmp` (matches upstream's VMS-60430 switch) to all four compose snippets; bring the headline production example up to a real homelab pattern (`devices: /dev/dri` for iGPU passthrough, storage-pool comments, Traefik routing tweaks). ## Deliberately not adopted (rationale in plan) - **`ignoreRootTool=true` as a build-time default** — would break license enforcement for paying users; opposite of NxWitness's architecture. - **Plugin-extension Dockerfile pattern** (upstream's `extentions/nxai-plugin/Dockerfile`) — no point shipping example code we can't test end-to-end with a real plugin. - **`ENTRYPOINT_SCRIPTS_DIR` user init script hook** — same "untested surface area" reason; revisit if a concrete need arises. ## File-by-file - [`CreateMatrix/Dockerfile.cs`](CreateMatrix/Dockerfile.cs) — one new RUN step inserted in `CreateInstall()` after the mediaserver deb install, before the LSIO/non-LSIO branching. Applies to both variants. - `Docker/*.Dockerfile` (10 files) — regenerated via `Make/Create.sh`; mechanical 5-line addition per product image, no other diff. - [`README.md`](README.md) — one new bullet under Licensing; `tmpfs` added to 4 compose blocks; production example expanded with `devices`, comments, routing label. ## Test plan - [x] `dotnet build CreateMatrix/CreateMatrix.csproj` — clean (0 warnings, 0 errors). - [x] `dotnet test CreateMatrixTests/CreateMatrixTests.csproj` — 16/16 pass. - [x] `grep -c currentOsVariantOverride=docker Docker/*.Dockerfile` — 10/10 product images, 0/2 base images. - [ ] (post-merge) Build any product image and `docker run --rm --entrypoint=cat <img> /opt/<company>/mediaserver/etc/mediaserver.conf | grep currentOsVariantOverride` shows the line. - [ ] CI matrix on this branch passes (same workflow that validated PR #374).
There was a problem hiding this comment.
Pull request overview
Rolls develop into main, bringing in the upstream-aligned currentOsVariantOverride=docker behavior (build-time for non-LSIO, runtime for LSIO), documentation refreshes, and dependency updates for both .NET and GitHub Actions workflows.
Changes:
- Append
currentOsVariantOverride=dockertomediaserver.confin non-LSIO product images; inject the same setting at runtime for LSIO via s6 init. - Refresh
README.mdCompose examples (tmpfs/tmp,/dev/dripassthrough, updated Traefik host rule) and document Nx upstream’signoreRootTool=truedeviation. - Bump .NET NuGet dependencies and update pinned GitHub Action dependencies.
Reviewed changes
Copilot reviewed 12 out of 12 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| README.md | Updates Compose examples (tmpfs, /dev/dri, routing) and adds licensing note about upstream ignoreRootTool change. |
| Docker/NxWitness.Dockerfile | Appends currentOsVariantOverride=docker to packaged mediaserver.conf at build time (non-LSIO). |
| Docker/NxMeta.Dockerfile | Same build-time mediaserver.conf append for NxMeta (non-LSIO). |
| Docker/NxGo.Dockerfile | Same build-time mediaserver.conf append for NxGo (non-LSIO). |
| Docker/DWSpectrum.Dockerfile | Same build-time mediaserver.conf append for DW Spectrum (non-LSIO). |
| Docker/WisenetWAVE.Dockerfile | Same build-time mediaserver.conf append for Wisenet WAVE (non-LSIO). |
| Docker/s6-overlay/s6-rc.d/init-nx-relocate/run | Adds runtime injection of currentOsVariantOverride=docker into /config/etc/mediaserver.conf (LSIO). |
| CreateMatrix/Dockerfile.cs | Updates Dockerfile generation logic to include the new non-LSIO build step and documents LSIO runtime injection rationale. |
| CreateMatrix/CreateMatrix.csproj | Bumps Microsoft.Extensions.Http.Resilience and System.CommandLine versions. |
| CreateMatrixTests/CreateMatrixTests.csproj | Bumps Microsoft.NET.Test.Sdk version. |
| .github/workflows/merge-bot-pull-request.yml | Updates pinned dependabot/fetch-metadata to v3.1.0 commit. |
| .github/workflows/build-release-task.yml | Updates softprops/action-gh-release from v2 to v3. |
3 tasks
## Summary Follow-up to #380. Copilot review on PR #381 (develop → main sync) caught that the non-LSIO build-time RUN from #380 is shadowed by the README's recommended bind-mount of `/opt/${COMPANY_NAME}/mediaserver/etc` — the host's etc directory hides the image's pre-edited `mediaserver.conf` at runtime. Same shape as the LSIO bug Copilot caught in PR #380's round 1, just for the other variant. Fix mirrors the LSIO approach: drop the build-time RUN and inject idempotently at container start. ## Changes - [`CreateMatrix/Dockerfile.cs`](CreateMatrix/Dockerfile.cs) — remove the build-time RUN from the non-LSIO `else` branch; add a comment pointing readers to the runtime equivalent. - [`Docker/entrypoint.sh`](Docker/entrypoint.sh) — add the same idempotent `grep -q && echo >>` pattern used in [`init-nx-relocate/run`](Docker/s6-overlay/s6-rc.d/init-nx-relocate/run) for LSIO. Runs after root-tool launch and before `exec mediaserver`. - 5 non-LSIO product Dockerfiles regenerate to drop the RUN. LSIO Dockerfiles unchanged. After this, both variants follow the same pattern: build is mediaserver-only; mediaserver.conf injection happens at runtime in the variant-appropriate init path. ## Test plan - [x] `dotnet test CreateMatrixTests/CreateMatrixTests.csproj` — 16/16 pass. - [x] `grep -c currentOsVariantOverride=docker Docker/*.Dockerfile` — 0/0 (all moved to runtime scripts). - [ ] Build a non-LSIO image, run with a bind-mounted empty etc dir, then `cat <bound-etc>/mediaserver.conf` shows the line.
2 tasks
## Summary Copilot review on PR #381 round 2 flagged two related edge cases in the runtime injection added by #380 / #382: 1. **False positive on prefix match** — `grep -q "^currentOsVariantOverride=docker"` matches `currentOsVariantOverride=docker2` (or anything starting with `docker`). 2. **No upgrade path on existing different value** — if the user had previously set `currentOsVariantOverride=<other>`, the check fails and we append a *second* line for the same key, leaving precedence up to the parser. ## Fix In both [`Docker/entrypoint.sh`](Docker/entrypoint.sh) (non-LSIO) and [`Docker/s6-overlay/s6-rc.d/init-nx-relocate/run`](Docker/s6-overlay/s6-rc.d/init-nx-relocate/run) (LSIO), match the **key alone** — `^currentOsVariantOverride=` — and only append when the key is absent. This: - Avoids prefix-match false positives. - Never produces duplicate lines. - Respects a user's explicit setting (don't override what they typed). ## Test plan - [x] `dotnet test CreateMatrixTests/CreateMatrixTests.csproj` — 16/16 pass. - [ ] CI matrix passes.
2 tasks
## Summary Round-3 follow-up from Copilot's review on PR #381 (develop -> main sync). Six findings; this PR addresses the substantive ones; the seventh (PR #381's test plan referencing a build-time verification that no longer applies) will be fixed by editing #381's description directly. ## Changes - [`Docker/entrypoint.sh`](Docker/entrypoint.sh) — guard the `mediaserver.conf` append. The entrypoint runs as the unprivileged `${COMPANY_NAME}` user, so the bind-mounted etc directory must be writable by that user. Previously the `>>` would silently error if not writable. Now wraps the redirect in a conditional and logs a clear stderr warning identifying the required ownership. - [`README.md`](README.md) (4 lines) — capitalize "Unix" in "Unix socket" tmpfs comments. Proper-noun consistency. - [`README.md`](README.md) (1 line) — replace "recently disabled `root-tool`" with "disabled `root-tool` in late 2025". Less time-relative, ages better. ## Test plan - [x] `dotnet test CreateMatrixTests/CreateMatrixTests.csproj` — 16/16 pass. - [ ] CI matrix passes.
2 tasks
## Summary Round-4 follow-up from Copilot's review on PR #381. The LSIO init script ([`init-nx-relocate/run`](Docker/s6-overlay/s6-rc.d/init-nx-relocate/run)) appended to `/config/etc/mediaserver.conf` without checking the result. The script runs as root, but the underlying `/config` mount can be on a read-only filesystem or otherwise rejected, so a silent failure would leave mediaserver running without the OS variant override. ## Fix Apply the same defensive pattern non-LSIO already uses in [`Docker/entrypoint.sh`](Docker/entrypoint.sh) (added in #384): wrap the append in an `if`, log a clear stderr warning on failure, and only `chown` on successful write. Both variants now log "Added" on success and "Warning: failed to write" on failure with a hint about what to check. ## Test plan - [x] `dotnet test CreateMatrixTests/CreateMatrixTests.csproj` — 16/16 pass. - [ ] CI matrix passes.
2 tasks
## Summary Copilot flagged on PR #381 ([round-5](#381 (comment)) and [round-6](#381 (comment))) that the production compose example uses service/hostname `nxmeta` but the Traefik `HostRegexp` matches `^nxmeta-web...`. The reviewer's concern was that the example would be unreachable through Traefik. The mismatch is intentional. The container is multi-homed: - **Bare `nxmeta`** resolves to the dedicated macvlan IP set via `${NXMETA_IP}` / `${NXMETA_MAC}` in the compose, used for direct access. - **`nxmeta-web`** is a CNAME pointing at the Traefik host for SSL termination. Only the `-web` hostname is fronted by Traefik; the bare hostname bypasses it. This is the real-world pattern from the user's homelab. Without the inline rationale, future readers (and future automated reviews) hit the same question. ## Change Four lines of comment in [`README.md`](README.md) inside the Traefik labels block. ## Test plan - [x] Markdown rendering checked — comment lines render as part of the YAML fenced block. - [ ] CI matrix passes.
3 tasks
## Summary Copilot flagged on PR #381 (round-5 & round-6) that the `chown` added by #385 sits at the end of the success path in the LSIO init script. Because `init-nx-relocate` is an s6-rc **oneshot** service, a non-zero exit from its last command fails the service and breaks container init — even though the actual conf write succeeded. Filesystems that don't support ownership changes (SMB/NFS/Windows-backed) trigger this. ## Fix Wrap the `chown` in an `if`-guard. On failure, log a clear stderr warning ("filesystem may not support ownership changes — continuing") and fall through; the outer `fi` always evaluates to 0, so the script exits cleanly. The actual conf-write outcome still drives the user-facing success/failure messaging. ## Test plan - [x] `dotnet test CreateMatrixTests/CreateMatrixTests.csproj` — 16/16 pass. - [ ] CI matrix passes. - [ ] Manual: mount a `/config` volume backed by an exFAT or similar non-chown filesystem, start the LSIO container, confirm the s6 oneshot completes (container reaches running state, mediaserver launches) and the warning appears in container logs.
Merged
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.
Summary
Rolls up commits from develop. Brings the upstream-aligned
currentOsVariantOverride=dockerruntime injection, the READMEignoreRootTooldeviation note, refreshed compose examples (tmpfs/tmp,/dev/dripassthrough, storage-pool comments), and dependency bumps onto main.Why so many commits
Initial #380 attempted a build-time RUN that worked for fresh installs but Copilot caught two bind-mount problems:
init-nx-relocatereplaces/opt/.../mediaserver/etcwith a symlink to/config/etcon first start, erasing the build-time edit. Fixed in Adopt currentOsVariantOverride from upstream nxvms-docker #380 round-2 by moving injection into the s6 init script./opt/.../mediaserver/etcfrom the host, hiding the build-time edit. Fixed in Fix non-LSIO currentOsVariantOverride hidden by etc bind mount #382 by moving injection intoentrypoint.sh.Subsequent iterations cleaned up the idempotence check (#383 — match the key alone, not the value) and made the write robust against non-writable bind mounts (#384 — guard the redirect, log a clear warning).
Visible behavior changes for main
mediaserver.confgetscurrentOsVariantOverride=dockerappended on container start if the key is not already present. Injection happens inentrypoint.shfor non-LSIO andinit-nx-relocate/runfor LSIO. Match is key-only (^currentOsVariantOverride=) so a user-set value is never overridden and never duplicated.ignoreRootTool=truedeviation is deliberately not adopted.tmpfs: /tmp:size=1g,mode=1777for RAM-backed temp files / Unix socket; production example shows/dev/driiGPU passthrough and storage-pool layout.Test plan
The injection now happens on container start, so you must let the entrypoint run —
docker run --rm --entrypoint=cat ...will skip it and produce a false negative.publish-release.ymlautomatically.docker exec <container> cat /opt/networkoptix/mediaserver/etc/mediaserver.conf | grep currentOsVariantOverrideshows the line./configvolume, thendocker exec <container> cat /config/etc/mediaserver.conf | grep currentOsVariantOverrideshows the line.mediaserver.confwithcurrentOsVariantOverride=something-else, start the container, confirm the existing value is preserved (no override).