Skip to content

docs: add commit rules and branch/PR workflow to copilot instructions - #3

Open
iscai-msft wants to merge 2172 commits into
mainfrom
iscai-msft-copilot-instructions-update
Open

docs: add commit rules and branch/PR workflow to copilot instructions#3
iscai-msft wants to merge 2172 commits into
mainfrom
iscai-msft-copilot-instructions-update

Conversation

@iscai-msft

Copy link
Copy Markdown
Owner

Adds two small sections to the repo-root .github/copilot-instructions.md to codify workflow conventions for contributors using Copilot:

  1. Commit instructions -- explicitly calls out pnpm format before committing and advises against committing pnpm-lock.yaml unless necessary.
  2. Branch and PR Workflow (new section) -- documents that branches should be based off Microsoft/typespec main (not a personal fork), and PRs should target that same upstream main branch.

All existing content is preserved; these are purely additive changes.

dependabot Bot and others added 30 commits June 1, 2026 20:06
…ages/http-client-csharp (microsoft#10857)

Bumps
[vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest),
[@vitest/coverage-v8](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8)
and
[@vitest/ui](https://github.com/vitest-dev/vitest/tree/HEAD/packages/ui).
These dependencies needed to be updated together.
Updates `vitest` from 3.2.4 to 4.1.8
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/vitest-dev/vitest/releases">vitest's
releases</a>.</em></p>
<blockquote>
<h2>v4.1.8</h2>
<h3>   🐞 Bug Fixes</h3>
<ul>
<li><strong>browser</strong>:
<ul>
<li>Disable client <code>cdp</code> API when <code>allowWrite/allowExec:
false</code> [backport to v4]  -  by <a
href="https://github.com/hi-ogawa"><code>@​hi-ogawa</code></a> and
<strong>Codex</strong> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/10450">vitest-dev/vitest#10450</a>
<a href="https://github.com/vitest-dev/vitest/commit/e4067b3b1"><!-- raw
HTML omitted -->(e4067)<!-- raw HTML omitted --></a></li>
<li>Remove orphaned Playwright route when same module is mocked via
multiple ids [backport to v4]  -  by <a
href="https://github.com/toxik"><code>@​toxik</code></a> and <a
href="https://github.com/Zelys-DFKH"><code>@​Zelys-DFKH</code></a> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/10474">vitest-dev/vitest#10474</a>
<a href="https://github.com/vitest-dev/vitest/commit/675b4343f"><!-- raw
HTML omitted -->(675b4)<!-- raw HTML omitted --></a></li>
</ul>
</li>
</ul>
<h5>    <a
href="https://github.com/vitest-dev/vitest/compare/v4.1.7...v4.1.8">View
changes on GitHub</a></h5>
<h2>v4.1.7</h2>
<h3>   🐞 Bug Fixes</h3>
<ul>
<li><strong>runner</strong>: Limit concurrency per task branch in
addition to per leaf callbacks (backport)  -  by <a
href="https://github.com/hi-ogawa"><code>@​hi-ogawa</code></a> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/10384">vitest-dev/vitest#10384</a>
<a href="https://github.com/vitest-dev/vitest/commit/4f0f2a1ee"><!-- raw
HTML omitted -->(4f0f2)<!-- raw HTML omitted --></a></li>
</ul>
<h5>    <a
href="https://github.com/vitest-dev/vitest/compare/v4.1.6...v4.1.7">View
changes on GitHub</a></h5>
<h2>v4.1.6</h2>
<h3>   🐞 Bug Fixes</h3>
<ul>
<li><strong>browser</strong>: Provide project reference in
<code>ToMatchScreenshotResolvePath</code>  -  by <a
href="https://github.com/macarie"><code>@​macarie</code></a> and <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/10138">vitest-dev/vitest#10138</a>
<a href="https://github.com/vitest-dev/vitest/commit/31882607c"><!-- raw
HTML omitted -->(31882)<!-- raw HTML omitted --></a></li>
<li>Global <code>sequence.concurrent: true</code> with top-level
<code>test(..., { concurrent: false })</code> + depreacte
<code>sequential</code> test API and options  -  by <a
href="https://github.com/hi-ogawa"><code>@​hi-ogawa</code></a>,
<strong>Codex</strong> and <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/10196">vitest-dev/vitest#10196</a>
<a href="https://github.com/vitest-dev/vitest/commit/2847dfa2a"><!-- raw
HTML omitted -->(2847d)<!-- raw HTML omitted --></a></li>
<li><strong>browser</strong>: Simplify orchestrator otel carrier  -  by
<a href="https://github.com/hi-ogawa"><code>@​hi-ogawa</code></a> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/10285">vitest-dev/vitest#10285</a>
<a href="https://github.com/vitest-dev/vitest/commit/18af98cee"><!-- raw
HTML omitted -->(18af9)<!-- raw HTML omitted --></a></li>
</ul>
<h3>   🏎 Performance</h3>
<ul>
<li>Stringify diff objects only once  -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/10276">vitest-dev/vitest#10276</a>
<a href="https://github.com/vitest-dev/vitest/commit/9f7b1528c"><!-- raw
HTML omitted -->(9f7b1)<!-- raw HTML omitted --></a></li>
</ul>
<h5>    <a
href="https://github.com/vitest-dev/vitest/compare/v4.1.5...v4.1.6">View
changes on GitHub</a></h5>
<h2>v4.1.5</h2>
<h3>   🚀 Experimental Features</h3>
<ul>
<li><strong>coverage</strong>: Istanbul to support
<code>instrumenter</code> option  -  by <a
href="https://github.com/BartWaardenburg"><code>@​BartWaardenburg</code></a>
and <a
href="https://github.com/AriPerkkio"><code>@​AriPerkkio</code></a> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/10119">vitest-dev/vitest#10119</a>
<a href="https://github.com/vitest-dev/vitest/commit/0e0ff41c7"><!-- raw
HTML omitted -->(0e0ff)<!-- raw HTML omitted --></a></li>
</ul>
<h3>   🐞 Bug Fixes</h3>
<ul>
<li>--project negation excludes browser instances  -  by <a
href="https://github.com/felamaslen"><code>@​felamaslen</code></a> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/10131">vitest-dev/vitest#10131</a>
<a href="https://github.com/vitest-dev/vitest/commit/9423dc084"><!-- raw
HTML omitted -->(9423d)<!-- raw HTML omitted --></a></li>
<li>Project color label on html reporter  -  by <a
href="https://github.com/hi-ogawa"><code>@​hi-ogawa</code></a> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/10142">vitest-dev/vitest#10142</a>
<a href="https://github.com/vitest-dev/vitest/commit/596f73986"><!-- raw
HTML omitted -->(596f7)<!-- raw HTML omitted --></a></li>
<li>Fix <code>vi.defineHelper</code> called as object method  -  by <a
href="https://github.com/hi-ogawa"><code>@​hi-ogawa</code></a> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/10163">vitest-dev/vitest#10163</a>
<a href="https://github.com/vitest-dev/vitest/commit/122c25b5b"><!-- raw
HTML omitted -->(122c2)<!-- raw HTML omitted --></a></li>
<li>Alias <code>agent</code> reporter to <code>minimal</code>  -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/10157">vitest-dev/vitest#10157</a>
<a href="https://github.com/vitest-dev/vitest/commit/663b99fe3"><!-- raw
HTML omitted -->(663b9)<!-- raw HTML omitted --></a></li>
<li>Respect diff config options in soft assertions  -  by <a
href="https://github.com/Copilot"><code>@​Copilot</code></a>,
<strong>sheremet-va</strong> and <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/8696">vitest-dev/vitest#8696</a>
<a href="https://github.com/vitest-dev/vitest/commit/9787dedad"><!-- raw
HTML omitted -->(9787d)<!-- raw HTML omitted --></a></li>
<li>Respect diff config options in soft assertions &quot;  -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/8696">vitest-dev/vitest#8696</a>
<a href="https://github.com/vitest-dev/vitest/commit/7dc6d54fd"><!-- raw
HTML omitted -->(7dc6d)<!-- raw HTML omitted --></a></li>
<li><strong>ast-collect</strong>: Recognize _<em>vi_import</em> prefix
in static test discovery  -  by <a
href="https://github.com/Yejneshwar"><code>@​Yejneshwar</code></a> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/10129">vitest-dev/vitest#10129</a>
<a href="https://github.com/vitest-dev/vitest/commit/325463ab2"><!-- raw
HTML omitted -->(32546)<!-- raw HTML omitted --></a></li>
<li><strong>coverage</strong>: Descriptive error message when reports
directory is removed during test run  -  by <a
href="https://github.com/DaveT1991"><code>@​DaveT1991</code></a> and <a
href="https://github.com/AriPerkkio"><code>@​AriPerkkio</code></a> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/10117">vitest-dev/vitest#10117</a>
<a href="https://github.com/vitest-dev/vitest/commit/1413382e1"><!-- raw
HTML omitted -->(14133)<!-- raw HTML omitted --></a></li>
<li><strong>snapshot</strong>: Increase default snapshot max output
length  -  by <a
href="https://github.com/hi-ogawa"><code>@​hi-ogawa</code></a> and
<strong>Codex</strong> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/10150">vitest-dev/vitest#10150</a>
<a href="https://github.com/vitest-dev/vitest/commit/21e66ff63"><!-- raw
HTML omitted -->(21e66)<!-- raw HTML omitted --></a></li>
<li><strong>ui</strong>: Fix jsx/tsx syntax highlight  -  by <a
href="https://github.com/hi-ogawa"><code>@​hi-ogawa</code></a> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/10152">vitest-dev/vitest#10152</a>
<a href="https://github.com/vitest-dev/vitest/commit/f1b1f6c7b"><!-- raw
HTML omitted -->(f1b1f)<!-- raw HTML omitted --></a></li>
<li><strong>web-worker</strong>: Support MessagePort objects referenced
inside postMessage data  -  by <a
href="https://github.com/whitphx"><code>@​whitphx</code></a> and
<strong>Claude Opus 4.6 (1M context)</strong> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/9927">vitest-dev/vitest#9927</a>
and <a
href="https://redirect.github.com/vitest-dev/vitest/issues/10124">vitest-dev/vitest#10124</a>
<a href="https://github.com/vitest-dev/vitest/commit/7ad7d39af"><!-- raw
HTML omitted -->(7ad7d)<!-- raw HTML omitted --></a></li>
<li><strong>api</strong>: Make test-specification options writable  - 
by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/10154">vitest-dev/vitest#10154</a>
<a href="https://github.com/vitest-dev/vitest/commit/6abd557b7"><!-- raw
HTML omitted -->(6abd5)<!-- raw HTML omitted --></a></li>
</ul>
<h5>    <a
href="https://github.com/vitest-dev/vitest/compare/v4.1.4...v4.1.5">View
changes on GitHub</a></h5>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/vitest-dev/vitest/commit/e61f2dd2a0ba0a266c1c5e0334aad3799fee527f"><code>e61f2dd</code></a>
chore: release v4.1.8</li>
<li><a
href="https://github.com/vitest-dev/vitest/commit/e4067b3b150005fd42cf75f994300119245806b9"><code>e4067b3</code></a>
fix(browser): disable client <code>cdp</code> API when
<code>allowWrite/allowExec: false</code> [ba...</li>
<li><a
href="https://github.com/vitest-dev/vitest/commit/a09d47236e19fd3151351080c667036ca6164dc4"><code>a09d472</code></a>
chore: release v4.1.7</li>
<li><a
href="https://github.com/vitest-dev/vitest/commit/a8fd24c1cad2320b19fcc651413c7d928423bdc1"><code>a8fd24c</code></a>
chore: release v4.1.6</li>
<li><a
href="https://github.com/vitest-dev/vitest/commit/18af98cee1830604d57f6a02bf28f8067cdffc06"><code>18af98c</code></a>
fix(browser): simplify orchestrator otel carrier (<a
href="https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/10285">#10285</a>)</li>
<li><a
href="https://github.com/vitest-dev/vitest/commit/31882607cc67c7bf52ead13a606321ffdb06a857"><code>3188260</code></a>
feat(browser): provide project reference in
<code>ToMatchScreenshotResolvePath</code> (#...</li>
<li><a
href="https://github.com/vitest-dev/vitest/commit/e399846850fedf10b8228cbe46a419628998acd9"><code>e399846</code></a>
chore: release v4.1.5</li>
<li><a
href="https://github.com/vitest-dev/vitest/commit/7dc6d54fd9dda0fe6fee2fb6451d0611a9ecb6e7"><code>7dc6d54</code></a>
Revert &quot;fix: respect diff config options in soft assertions (<a
href="https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/8696">#8696</a>)&quot;</li>
<li><a
href="https://github.com/vitest-dev/vitest/commit/9787dedade9896a6d3eeed7739177d6c583a68a7"><code>9787ded</code></a>
fix: respect diff config options in soft assertions (<a
href="https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/8696">#8696</a>)</li>
<li><a
href="https://github.com/vitest-dev/vitest/commit/325463ab292c45c3ef27aa21ec7da380c307052c"><code>325463a</code></a>
fix(ast-collect): recognize _<em>vi_import</em> prefix in static test
discovery (<a
href="https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/10">#10</a>...</li>
<li>Additional commits viewable in <a
href="https://github.com/vitest-dev/vitest/commits/v4.1.8/packages/vitest">compare
view</a></li>
</ul>
</details>
<details>
<summary>Maintainer changes</summary>
<p>This version was pushed to npm by <a
href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new
releaser for vitest since your current version.</p>
</details>
<br />

Updates `@vitest/coverage-v8` from 3.2.4 to 4.1.8
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/vitest-dev/vitest/releases">@​vitest/coverage-v8's
releases</a>.</em></p>
<blockquote>
<h2>v4.1.8</h2>
<h3>   🐞 Bug Fixes</h3>
<ul>
<li><strong>browser</strong>:
<ul>
<li>Disable client <code>cdp</code> API when <code>allowWrite/allowExec:
false</code> [backport to v4]  -  by <a
href="https://github.com/hi-ogawa"><code>@​hi-ogawa</code></a> and
<strong>Codex</strong> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/10450">vitest-dev/vitest#10450</a>
<a href="https://github.com/vitest-dev/vitest/commit/e4067b3b1"><!-- raw
HTML omitted -->(e4067)<!-- raw HTML omitted --></a></li>
<li>Remove orphaned Playwright route when same module is mocked via
multiple ids [backport to v4]  -  by <a
href="https://github.com/toxik"><code>@​toxik</code></a> and <a
href="https://github.com/Zelys-DFKH"><code>@​Zelys-DFKH</code></a> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/10474">vitest-dev/vitest#10474</a>
<a href="https://github.com/vitest-dev/vitest/commit/675b4343f"><!-- raw
HTML omitted -->(675b4)<!-- raw HTML omitted --></a></li>
</ul>
</li>
</ul>
<h5>    <a
href="https://github.com/vitest-dev/vitest/compare/v4.1.7...v4.1.8">View
changes on GitHub</a></h5>
<h2>v4.1.7</h2>
<h3>   🐞 Bug Fixes</h3>
<ul>
<li><strong>runner</strong>: Limit concurrency per task branch in
addition to per leaf callbacks (backport)  -  by <a
href="https://github.com/hi-ogawa"><code>@​hi-ogawa</code></a> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/10384">vitest-dev/vitest#10384</a>
<a href="https://github.com/vitest-dev/vitest/commit/4f0f2a1ee"><!-- raw
HTML omitted -->(4f0f2)<!-- raw HTML omitted --></a></li>
</ul>
<h5>    <a
href="https://github.com/vitest-dev/vitest/compare/v4.1.6...v4.1.7">View
changes on GitHub</a></h5>
<h2>v4.1.6</h2>
<h3>   🐞 Bug Fixes</h3>
<ul>
<li><strong>browser</strong>: Provide project reference in
<code>ToMatchScreenshotResolvePath</code>  -  by <a
href="https://github.com/macarie"><code>@​macarie</code></a> and <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/10138">vitest-dev/vitest#10138</a>
<a href="https://github.com/vitest-dev/vitest/commit/31882607c"><!-- raw
HTML omitted -->(31882)<!-- raw HTML omitted --></a></li>
<li>Global <code>sequence.concurrent: true</code> with top-level
<code>test(..., { concurrent: false })</code> + depreacte
<code>sequential</code> test API and options  -  by <a
href="https://github.com/hi-ogawa"><code>@​hi-ogawa</code></a>,
<strong>Codex</strong> and <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/10196">vitest-dev/vitest#10196</a>
<a href="https://github.com/vitest-dev/vitest/commit/2847dfa2a"><!-- raw
HTML omitted -->(2847d)<!-- raw HTML omitted --></a></li>
<li><strong>browser</strong>: Simplify orchestrator otel carrier  -  by
<a href="https://github.com/hi-ogawa"><code>@​hi-ogawa</code></a> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/10285">vitest-dev/vitest#10285</a>
<a href="https://github.com/vitest-dev/vitest/commit/18af98cee"><!-- raw
HTML omitted -->(18af9)<!-- raw HTML omitted --></a></li>
</ul>
<h3>   🏎 Performance</h3>
<ul>
<li>Stringify diff objects only once  -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/10276">vitest-dev/vitest#10276</a>
<a href="https://github.com/vitest-dev/vitest/commit/9f7b1528c"><!-- raw
HTML omitted -->(9f7b1)<!-- raw HTML omitted --></a></li>
</ul>
<h5>    <a
href="https://github.com/vitest-dev/vitest/compare/v4.1.5...v4.1.6">View
changes on GitHub</a></h5>
<h2>v4.1.5</h2>
<h3>   🚀 Experimental Features</h3>
<ul>
<li><strong>coverage</strong>: Istanbul to support
<code>instrumenter</code> option  -  by <a
href="https://github.com/BartWaardenburg"><code>@​BartWaardenburg</code></a>
and <a
href="https://github.com/AriPerkkio"><code>@​AriPerkkio</code></a> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/10119">vitest-dev/vitest#10119</a>
<a href="https://github.com/vitest-dev/vitest/commit/0e0ff41c7"><!-- raw
HTML omitted -->(0e0ff)<!-- raw HTML omitted --></a></li>
</ul>
<h3>   🐞 Bug Fixes</h3>
<ul>
<li>--project negation excludes browser instances  -  by <a
href="https://github.com/felamaslen"><code>@​felamaslen</code></a> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/10131">vitest-dev/vitest#10131</a>
<a href="https://github.com/vitest-dev/vitest/commit/9423dc084"><!-- raw
HTML omitted -->(9423d)<!-- raw HTML omitted --></a></li>
<li>Project color label on html reporter  -  by <a
href="https://github.com/hi-ogawa"><code>@​hi-ogawa</code></a> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/10142">vitest-dev/vitest#10142</a>
<a href="https://github.com/vitest-dev/vitest/commit/596f73986"><!-- raw
HTML omitted -->(596f7)<!-- raw HTML omitted --></a></li>
<li>Fix <code>vi.defineHelper</code> called as object method  -  by <a
href="https://github.com/hi-ogawa"><code>@​hi-ogawa</code></a> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/10163">vitest-dev/vitest#10163</a>
<a href="https://github.com/vitest-dev/vitest/commit/122c25b5b"><!-- raw
HTML omitted -->(122c2)<!-- raw HTML omitted --></a></li>
<li>Alias <code>agent</code> reporter to <code>minimal</code>  -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/10157">vitest-dev/vitest#10157</a>
<a href="https://github.com/vitest-dev/vitest/commit/663b99fe3"><!-- raw
HTML omitted -->(663b9)<!-- raw HTML omitted --></a></li>
<li>Respect diff config options in soft assertions  -  by <a
href="https://github.com/Copilot"><code>@​Copilot</code></a>,
<strong>sheremet-va</strong> and <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/8696">vitest-dev/vitest#8696</a>
<a href="https://github.com/vitest-dev/vitest/commit/9787dedad"><!-- raw
HTML omitted -->(9787d)<!-- raw HTML omitted --></a></li>
<li>Respect diff config options in soft assertions &quot;  -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/8696">vitest-dev/vitest#8696</a>
<a href="https://github.com/vitest-dev/vitest/commit/7dc6d54fd"><!-- raw
HTML omitted -->(7dc6d)<!-- raw HTML omitted --></a></li>
<li><strong>ast-collect</strong>: Recognize _<em>vi_import</em> prefix
in static test discovery  -  by <a
href="https://github.com/Yejneshwar"><code>@​Yejneshwar</code></a> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/10129">vitest-dev/vitest#10129</a>
<a href="https://github.com/vitest-dev/vitest/commit/325463ab2"><!-- raw
HTML omitted -->(32546)<!-- raw HTML omitted --></a></li>
<li><strong>coverage</strong>: Descriptive error message when reports
directory is removed during test run  -  by <a
href="https://github.com/DaveT1991"><code>@​DaveT1991</code></a> and <a
href="https://github.com/AriPerkkio"><code>@​AriPerkkio</code></a> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/10117">vitest-dev/vitest#10117</a>
<a href="https://github.com/vitest-dev/vitest/commit/1413382e1"><!-- raw
HTML omitted -->(14133)<!-- raw HTML omitted --></a></li>
<li><strong>snapshot</strong>: Increase default snapshot max output
length  -  by <a
href="https://github.com/hi-ogawa"><code>@​hi-ogawa</code></a> and
<strong>Codex</strong> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/10150">vitest-dev/vitest#10150</a>
<a href="https://github.com/vitest-dev/vitest/commit/21e66ff63"><!-- raw
HTML omitted -->(21e66)<!-- raw HTML omitted --></a></li>
<li><strong>ui</strong>: Fix jsx/tsx syntax highlight  -  by <a
href="https://github.com/hi-ogawa"><code>@​hi-ogawa</code></a> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/10152">vitest-dev/vitest#10152</a>
<a href="https://github.com/vitest-dev/vitest/commit/f1b1f6c7b"><!-- raw
HTML omitted -->(f1b1f)<!-- raw HTML omitted --></a></li>
<li><strong>web-worker</strong>: Support MessagePort objects referenced
inside postMessage data  -  by <a
href="https://github.com/whitphx"><code>@​whitphx</code></a> and
<strong>Claude Opus 4.6 (1M context)</strong> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/9927">vitest-dev/vitest#9927</a>
and <a
href="https://redirect.github.com/vitest-dev/vitest/issues/10124">vitest-dev/vitest#10124</a>
<a href="https://github.com/vitest-dev/vitest/commit/7ad7d39af"><!-- raw
HTML omitted -->(7ad7d)<!-- raw HTML omitted --></a></li>
<li><strong>api</strong>: Make test-specification options writable  - 
by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/10154">vitest-dev/vitest#10154</a>
<a href="https://github.com/vitest-dev/vitest/commit/6abd557b7"><!-- raw
HTML omitted -->(6abd5)<!-- raw HTML omitted --></a></li>
</ul>
<h5>    <a
href="https://github.com/vitest-dev/vitest/compare/v4.1.4...v4.1.5">View
changes on GitHub</a></h5>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/vitest-dev/vitest/commit/e61f2dd2a0ba0a266c1c5e0334aad3799fee527f"><code>e61f2dd</code></a>
chore: release v4.1.8</li>
<li><a
href="https://github.com/vitest-dev/vitest/commit/e4067b3b150005fd42cf75f994300119245806b9"><code>e4067b3</code></a>
fix(browser): disable client <code>cdp</code> API when
<code>allowWrite/allowExec: false</code> [ba...</li>
<li><a
href="https://github.com/vitest-dev/vitest/commit/a09d47236e19fd3151351080c667036ca6164dc4"><code>a09d472</code></a>
chore: release v4.1.7</li>
<li><a
href="https://github.com/vitest-dev/vitest/commit/a8fd24c1cad2320b19fcc651413c7d928423bdc1"><code>a8fd24c</code></a>
chore: release v4.1.6</li>
<li><a
href="https://github.com/vitest-dev/vitest/commit/e399846850fedf10b8228cbe46a419628998acd9"><code>e399846</code></a>
chore: release v4.1.5</li>
<li><a
href="https://github.com/vitest-dev/vitest/commit/ac04bac206f49d793e7277084f707aee718aa936"><code>ac04bac</code></a>
chore: release v4.1.4</li>
<li><a
href="https://github.com/vitest-dev/vitest/commit/2dc0d62eaf08d8acb1f5042fdb8ac5b4a19fdc73"><code>2dc0d62</code></a>
chore: release v4.1.3</li>
<li><a
href="https://github.com/vitest-dev/vitest/commit/fc6f482f4c54bf6a766a0ff502b9843994af5bf5"><code>fc6f482</code></a>
chore: release v4.1.2</li>
<li><a
href="https://github.com/vitest-dev/vitest/commit/1f2d318493363855b66a22caaf7c1c10579029d5"><code>1f2d318</code></a>
chore: release v4.1.1</li>
<li><a
href="https://github.com/vitest-dev/vitest/commit/aaf9f18ae70e52b6e67aaf85f7f784d9dabd0acc"><code>aaf9f18</code></a>
fix(coverage): simplify provider types (<a
href="https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8/issues/9931">#9931</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/vitest-dev/vitest/commits/v4.1.8/packages/coverage-v8">compare
view</a></li>
</ul>
</details>
<details>
<summary>Maintainer changes</summary>
<p>This version was pushed to npm by <a
href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new
releaser for <code>@​vitest/coverage-v8</code> since your current
version.</p>
</details>
<br />

Updates `@vitest/ui` from 3.2.4 to 4.1.8
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/vitest-dev/vitest/releases">@​vitest/ui's
releases</a>.</em></p>
<blockquote>
<h2>v4.1.8</h2>
<h3>   🐞 Bug Fixes</h3>
<ul>
<li><strong>browser</strong>:
<ul>
<li>Disable client <code>cdp</code> API when <code>allowWrite/allowExec:
false</code> [backport to v4]  -  by <a
href="https://github.com/hi-ogawa"><code>@​hi-ogawa</code></a> and
<strong>Codex</strong> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/10450">vitest-dev/vitest#10450</a>
<a href="https://github.com/vitest-dev/vitest/commit/e4067b3b1"><!-- raw
HTML omitted -->(e4067)<!-- raw HTML omitted --></a></li>
<li>Remove orphaned Playwright route when same module is mocked via
multiple ids [backport to v4]  -  by <a
href="https://github.com/toxik"><code>@​toxik</code></a> and <a
href="https://github.com/Zelys-DFKH"><code>@​Zelys-DFKH</code></a> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/10474">vitest-dev/vitest#10474</a>
<a href="https://github.com/vitest-dev/vitest/commit/675b4343f"><!-- raw
HTML omitted -->(675b4)<!-- raw HTML omitted --></a></li>
</ul>
</li>
</ul>
<h5>    <a
href="https://github.com/vitest-dev/vitest/compare/v4.1.7...v4.1.8">View
changes on GitHub</a></h5>
<h2>v4.1.7</h2>
<h3>   🐞 Bug Fixes</h3>
<ul>
<li><strong>runner</strong>: Limit concurrency per task branch in
addition to per leaf callbacks (backport)  -  by <a
href="https://github.com/hi-ogawa"><code>@​hi-ogawa</code></a> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/10384">vitest-dev/vitest#10384</a>
<a href="https://github.com/vitest-dev/vitest/commit/4f0f2a1ee"><!-- raw
HTML omitted -->(4f0f2)<!-- raw HTML omitted --></a></li>
</ul>
<h5>    <a
href="https://github.com/vitest-dev/vitest/compare/v4.1.6...v4.1.7">View
changes on GitHub</a></h5>
<h2>v4.1.6</h2>
<h3>   🐞 Bug Fixes</h3>
<ul>
<li><strong>browser</strong>: Provide project reference in
<code>ToMatchScreenshotResolvePath</code>  -  by <a
href="https://github.com/macarie"><code>@​macarie</code></a> and <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/10138">vitest-dev/vitest#10138</a>
<a href="https://github.com/vitest-dev/vitest/commit/31882607c"><!-- raw
HTML omitted -->(31882)<!-- raw HTML omitted --></a></li>
<li>Global <code>sequence.concurrent: true</code> with top-level
<code>test(..., { concurrent: false })</code> + depreacte
<code>sequential</code> test API and options  -  by <a
href="https://github.com/hi-ogawa"><code>@​hi-ogawa</code></a>,
<strong>Codex</strong> and <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/10196">vitest-dev/vitest#10196</a>
<a href="https://github.com/vitest-dev/vitest/commit/2847dfa2a"><!-- raw
HTML omitted -->(2847d)<!-- raw HTML omitted --></a></li>
<li><strong>browser</strong>: Simplify orchestrator otel carrier  -  by
<a href="https://github.com/hi-ogawa"><code>@​hi-ogawa</code></a> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/10285">vitest-dev/vitest#10285</a>
<a href="https://github.com/vitest-dev/vitest/commit/18af98cee"><!-- raw
HTML omitted -->(18af9)<!-- raw HTML omitted --></a></li>
</ul>
<h3>   🏎 Performance</h3>
<ul>
<li>Stringify diff objects only once  -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/10276">vitest-dev/vitest#10276</a>
<a href="https://github.com/vitest-dev/vitest/commit/9f7b1528c"><!-- raw
HTML omitted -->(9f7b1)<!-- raw HTML omitted --></a></li>
</ul>
<h5>    <a
href="https://github.com/vitest-dev/vitest/compare/v4.1.5...v4.1.6">View
changes on GitHub</a></h5>
<h2>v4.1.5</h2>
<h3>   🚀 Experimental Features</h3>
<ul>
<li><strong>coverage</strong>: Istanbul to support
<code>instrumenter</code> option  -  by <a
href="https://github.com/BartWaardenburg"><code>@​BartWaardenburg</code></a>
and <a
href="https://github.com/AriPerkkio"><code>@​AriPerkkio</code></a> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/10119">vitest-dev/vitest#10119</a>
<a href="https://github.com/vitest-dev/vitest/commit/0e0ff41c7"><!-- raw
HTML omitted -->(0e0ff)<!-- raw HTML omitted --></a></li>
</ul>
<h3>   🐞 Bug Fixes</h3>
<ul>
<li>--project negation excludes browser instances  -  by <a
href="https://github.com/felamaslen"><code>@​felamaslen</code></a> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/10131">vitest-dev/vitest#10131</a>
<a href="https://github.com/vitest-dev/vitest/commit/9423dc084"><!-- raw
HTML omitted -->(9423d)<!-- raw HTML omitted --></a></li>
<li>Project color label on html reporter  -  by <a
href="https://github.com/hi-ogawa"><code>@​hi-ogawa</code></a> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/10142">vitest-dev/vitest#10142</a>
<a href="https://github.com/vitest-dev/vitest/commit/596f73986"><!-- raw
HTML omitted -->(596f7)<!-- raw HTML omitted --></a></li>
<li>Fix <code>vi.defineHelper</code> called as object method  -  by <a
href="https://github.com/hi-ogawa"><code>@​hi-ogawa</code></a> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/10163">vitest-dev/vitest#10163</a>
<a href="https://github.com/vitest-dev/vitest/commit/122c25b5b"><!-- raw
HTML omitted -->(122c2)<!-- raw HTML omitted --></a></li>
<li>Alias <code>agent</code> reporter to <code>minimal</code>  -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/10157">vitest-dev/vitest#10157</a>
<a href="https://github.com/vitest-dev/vitest/commit/663b99fe3"><!-- raw
HTML omitted -->(663b9)<!-- raw HTML omitted --></a></li>
<li>Respect diff config options in soft assertions  -  by <a
href="https://github.com/Copilot"><code>@​Copilot</code></a>,
<strong>sheremet-va</strong> and <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/8696">vitest-dev/vitest#8696</a>
<a href="https://github.com/vitest-dev/vitest/commit/9787dedad"><!-- raw
HTML omitted -->(9787d)<!-- raw HTML omitted --></a></li>
<li>Respect diff config options in soft assertions &quot;  -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/8696">vitest-dev/vitest#8696</a>
<a href="https://github.com/vitest-dev/vitest/commit/7dc6d54fd"><!-- raw
HTML omitted -->(7dc6d)<!-- raw HTML omitted --></a></li>
<li><strong>ast-collect</strong>: Recognize _<em>vi_import</em> prefix
in static test discovery  -  by <a
href="https://github.com/Yejneshwar"><code>@​Yejneshwar</code></a> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/10129">vitest-dev/vitest#10129</a>
<a href="https://github.com/vitest-dev/vitest/commit/325463ab2"><!-- raw
HTML omitted -->(32546)<!-- raw HTML omitted --></a></li>
<li><strong>coverage</strong>: Descriptive error message when reports
directory is removed during test run  -  by <a
href="https://github.com/DaveT1991"><code>@​DaveT1991</code></a> and <a
href="https://github.com/AriPerkkio"><code>@​AriPerkkio</code></a> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/10117">vitest-dev/vitest#10117</a>
<a href="https://github.com/vitest-dev/vitest/commit/1413382e1"><!-- raw
HTML omitted -->(14133)<!-- raw HTML omitted --></a></li>
<li><strong>snapshot</strong>: Increase default snapshot max output
length  -  by <a
href="https://github.com/hi-ogawa"><code>@​hi-ogawa</code></a> and
<strong>Codex</strong> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/10150">vitest-dev/vitest#10150</a>
<a href="https://github.com/vitest-dev/vitest/commit/21e66ff63"><!-- raw
HTML omitted -->(21e66)<!-- raw HTML omitted --></a></li>
<li><strong>ui</strong>: Fix jsx/tsx syntax highlight  -  by <a
href="https://github.com/hi-ogawa"><code>@​hi-ogawa</code></a> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/10152">vitest-dev/vitest#10152</a>
<a href="https://github.com/vitest-dev/vitest/commit/f1b1f6c7b"><!-- raw
HTML omitted -->(f1b1f)<!-- raw HTML omitted --></a></li>
<li><strong>web-worker</strong>: Support MessagePort objects referenced
inside postMessage data  -  by <a
href="https://github.com/whitphx"><code>@​whitphx</code></a> and
<strong>Claude Opus 4.6 (1M context)</strong> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/9927">vitest-dev/vitest#9927</a>
and <a
href="https://redirect.github.com/vitest-dev/vitest/issues/10124">vitest-dev/vitest#10124</a>
<a href="https://github.com/vitest-dev/vitest/commit/7ad7d39af"><!-- raw
HTML omitted -->(7ad7d)<!-- raw HTML omitted --></a></li>
<li><strong>api</strong>: Make test-specification options writable  - 
by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/10154">vitest-dev/vitest#10154</a>
<a href="https://github.com/vitest-dev/vitest/commit/6abd557b7"><!-- raw
HTML omitted -->(6abd5)<!-- raw HTML omitted --></a></li>
</ul>
<h5>    <a
href="https://github.com/vitest-dev/vitest/compare/v4.1.4...v4.1.5">View
changes on GitHub</a></h5>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/vitest-dev/vitest/commit/e61f2dd2a0ba0a266c1c5e0334aad3799fee527f"><code>e61f2dd</code></a>
chore: release v4.1.8</li>
<li><a
href="https://github.com/vitest-dev/vitest/commit/a09d47236e19fd3151351080c667036ca6164dc4"><code>a09d472</code></a>
chore: release v4.1.7</li>
<li><a
href="https://github.com/vitest-dev/vitest/commit/a8fd24c1cad2320b19fcc651413c7d928423bdc1"><code>a8fd24c</code></a>
chore: release v4.1.6</li>
<li><a
href="https://github.com/vitest-dev/vitest/commit/e399846850fedf10b8228cbe46a419628998acd9"><code>e399846</code></a>
chore: release v4.1.5</li>
<li><a
href="https://github.com/vitest-dev/vitest/commit/596f73986abe2161a9a06f0ca03df68e82690b21"><code>596f739</code></a>
fix: project color label on html reporter (<a
href="https://github.com/vitest-dev/vitest/tree/HEAD/packages/ui/issues/10142">#10142</a>)</li>
<li><a
href="https://github.com/vitest-dev/vitest/commit/f1b1f6c7b053381f1d9ae184298240a4faa581b0"><code>f1b1f6c</code></a>
fix(ui): fix jsx/tsx syntax highlight (<a
href="https://github.com/vitest-dev/vitest/tree/HEAD/packages/ui/issues/10152">#10152</a>)</li>
<li><a
href="https://github.com/vitest-dev/vitest/commit/ac04bac206f49d793e7277084f707aee718aa936"><code>ac04bac</code></a>
chore: release v4.1.4</li>
<li><a
href="https://github.com/vitest-dev/vitest/commit/d4fbb5cc931754d05327264baaf7b4364ed02f84"><code>d4fbb5c</code></a>
feat(experimental): support aria snapshot (<a
href="https://github.com/vitest-dev/vitest/tree/HEAD/packages/ui/issues/9668">#9668</a>)</li>
<li><a
href="https://github.com/vitest-dev/vitest/commit/2dc0d62eaf08d8acb1f5042fdb8ac5b4a19fdc73"><code>2dc0d62</code></a>
chore: release v4.1.3</li>
<li><a
href="https://github.com/vitest-dev/vitest/commit/89ca0e2549db38a35e8c996beba45716ffb35a5a"><code>89ca0e2</code></a>
feat(experimental): add <code>TestAttachment.bodyEncoding</code> (<a
href="https://github.com/vitest-dev/vitest/tree/HEAD/packages/ui/issues/9969">#9969</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/vitest-dev/vitest/commits/v4.1.8/packages/ui">compare
view</a></li>
</ul>
</details>
<details>
<summary>Maintainer changes</summary>
<p>This version was pushed to npm by <a
href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new
releaser for <code>@​vitest/ui</code> since your current version.</p>
</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 this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/microsoft/typespec/network/alerts).

</details>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: jorgerangel-msft <102122018+jorgerangel-msft@users.noreply.github.com>
…@error (microsoft#10555)

Using `@defaultResponse` on a model that already has `@statusCode` or
`@error` produces duplicate `$ref` entries in OpenAPI output (e.g.,
`anyOf` with two identical refs). Rather than silently generating
invalid output, emit a diagnostic warning at the source.

### Changes

- **`packages/openapi/src/lib.ts`** — New
`default-response-with-status-code` diagnostic with `statusCode` and
`error` message variants
- **`packages/openapi/src/decorators.ts`** — `$defaultResponse` now
checks the target model for existing `@statusCode` properties and
`@error` decoration before setting the wildcard status code
- **`packages/openapi/test/decorators.test.ts`** — Tests for both
warning cases and the clean no-warning path

### Example

```typespec
// This now emits a warning:
@error
@defaultResponse
model DefaultError is Error<500>;

// Recommended alternatives:
@error
model MyError { message: string; }
op read(): Data | MyError;

// Or split concerns:
@error model Error500 is Error<500>;
@error @defaultResponse model DefaultError { message: string; }
alias Result<T> = T | Error500 | DefaultError;
```

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: timotheeguerin <1031227+timotheeguerin@users.noreply.github.com>
Co-authored-by: Timothee Guerin <tiguerin@microsoft.com>
…icrosoft#10856)

TypeSpec linter docs explain how to define rules but did not provide
guidance for naming rule IDs beyond examples, which made non-`no-*`
rules less predictable. This PR adds concise naming conventions next to
`createRule({ name })` so authors can choose consistent, user-readable
rule names.

- **Added rule naming guidance in linter authoring docs**
- Updated `website/src/content/docs/docs/extending-typespec/linters.md`
with a new **“Naming convention”** section.
  - Documented:
    - short `kebab-case` names
    - excluding package/library prefix from `name`
    - `no-<thing>` for prohibitions
    - `use-<preferred-thing>` for preferred patterns
- subject-oriented forms for domain checks (e.g.
`<subject>-missing-<thing>`, `<subject>-invalid-<condition>`)

- **Clarified user-facing context for rule IDs**
- Explicitly notes rule names are surfaced in diagnostics,
`tspconfig.yaml`, docs URLs, and suppression comments, guiding authors
toward concise readable IDs.

```ts
export const rule = createRule({
  name: "use-standard-resource-model",
  // ...
});
```

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: timotheeguerin <1031227+timotheeguerin@users.noreply.github.com>
The `internal` access modifier has been stable with no issues, so it no
longer needs the experimental warning. This removes the
`experimental-feature` diagnostic emitted on every use of `internal` and
cleans up all associated suppressions.

## Changes

- **`modifiers.ts`** — Remove the block that emitted
`experimental-feature` (`messageId: "internal"`) whenever the `internal`
modifier was used
- **`messages.ts`** — Remove the `internal` messageId from the
`experimental-feature` diagnostic definition
- **`prototypes.tsp`** — Remove `#suppress "experimental-feature"` from
`internal extern dec` (decorator declarations were never independently
experimental; the suppress was only needed for `internal`)
- **`visibility.tsp`, `private.decorators.tsp`** — Retain existing
`#suppress "experimental-feature"` on `internal extern fn` declarations
— function declarations (`fn`) remain experimental
- **`internal.test.ts`** — Update tests to reflect `internal` no longer
emits any diagnostic; previously-allowed usages that only expected
`experimental-feature` now expect clean compilation
- **`access-modifiers.md`** — Remove the "Suppressing the experimental
warning" section

### Before / After

```typespec
// Before: emits experimental-feature warning, requires suppression
#suppress "experimental-feature" "suppress internal warning"
internal model MyInternalModel {}

// After: no warning, no suppression needed
internal model MyInternalModel {}
```

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: timotheeguerin <1031227+timotheeguerin@users.noreply.github.com>
…lient-python (microsoft#10850)

Bumps
[vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest)
from 4.0.18 to 4.1.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/vitest-dev/vitest/releases">vitest's
releases</a>.</em></p>
<blockquote>
<h2>v4.1.0</h2>
<p>Vitest 4.1 is out!</p>
<p>This release page lists all changes made to the project during the
4.1 beta. To get a review of all the new features, read our <a
href="https://vitest.dev/blog/vitest-4-1">blog post</a>.</p>
<h3>   🚀 Features</h3>
<ul>
<li>Return a disposable from doMock()  -  by <a
href="https://github.com/kirkwaiblinger"><code>@​kirkwaiblinger</code></a>
in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/9332">vitest-dev/vitest#9332</a>
<a href="https://github.com/vitest-dev/vitest/commit/e3e659a96"><!-- raw
HTML omitted -->(e3e65)<!-- raw HTML omitted --></a></li>
<li>Added chai style assertions  -  by <a
href="https://github.com/ronnakamoto"><code>@​ronnakamoto</code></a> and
<a href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a>
in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/8842">vitest-dev/vitest#8842</a>
<a href="https://github.com/vitest-dev/vitest/commit/841df9ac5"><!-- raw
HTML omitted -->(841df)<!-- raw HTML omitted --></a></li>
<li>Update to sinon/fake-timers v15 and add <code>setTickMode</code> to
timer controls  -  by <a
href="https://github.com/atscott"><code>@​atscott</code></a> and <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/8726">vitest-dev/vitest#8726</a>
<a href="https://github.com/vitest-dev/vitest/commit/4b480aaed"><!-- raw
HTML omitted -->(4b480)<!-- raw HTML omitted --></a></li>
<li>Expose matcher types  -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9448">vitest-dev/vitest#9448</a>
<a href="https://github.com/vitest-dev/vitest/commit/3e4b913b1"><!-- raw
HTML omitted -->(3e4b9)<!-- raw HTML omitted --></a></li>
<li>Add <code>toTestSpecification</code> to reported tasks  -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9464">vitest-dev/vitest#9464</a>
<a href="https://github.com/vitest-dev/vitest/commit/1a4705da9"><!-- raw
HTML omitted -->(1a470)<!-- raw HTML omitted --></a></li>
<li>Show a warning if <code>vi.mock</code> or <code>vi.hoisted</code>
are declared outside of top level of the module  -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9387">vitest-dev/vitest#9387</a>
<a href="https://github.com/vitest-dev/vitest/commit/5db54a468"><!-- raw
HTML omitted -->(5db54)<!-- raw HTML omitted --></a></li>
<li>Track and display expectedly failed tests (.fails) in UI and CLI  - 
by <a href="https://github.com/Copilot"><code>@​Copilot</code></a>,
<strong>sheremet-va</strong> and <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9476">vitest-dev/vitest#9476</a>
<a href="https://github.com/vitest-dev/vitest/commit/77d75fd34"><!-- raw
HTML omitted -->(77d75)<!-- raw HTML omitted --></a></li>
<li>Support tags  -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9478">vitest-dev/vitest#9478</a>
<a href="https://github.com/vitest-dev/vitest/commit/de7c8a521"><!-- raw
HTML omitted -->(de7c8)<!-- raw HTML omitted --></a></li>
<li>Implement <code>aroundEach</code> and <code>aroundAll</code> hooks
 -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9450">vitest-dev/vitest#9450</a>
<a href="https://github.com/vitest-dev/vitest/commit/2a8cb9dc2"><!-- raw
HTML omitted -->(2a8cb)<!-- raw HTML omitted --></a></li>
<li>Stabilize experimental features  -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9529">vitest-dev/vitest#9529</a>
<a href="https://github.com/vitest-dev/vitest/commit/b5fd2a16a"><!-- raw
HTML omitted -->(b5fd2)<!-- raw HTML omitted --></a></li>
<li>Accept <code>new</code> or <code>all</code> in <code>--update</code>
flag  -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9543">vitest-dev/vitest#9543</a>
<a href="https://github.com/vitest-dev/vitest/commit/a5acf28a5"><!-- raw
HTML omitted -->(a5acf)<!-- raw HTML omitted --></a></li>
<li>Support <code>meta</code> in test options  -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9535">vitest-dev/vitest#9535</a>
<a href="https://github.com/vitest-dev/vitest/commit/7d622e3d1"><!-- raw
HTML omitted -->(7d622)<!-- raw HTML omitted --></a></li>
<li>Support type inference with a new <code>test.extend</code> syntax
 -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9550">vitest-dev/vitest#9550</a>
<a href="https://github.com/vitest-dev/vitest/commit/e53854fcc"><!-- raw
HTML omitted -->(e5385)<!-- raw HTML omitted --></a></li>
<li>Support vite 8 beta, fix type issues in the config with different
vite versions  -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9587">vitest-dev/vitest#9587</a>
<a href="https://github.com/vitest-dev/vitest/commit/990281dfd"><!-- raw
HTML omitted -->(99028)<!-- raw HTML omitted --></a></li>
<li>Add assertion helper to hide internal stack traces  -  by <a
href="https://github.com/hi-ogawa"><code>@​hi-ogawa</code></a> and
<strong>Claude Opus 4.6</strong> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/9594">vitest-dev/vitest#9594</a>
<a href="https://github.com/vitest-dev/vitest/commit/eeb0ae2f8"><!-- raw
HTML omitted -->(eeb0a)<!-- raw HTML omitted --></a></li>
<li>Store failure screenshots using artifacts API  -  by <a
href="https://github.com/macarie"><code>@​macarie</code></a> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/9588">vitest-dev/vitest#9588</a>
<a href="https://github.com/vitest-dev/vitest/commit/24603e3c4"><!-- raw
HTML omitted -->(24603)<!-- raw HTML omitted --></a></li>
<li>Allow <code>vitest list</code> to statically collect tests instead
of running files to collect them  -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9630">vitest-dev/vitest#9630</a>
<a href="https://github.com/vitest-dev/vitest/commit/7a8e7fc20"><!-- raw
HTML omitted -->(7a8e7)<!-- raw HTML omitted --></a></li>
<li>Add <code>--detect-async-leaks</code>  -  by <a
href="https://github.com/AriPerkkio"><code>@​AriPerkkio</code></a> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/9528">vitest-dev/vitest#9528</a>
<a href="https://github.com/vitest-dev/vitest/commit/c594d4af3"><!-- raw
HTML omitted -->(c594d)<!-- raw HTML omitted --></a></li>
<li>Implement <code>mockThrow</code> and <code>mockThrowOnce</code>  - 
by <a
href="https://github.com/thor-juhasz"><code>@​thor-juhasz</code></a> and
<a href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a>
in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/9512">vitest-dev/vitest#9512</a>
<a href="https://github.com/vitest-dev/vitest/commit/619179fb7"><!-- raw
HTML omitted -->(61917)<!-- raw HTML omitted --></a></li>
<li>Support <code>update: &quot;none&quot;</code> and add docs about
snapshots behavior on CI  -  by <a
href="https://github.com/hi-ogawa"><code>@​hi-ogawa</code></a> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/9700">vitest-dev/vitest#9700</a>
<a href="https://github.com/vitest-dev/vitest/commit/05f1854e2"><!-- raw
HTML omitted -->(05f18)<!-- raw HTML omitted --></a></li>
<li>Support playwright <code>launchOptions</code> with
<code>connectOptions</code>  -  by <a
href="https://github.com/hi-ogawa"><code>@​hi-ogawa</code></a> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/9702">vitest-dev/vitest#9702</a>
<a href="https://github.com/vitest-dev/vitest/commit/f0ff1b2a0"><!-- raw
HTML omitted -->(f0ff1)<!-- raw HTML omitted --></a></li>
<li>Add <code>page/locator.mark</code> API to enhance playwright trace
 -  by <a href="https://github.com/hi-ogawa"><code>@​hi-ogawa</code></a>
in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/9652">vitest-dev/vitest#9652</a>
<a href="https://github.com/vitest-dev/vitest/commit/d0ee546fe"><!-- raw
HTML omitted -->(d0ee5)<!-- raw HTML omitted --></a></li>
<li><strong>api</strong>:
<ul>
<li>Support tests starting or ending with <code>test</code> in
<code>experimental_parseSpecification</code>  -  by <a
href="https://github.com/jgillick"><code>@​jgillick</code></a> and
<strong>Jeremy Gillick</strong> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/9235">vitest-dev/vitest#9235</a>
<a href="https://github.com/vitest-dev/vitest/commit/2f367fad3"><!-- raw
HTML omitted -->(2f367)<!-- raw HTML omitted --></a></li>
<li>Add filters to <code>createSpecification</code>  -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9336">vitest-dev/vitest#9336</a>
<a href="https://github.com/vitest-dev/vitest/commit/c8e6c7fbf"><!-- raw
HTML omitted -->(c8e6c)<!-- raw HTML omitted --></a></li>
<li>Expose <code>runTestFiles</code> as alternative to
<code>runTestSpecifications</code>  -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9443">vitest-dev/vitest#9443</a>
<a href="https://github.com/vitest-dev/vitest/commit/43d761821"><!-- raw
HTML omitted -->(43d76)<!-- raw HTML omitted --></a></li>
<li>Add <code>allowWrite</code> and <code>allowExec</code> options to
<code>api</code>  -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9350">vitest-dev/vitest#9350</a>
<a href="https://github.com/vitest-dev/vitest/commit/20e00ef78"><!-- raw
HTML omitted -->(20e00)<!-- raw HTML omitted --></a></li>
<li>Allow passing down test cases to <code>toTestSpecification</code>
 -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9627">vitest-dev/vitest#9627</a>
<a href="https://github.com/vitest-dev/vitest/commit/6f17d5ddf"><!-- raw
HTML omitted -->(6f17d)<!-- raw HTML omitted --></a></li>
</ul>
</li>
<li><strong>browser</strong>:
<ul>
<li>Add <code>userEvent.wheel</code> API  -  by <a
href="https://github.com/macarie"><code>@​macarie</code></a> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/9188">vitest-dev/vitest#9188</a>
<a href="https://github.com/vitest-dev/vitest/commit/660801979"><!-- raw
HTML omitted -->(66080)<!-- raw HTML omitted --></a></li>
<li>Add <code>filterNode</code> option to prettyDOM for filtering
browser assertion error output  -  by <a
href="https://github.com/Copilot"><code>@​Copilot</code></a>,
<strong>sheremet-va</strong> and <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9475">vitest-dev/vitest#9475</a>
<a href="https://github.com/vitest-dev/vitest/commit/d3220fcd8"><!-- raw
HTML omitted -->(d3220)<!-- raw HTML omitted --></a></li>
<li>Support playwright persistent context  -  by <a
href="https://github.com/hi-ogawa"><code>@​hi-ogawa</code></a>,
<strong>Claude Opus 4.6</strong> and <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9229">vitest-dev/vitest#9229</a>
<a href="https://github.com/vitest-dev/vitest/commit/f865d2ba4"><!-- raw
HTML omitted -->(f865d)<!-- raw HTML omitted --></a></li>
<li>Added <code>detailsPanelPosition</code> option and button  -  by <a
href="https://github.com/shairez"><code>@​shairez</code></a> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/9525">vitest-dev/vitest#9525</a>
<a href="https://github.com/vitest-dev/vitest/commit/c8a31147c"><!-- raw
HTML omitted -->(c8a31)<!-- raw HTML omitted --></a></li>
<li>Use BlazeDiff instead of pixelmatch  -  by <a
href="https://github.com/macarie"><code>@​macarie</code></a> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/9514">vitest-dev/vitest#9514</a>
<a href="https://github.com/vitest-dev/vitest/commit/309362089"><!-- raw
HTML omitted -->(30936)<!-- raw HTML omitted --></a></li>
<li>Add <code>findElement</code> and enable strict mode in webdriverio
and preview  -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9677">vitest-dev/vitest#9677</a>
<a href="https://github.com/vitest-dev/vitest/commit/c3f37721c"><!-- raw
HTML omitted -->(c3f37)<!-- raw HTML omitted --></a></li>
</ul>
</li>
<li><strong>cli</strong>:
<ul>
<li>Add <a href="https://github.com/bomb"><code>@​bomb</code></a>.sh/tab
completions  -  by <a
href="https://github.com/AmirSa12"><code>@​AmirSa12</code></a> and <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/8639">vitest-dev/vitest#8639</a>
<a href="https://github.com/vitest-dev/vitest/commit/200f31704"><!-- raw
HTML omitted -->(200f3)<!-- raw HTML omitted --></a></li>
</ul>
</li>
<li><strong>coverage</strong>:
<ul>
<li>Support <code>ignore start/stop</code> ignore hints  -  by <a
href="https://github.com/AriPerkkio"><code>@​AriPerkkio</code></a> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/9204">vitest-dev/vitest#9204</a>
<a href="https://github.com/vitest-dev/vitest/commit/e59c94ba6"><!-- raw
HTML omitted -->(e59c9)<!-- raw HTML omitted --></a></li>
<li>Add <code>coverage.changed</code> option to report only changed
files  -  by <a
href="https://github.com/kykim00"><code>@​kykim00</code></a> and <a
href="https://github.com/AriPerkkio"><code>@​AriPerkkio</code></a> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/9521">vitest-dev/vitest#9521</a>
<a href="https://github.com/vitest-dev/vitest/commit/1d9392c67"><!-- raw
HTML omitted -->(1d939)<!-- raw HTML omitted --></a></li>
</ul>
</li>
<li><strong>experimental</strong>:
<ul>
<li>Add <code>onModuleRunner</code> hook to <code>worker.init</code>  - 
by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9286">vitest-dev/vitest#9286</a>
<a href="https://github.com/vitest-dev/vitest/commit/e977f3deb"><!-- raw
HTML omitted -->(e977f)<!-- raw HTML omitted --></a></li>
<li>Option to disable the module runner  -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> and
<a href="https://github.com/AriPerkkio"><code>@​AriPerkkio</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9210">vitest-dev/vitest#9210</a>
<a href="https://github.com/vitest-dev/vitest/commit/9be6121ee"><!-- raw
HTML omitted -->(9be61)<!-- raw HTML omitted --></a></li>
</ul>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/vitest-dev/vitest/commit/4150b913171bda3971a4a4c47c633c26d0c6ae45"><code>4150b91</code></a>
chore: release v4.1.0</li>
<li><a
href="https://github.com/vitest-dev/vitest/commit/1de0aa22dd6311a93546a75a3c58a6be519c1baf"><code>1de0aa2</code></a>
fix: correctly identify concurrent test during static analysis (<a
href="https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/9846">#9846</a>)</li>
<li><a
href="https://github.com/vitest-dev/vitest/commit/c3cac1c1b5a91d921942e9391fbd94841717363f"><code>c3cac1c</code></a>
fix: use isAgent check, not just TTY, for watch mode (<a
href="https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/9841">#9841</a>)</li>
<li><a
href="https://github.com/vitest-dev/vitest/commit/eab68ba2b8ea6f89717c0b885c573579659d7c3b"><code>eab68ba</code></a>
chore(deps): update all non-major dependencies (<a
href="https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/9824">#9824</a>)</li>
<li><a
href="https://github.com/vitest-dev/vitest/commit/031f02a89be34491c441b4da9c4e2bacb7db71df"><code>031f02a</code></a>
fix: allow catch/finally for async assertion (<a
href="https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/9827">#9827</a>)</li>
<li><a
href="https://github.com/vitest-dev/vitest/commit/3e9e096a231fa0ec6475da82e36cbd6fcc9bc8f9"><code>3e9e096</code></a>
feat(reporters): add <code>agent</code> reporter to reduce ai agent
token usage (<a
href="https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/9779">#9779</a>)</li>
<li><a
href="https://github.com/vitest-dev/vitest/commit/0c2c01361a95dd26d0d7fd7bc38bcca8dbc6e5d2"><code>0c2c013</code></a>
chore: release v4.1.0-beta.6</li>
<li><a
href="https://github.com/vitest-dev/vitest/commit/8181e06e765f4d043818b244c76795022fa78ff6"><code>8181e06</code></a>
fix: <code>hideSkippedTests</code> should not hide
<code>test.todo</code> (fix <a
href="https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/9562">#9562</a>)
(<a
href="https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/9781">#9781</a>)</li>
<li><a
href="https://github.com/vitest-dev/vitest/commit/a8216b0014b83612e40ef49f919d5293b68717b3"><code>a8216b0</code></a>
fix: manual and redirect mock shouldn't <code>load</code> or
<code>transform</code> original module...</li>
<li><a
href="https://github.com/vitest-dev/vitest/commit/689a22a1b8c79595f6f4ae82d2b43c895d7f1c50"><code>689a22a</code></a>
fix(browser): types of <code>getCDPSession</code> and <code>cdp()</code>
(<a
href="https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/9716">#9716</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/vitest-dev/vitest/commits/v4.1.0/packages/vitest">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=vitest&package-manager=npm_and_yarn&previous-version=4.0.18&new-version=4.1.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

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 this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/microsoft/typespec/network/alerts).

</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Qiaoqiao Zhang <55688292+qiaozha@users.noreply.github.com>
## Summary
- add project-only `features` support in `tspconfig.yaml` with
validation for known compiler feature names
- gate internal modifier and function declaration experimental warnings
behind compiler feature flags for project code
- add `tsp info features` to list available compiler features and
enabled state

## Validation
- `pnpm --filter @typespec/compiler test`
- `pnpm --filter @typespec/compiler build`
- `pnpm --filter @typespec/compiler lint`
- touched-file `prettier --check`
- `pnpm chronus verify`
Closes microsoft#10767

This keeps the OpenAPI extension-key validation tied to the metadata
object literal, so invalid keys such as `custom` are reported on the
offending property instead of the tag name.

Verification:
- `npx pnpm --filter @typespec/openapi build`
- `npx pnpm --filter @typespec/openapi test -- decorators.test.ts`

Signed-off-by: kiwigitops <kiwisclubco@gmail.com>
…vscode (microsoft#10847)

# Improve telemetry instrumentation and error diagnostics

## Summary

Based on analysis of 2 weeks of telemetry data (71K+ events, 2,327
unique users), this PR improves telemetry instrumentation gaps and error
diagnostics across the typespec-vscode extension and the compiler LSP
server.

## Changes

### Extension telemetry improvements (`packages/typespec-vscode`)

**`install-tsp-compiler.ts`** — Added `lastStep` tracking and
`logOperationDetailTelemetry` for failure/timeout cases. Previously, all
3 install failures in the dataset had `lastStep=undefined` and zero
error detail.

**`openapi3-preview.ts`** — Refactored `getOpenApi3OutputFilePath` to
return `Result<string>` instead of `string | undefined` to properly
distinguish compile failures from user cancellations. Added `lastStep`
for the success path (`"Preview panel opened"`). Added compile error
details to telemetry.

**`extension.ts` (start-server)** — Added `lastStep` for the "compiler
not found" state before the install prompt, and for the
cancelled-install path. These covered 66 events (34 fail + 32 cancelled)
that previously had `lastStep=undefined`.

**`extension.ts` (server-path-changed)** — Added `lastStep` for the
config change handler. All 30 events previously had
`lastStep=undefined`.

### Better error message for node/tsp not on PATH
(`packages/typespec-vscode`)

**`tsp-executable-resolver.ts`** — When the compiler is found locally
but neither `node` nor `tsp` is available on PATH, the extension now
shows an actionable error message explaining the likely cause
(nvm/fnm/volta PATH not inherited) and three concrete fixes. Previously,
this silently fell through to `spawn tsp ENOENT`. This was the #1 root
cause of blocked users — 107 failure events from users who never
recovered.

### Server-side error detail preservation (`packages/compiler`)

**`serverlib.ts`** — Added `wrapUnhandledError` wrapper around all LSP
server handlers. When a handler crashes, the wrapper catches the error
and re-throws with the full server-side stack trace in the error message
(via `inspect(e)`). Previously, the JSON-RPC layer only forwarded
`error.message` to the client, so the server-side crash location was
completely lost in telemetry. This addresses the 297 `Cannot read
properties of undefined (reading 'kind')` errors that were previously
opaque.

## Telemetry data highlights

- **2,327 total users** in the 2-week window
- **101 users (4.3%) completely blocked** — never had a successful
`start-server` in 2 weeks
- **#1 root cause**: `spawn tsp ENOENT` (node not on PATH) — 107 events
from never-recovered users, disproportionately macOS (60%)
- **#2 root cause**: compiler not found — 50 events
- **297 `reading 'kind'` unhandled errors** — now will include
server-side stack for future diagnosis

---------

Co-authored-by: Timothee Guerin <timothee.guerin@outlook.com>
…osoft#10455)

- [x] Identify root cause in
`packages/playground/src/react/standalone.tsx` where `emitter` was being
explicitly cleared when a `sampleName` was set
- [x] Remove `emitter: undefined` from the save logic so the emitter
query param is retained alongside `?sample=...`
- [x] Add changelog entry under `.chronus/changes`
- [x] Apply prettier formatting

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: JoshLove-msft <54595583+JoshLove-msft@users.noreply.github.com>
Co-authored-by: Timothee Guerin <tiguerin@microsoft.com>
…d-server (microsoft#10718)

The playground's C# `/generate` endpoint spawns a fresh `dotnet`
subprocess on every request, with no caching anywhere in the pipeline.
Identical replays (undo/redo, share-link reloads, demo specs hit by many
users) pay the full cost. This implements Item 3, Tier 1 of the perf
plan: a container-local in-memory response cache.

### Changes

- **`playground-server/GenerationCache.cs` (new)** — `IGenerationCache`
+ `MemoryGenerationCache` backed by `IMemoryCache`.
`ComputeKey(generatorName, codeModel, configuration, generatorVersion)`
returns a SHA-256 hex over a length-prefixed concatenation (avoids
cross-boundary collisions like `"Foo"+"Bar"` vs `"FooBar"+""`). Entry
`Size` = body byte length; backing cache `SizeLimit = 256 MB`. Entries
are bounded by `SizeLimit`-driven compaction only — there is no TTL,
since a new generator binary deploy implicitly invalidates the cache via
the version-keyed entries.
- **`playground-server/Program.cs`** — registers `AddMemoryCache` +
`IGenerationCache` singleton. Reads the generator DLL's
`FileVersionInfo.FileVersion` once at startup and folds it into the key,
so a deploy of a new binary implicitly invalidates every entry.
`/generate` short-circuits on hit (returns cached bytes, skips the
subprocess) and serializes-once-then-caches on miss. Responses carry
`X-Cache: HIT|MISS`. Cache hits are recorded in telemetry: a hit emits
the `PlaygroundGenerate` event with outcome `cache_hit`, and every
request carries a `cacheStatus` (`hit`|`miss`) property through the
existing telemetry pipeline.
- **`playground-server.Tests/` (new NUnit project, 14 tests)** — key
determinism &amp; format; sensitivity to each of the four components
(including version → invalidation); length-prefix unambiguity;
null-argument guards; get/miss/set/overwrite round-trip; `SizeLimit`
compaction.

### Cache flow

```csharp
var cacheKey = MemoryGenerationCache.ComputeKey(generatorName, body.CodeModel!, body.Configuration!, generatorVersion);
if (cache.TryGet(cacheKey, out var cached) && cached is not null)
{
    request.HttpContext.Response.Headers["X-Cache"] = "HIT";
    telemetryProperties["cacheStatus"] = "hit";
    TrackGenerateEvent("cache_hit");
    return Results.Bytes(cached.Body, cached.ContentType); // skips dotnet subprocess
}
request.HttpContext.Response.Headers["X-Cache"] = "MISS";
telemetryProperties["cacheStatus"] = "miss";
// ...run generator, then:
var responseBytes = JsonSerializer.SerializeToUtf8Bytes(new GenerateResponse(files), GenerateJsonContext.Default.GenerateResponse);
cache.Set(cacheKey, new CachedGenerationResponse(responseBytes, "application/json"));
return Results.Bytes(responseBytes, "application/json");
```

### Out of scope

Tier 2 file-based cache and Items 1/2/4/5 of the issue. Generator
internals are untouched; production `tsp` codegen is unaffected.

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: jorgerangel-msft <102122018+jorgerangel-msft@users.noreply.github.com>
Co-authored-by: JoshLove-msft <54595583+JoshLove-msft@users.noreply.github.com>
Co-authored-by: jolov <jolov@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: iscai-msft <isabellavcai@gmail.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…internal (microsoft#10852)

A convenience method generated as `public` but taking a parameter whose
type is `internal` (e.g. a model customized to internal via `client.tsp`
or custom code) fails to compile with an inconsistent-accessibility
error.

## Changes

- **`ScmMethodProviderCollection`**: added
`GetConvenienceMethodModifiers`, which downgrades a convenience method
from `public` to `internal` when the enclosing type is not internal and
not private (covering public, protected, and similar visibilities) and
any signature parameter type is non-public (`!p.Type.IsPublic`). Applied
only to the generator-controlled signature path; customized
partial-method signatures keep the user's explicit modifiers, and
already-internal/private enclosing types are left untouched.
- **Tests**: added coverage for the internal-parameter case via a
`client.tsp` access override (method becomes `internal`), the
internal-parameter case via custom code using a TestData `internal
partial class` (method becomes `internal`), and the public-parameter
case (method stays `public`).

```csharp
private MethodSignatureModifiers GetConvenienceMethodModifiers(
    MethodSignatureModifiers modifiers,
    IReadOnlyList<ParameterProvider> signatureParameters)
{
    var enclosingTypeModifiers = EnclosingType.DeclarationModifiers;
    if (modifiers.HasFlag(MethodSignatureModifiers.Public) &&
        !enclosingTypeModifiers.HasFlag(TypeSignatureModifiers.Internal) &&
        !enclosingTypeModifiers.HasFlag(TypeSignatureModifiers.Private) &&
        signatureParameters.Any(p => !p.Type.IsPublic))
    {
        modifiers &= ~MethodSignatureModifiers.Public;
        modifiers |= MethodSignatureModifiers.Internal;
    }

    return modifiers;
}
```

Regenerating the existing test libraries produced no output diffs,
confirming the change only affects the previously-broken
internal-parameter scenario.

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: jorgerangel-msft <102122018+jorgerangel-msft@users.noreply.github.com>
…on in Build-Packages.ps1" (microsoft#10881)

Reverts microsoft#10817

After discussion, we revert this PR to avoid duplicated alpha release
for same python emitter content.
…ttp-client-python (microsoft#10864)

Bumps
[fast-xml-parser](https://github.com/NaturalIntelligence/fast-xml-parser)
from 5.5.10 to 5.8.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/NaturalIntelligence/fast-xml-parser/releases">fast-xml-parser's
releases</a>.</em></p>
<blockquote>
<h2>update strnum, FXB. Use xml-naming for DOCTYPE</h2>
<ul>
<li>integrate xml-naming to validate DOCTYPE entity name and notation
name (using qname because of backward compatibility)
<ul>
<li>This will consider xml-version as well. '1.0' is default</li>
</ul>
</li>
<li>update strnum to 2.3.0
<ul>
<li>You can set octal and binary parsing which is by deault off</li>
</ul>
</li>
<li>update fast-xml-builder to 1.2.0
<ul>
<li>can sanitize tag names if found invalid</li>
<li>fix format output</li>
</ul>
</li>
</ul>
<h2>fix minor old bugs and update builder</h2>
<ul>
<li>fix: alwaysCreateTextNode should create text node when attributes
are present for self closing node</li>
<li>fix stop node expression when ns prefix is removed (found by <a
href="https://github.com/iruizsalinas">iruizsalinas</a>)</li>
<li>update XML Builder to 1.1.7</li>
<li>mark addEntity deprecated</li>
</ul>
<h2>backward compatibility for numerical external entity, fix <a
href="https://redirect.github.com/NaturalIntelligence/fast-xml-parser/issues/705">#705</a>,
<a
href="https://redirect.github.com/NaturalIntelligence/fast-xml-parser/issues/817">#817</a></h2>
<ul>
<li>allow numerical external entity for backward compatibility</li>
<li>fix <a
href="https://redirect.github.com/NaturalIntelligence/fast-xml-parser/issues/705">#705</a>:
attributesGroupName working with preserveOrder</li>
<li>fix <a
href="https://redirect.github.com/NaturalIntelligence/fast-xml-parser/issues/817">#817</a>:
stackoverflow when tag expression is very long</li>
</ul>
<h2>upgrade <code>@​nodable/entities</code> and FXB</h2>
<ul>
<li>Use <code>@nodable/entities</code> v2.1.0
<ul>
<li>breaking changes
<ul>
<li>single entity scan. You're not allowed to use entity value to form
another entity name.</li>
<li>you cant add numeric external entity</li>
<li>entity error message when expantion limit is crossed might
change</li>
</ul>
</li>
<li>typings are updated for new options related to process entity</li>
<li>please follow documentation of <code>@nodable/entities</code> for
more detail.</li>
<li>performance
<ul>
<li>if processEntities is false, then there should not be impact on
performance.</li>
<li>if processEntities is true, but you dont pass entity decoder
separately then performance may degrade by approx 8-10%</li>
<li>if processEntities is true, and you pass entity decoder separately
<ul>
<li>if no entity then performance should be same as before</li>
<li>if there are entities then performance should be increased from past
versions</li>
</ul>
</li>
</ul>
</li>
<li>ignoreAttributes is not required to be set to set xml version for
NCR entity value</li>
</ul>
</li>
<li>update 'fast-xml-builder' to sanitize malicious CDATA and comment's
content</li>
</ul>
<h2>use <code>@​nodable/entities</code> to replace entities</h2>
<ul>
<li>No API change</li>
<li>No change in performance for basic usage</li>
<li>No typing change</li>
<li>No config change</li>
<li>new dependency</li>
<li>breaking: error messages for entities might have been changed.</li>
<li></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/NaturalIntelligence/fast-xml-parser/compare/v5.5.12...v5.6.0">https://github.com/NaturalIntelligence/fast-xml-parser/compare/v5.5.12...v5.6.0</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/NaturalIntelligence/fast-xml-parser/blob/master/CHANGELOG.md">fast-xml-parser's
changelog</a>.</em></p>
<blockquote>
<p><!-- raw HTML omitted -->Note: If you find missing information about
particular minor version, that version must have been changed without
any functional change in this library.<!-- raw HTML omitted --></p>
<p>Note: Due to some last quick changes on v4, detail of v4.5.3 &amp;
v4.5.4 are not updated here. v4.5.4x is the last tag of v4 in github
repository. I'm extremely sorry for the confusion</p>
<p>*<em>5.8.0 / 2026-05-12</em></p>
<ul>
<li>integrate xml-naming to validate DOCTYPE entity name and notation
name (using qname becaue of backward compatibility)
<ul>
<li>This will consider xml-version as well. '1.0' is default</li>
</ul>
</li>
<li>update strnum to 2.3.0
<ul>
<li>You can set octal and binary parsing which is bydeault off</li>
</ul>
</li>
<li>update fast-xml-builder to 1.2.0
<ul>
<li>can sanitize tag names if found invalid</li>
<li>fix format output</li>
</ul>
</li>
</ul>
<p><strong>5.7.3 / 2006-05-05</strong></p>
<ul>
<li>fix: alwaysCreateTextNode should create text node when attributes
are present for self closing node</li>
<li>fix stop node expression when ns prefix is removed (found by <a
href="https://github.com/iruizsalinas">iruizsalinas</a>)</li>
<li>update XML Builder to 1.1.7</li>
<li>mark addEntity deprecated</li>
</ul>
<p><strong>5.7.2 / 2026-04-25</strong></p>
<ul>
<li>allow numerical external entity for backward compatibility</li>
<li>fix <a
href="https://redirect.github.com/NaturalIntelligence/fast-xml-parser/issues/705">#705</a>:
attributesGroupName working with preserveOrder</li>
<li>fix <a
href="https://redirect.github.com/NaturalIntelligence/fast-xml-parser/issues/817">#817</a>:
stackoverflow when tag expression is very long</li>
</ul>
<p><strong>5.7.1 / 2026-04-20</strong></p>
<ul>
<li>fix typo in CJS typing file</li>
</ul>
<p><strong>5.7.0 / 2026-04-17</strong></p>
<ul>
<li>Use <code>@nodable/entities</code> v2.1.0
<ul>
<li>breaking changes
<ul>
<li>single entity scan. You're not allowed to user entity value to form
another entity name.</li>
<li>you cant add numeric external entity</li>
<li>entity error message when expantion limit is crossed might
change</li>
</ul>
</li>
<li>typings are updated for new options related to process entity</li>
<li>please follow documentation of <code>@nodable/entities</code> for
more detail.</li>
<li>performance
<ul>
<li>if processEntities is false, then there should not be impact on
performance.</li>
<li>if processEntities is true, but you dont pass entity decoder
separately then performance may degrade by approx 8-10%</li>
<li>if processEntities is true, and you pass entity decoder separately
<ul>
<li>if no entity then performance should be same as before</li>
<li>if there are entities then performance should be increased from past
versions</li>
</ul>
</li>
</ul>
</li>
<li>ignoreAttributes is not required to be set to set xml version for
NCR entity value</li>
</ul>
</li>
<li>update 'fast-xml-builder' to sanitize malicious CDATA and comment's
content</li>
</ul>
<p><strong>5.6.0 / 2026-04-15</strong></p>
<ul>
<li>fix: entity replacement for numeric entities</li>
<li>use <code>@​nodable/entities</code> to replace entities
<ul>
<li>this may change some error messages related to entities expansion
limit or inavlid use</li>
<li>post check would be exposed in future version</li>
</ul>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/NaturalIntelligence/fast-xml-parser/commit/4bcee44a034ec99706b68b16e31f4072505b13e9"><code>4bcee44</code></a>
for release</li>
<li><a
href="https://github.com/NaturalIntelligence/fast-xml-parser/commit/8a287bf2524f0a3a4c32be7edaedced3a9839ab8"><code>8a287bf</code></a>
release info</li>
<li><a
href="https://github.com/NaturalIntelligence/fast-xml-parser/commit/50b01dcacb8fe21f986a9e7b55800bd96401fe58"><code>50b01dc</code></a>
Use &quot;<code>@​byspec/xml</code>&quot; for testing</li>
<li><a
href="https://github.com/NaturalIntelligence/fast-xml-parser/commit/816b652c83249edc1569c523f7bc3e13b3ef929c"><code>816b652</code></a>
update typings to mark validator use deprecated</li>
<li><a
href="https://github.com/NaturalIntelligence/fast-xml-parser/commit/8ad0e650bcdb05001b533f27bc01f2e873d87cc5"><code>8ad0e65</code></a>
update fast-xml-builder and strnum</li>
<li><a
href="https://github.com/NaturalIntelligence/fast-xml-parser/commit/58e967ed7f8208e4896b607cf5a057a5659f97c6"><code>58e967e</code></a>
integrate xml-naming</li>
<li><a
href="https://github.com/NaturalIntelligence/fast-xml-parser/commit/42fa3c3af8e0d59e9fe213785a1b204b39338d2b"><code>42fa3c3</code></a>
separate XML validator, UPDATE DOCS</li>
<li><a
href="https://github.com/NaturalIntelligence/fast-xml-parser/commit/d6d80429b1d1f1420902e1cebac6fe7831ba0839"><code>d6d8042</code></a>
update to release</li>
<li><a
href="https://github.com/NaturalIntelligence/fast-xml-parser/commit/d2633709699520c514208ea70e31adb6d71ab0e8"><code>d263370</code></a>
remove dev dependency 'he'</li>
<li><a
href="https://github.com/NaturalIntelligence/fast-xml-parser/commit/f9c9a2c19f819ab6fe0856ef4e94d6aa28fe1eec"><code>f9c9a2c</code></a>
update builder to 1.1.7</li>
<li>Additional commits viewable in <a
href="https://github.com/NaturalIntelligence/fast-xml-parser/compare/v5.5.10...v5.8.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=fast-xml-parser&package-manager=npm_and_yarn&previous-version=5.5.10&new-version=5.8.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

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 this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/microsoft/typespec/network/alerts).

</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
This updates stale PR triage timing so inactive PRs are marked stale
after 14 days instead of 30. It also updates the post-stale grace period
to 14 days, resulting in a 28-day total inactivity window before
automatic closure.

- **Policy timing update**
- Changed initial stale trigger in `.github/policies/pr.stale.yml` from
`noActivitySince: 30` to `noActivitySince: 14`.
- Updated the first scheduled search description to reflect the 14-day
threshold.
- Changed stale-close trigger from `noActivitySince: 30` to
`noActivitySince: 14` for already-stale PRs.

- **Lifecycle messaging alignment**
- Updated stale notification copy to say closure happens after **14
additional days** once marked stale.
- Updated close notification and description text from 60/44 days to 28
days total inactivity.

```yaml
# before
- description: Ping user when the PR has not been updated in 30 days
  filters:
    - noActivitySince:
        days: 30

# after
- description: Ping user when the PR has not been updated in 14 days
  filters:
    - noActivitySince:
        days: 14
```

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: timotheeguerin <1031227+timotheeguerin@users.noreply.github.com>
Bumps the ui group with 2 updates:
[react-dom](https://github.com/facebook/react/tree/HEAD/packages/react-dom)
and [react](https://github.com/facebook/react/tree/HEAD/packages/react).

Updates `react-dom` from 19.2.6 to 19.2.7
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/facebook/react/releases">react-dom's
releases</a>.</em></p>
<blockquote>
<h2>19.2.7 (June 1st, 2026)</h2>
<h2>React Server Components</h2>
<ul>
<li>Fixed missing <code>FormData</code> entries in Server Actions which
regressed in 19.2.6
(<a
href="https://redirect.github.com/facebook/react/pull/36566">#36566</a>
by <a
href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/facebook/react/commit/6117d7cca4906492c51fe6a03381e35adfd86e7d"><code>6117d7c</code></a>
Version 19.2.7 (<a
href="https://github.com/facebook/react/tree/HEAD/packages/react-dom/issues/36591">#36591</a>)</li>
<li>See full diff in <a
href="https://github.com/facebook/react/commits/v19.2.7/packages/react-dom">compare
view</a></li>
</ul>
</details>
<details>
<summary>Maintainer changes</summary>
<p>This version was pushed to npm by <a
href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new
releaser for react-dom since your current version.</p>
</details>
<br />

Updates `react` from 17.0.2 to 19.2.7
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/facebook/react/releases">react's
releases</a>.</em></p>
<blockquote>
<h2>19.2.7 (June 1st, 2026)</h2>
<h2>React Server Components</h2>
<ul>
<li>Fixed missing <code>FormData</code> entries in Server Actions which
regressed in 19.2.6
(<a
href="https://redirect.github.com/facebook/react/pull/36566">#36566</a>
by <a
href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li>
</ul>
<h2>19.2.6 (May 6th, 2026)</h2>
<h2>React Server Components</h2>
<ul>
<li>Type hardening and performance improvements
(<a
href="https://redirect.github.com/facebook/react/pull/36425">#36425</a>
by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and
<a
href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li>
</ul>
<h2>19.2.5 (April 8th, 2026)</h2>
<h2>React Server Components</h2>
<ul>
<li>Add more cycle protections (<a
href="https://redirect.github.com/facebook/react/pull/36236">#36236</a>
by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and
<a
href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li>
</ul>
<h2>19.2.4 (January 26th, 2026)</h2>
<h2>React Server Components</h2>
<ul>
<li>Add more DoS mitigations to Server Actions, and harden Server
Components (<a
href="https://redirect.github.com/facebook/react/pull/35632">#35632</a>
by <a href="https://github.com/gnoff"><code>@​gnoff</code></a>, <a
href="https://github.com/lubieowoce"><code>@​lubieowoce</code></a>, <a
href="https://github.com/sebmarkbage"><code>@​sebmarkbage</code></a>, <a
href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li>
</ul>
<h2>19.2.3 (December 11th, 2025)</h2>
<h2>React Server Components</h2>
<ul>
<li>Add extra loop protection to React Server Functions (<a
href="https://github.com/sebmarkbage"><code>@​sebmarkbage</code></a> <a
href="https://redirect.github.com/facebook/react/pull/35351">#35351</a>)</li>
</ul>
<h2>19.2.2 (December 11th, 2025)</h2>
<h2>React Server Components</h2>
<ul>
<li>Move <code>react-server-dom-webpack/*.unbundled</code> to private
<code>react-server-dom-unbundled</code> (<a
href="https://github.com/eps1lon"><code>@​eps1lon</code></a> <a
href="https://redirect.github.com/facebook/react/pull/35290">facebook/react#35290</a>)</li>
<li>Patch Promise cycles and toString on Server Functions (<a
href="https://github.com/sebmarkbage"><code>@​sebmarkbage</code></a>, <a
href="https://github.com/unstubbable"><code>@​unstubbable</code></a> <a
href="https://redirect.github.com/facebook/react/pull/35289">#35289</a>,
<a
href="https://redirect.github.com/facebook/react/pull/35345">#35345</a>)</li>
</ul>
<h2>19.2.1 (December 3rd, 2025)</h2>
<h2>React Server Components</h2>
<ul>
<li>Bring React Server Component fixes to Server Actions (<a
href="https://github.com/sebmarkbage"><code>@​sebmarkbage</code></a> <a
href="https://redirect.github.com/facebook/react/pull/35277">#35277</a>)</li>
</ul>
<h2>19.2.0 (Oct 1, 2025)</h2>
<p>Below is a list of all new features, APIs, and bug fixes.</p>
<p>Read the <a href="https://react.dev/blog/2025/10/01/react-19-2">React
19.2 release post</a> for more information.</p>
<h2>New React Features</h2>
<ul>
<li><a
href="https://react.dev/reference/react/Activity"><code>&lt;Activity&gt;</code></a>:
A new API to hide and restore the UI and internal state of its
children.</li>
<li><a
href="https://react.dev/reference/react/useEffectEvent"><code>useEffectEvent</code></a>
is a React Hook that lets you extract non-reactive logic into an <a
href="https://react.dev/learn/separating-events-from-effects#declaring-an-effect-event">Effect
Event</a>.</li>
<li><a
href="https://react.dev/reference/react/cacheSignal"><code>cacheSignal</code></a>
(for RSCs) lets your know when the <code>cache()</code> lifetime is
over.</li>
<li><a
href="https://react.dev/reference/developer-tooling/react-performance-tracks">React
Performance tracks</a> appear on the Performance panel’s timeline in
your browser developer tools</li>
</ul>
<h2>New React DOM Features</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/facebook/react/blob/main/CHANGELOG.md">react's
changelog</a>.</em></p>
<blockquote>
<h2>19.2.1 (Dec 3, 2025)</h2>
<h3>React Server Components</h3>
<ul>
<li>Bring React Server Component fixes to Server Actions (<a
href="https://github.com/sebmarkbage"><code>@​sebmarkbage</code></a> <a
href="https://redirect.github.com/facebook/react/pull/35277">#35277</a>)</li>
</ul>
<h2>19.2.0 (October 1st, 2025)</h2>
<p>Below is a list of all new features, APIs, and bug fixes.</p>
<p>Read the <a href="https://react.dev/blog/2025/10/01/react-19-2">React
19.2 release post</a> for more information.</p>
<h3>New React Features</h3>
<ul>
<li><a
href="https://react.dev/reference/react/Activity"><code>&lt;Activity&gt;</code></a>:
A new API to hide and restore the UI and internal state of its
children.</li>
<li><a
href="https://react.dev/reference/react/useEffectEvent"><code>useEffectEvent</code></a>
is a React Hook that lets you extract non-reactive logic into an <a
href="https://react.dev/learn/separating-events-from-effects#declaring-an-effect-event">Effect
Event</a>.</li>
<li><a
href="https://react.dev/reference/react/cacheSignal"><code>cacheSignal</code></a>
(for RSCs) lets your know when the <code>cache()</code> lifetime is
over.</li>
<li><a
href="https://react.dev/reference/dev-tools/react-performance-tracks">React
Performance tracks</a> appear on the Performance panel’s timeline in
your browser developer tools</li>
</ul>
<h3>New React DOM Features</h3>
<ul>
<li>Added resume APIs for partial pre-rendering with Web Streams:
<ul>
<li><a
href="https://react.dev/reference/react-dom/server/resume"><code>resume</code></a>:
to resume a prerender to a stream.</li>
<li><a
href="https://react.dev/reference/react-dom/static/resumeAndPrerender"><code>resumeAndPrerender</code></a>:
to resume a prerender to HTML.</li>
</ul>
</li>
<li>Added resume APIs for partial pre-rendering with Node Streams:
<ul>
<li><a
href="https://react.dev/reference/react-dom/server/resumeToPipeableStream"><code>resumeToPipeableStream</code></a>:
to resume a prerender to a stream.</li>
<li><a
href="https://react.dev/reference/react-dom/static/resumeAndPrerenderToNodeStream"><code>resumeAndPrerenderToNodeStream</code></a>:
to resume a prerender to HTML.</li>
</ul>
</li>
<li>Updated <a
href="https://react.dev/reference/react-dom/static/prerender"><code>prerender</code></a>
APIs to return a <code>postponed</code> state that can be passed to the
<code>resume</code> APIs.</li>
</ul>
<h3>Notable changes</h3>
<ul>
<li>React DOM now batches suspense boundary reveals, matching the
behavior of client side rendering. This change is especially noticeable
when animating the reveal of Suspense boundaries e.g. with the upcoming
<code>&lt;ViewTransition&gt;</code> Component. React will batch as much
reveals as possible before the first paint while trying to hit popular
first-contentful paint metrics.</li>
<li>Add Node Web Streams (<code>prerender</code>,
<code>renderToReadableStream</code>) to server-side-rendering APIs for
Node.js</li>
<li>Use underscore instead of <code>:</code> IDs generated by useId</li>
</ul>
<h3>All Changes</h3>
<h4>React</h4>
<ul>
<li><code>&lt;Activity /&gt;</code> was developed over many years,
starting before <code>ClassComponent.setState</code> (<a
href="https://github.com/acdlite"><code>@​acdlite</code></a> <a
href="https://github.com/sebmarkbage"><code>@​sebmarkbage</code></a> and
many others)</li>
<li>Stringify context as &quot;SomeContext&quot; instead of
&quot;SomeContext.Provider&quot; (<a
href="https://github.com/kassens"><code>@​kassens</code></a> <a
href="https://redirect.github.com/facebook/react/pull/33507">#33507</a>)</li>
<li>Include stack of cause of React instrumentation errors with
<code>%o</code> placeholder (<a
href="https://github.com/eps1lon"><code>@​eps1lon</code></a> <a
href="https://redirect.github.com/facebook/react/pull/34198">#34198</a>)</li>
<li>Fix infinite <code>useDeferredValue</code> loop in popstate event
(<a href="https://github.com/acdlite"><code>@​acdlite</code></a> <a
href="https://redirect.github.com/facebook/react/pull/32821">#32821</a>)</li>
<li>Fix a bug when an initial value was passed to
<code>useDeferredValue</code> (<a
href="https://github.com/acdlite"><code>@​acdlite</code></a> <a
href="https://redirect.github.com/facebook/react/pull/34376">#34376</a>)</li>
<li>Fix a crash when submitting forms with Client Actions (<a
href="https://github.com/sebmarkbage"><code>@​sebmarkbage</code></a> <a
href="https://redirect.github.com/facebook/react/pull/33055">#33055</a>)</li>
<li>Hide/unhide the content of dehydrated suspense boundaries if they
resuspend (<a
href="https://github.com/sebmarkbage"><code>@​sebmarkbage</code></a> <a
href="https://redirect.github.com/facebook/react/pull/32900">#32900</a>)</li>
<li>Avoid stack overflow on wide trees during Hot Reload (<a
href="https://github.com/sophiebits"><code>@​sophiebits</code></a> <a
href="https://redirect.github.com/facebook/react/pull/34145">#34145</a>)</li>
<li>Improve Owner and Component stacks in various places (<a
href="https://github.com/sebmarkbage"><code>@​sebmarkbage</code></a>, <a
href="https://github.com/eps1lon"><code>@​eps1lon</code></a>: <a
href="https://redirect.github.com/facebook/react/pull/33629">#33629</a>,
<a
href="https://redirect.github.com/facebook/react/pull/33724">#33724</a>,
<a
href="https://redirect.github.com/facebook/react/pull/32735">#32735</a>,
<a
href="https://redirect.github.com/facebook/react/pull/33723">#33723</a>)</li>
<li>Add <code>cacheSignal</code> (<a
href="https://github.com/sebmarkbage"><code>@​sebmarkbage</code></a> <a
href="https://redirect.github.com/facebook/react/pull/33557">#33557</a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/facebook/react/commit/6117d7cca4906492c51fe6a03381e35adfd86e7d"><code>6117d7c</code></a>
Version 19.2.7 (<a
href="https://github.com/facebook/react/tree/HEAD/packages/react/issues/36591">#36591</a>)</li>
<li><a
href="https://github.com/facebook/react/commit/eaf3e95ca92be7a23d3c9cc8ffd6f199a40be401"><code>eaf3e95</code></a>
Version 19.2.6</li>
<li><a
href="https://github.com/facebook/react/commit/23f4f9f30da9e9af2108c18bb197bae75ab584ea"><code>23f4f9f</code></a>
19.2.5</li>
<li><a
href="https://github.com/facebook/react/commit/90ab3f89f4824ac763b6f877c6f711200d1338d2"><code>90ab3f8</code></a>
Version 19.2.4</li>
<li><a
href="https://github.com/facebook/react/commit/612e371fb215498edde4c853bd1e0c8e9203808f"><code>612e371</code></a>
Version 19.2.3</li>
<li><a
href="https://github.com/facebook/react/commit/b910fc15e38d4fa80003819ddb7a928a3c3dca5d"><code>b910fc1</code></a>
Version 19.2.2</li>
<li><a
href="https://github.com/facebook/react/commit/053df4e8561ef4caecef31c330f4178ac25e255b"><code>053df4e</code></a>
Version 19.2.1</li>
<li><a
href="https://github.com/facebook/react/commit/5667a41fe4d81aa806f6c1e8814b17975e33b317"><code>5667a41</code></a>
Bump next prerelease version numbers (<a
href="https://github.com/facebook/react/tree/HEAD/packages/react/issues/34639">#34639</a>)</li>
<li><a
href="https://github.com/facebook/react/commit/8bb7241f4c773376893701bfe8b8ff03687342a0"><code>8bb7241</code></a>
Bump useEffectEvent to Canary (<a
href="https://github.com/facebook/react/tree/HEAD/packages/react/issues/34610">#34610</a>)</li>
<li><a
href="https://github.com/facebook/react/commit/e3c9656d20618ed321aea85cb3d844cbd1dce078"><code>e3c9656</code></a>
Ensure Performance Track are Clamped and Don't overlap (<a
href="https://github.com/facebook/react/tree/HEAD/packages/react/issues/34509">#34509</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/facebook/react/commits/v19.2.7/packages/react">compare
view</a></li>
</ul>
</details>
<details>
<summary>Maintainer changes</summary>
<p>This version was pushed to npm by <a
href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new
releaser for react since your current version.</p>
</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>
…nd discriminator without subtypes (microsoft#10841)

Add two new cross-language Spector test scenarios identified from Go and
TypeScript emitter bug fixes:

## 1. Dollar-sign prefixed query parameters
(`parameters/query/DollarSign`)
Tests that emitters correctly handle `$`-prefixed query parameter names
on the wire (e.g. `$filter`, `$top`, `$skip`, `$orderby`). Common in
OData-style APIs.
- Identified from: Azure/autorest.go#1922

## 2. Discriminated type without subtypes
(`type/model/inheritance/single-discriminator`)
Tests a `@discriminator`-decorated model with no extending subtypes.
Emitters should still generate the polymorphic type infrastructure.
- Identified from: Azure/autorest.go#1892

Both scenarios include `main.tsp` definitions, `mockapi.ts`
implementations, and updated `spec-summary.md`.

---------

Co-authored-by: iscai-msft <isabellavcai@gmail.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…ft#10869)

## Summary

Refactors `playground.tsx` by extracting scattered state management into
focused, testable hooks.

### Changes

| New File | Responsibility |
|----------|---------------|
| `compilation/compile.ts` | Pure async
compile/findOutputFiles/emptyOutputDir |
| `hooks/use-compilation.ts` | Compile queuing, stale output
preservation, markers |
| `hooks/use-monaco-sync.ts` | Bidirectional Monaco ↔ state sync |
| `hooks/use-debounced-compile.ts` | Debounced recompile subscription |
| `hooks/use-editor-actions.ts` | Save, format, file-bug, keybindings |

### Result
- `playground.tsx`: ~600 → ~360 lines (40% reduction)
- No public API changes (fully backward-compatible)
- All tests pass, lint clean
Co-authored-by: iscai-msft <isabellavcai@gmail.com>
- Functions were previously not correctly validating that arguments
assigned to the rest parameter constraint were compatible with the
constraint. This fixes that issue and adds a regression test.
- Function diagnostics were incorrectly targeted in some cases that this
change addresses.
- Function type signatures in `tspd` were rendered a little bit
incorrectly and this PR addresses that.
- Function documentation had a few typos that this PR fixes (TypeScript
-> TypeSpec, one invalid identifier in an example)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- [x] Update `MAX_PYTHON_VERSION` from `"3.13"` to `"3.14"` in
`packages/http-client-python/generator/pygen/codegen/serializers/general_serializer.py`
so emitted `pyproject.toml` includes the Python 3.14 classifier
- [x] Add changelog entry for `@typespec/http-client-python` (feature
kind)

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: johanste <15110018+johanste@users.noreply.github.com>
Co-authored-by: iscai-msft <isabellavcai@gmail.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Replace the custom deepClone utility and JSON.parse(JSON.stringify(...))
patterns with structuredClone.

## Changes
- Replaced all internal deepClone() calls with structuredClone()
- Replaced JSON.parse(JSON.stringify(...)) deep copy patterns with
structuredClone()
- Deprecated the public deepClone export with @deprecated JSDoc tag
(kept for backward compat)
- Cleaned up unused imports

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…entSettings when BindCore is customized (microsoft#10905)

When a generated `ClientSettings` type's
`BindCore(IConfigurationSection)` is moved to custom code, the generated
partial still references `IConfigurationSection` in its XML doc summary,
but `using Microsoft.Extensions.Configuration;` was dropped — so the
generated code no longer compiles.

**Root cause:** Namespace imports are registered from actual type
references during writing. The class description used a plain string
`<see cref="IConfigurationSection"/>` rather than a real type reference,
so it never registered the namespace. The only thing registering
`Microsoft.Extensions.Configuration` was the generated `BindCore`
parameter type — once `BindCore` is customized away and filtered out,
nothing registers it.

### Changes
- **`ClientSettingsProvider.BuildDescription`**: reference the actual
types via the `:C` cref formatter (matching the `ClientOptionsProvider`
convention) instead of hardcoded `<see cref>` strings. This registers
the `Microsoft.Extensions.Configuration` namespace while rendering an
identical cref, so normal generated output is unchanged.

```csharp
// before
=> $"Represents the settings used to configure a <see cref=\"{_clientProvider.Name}\"/> that can be loaded from an <see cref=\"IConfigurationSection\"/>.";
// after
=> $"Represents the settings used to configure a {_clientProvider.Type:C} that can be loaded from an {IConfigurationSectionType:C}.";
```

- **Regression test** (`TestGeneratedSettings_WithCustomizedBindCore`) +
TestData: uses TestData to move `BindCore` into a custom partial,
asserts it is no longer generated, and validates the full generated
output against an expected snapshot file
(`TestData/ClientSettingsProviderTests/TestGeneratedSettings_WithCustomizedBindCore.cs`),
confirming the `using` is still emitted. Fails without the fix.

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: jorgerangel-msft <102122018+jorgerangel-msft@users.noreply.github.com>
…ed` directive (microsoft#10901)

PR microsoft#4453 added `deprecated` import support for models and properties but
missed operations. An OpenAPI operation with `deprecated: true` would be
silently dropped during conversion.

## Changes

- **`transform-paths.ts`**: Extract `operation.deprecated` as a
`TypeSpecDirective` and attach it to the resulting `TypeSpecOperation`
(including through `splitOperationByContentType`).
- **`generate-operation.ts`**: Add `generateDirectives` emission;
refactor line-joining so directives render on their own line (preamble:
doc + directives `\n`-joined; body: tags + decorators + `op`
space-joined) — `#deprecated` inline with decorators is invalid TypeSpec
syntax.

## Example

```yaml
# Input
paths:
  /widgets:
    get:
      operationId: Widgets_list
      deprecated: true
      responses: ...
```

```tsp
// Before (deprecated silently dropped)
op Widgets_list(): ...;

// After
#deprecated "deprecated"
op Widgets_list(): ...;
```

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: baywet <7905502+baywet@users.noreply.github.com>
…ster (microsoft#10897)

## Summary

`ApplyCodeFixExpect.toEqual` now accepts `Record<string, string>` to
assert on multiple files after a code fix is applied. This enables
testing code fixes that write to a different file (e.g., adding augment
decorators to a `client.tsp`).

## Changes

- Overloaded `toEqual` to accept `string | Record<string, string>`
- Single-file (`string`): existing behavior unchanged
- Multi-file (`Record<string, string>`): captures all `writeFile` calls,
asserts only on specified files (partial match)
- Supports code fixes that create new files not in the original input

## Example

```ts
await ruleTester
  .expect({
    "main.tsp": `import "./client.tsp";\nmodel Foo { name: string; }`,
    "client.tsp": ``,
  })
  .applyCodeFix("add-client-override")
  .toEqual({
    "client.tsp": `@@OverRide(Foo.name, "clientName");\n`,
  });
```
timotheeguerin and others added 29 commits July 17, 2026 17:03
…11295)

## Summary

Node has shipped native source-map support for stack traces since v14.6
via `process.setSourceMapsEnabled(true)`, and every workspace package
now requires Node `>=22`. The third-party `source-map-support`
dependency is therefore no longer needed.

This replaces the `source-map-support/register.js` import with the
native API in the CLI entrypoints and drops the dependency.

## Changes

- Replace `source-map-support/register.js` with
`process.setSourceMapsEnabled(true)` in the CLI entrypoints (removing
the associated `try/catch` + `@ts-ignore`/eslint-disable):
  - `packages/compiler/src/core/cli/cli.ts`
  - `packages/pack/src/cli.ts`
  - `packages/tspd/src/cli.ts`
  - `packages/bundler/src/cli.ts`
  - `packages/spector/src/cli/cli.ts`
- Remove `source-map-support` from the `pnpm-workspace.yaml` catalog and
from the `package.json` of `@typespec/compiler`, `@typespec/pack`,
`@typespec/tspd`, and `@typespec/spector`.
- Refresh `pnpm-lock.yaml`.

## Out of scope

`packages/http-client-*/package-lock.json` reference
`source-map-support` only transitively via the **published**
`@typespec/spector`; those npm-managed lockfiles regenerate separately
when spector is republished.

## Validation

- All affected packages build.
- Lint (oxlint) and format (prettier) clean on touched files.
- Remaining `pnpm-lock.yaml` hits are legitimate transitive deps
(`@babel/register`, chronus tooling), not a direct dependency.
…ests (microsoft#11298)

## Summary

- add C# Spector coverage for exploded model query parameters
- add C# Spector coverage for lossy integer duration encodings
- regenerate the affected routes and duration clients

## Validation

- `Test-Spector.ps1 -filter http/routes` (18 passed, 9 skipped)
- `Test-Spector.ps1 -filter http/encode/duration` (58 passed)
- `npm run build`
- `npm run cop`

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
## Summary
- add an `InternalHelperProvider` base that registers itself with
`AddTypeToKeep(..., isRoot: false)`
- default helper declarations to `internal static`, with direct modifier
overrides for non-static helpers
- preserve generic non-root helpers during post-processing and
regenerate the local sample

## Validation
- `npm run build`
- `npm test`
- `npm run cop`
- focused helper retention tests
- formatting completed; emitter lint is currently blocked by the
repository's missing ESLint 10 flat config

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
)

## Summary

The `parameters.query.QueryTests#testDollarSign` test in
`http-client-generator-clientcore-test` was disabled pending the
`@typespec/http-specs` dollar-sign route fix. That fix is now published
(http-specs `0.1.0-alpha.38`), and the already-generated
`SpecialCharClient.dollarSign` code matches the current spec (route
`/parameters/query/special-char/dollar-sign`, `@QueryParam("$filter")`).

This PR removes the `@Disabled` annotation (and its now-unused import)
to enable the test.

## Validation

`mvn test -Dtest=parameters.query.QueryTests` against the spector mock
server: **2 run, 0 failures, 0 skipped**.

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…icrosoft#11221)

Fixes microsoft#11141

Auto-generate a reference documentation page per **linter rule** and per
**diagnostic** with `tspd`, so these pages stop being hand-written and
drift-prone.

> [!NOTE]
> This PR is scoped to the `tspd` documentation generation. The
`referenceDocs.baseUrl` url auto-generation and the language server
hover that surfaces these docs at a reported error are split into a
follow-up PR.

## Compiler

- **`docs` field on diagnostics and linter rules.** Both `createRule`
and diagnostic definitions accept a `docs` field for extended
documentation:

  ```ts
  export const myRule = createRule({
    name: "my-rule",
    severity: "warning",
    description: "Short description.",
    docs: fileRef.fromPackageRoot("src/rules/my-rule.md"),
    messages: {
      /* ... */
    },
  });
  ```

The value is `string | FileRef`: either inline markdown, or a `FileRef`
created via `fileRef.fromPackageRoot("...")`. A `FileRef` is a plain `{
kind, path }` data object read **lazily** by tooling, so it is safe to
include in code bundled for the browser (e.g. the playground). Because
the docs live on the definition, they are available at compile time, not
just to `tspd`.

## tspd

`tspd doc` now renders:
- one page per rule -> `reference/rules/<name>.md`
- one page per diagnostic -> `reference/diagnostics/<code>.md` (each
shows its severity)
- a `documentation-missing` warning for every rule/diagnostic without
`docs`.

## Pilots

Content is faithfully migrated from the hand-written pages, which are
then deleted:
- **`@typespec/http`** — the `op-reference-container-route` rule.
- **`@typespec/openapi3`** — 6 diagnostics (`path-query`,
`duplicate-header`, `inline-cycle`, `invalid-schema`,
`invalid-server-variable`, `union-null`); the old hand-written
`emitters/openapi3/diagnostics.md` is replaced by the generated pages
under `reference/diagnostics/`.

## Validation

- Built `compiler`, `tspd`, `http`, `openapi3`; regen is stable (running
it twice produces no diff).
- `lint` green for the touched packages; the
`op-reference-container-route` rule tests pass.

---------

Co-authored-by: tadelesh <chenjieshi@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
)

The OpenAPI `License` object supports an `identifier` field (SPDX
expression) since spec v3.1, but TypeSpec's `@info` decorator was
missing it — causing a spurious "unknown prop" warning.

## Changes

### `@typespec/openapi`
- Added `identifier?: string` to the `License` model and TypeScript
interfaces
- Added `license-url-identifier-conflict` diagnostic: `url` and
`identifier` are mutually exclusive (per spec); both being set is now a
compile-time error
- Validation enforced in the `$info` decorator

### `@typespec/openapi3` — Emitter
- **OpenAPI 3.1 / 3.2**: `identifier` emits as the native `identifier`
field
- **OpenAPI 3.0**: `identifier` is emitted as the
`x-oai-license-identifier` extension

### `@typespec/openapi3` — Converter (OpenAPI → TypeSpec)
- `identifier` in 3.1 documents maps directly to `identifier`
- `x-oai-license-identifier` in 3.0 documents is promoted to
`identifier`

## Example

```typespec
@info(#{
  license: #{ name: "MIT", identifier: "MIT" },
})
namespace MyService;
```

Emits for OpenAPI 3.1:
```json
"license": { "name": "MIT", "identifier": "MIT" }
```

Emits for OpenAPI 3.0:
```json
"license": { "name": "MIT", "x-oai-license-identifier": "MIT" }
```

closes microsoft#11302

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: baywet <7905502+baywet@users.noreply.github.com>
Co-authored-by: Vincent Biret <vibiret@microsoft.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
…11297)

This updates dependency resolution to enforce `sigstore@4.1.1`,
addressing vulnerability exposure from earlier transitive versions. The
lockfile is refreshed so installs consistently resolve to the pinned
version.

- **Dependency resolution hardening**
- Added a workspace-level pnpm override for `sigstore` in
`pnpm-workspace.yaml`.
  - Ensures all transitive resolution paths converge on `4.1.1`.

- **Deterministic install output**
- Regenerated `pnpm-lock.yaml` to apply the override in resolved package
graph.
- Removed prior lockfile resolution paths that pulled older `sigstore`
versions.

```yaml
# pnpm-workspace.yaml
overrides:
  sigstore: 4.1.1
```

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: timotheeguerin <1031227+timotheeguerin@users.noreply.github.com>
Co-authored-by: Timothee Guerin <tiguerin@microsoft.com>
Co-authored-by: Mike Harder <mharder@microsoft.com>
fixes microsoft#6870

---------

Co-authored-by: iscai-msft <isabellavcai@gmail.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
…microsoft#11303)

Extracts the self-contained `tsp init` template-loading refactor out of
microsoft#11299 into its own PR.

## What

Replaces `getExecutionRoot()`-based template resolution in `tsp init`
with a first-class `TemplateSource` abstraction, with three
implementations behind one interface:

- **`FileSystemTemplateSource`** — the default (installed/`node`) path;
reads `templates/` from the compiler package root. No
`getExecutionRoot()` dependency.
- **`InMemoryTemplateSource`** — serves the index and every template
file from an in-memory map (used by the standalone single-executable to
serve templates offline).
- **`RemoteTemplateSource`** — `--templates-url`; keeps the
untrusted-source confirmation and relative-file resolution.

## Why

Template loading previously went through the `CompilerHost` filesystem
contract anchored at `getExecutionRoot()`, which also serves the stdlib.
Serving templates from an embedded/offline source required masquerading
an in-memory map as a real filesystem and overloading
`getExecutionRoot()`. This refactor decouples template resolution from
the host FS contract so each context supplies its own source, and leaves
`getExecutionRoot()` solely for the stdlib.

## Notes

- No behavior change on the normal path: `init` defaults to
`FileSystemTemplateSource`.
- Language server (`getTypeSpecCoreTemplates` / `scaffoldNewProject`)
and the VS Code extension keep working; the extension threads a
`TemplateSource` through `create-tsp-project`.
- Backward-compatible: `serverlib.ts` / `server/types.ts` are unchanged.
- This is the first of a split of microsoft#11299; the standalone
single-executable feature remains in microsoft#11299 and builds on top of this.
…osoft#11312)

## Summary

Removes the unused `backupPath` fallback argument from the internal
`runScript` helper (`packages/compiler/src/runner.ts`) and its two
callers.

`runScript(relativePath, backupPath)` used to fall back to `backupPath`
when `relativePath` did not exist under the resolved package root. Both
call sites (`cmd/tsp.js`, `cmd/tsp-server.js`) always pass a
`relativePath` that exists, so the fallback (and its `checkFileExists`
helper + `access` import) is dead code.

This is a pure, self-contained cleanup extracted out of microsoft#11299
(standalone SEA rewrite) so that PR stays focused on the feature. The
standalone CLI does not use `runScript`.

## History / why it is safe to remove

The `backupPath` fallback was added in microsoft#1410 and shipped in
`@cadl-lang/compiler` **0.38.2** (Dec 2022) as a patch: _"Revert
breaking change to global cli usage."_

That PR introduced the stable indirection entrypoints
`entrypoints/cli.js` and `entrypoints/server.js`. Before 0.38.2 the
global CLI booted the compiler directly at `dist/core/cli/cli.js` (and
`dist/server/server.js`). Because a **globally-installed** CLI resolves
and runs the **locally-installed** compiler, a global 0.38.2 CLI could
hit an older local compiler that did not yet have the `entrypoints/`
files. The `backupPath` (`dist/core/cli/cli.js` /
`dist/server/server.js`) was the fallback so the global CLI could still
boot those pre-0.38.2 local installs.

Every supported compiler version has shipped `entrypoints/cli.js` /
`entrypoints/server.js` since 0.38.2, so the fallback branch is now
unreachable dead code.

## Changes
- `runner.ts`: `runScript(relativePath)` — dropped `backupPath` param,
`checkFileExists`, and the now-unused `access` import.
- `cmd/tsp.js` / `cmd/tsp-server.js`: drop the second argument.

## Validation
- `tsc -p packages/compiler/tsconfig.build.json` passes.
…ation (microsoft#11316)

## Summary

Adds a `--rules-dir` option (and matching `rulesDir` API option) to
`tspd doc` to control the directory where the per-rule reference pages
are written.

Since the tspd change that auto-generates one reference page per linter
rule, those pages are always emitted under `<output-dir>/rules/`. Some
consumers (e.g. `typespec-azure`) generate their reference docs into a
`reference/` output dir but want the rule pages to keep their historical
location one level up (`libraries/<lib>/rules/<name>`), so that existing
rule URLs stay stable.

This adds a small, backwards-compatible knob to control that location.

## Details

- New CLI flag `--rules-dir <dir>` on `tspd doc`.
- New `rulesDir` option on `GenerateLibraryDocsOptions` and
`RenderToStarlightMarkdownOptions`.
- Defaults to `"rules"` (relative to `--output-dir`) — **no change** to
existing behavior.
- Can be set to a path that escapes the output dir (e.g. `"../rules"`)
to place rule pages outside the generated reference folder.
- The `StarlightRenderer.linterRuleLink` (used by `linter.md`) honors
the configured dir so cross-links resolve correctly.

## Example

```bash
# default (unchanged): pages at <output-dir>/rules/<name>.md
tspd doc . --enable-experimental --output-dir ./reference

# keep rule pages outside the reference folder: <output-dir>/../rules/<name>.md
tspd doc . --enable-experimental --output-dir ./reference --rules-dir ../rules
```
…pat (microsoft#11315)

The underscore back-compat pass restores previously-shipped underscore
names (e.g. `Tls1_0`) when the current spec normalizes them (e.g.
`Tls10`). For extensible enums whose custom code re-adds the underscore
member, the restoration renamed the *generated* member back to the
underscore form — colliding with the custom member and removing the
generated symbol it referenced.

Example custom code that broke:

```csharp
public partial struct ServiceBusMinimumTlsVersion
{
    // references the generated `Tls10`; back-compat renamed it to `Tls1_0`,
    // producing a duplicate and dropping `Tls10`
    public static ServiceBusMinimumTlsVersion Tls1_0 { get; } = Tls10;
}
```

## Changes

- **`EnumProvider.GetBackCompatibleName`**: new optional
`customMemberNames` argument; skips the underscore restoration when the
restored name already exists in custom code, keeping the generated name.
- **`ExtensibleEnumProvider.BuildEnumValues`**: collects custom member
names from `CustomCodeView.Properties` (case-insensitive) and threads
them through. Uses `CustomCodeView` rather than `CanonicalView` to avoid
the `CanonicalView → Properties → EnumValues → BuildEnumValues`
recursion cycle; it contributes the same custom members.
- **Tests**: adds
`BackCompat_ExtensibleEnumCustomCodeTakesPrecedenceOverPreservedUnderscores`
with `(Custom)`/`(Last)` TestData; existing
`BackCompat_ExtensibleEnumUnderscoresPreserved` remains as the
no-custom-code case.

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: jorgerangel-msft <102122018+jorgerangel-msft@users.noreply.github.com>
…t#11320)

## Problem

The tspd change that auto-generates one reference page per linter rule
(microsoft#11221) moved the `@typespec/http` linter rule page from its historical
location:

- **Before:**
`https://typespec.io/docs/libraries/http/rules/op-reference-container-route`
- **After:**
`https://typespec.io/docs/libraries/http/reference/rules/op-reference-container-route`

This is a breaking change to the public documentation URL. The rule's
own `url` field, external links, and the diagnostic "see documentation"
link all still point at the historical `libraries/http/rules/<name>`
location, which now 404s.

## Fix

Use the `--rules-dir ../rules` option (added in microsoft#11316) in http's
`regen-docs` script so the per-rule reference pages are written back to
`libraries/http/rules/<name>`, restoring the original URL.

- `packages/http/package.json` — add `--rules-dir ../rules` to
`regen-docs`.
- Regenerated docs: the rule page moves back to
`libraries/http/rules/op-reference-container-route.md` (100% rename) and
`linter.md` links back to `../rules/...`.
- `current-sidebar.ts` — re-enable the http "Rules" sidebar group
(`hasLinterRules: true`), which autogenerates from
`libraries/http/rules`.

`@typespec/http` is the only library in this repo that ships linter
rules, so no other library is affected.

## Validation

- `regen-docs` is stable (running it twice produces no diff).
- The restored page URL
`libraries/http/rules/op-reference-container-route` matches the rule's
hardcoded `url` again.
- `chronus verify` passes.

Co-authored-by: tadelesh <chenjieshi@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
)

## Summary

Adds XML serialization support to the `@typespec/http-client-java`
generator (azure-core v1 flavor).

When any model is serialized/deserialized as XML, the generator now:

1. **Emits two helper classes** into the implementation package —
`XmlSerializer` (an `ObjectSerializer` backed by `azure-xml` +
reflective `fromXml(XmlReader)`) and `XmlSerializerProviders` (factory).
Emission is gated on `isAzureV1()` and any generating model with
`ClientModel::isUsedInXml`.
2. **Uses the XML serializer overload** in generated convenience methods
— a static `SERIALIZER` field is declared on sync/async convenience
clients, and `BinaryData.fromObject(input, SERIALIZER)` /
`toObject(X.class, SERIALIZER)` are emitted when the request/response
content type is XML.

The azure-v2 / clientcore flavor handles `XmlSerializable` natively and
is unaffected. Non-XML output is unchanged.

## Changes

- **Generator core**: new resource templates `XmlSerializer.java` /
`XmlSerializerProviders.java`; XML-aware `SupportedMimeType` handling in
`ConvenienceMethodTemplateBase`, `ConvenienceSyncMethodTemplate`,
`ConvenienceAsyncMethodTemplate`; static `SERIALIZER` field in
`ServiceSyncClientTemplate` / `ServiceAsyncClientTemplate`; constants in
`ClientModelUtil`.
- **Generator plugin**: `TypeSpecPlugin.writeHelperClasses` emits the
two helper files for XML models.
- **Test module**: enabled the `payload/xml` spec, regenerated clients,
and ported the XML test suite.

## Testing

- `payload.xml.XmlTests`: **26 run, 0 failures, 2 skipped** (namespace
scenarios).
- Verified end-to-end: generator rebuild → emitter pack → `tsp compile`
→ generated output adopted into `src` matches, tests green.

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…t#11289)

Follow-up fix to microsoft#11197 (pylint-guidelines-checker `0.5.9` bump). On
regeneration, DPG models emitted a **duplicate docstring**:
`:keyword:`/`:paramtype:` lines in the class docstring duplicated the
existing `:ivar:`/`:vartype:` entries (e.g. `InvalidAuth`).

## Changes
- Remove the redundant keyword-doc generation for DPG models (the source
of the duplicated lines).
- For DPG models, suppress `docstring-keyword-should-match-keyword-only`
at the class line instead — DPG `__init__` overloads have empty bodies,
so the checker validates keyword-only args against the *class*
docstring, and we intentionally document those args once as `:ivar:`
entries.

## Validation
- locally ran `npm run regenerate` and full regeneration (azure +
unbranded) succeeds; docstrings no longer duplicated.

## todo

- [ ] disable `no-cross-package-private-import` in pylintrc of
`typespec-azure`

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Yuchao Yan <yuchaoyan@microsoft.com>
…icrosoft#11326)

## Problem

Since tspd generates one reference page per linter rule and diagnostic
from each definition's `docs` field, the generated pages checked into
the website content duplicate their source markdown:

- `website/.../libraries/http/rules/op-reference-container-route.md` ↔
`packages/http/src/rules/op-reference-container-route.md`
- `website/.../emitters/openapi3/reference/diagnostics/*.md` (6 files) ↔
`packages/openapi3/src/diagnostics/*.md`

Keeping both copies in git means every content edit has to be made (or
regenerated) in two places.

## Fix

Follow the same approach as
[Azure/typespec-azure#4968](Azure/typespec-azure#4968)
and the repo's existing `js-api` precedent (`**/docs/**/js-api/` is
already gitignored): stop tracking the generated pages and regenerate
them during the website build.

- `.gitignore` — ignore the generated pages:
  - `website/src/content/docs/docs/**/rules/`
  - `website/src/content/docs/docs/**/reference/diagnostics/`
- Untrack the 7 generated pages (their source markdown under
`packages/*/src/**` remains the single tracked copy).

The website build regenerates them: `website` build runs `build:web`,
which runs `regen-all-packages-docs` before `astro check`/`astro build`.

## Validation

- Deleted the generated pages from disk, ran `regen-docs` for http +
openapi3, and confirmed all 7 pages are reproduced at the same paths —
and git now treats them as ignored (no longer tracked, not shown as
untracked).
- `@typespec/http` (rules) and `@typespec/openapi3` (diagnostics) are
the only libraries in this repo that use the `docs` field, so the globs
only match generated content.
- `chronus verify` passes (no shipped package changes).

Co-authored-by: tadelesh <chenjieshi@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
… merged by mistake that way (microsoft#11321)

## Summary

- Reverted `pnpm-lock.yaml` to remove registry-proxy-injected `tarball:`
URLs (load-balanced `ms-feed-N.pkgs.visualstudio.com` hosts) that are
environment-specific and break CI. The lockfile is now integrity-only
again.
- Added a `check-lockfile` script
(`eng/common/scripts/check-lockfile.ts`) that fails if any `tarball:`
URL is present in `pnpm-lock.yaml`.
- Wired it into the `version-consistency` job in `consistency.yml`.

## Why not a pnpm setting?

pnpm's `lockfile-include-tarball-url=false` is already the default and
is [known to be flaky](pnpm/pnpm#6667) when
the registry host differs from the tarball host, so it does not reliably
prevent this. A lightweight CI guard is the robust option.

## Validation

- `pnpm run check-lockfile` passes on the cleaned lockfile.
- Verified it exits non-zero when a `tarball:` URL is injected.
- `tsc -p ./tsconfig.eng.json --noEmit` passes.
Fixes six open **A11y_TypeSpec** website accessibility bugs (all Sev2,
`meta:website`) filed against typespec.io.

| Issue | WCAG | Fix |
| ----- | ---- | --- |
| microsoft#10789 | 2.4.1 Bypass Blocks | Added a visible-on-focus **"Skip to
main content"** link + a focusable `<main id tabindex="-1">` landmark to
the non-docs page layout. |
| microsoft#10791 | 2.1.1 Keyboard | Made the OpenAPI page sample **carousel
keyboard operable** — converted the `role="tab"` anchors (no `href`) to
`<button>`s with the full ARIA tabs pattern. |
| microsoft#10793 | 1.3.1 Info & Relationships | Gave the docs **sidebar a
distinct landmark name** ("Documentation") via an i18n override so it no
longer duplicates the header's "Main" nav. |
| microsoft#10794 | 1.4.12 Text Spacing | Kept the header on a **single row**
under increased text spacing: hide the version banner in the narrow
desktop range (1024–1200px) and let the nav wrap as a fallback instead
of overlapping. |
| microsoft#10795 | 1.4.10 Reflow | On docs pages the site header menu button
overlapped Starlight's sidebar menu button (and the search button).
**Hid the redundant site menu button** and reserved space for
Starlight's; the site links remain reachable from the Starlight mobile
menu. |
| microsoft#10796 | 1.4.4 Resize Text | Same root cause as microsoft#10795 — resolved by
the same change plus syncing `--sl-nav-height` to the real header height
so content offsets track the header. |

## Verification

Each fix was verified in a locally running dev server with
Playwright/Chromium:

- Skip link is the first focusable element and moves focus to `<main>`
on activation.
- Carousel tabs are focusable buttons; ArrowLeft/Right switch panels and
update `aria-selected`.
- Docs page exposes distinct `Main` and `Documentation` nav landmarks.
- Header stays a single row at all widths, including the tester's
~1918px text-spacing repro.
- Only one menu button on docs pages at mobile widths, with no overlap
against the search button; the Starlight menu contains the site links so
nothing is hidden.

`astro check` (0 errors / 0 warnings / 0 hints), `oxlint`, and
`prettier` all pass.

> `@typespec/website` is a private package (not published), so no
changelog entry is required.
…ft#11273)

`@typespec/http-specs` was not registered under any Chronus version
policy, leaving it unmanaged for versioning purposes.

## Changes
- Added `@typespec/http-specs` to the `typespec-preview` lockstep policy
in `.chronus/config.yaml` so it versions in lockstep with other preview
packages.

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: timotheeguerin <1031227+timotheeguerin@users.noreply.github.com>
Co-authored-by: Timothee Guerin <tiguerin@microsoft.com>
## What

`eng/emitter-diff` **diffs the generated code produced by two versions
of a TypeSpec emitter**. It resolves a *baseline* and a *head* source
tree (each a local folder or a GitHub url/sha), runs the emitter's own
regenerate command in each, and renders the difference between the
generated output as a clickable **HTML report** (default) plus a
terminal summary.

For go/rust/languages in azure/typespec-azure you would add the language
to the registry and update your package.json to reference this in the
core submodule (or you can directly call the cli script (no registry
needed) with the correct flags set in your package.json)

## How it works

- **Refs** (`--baseline` / `--head`): `local:/path`,
`github:owner/repo@<sha|branch>`, or `gh:<sha|branch>` (this repo). Head
defaults to the current working tree; baseline defaults to
`upstream/main` (or `origin/main`).
- **Setup**: a tree the tool fetches fresh from GitHub is prepared with
the preset's `--setup` (install + build). The current working tree and
`local:` paths are assumed already built and never installed by the
tool. A commit-keyed cached worktree is prepared once, so reruns skip
re-setup.
- **Baseline-output cache**: baseline generated output is cached per
profile + baseline commit, so iterative local runs only regenerate head.
Disabled in CI with `--ci`. On a cache hit the baseline tree is not even
checked out — its identity is resolved with a cheap shallow fetch.
- **Filtering a subset of tests**: everything after `--` is appended to
the regenerate command verbatim on both sides, so you can forward the
regenerate script's own filter flags (e.g. python's `--name
authentication/api-key --flavor azure`) to diff only part of the suite.

## Flags

`--emitter <name>` (preset: `python`, `typescript`/`ts`), `--command`,
`--emitter-path`, `--generated-code-path`, `--setup` (repeatable) /
`--no-setup`, `--baseline` / `--head`, `--work-dir`, `--sequential`
(regenerate sides one at a time instead of in parallel), `--ci`,
`--html`, `--fail-on-diff`, and `-- <args>` passthrough. See
`eng/emitter-diff/README.md`.

## Changes

- **`eng/emitter-diff/`** — the tool: CLI/orchestrator (`cli.ts`), ref
resolver for local/github/`gh:` refs with a commit-keyed worktree cache
(`resolver.ts`), emitter presets (`registry.ts`), a zero-dependency
HTML/terminal diff renderer (`diff.ts`), the local baseline-output cache
(`baseline-cache.ts`), shared types/utilities, `tsconfig.json`, and
`README.md`.
- **`packages/http-client-python/package.json`** — adds the
`diff-spector-tests` script (`tsx ../../eng/emitter-diff/src/cli.ts
--emitter python`).
- **`.github/workflows/ci-emitter-diff-python.yml`** — the PR workflow
(below).
- **`cspell.yaml`**, **`.chronus/changes/…`** — a spelling allow-list
entry and an `internal` changeset.

## CI behavior

The `python / emitter diff` workflow runs on PRs that touch
`http-client-python` or the tool. It diffs this PR's emitter against the
**PR merge-base** (overridable via `workflow_dispatch`), uploads the
rendered **HTML report** as an artifact, and posts/updates a **sticky PR
comment** with the diff summary. It is **informational**: the job fails
only on a tool/build error — **never on a diff**.

---------

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Splitting from the rest of dep upgrade as it creates a lot of diff
…ft#11319)

The regen preview pipeline aborted mgmt library regeneration with
`Unbranded package not found:
.../csharp-debug-.../typespec-http-client-csharp-<version>.tgz`.

`Update-MgmtGenerator` resolves the unbranded emitter from the debug
folder as `typespec-http-client-csharp-$LocalVersion.tgz`, but
`Submit-AzureSdkForNetPr.ps1` referenced the unbranded `.tgz` directly
from `$BuildArtifactsPath` and only staged the `.nupkg` files and the
locally built Azure `.tgz` into the debug folder — leaving the unbranded
package absent from where the mgmt build looks.

### Changes
- **`Submit-AzureSdkForNetPr.ps1`**: Copy the unbranded
`typespec-http-client-csharp-*.tgz` from build artifacts into
`$debugFolder` and point `$unbrandedPackagePath` at that copy, so both
the Azure and management plane generators resolve it from the same
location.

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: jorgerangel-msft <102122018+jorgerangel-msft@users.noreply.github.com>
## Summary

Routine dependency upgrade pass for July 2026.

- Bump `pnpm` to `11.10.0`.
- Update catalog dependencies: `@astrojs/starlight`, `@babel/*` (7 → 8),
`@expressive-code/core` / `astro-expressive-code`, `vite`,
`@vscode/test-web`, `oxlint-tsgolint`, `vite-plugin-dts`, etc.
- Raise `minimumReleaseAge` to 7 days.

## Note on astro

`astro` is **pinned to `7.0.3`** rather than bumped. Versions
`7.0.4`-`7.0.6` contain a static-build regression
([withastro/astro#17306](withastro/astro#17306))
where dynamic file-extension endpoints (e.g. `docs/[...slug].md.ts`)
with `trailingSlash: "always"` fail the build with
`NoMatchingStaticPathFound`. The upstream fix
([#17320](withastro/astro#17320)) ships in
`7.0.8`, which is published but still within our 7-day new-package
quarantine. The pin should be dropped once `7.0.8` clears quarantine.

## Validation

- `website` builds successfully with the pin (1128 pages, no
`NoMatchingStaticPathFound`).
…microsoft#11336)

Bumps the actions group with 5 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [actions/checkout](https://github.com/actions/checkout) | `6` | `7` |
| [actions/setup-python](https://github.com/actions/setup-python) | `6`
| `7` |
| [github/gh-aw](https://github.com/github/gh-aw) | `0.81.6` | `0.82.14`
|
| [actions/setup-dotnet](https://github.com/actions/setup-dotnet) | `5`
| `6` |
| [actions/setup-node](https://github.com/actions/setup-node) | `6` |
`7` |


Updates `actions/checkout` from 6 to 7
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/actions/checkout/releases">actions/checkout's
releases</a>.</em></p>
<blockquote>
<h2>v7.0.0</h2>
<h2>What's Changed</h2>
<ul>
<li>block checking out fork pr for pull_request_target and workflow_run
by <a href="https://github.com/aiqiaoy"><code>@​aiqiaoy</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2454">actions/checkout#2454</a></li>
<li>Bump actions/publish-immutable-action from 0.0.3 to 0.0.4 in the
minor-actions-dependencies group across 1 directory by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/actions/checkout/pull/2458">actions/checkout#2458</a></li>
<li>Bump flatted from 3.3.1 to 3.4.2 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/actions/checkout/pull/2460">actions/checkout#2460</a></li>
<li>Bump js-yaml from 4.1.0 to 4.2.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/actions/checkout/pull/2461">actions/checkout#2461</a></li>
<li>Bump <code>@​actions/core</code> and
<code>@​actions/tool-cache</code> and Remove uuid by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/actions/checkout/pull/2459">actions/checkout#2459</a></li>
<li>upgrade module to esm and update dependencies by <a
href="https://github.com/aiqiaoy"><code>@​aiqiaoy</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2463">actions/checkout#2463</a></li>
<li>Bump the minor-npm-dependencies group across 1 directory with 3
updates by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/actions/checkout/pull/2462">actions/checkout#2462</a></li>
<li>getting ready for checkout v7 release by <a
href="https://github.com/aiqiaoy"><code>@​aiqiaoy</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2464">actions/checkout#2464</a></li>
<li>update error wording by <a
href="https://github.com/aiqiaoy"><code>@​aiqiaoy</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2467">actions/checkout#2467</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/aiqiaoy"><code>@​aiqiaoy</code></a> made
their first contribution in <a
href="https://redirect.github.com/actions/checkout/pull/2454">actions/checkout#2454</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/checkout/compare/v6.0.3...v7.0.0">https://github.com/actions/checkout/compare/v6.0.3...v7.0.0</a></p>
<h2>v6.1.0</h2>
<h2>What's Changed</h2>
<ul>
<li><strong>[BREAKING]</strong> backport
<code>allow-unsafe-pr-checkout</code> to v6 by <a
href="https://github.com/aiqiaoy"><code>@​aiqiaoy</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2500">actions/checkout#2500</a></li>
<li>backport fixes to releases-v6 by <a
href="https://github.com/aiqiaoy"><code>@​aiqiaoy</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2527">actions/checkout#2527</a></li>
</ul>
<p><a
href="https://github.blog/changelog/2026-06-18-safer-pull_request_target-defaults-for-github-actions-checkout/">https://github.blog/changelog/2026-06-18-safer-pull_request_target-defaults-for-github-actions-checkout/</a>
for more details about this breaking change</p>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/checkout/compare/v6.0.3...v6.1.0">https://github.com/actions/checkout/compare/v6.0.3...v6.1.0</a></p>
<h2>v6.0.3</h2>
<h2>What's Changed</h2>
<ul>
<li>Update changelog by <a
href="https://github.com/ericsciple"><code>@​ericsciple</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2357">actions/checkout#2357</a></li>
<li>fix: expand merge commit SHA regex and add SHA-256 test cases by <a
href="https://github.com/yaananth"><code>@​yaananth</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2414">actions/checkout#2414</a></li>
<li>Fix checkout init for SHA-256 repositories by <a
href="https://github.com/yaananth"><code>@​yaananth</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2439">actions/checkout#2439</a></li>
<li>Update changelog for v6.0.3 by <a
href="https://github.com/yaananth"><code>@​yaananth</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2446">actions/checkout#2446</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/yaananth"><code>@​yaananth</code></a>
made their first contribution in <a
href="https://redirect.github.com/actions/checkout/pull/2414">actions/checkout#2414</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/checkout/compare/v6...v6.0.3">https://github.com/actions/checkout/compare/v6...v6.0.3</a></p>
<h2>v6.0.2</h2>
<h2>What's Changed</h2>
<ul>
<li>Add orchestration_id to git user-agent when ACTIONS_ORCHESTRATION_ID
is set by <a
href="https://github.com/TingluoHuang"><code>@​TingluoHuang</code></a>
in <a
href="https://redirect.github.com/actions/checkout/pull/2355">actions/checkout#2355</a></li>
<li>Fix tag handling: preserve annotations and explicit fetch-tags by <a
href="https://github.com/ericsciple"><code>@​ericsciple</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2356">actions/checkout#2356</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/checkout/compare/v6.0.1...v6.0.2">https://github.com/actions/checkout/compare/v6.0.1...v6.0.2</a></p>
<h2>v6.0.1</h2>
<h2>What's Changed</h2>
<ul>
<li>Update all references from v5 and v4 to v6 by <a
href="https://github.com/ericsciple"><code>@​ericsciple</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2314">actions/checkout#2314</a></li>
<li>Add worktree support for persist-credentials includeIf by <a
href="https://github.com/ericsciple"><code>@​ericsciple</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2327">actions/checkout#2327</a></li>
<li>Clarify v6 README by <a
href="https://github.com/ericsciple"><code>@​ericsciple</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2328">actions/checkout#2328</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/actions/checkout/commit/3d3c42e5aac5ba805825da76410c181273ba90b1"><code>3d3c42e</code></a>
prep v7.0.1 release (<a
href="https://redirect.github.com/actions/checkout/issues/2531">#2531</a>)</li>
<li><a
href="https://github.com/actions/checkout/commit/28802689a136bfcdb721715abd713740beecbe07"><code>2880268</code></a>
escape values passed to --unset (<a
href="https://redirect.github.com/actions/checkout/issues/2530">#2530</a>)</li>
<li><a
href="https://github.com/actions/checkout/commit/12cd2235efa0937479335606d7c3ac9f6c0973b1"><code>12cd223</code></a>
trim only ascii whitespace for branch (<a
href="https://redirect.github.com/actions/checkout/issues/2521">#2521</a>)</li>
<li><a
href="https://github.com/actions/checkout/commit/62661c4e71a304b2823ed026347b8d34c3eac541"><code>62661c4</code></a>
skip running unsafe pr check if input is default (<a
href="https://redirect.github.com/actions/checkout/issues/2518">#2518</a>)</li>
<li><a
href="https://github.com/actions/checkout/commit/e8d4307400f9427dba7cb98e488d6ab85f1cec5f"><code>e8d4307</code></a>
Bump the minor-actions-dependencies group with 2 updates (<a
href="https://redirect.github.com/actions/checkout/issues/2499">#2499</a>)</li>
<li><a
href="https://github.com/actions/checkout/commit/631c942040754b6e095e929c1677c07e10ed4f87"><code>631c942</code></a>
eslint 9 (<a
href="https://redirect.github.com/actions/checkout/issues/2474">#2474</a>)</li>
<li><a
href="https://github.com/actions/checkout/commit/4f1f4aec02e41874fa0262ea8ff5172d7978ad1e"><code>4f1f4ae</code></a>
Bump actions/upload-artifact from 4 to 7 (<a
href="https://redirect.github.com/actions/checkout/issues/2476">#2476</a>)</li>
<li><a
href="https://github.com/actions/checkout/commit/ba097532fb203f7e88c9c3c0b899b49469908a92"><code>ba09753</code></a>
Bump actions/checkout from 6 to 7 (<a
href="https://redirect.github.com/actions/checkout/issues/2488">#2488</a>)</li>
<li><a
href="https://github.com/actions/checkout/commit/b9e0990d219a03df7633c93f6f005a8fecbcab22"><code>b9e0990</code></a>
Bump docker/login-action from 3.3.0 to 4.2.0 (<a
href="https://redirect.github.com/actions/checkout/issues/2479">#2479</a>)</li>
<li><a
href="https://github.com/actions/checkout/commit/e8cb398be4a550817e382abf69e4c12c76fce1f2"><code>e8cb398</code></a>
Bump docker/build-push-action from 6.5.0 to 7.2.0 (<a
href="https://redirect.github.com/actions/checkout/issues/2478">#2478</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/actions/checkout/compare/v6...v7">compare
view</a></li>
</ul>
</details>
<br />

Updates `actions/setup-python` from 6 to 7
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/actions/setup-python/releases">actions/setup-python's
releases</a>.</em></p>
<blockquote>
<h2>v7.0.0</h2>
<h2>What's Changed</h2>
<h3>Enhancements</h3>
<ul>
<li>Migrate to ESM and upgrade dependencies by <a
href="https://github.com/priyagupta108"><code>@​priyagupta108</code></a>
in <a
href="https://redirect.github.com/actions/setup-python/pull/1330">actions/setup-python#1330</a></li>
<li>Pin SHA commits and update docs with latest versions by <a
href="https://github.com/HarithaVattikuti"><code>@​HarithaVattikuti</code></a>
in <a
href="https://redirect.github.com/actions/setup-python/pull/1338">actions/setup-python#1338</a></li>
<li>Remove the pip-install input by <a
href="https://github.com/gowridurgad"><code>@​gowridurgad</code></a> in
<a
href="https://redirect.github.com/actions/setup-python/pull/1336">actions/setup-python#1336</a></li>
</ul>
<h3>Bug Fix</h3>
<ul>
<li>Fix to Classify stderr warning messages as warnings instead of
errors in annotations by <a
href="https://github.com/lmvysakh"><code>@​lmvysakh</code></a> in <a
href="https://redirect.github.com/actions/setup-python/pull/1335">actions/setup-python#1335</a></li>
<li>Validate and retry manifest fetch to prevent silent failures by <a
href="https://github.com/priyagupta108"><code>@​priyagupta108</code></a>
in <a
href="https://redirect.github.com/actions/setup-python/pull/1332">actions/setup-python#1332</a></li>
</ul>
<h3>Dependency Upgrade</h3>
<ul>
<li>Bump certifi from 2020.6.20 to 2024.7.4 in
/<strong>tests</strong>/data by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/actions/setup-python/pull/1328">actions/setup-python#1328</a></li>
<li>Remove EOL Python versions and Bumps numpy text fixture by <a
href="https://github.com/priya-kinthali"><code>@​priya-kinthali</code></a>
in <a
href="https://redirect.github.com/actions/setup-python/pull/1333">actions/setup-python#1333</a></li>
<li>Upgrade <code>@​actions/cache</code> to 6.2.0 by <a
href="https://github.com/philip-gai"><code>@​philip-gai</code></a> in <a
href="https://redirect.github.com/actions/setup-python/pull/1337">actions/setup-python#1337</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/lmvysakh"><code>@​lmvysakh</code></a>
made their first contribution in <a
href="https://redirect.github.com/actions/setup-python/pull/1335">actions/setup-python#1335</a></li>
<li><a
href="https://github.com/philip-gai"><code>@​philip-gai</code></a> made
their first contribution in <a
href="https://redirect.github.com/actions/setup-python/pull/1337">actions/setup-python#1337</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/setup-python/compare/v6...v7.0.0">https://github.com/actions/setup-python/compare/v6...v7.0.0</a></p>
<h2>v6.3.0</h2>
<h2>What's Changed</h2>
<h3>Enhancement</h3>
<ul>
<li>Add RHEL support and include Linux distro in cache keys by <a
href="https://github.com/priyagupta108"><code>@​priyagupta108</code></a>
in <a
href="https://redirect.github.com/actions/setup-python/pull/1323">actions/setup-python#1323</a></li>
<li>Fix pip cache error handling on Windows by <a
href="https://github.com/priyagupta108"><code>@​priyagupta108</code></a>
in <a
href="https://redirect.github.com/actions/setup-python/pull/1040">actions/setup-python#1040</a></li>
</ul>
<h3>Dependency update</h3>
<ul>
<li>Upgrade minimatch from 3.1.2 to 3.1.5 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/actions/setup-python/pull/1281">actions/setup-python#1281</a></li>
<li>Upgrade actions dependencies by <a
href="https://github.com/gowridurgad"><code>@​gowridurgad</code></a>
with <a href="https://github.com/Copilot"><code>@​Copilot</code></a> in
<a
href="https://redirect.github.com/actions/setup-python/pull/1303">actions/setup-python#1303</a></li>
<li>Upgrade <code>@​actions/cache</code> to 5.1.0, log cache write
denied by <a
href="https://github.com/jasongin"><code>@​jasongin</code></a> in <a
href="https://redirect.github.com/actions/setup-python/pull/1324">actions/setup-python#1324</a></li>
<li>Upgrade dependency versions and test workflow configuration by <a
href="https://github.com/HarithaVattikuti"><code>@​HarithaVattikuti</code></a>
in <a
href="https://redirect.github.com/actions/setup-python/pull/1322">actions/setup-python#1322</a></li>
</ul>
<h3>Documentation</h3>
<ul>
<li>Update advanced-usage.md by <a
href="https://github.com/Dunky-Z"><code>@​Dunky-Z</code></a> in <a
href="https://redirect.github.com/actions/setup-python/pull/811">actions/setup-python#811</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/gowridurgad"><code>@​gowridurgad</code></a>
with <a href="https://github.com/Copilot"><code>@​Copilot</code></a>
made their first contribution in <a
href="https://redirect.github.com/actions/setup-python/pull/1303">actions/setup-python#1303</a></li>
<li><a href="https://github.com/jasongin"><code>@​jasongin</code></a>
made their first contribution in <a
href="https://redirect.github.com/actions/setup-python/pull/1324">actions/setup-python#1324</a></li>
<li><a href="https://github.com/Dunky-Z"><code>@​Dunky-Z</code></a> made
their first contribution in <a
href="https://redirect.github.com/actions/setup-python/pull/811">actions/setup-python#811</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/setup-python/compare/v6.2.0...v6.3.0">https://github.com/actions/setup-python/compare/v6.2.0...v6.3.0</a></p>
<h2>v6.2.0</h2>
<h2>What's Changed</h2>
<h3>Dependency Upgrades</h3>
<ul>
<li>Upgrade dependencies to Node 24 compatible versions by <a
href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a> in <a
href="https://redirect.github.com/actions/setup-python/pull/1259">actions/setup-python#1259</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/actions/setup-python/commit/5fda3b95a4ea91299a34e894583c3862153e4b97"><code>5fda3b9</code></a>
Pin SHA commits and update docs with latest versions (<a
href="https://redirect.github.com/actions/setup-python/issues/1338">#1338</a>)</li>
<li><a
href="https://github.com/actions/setup-python/commit/4ab7e95f05e168b4356aebde89dd84f59c283d8e"><code>4ab7e95</code></a>
Merge pull request <a
href="https://redirect.github.com/actions/setup-python/issues/1337">#1337</a>
from actions/philip-gai/bump-actions-cache-6-2-0</li>
<li><a
href="https://github.com/actions/setup-python/commit/0f3a009f475dbea83c0371cd85d099690fee8c5c"><code>0f3a009</code></a>
Remove the pip-install input (<a
href="https://redirect.github.com/actions/setup-python/issues/1336">#1336</a>)</li>
<li><a
href="https://github.com/actions/setup-python/commit/f8cf4291c8b8e273ddd26e569454615c7315d932"><code>f8cf429</code></a>
Migrate to ESM and upgrade dependencies (<a
href="https://redirect.github.com/actions/setup-python/issues/1330">#1330</a>)</li>
<li><a
href="https://github.com/actions/setup-python/commit/54baeea5b34417d10a7479663a23cca53ea209b5"><code>54baeea</code></a>
Validate and retry manifest fetch to prevent silent failures (<a
href="https://redirect.github.com/actions/setup-python/issues/1332">#1332</a>)</li>
<li><a
href="https://github.com/actions/setup-python/commit/c7092773a316760f4ecfe498e4af668a4dafeac5"><code>c709277</code></a>
Annotation code fix (<a
href="https://redirect.github.com/actions/setup-python/issues/1335">#1335</a>)</li>
<li><a
href="https://github.com/actions/setup-python/commit/6849080452e69b330395e8a6d23cf90f56d76a1a"><code>6849080</code></a>
remove EOL Python versions and Bumps numpy text fixture (<a
href="https://redirect.github.com/actions/setup-python/issues/1333">#1333</a>)</li>
<li><a
href="https://github.com/actions/setup-python/commit/0903b469fbf4441aadfe4f4b249dc5b1fba3a73e"><code>0903b46</code></a>
Bump certifi from 2020.6.20 to 2024.7.4 in /<strong>tests</strong>/data
(<a
href="https://redirect.github.com/actions/setup-python/issues/1328">#1328</a>)</li>
<li>See full diff in <a
href="https://github.com/actions/setup-python/compare/v6...v7">compare
view</a></li>
</ul>
</details>
<br />

Updates `github/gh-aw` from 0.81.6 to 0.82.14
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/github/gh-aw/releases">github/gh-aw's
releases</a>.</em></p>
<blockquote>
<h2>v0.82.14</h2>
<h2>🌟 Release Highlights</h2>
<p>This release focuses on <strong>safe-outputs reliability</strong>,
<strong>workshop UX polish</strong>, a new <strong>top-level
<code>model</code> field</strong>, and a wave of new linters and
security guardrails.</p>
<h3>✨ What's New</h3>
<ul>
<li><strong>Top-level <code>model</code> field</strong> — You can now
specify the model at the top level of your workflow (e.g., <code>model:
claude-sonnet-4-5</code>), deprecating the nested
<code>engine.model</code> path. <a
href="https://github.github.com/gh-aw/reference/steps-jobs">Reference
docs</a></li>
<li><strong><code>auto_upgrade_cron</code> in
<code>aw.json</code></strong> — Configure a custom auto-upgrade schedule
directly in your project manifest instead of relying on defaults.</li>
<li><strong>Evals enabled across 64 agentic workflows</strong> — Broader
evaluation coverage improves regression detection and workflow quality
assurance.</li>
<li><strong><code>--rootless</code> flag for
<code>install_copilot_cli.sh</code></strong> — ARC/DinD runners can now
install the Copilot CLI without root privileges.</li>
<li><strong>Mode-specific intent guidance for safe-output tools</strong>
— Mutation tools now surface targeted guidance based on the current
workflow mode, reducing misuse and improving agent decision
quality.</li>
<li><strong>Fail-fast guardrail for schema file changes</strong> — The
compiler now rejects schema changes that were made without a rebuild,
preventing subtle runtime mismatches.</li>
<li><strong>Workshop: journey/adventure filtering, GFM alerts &amp; task
lists</strong> — Workshop steps now support filtering by
journey/adventure tags, render GitHub-flavored alerts (&gt; [!NOTE]),
and display task-list checkboxes.</li>
<li><strong>Workshop URL hash navigation</strong> — Browser back/forward
now restores workshop state via URL hash encoding.</li>
<li><strong>DeepSec &amp; VulnHunter security scan workflows</strong> —
On-demand and daily security scanning workflows added for continuous
vulnerability detection.</li>
<li><strong><code>errgroup</code> for structured concurrency in MCP
inspector</strong> — Replaces ad-hoc goroutine management with proper
error propagation.</li>
</ul>
<h3>🐛 Bug Fixes &amp; Improvements</h3>
<ul>
<li><strong><code>tools.startup-timeout</code> now propagates to
<code>gateway.startupTimeout</code></strong> — Fixes safeoutputs
eviction on slow runners where the gateway was timing out before the
tool server was ready.</li>
<li><strong><code>OTEL_SERVICE_NAME</code> respected</strong> —
User-defined OpenTelemetry service names are no longer overridden when
OTLP observability is enabled.</li>
<li><strong>MCP CLI prompt list reflects
<code>--disable-builtin-mcps</code></strong> — The listed MCP servers
now accurately reflect which servers are actually mounted.</li>
<li><strong><code>logs</code> tool fixed for missing
<code>workflow_name</code> filter</strong> — Previously caused a context
deadline exceeded error; now handled gracefully.</li>
<li><strong><code>safe.directory</code> trust bridged via
<code>GIT_CONFIG_*</code> env vars</strong> — Fixes git operations in
safe-outputs on restrictive runners.</li>
<li><strong><code>partial_execution</code> + terminal safe-output
treated as success</strong> — Prevents false failure signals when an
agent completes its final safe-output action after a partial execution
state.</li>
<li><strong>Stable cron schedule in <code>make recompile</code></strong>
— Pins <code>--schedule-seed</code> to eliminate drift in auto-upgrade
lock files across recompiles.</li>
<li><strong><code>#nosec</code> justification separators
normalized</strong> — <code>-</code> and <code>—</code> variants are now
normalised to <code>--</code> for consistent security annotation
parsing.</li>
<li><strong><code>close_issue</code> and <code>assign_to_agent</code>
payloads</strong> — Issue-intent metadata is now correctly nested in the
payload structure.</li>
<li><strong><code>update_issue</code> MCP body length regression
coverage</strong> — Added tests to guard against silent truncation above
10 KB.</li>
</ul>
<h3>⚡ Performance</h3>
<ul>
<li><strong><code>parseEngineDefinitionFromJSON</code> cached</strong> —
Eliminates a per-compile JSON→YAML round-trip, reducing compilation
overhead for workflows with engine definitions.</li>
<li><strong>Reduced ambient context token usage</strong> — 4 workflows
updated to use narrower context windows, lowering AI-credit burn.</li>
<li><strong>Scheduled workflow staggering</strong> — Midnight batch
workflows staggered to reduce peak AI-credit consumption.</li>
</ul>
<h3>🔒 Security</h3>
<ul>
<li><strong>SHA-256 checksum pinned for sentrux binary install</strong>
— Resolves RGS-018 supply-chain finding.</li>
<li><strong><code>no-exec-interpolated-command</code> ESLint
rule</strong> — Flags shell commands constructed from interpolated
strings.</li>
<li><strong><code>no-github-request-interpolated-route</code>
extended</strong> — Now recognises <code>global.getOctokit()</code>
aliases.</li>
<li><strong>Cross-repo regex tightened (SEC-005)</strong> — Eliminates
false positive on <code>frontmatter_hash_pure.cjs</code>.</li>
</ul>
<h3>🔧 New Linters</h3>
<ul>
<li><strong><code>timenowsub</code></strong> — Flags
<code>time.Now().Sub(t)</code> patterns that should be
<code>time.Since(t)</code>.</li>
<li><strong><code>trimleftright</code></strong> — Detects
distinct-character prefix/suffix bugs from
<code>strings.TrimLeft</code>/<code>TrimRight</code> misuse.</li>
<li><strong><code>appendoneelement</code></strong> — Catches
single-element append patterns that could use assignment.</li>
<li><strong><code>no-core-error-then-process-exit</code></strong>
(ESLint) — Prevents error-then-exit anti-patterns in GitHub
Scripts.</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/github/gh-aw/commit/8b820ae1073f301991aaf2f307f7e271f618bb9f"><code>8b820ae</code></a>
fix: propagate tools.startup-timeout to gateway.startupTimeout (prevents
safe...</li>
<li><a
href="https://github.com/github/gh-aw/commit/bd3f5d93f4bb237c50d55ff555c2e32871d7c8d0"><code>bd3f5d9</code></a>
fix: mode-specific intent guidance for all intent-aware safe-output
mutations...</li>
<li><a
href="https://github.com/github/gh-aw/commit/cdd7b86accc1bc57c2f62559675bb1ecf01787da"><code>cdd7b86</code></a>
[WIP] Fix failing GitHub Actions job for CLI completion (<a
href="https://redirect.github.com/github/gh-aw/issues/46859">#46859</a>)</li>
<li><a
href="https://github.com/github/gh-aw/commit/deea8a4553df30fac664faeccfcab18d6b1e7ddd"><code>deea8a4</code></a>
Recognize <code>global.getOctokit()</code> aliases in
`no-github-request-interpolated-ro...</li>
<li><a
href="https://github.com/github/gh-aw/commit/0d16d6839af4c512e30b00c2ea872423cbdede32"><code>0d16d68</code></a>
feat: mode-specific intent guidance for all safe-output mutation tools
(<a
href="https://redirect.github.com/github/gh-aw/issues/46861">#46861</a>)</li>
<li><a
href="https://github.com/github/gh-aw/commit/f1220ceb8372ca94114585e5d09902e1ca5e3cca"><code>f1220ce</code></a>
chore: remove dead functions — 1 function removed (<a
href="https://redirect.github.com/github/gh-aw/issues/46860">#46860</a>)</li>
<li><a
href="https://github.com/github/gh-aw/commit/3ceb8eca98a5490ff84f937c83ac66a8bf75496e"><code>3ceb8ec</code></a>
feat(init): make --codespaces optional-value; grant discussions/issues
write ...</li>
<li><a
href="https://github.com/github/gh-aw/commit/9dc71fb68b0552a9097d80a9d47c48580fa61f8d"><code>9dc71fb</code></a>
fix: nest issue-intent metadata correctly in close_issue and
assign_to_agent ...</li>
<li><a
href="https://github.com/github/gh-aw/commit/e03203a97b26fe51eb0b1bc51e2b071fa7d46004"><code>e03203a</code></a>
[eslint-factory] core-method-resolve: recognize function-parameter
<code>core</code> bin...</li>
<li><a
href="https://github.com/github/gh-aw/commit/f9ecca568eb8b90bc4a6d75fe68fd90cd033f597"><code>f9ecca5</code></a>
Replace in-doc workshop experience with external workshop repository
link (<a
href="https://redirect.github.com/github/gh-aw/issues/4">#4</a>...</li>
<li>Additional commits viewable in <a
href="https://github.com/github/gh-aw/compare/v0.81.6...v0.82.14">compare
view</a></li>
</ul>
</details>
<br />

Updates `actions/setup-dotnet` from 5 to 6
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/actions/setup-dotnet/releases">actions/setup-dotnet's
releases</a>.</em></p>
<blockquote>
<h2>v6.0.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Migrate to ESM and upgrade dependencies by <a
href="https://github.com/priyagupta108"><code>@​priyagupta108</code></a>
in <a
href="https://redirect.github.com/actions/setup-dotnet/pull/752">actions/setup-dotnet#752</a></li>
<li>Bump actions/checkout from 6.0.3 to 7.0.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/actions/setup-dotnet/pull/751">actions/setup-dotnet#751</a></li>
<li>chore(deps): bump <code>@​actions/cache</code> to 6.2.0 by <a
href="https://github.com/philip-gai"><code>@​philip-gai</code></a> in <a
href="https://redirect.github.com/actions/setup-dotnet/pull/756">actions/setup-dotnet#756</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/philip-gai"><code>@​philip-gai</code></a> made
their first contribution in <a
href="https://redirect.github.com/actions/setup-dotnet/pull/756">actions/setup-dotnet#756</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/setup-dotnet/compare/v5...v6.0.0">https://github.com/actions/setup-dotnet/compare/v5...v6.0.0</a></p>
<h2>v5.4.0</h2>
<h2>What's Changed</h2>
<h3>Enhancements</h3>
<ul>
<li>Improve global.json SDK version validation for rollForward by <a
href="https://github.com/priyagupta108"><code>@​priyagupta108</code></a>
in <a
href="https://redirect.github.com/actions/setup-dotnet/pull/742">actions/setup-dotnet#742</a></li>
<li>Pin actions to commit SHAs in workflows by <a
href="https://github.com/priya-kinthali"><code>@​priya-kinthali</code></a>
in <a
href="https://redirect.github.com/actions/setup-dotnet/pull/744">actions/setup-dotnet#744</a></li>
<li>Expand the CSC problem matcher to light up more errors on GitHub. by
<a
href="https://github.com/StephenCleary"><code>@​StephenCleary</code></a>
in <a
href="https://redirect.github.com/actions/setup-dotnet/pull/717">actions/setup-dotnet#717</a></li>
</ul>
<h3>Documentation</h3>
<ul>
<li>Docs(action): Explicitly mark all optional inputs with required:
false by <a
href="https://github.com/kranthipoturaju"><code>@​kranthipoturaju</code></a>
in <a
href="https://redirect.github.com/actions/setup-dotnet/pull/737">actions/setup-dotnet#737</a></li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>Fix global.json creation command by <a
href="https://github.com/michal2612"><code>@​michal2612</code></a> in <a
href="https://redirect.github.com/actions/setup-dotnet/pull/694">actions/setup-dotnet#694</a></li>
</ul>
<h3>Dependency Updates</h3>
<ul>
<li>Upgrade <code>@​actions/cache</code> to 5.1.0, log cache write
denied by <a
href="https://github.com/jasongin"><code>@​jasongin</code></a> in <a
href="https://redirect.github.com/actions/setup-dotnet/pull/746">actions/setup-dotnet#746</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/jasongin"><code>@​jasongin</code></a>
made their first contribution in <a
href="https://redirect.github.com/actions/setup-dotnet/pull/746">actions/setup-dotnet#746</a></li>
<li><a
href="https://github.com/michal2612"><code>@​michal2612</code></a> made
their first contribution in <a
href="https://redirect.github.com/actions/setup-dotnet/pull/694">actions/setup-dotnet#694</a></li>
<li><a
href="https://github.com/kranthipoturaju"><code>@​kranthipoturaju</code></a>
made their first contribution in <a
href="https://redirect.github.com/actions/setup-dotnet/pull/737">actions/setup-dotnet#737</a></li>
<li><a
href="https://github.com/StephenCleary"><code>@​StephenCleary</code></a>
made their first contribution in <a
href="https://redirect.github.com/actions/setup-dotnet/pull/717">actions/setup-dotnet#717</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/setup-dotnet/compare/v5...v5.4.0">https://github.com/actions/setup-dotnet/compare/v5...v5.4.0</a></p>
<h2>v5.3.0</h2>
<h2>What's Changed</h2>
<h3>Enhancements</h3>
<ul>
<li>Add dotnet-version: latest support with dotnet-channel input by <a
href="https://github.com/mahabaleshwars"><code>@​mahabaleshwars</code></a>
in <a
href="https://redirect.github.com/actions/setup-dotnet/pull/730">actions/setup-dotnet#730</a></li>
<li>Support global.json's rollForward latest* variants by <a
href="https://github.com/js6pak"><code>@​js6pak</code></a> in <a
href="https://redirect.github.com/actions/setup-dotnet/pull/538">actions/setup-dotnet#538</a></li>
<li>Improve version resolution by <a
href="https://github.com/akoeplinger"><code>@​akoeplinger</code></a> in
<a
href="https://redirect.github.com/actions/setup-dotnet/pull/560">actions/setup-dotnet#560</a></li>
</ul>
<h3>Dependency Updates</h3>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/actions/setup-dotnet/commit/a98b56852c35b8e3190ac28c8c2271da59106c68"><code>a98b568</code></a>
chore(deps): bump <code>@​actions/cache</code> to 6.2.0 (<a
href="https://redirect.github.com/actions/setup-dotnet/issues/756">#756</a>)</li>
<li><a
href="https://github.com/actions/setup-dotnet/commit/afb2931642fd907238eb71bce2da0dcc910b3553"><code>afb2931</code></a>
Bump actions/checkout from 6.0.3 to 7.0.0 (<a
href="https://redirect.github.com/actions/setup-dotnet/issues/751">#751</a>)</li>
<li><a
href="https://github.com/actions/setup-dotnet/commit/6df8cefd1440cf9313e76b8fdb8aaf90cfa745a3"><code>6df8cef</code></a>
Migrate to ESM and upgrade dependencies (<a
href="https://redirect.github.com/actions/setup-dotnet/issues/752">#752</a>)</li>
<li>See full diff in <a
href="https://github.com/actions/setup-dotnet/compare/v5...v6">compare
view</a></li>
</ul>
</details>
<br />

Updates `actions/setup-node` from 6 to 7
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/actions/setup-node/releases">actions/setup-node's
releases</a>.</em></p>
<blockquote>
<h2>v7.0.0</h2>
<h2>What's Changed</h2>
<h3>Enhancements:</h3>
<ul>
<li>Add cache-primary-key and cache-matched-key as outputs by <a
href="https://github.com/gowridurgad"><code>@​gowridurgad</code></a> in
<a
href="https://redirect.github.com/actions/setup-node/pull/1577">actions/setup-node#1577</a></li>
<li>Migrate to ESM and upgrade dependencies by <a
href="https://github.com/gowridurgad"><code>@​gowridurgad</code></a> in
<a
href="https://redirect.github.com/actions/setup-node/pull/1574">actions/setup-node#1574</a></li>
</ul>
<h3>Bug fixes:</h3>
<ul>
<li>Remove dummy NODE_AUTH_TOKEN export by <a
href="https://github.com/gowridurgad"><code>@​gowridurgad</code></a> in
<a
href="https://redirect.github.com/actions/setup-node/pull/1558">actions/setup-node#1558</a></li>
<li>Only use <code>mirrorToken</code> in <code>getManifest</code> if
it's provided by <a
href="https://github.com/deiga"><code>@​deiga</code></a> in <a
href="https://redirect.github.com/actions/setup-node/pull/1548">actions/setup-node#1548</a></li>
</ul>
<h3>Documentation updates:</h3>
<ul>
<li>Add documentation for publishing to npm with Trusted Publisher
(OIDC) by <a
href="https://github.com/chiranjib-swain"><code>@​chiranjib-swain</code></a>
in <a
href="https://redirect.github.com/actions/setup-node/pull/1536">actions/setup-node#1536</a></li>
<li>docs: Update restore-only cache documentation by <a
href="https://github.com/priya-kinthali"><code>@​priya-kinthali</code></a>
in <a
href="https://redirect.github.com/actions/setup-node/pull/1550">actions/setup-node#1550</a></li>
<li>docs: Update caching recommendations to mitigate cache poisoning
risks by <a
href="https://github.com/chiranjib-swain"><code>@​chiranjib-swain</code></a>
in <a
href="https://redirect.github.com/actions/setup-node/pull/1567">actions/setup-node#1567</a></li>
</ul>
<h3>Dependency update:</h3>
<ul>
<li>Upgrade <code>@​actions/cache</code> to 5.1.0, log cache write
denied by <a
href="https://github.com/jasongin"><code>@​jasongin</code></a> in <a
href="https://redirect.github.com/actions/setup-node/pull/1569">actions/setup-node#1569</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/chiranjib-swain"><code>@​chiranjib-swain</code></a>
made their first contribution in <a
href="https://redirect.github.com/actions/setup-node/pull/1536">actions/setup-node#1536</a></li>
<li><a href="https://github.com/deiga"><code>@​deiga</code></a> made
their first contribution in <a
href="https://redirect.github.com/actions/setup-node/pull/1548">actions/setup-node#1548</a></li>
<li><a href="https://github.com/jasongin"><code>@​jasongin</code></a>
made their first contribution in <a
href="https://redirect.github.com/actions/setup-node/pull/1569">actions/setup-node#1569</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/setup-node/compare/v6...v7.0.0">https://github.com/actions/setup-node/compare/v6...v7.0.0</a></p>
<h2>v6.5.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Update <code>@​actions/cache</code> to 5.1.0 and add security
overrides for undici and fast-xml-parser by <a
href="https://github.com/HarithaVattikuti"><code>@​HarithaVattikuti</code></a>
in <a
href="https://redirect.github.com/actions/setup-node/pull/1579">actions/setup-node#1579</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/setup-node/compare/v6.4.0...v6.5.0">https://github.com/actions/setup-node/compare/v6.4.0...v6.5.0</a></p>
<h2>v6.4.0</h2>
<h2>What's Changed</h2>
<h3>Dependency updates:</h3>
<ul>
<li>Upgrade <a
href="https://github.com/actions"><code>@​actions</code></a>
dependencies by <a
href="https://github.com/Copilot"><code>@​Copilot</code></a> in <a
href="https://redirect.github.com/actions/setup-node/pull/1525">actions/setup-node#1525</a></li>
<li>Update Node.js versions in versions.yml and bump package to v6.4.0
by <a
href="https://github.com/priya-kinthali"><code>@​priya-kinthali</code></a>
in <a
href="https://redirect.github.com/actions/setup-node/pull/1533">actions/setup-node#1533</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/Copilot"><code>@​Copilot</code></a> made
their first contribution in <a
href="https://redirect.github.com/actions/setup-node/pull/1525">actions/setup-node#1525</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/setup-node/compare/v6...v6.4.0">https://github.com/actions/setup-node/compare/v6...v6.4.0</a></p>
<h2>v6.3.0</h2>
<h2>What's Changed</h2>
<h3>Enhancements:</h3>
<ul>
<li>Support parsing <code>devEngines</code> field by <a
href="https://github.com/susnux"><code>@​susnux</code></a> in <a
href="https://redirect.github.com/actions/setup-node/pull/1283">actions/setup-node#1283</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/actions/setup-node/commit/820762786026740c76f36085b0efc47a31fe5020"><code>8207627</code></a>
Migrate to ESM and upgrade dependencies (<a
href="https://redirect.github.com/actions/setup-node/issues/1574">#1574</a>)</li>
<li><a
href="https://github.com/actions/setup-node/commit/04be95cf3511ea51ebf9f224ddfb99cc7ab87cd4"><code>04be95c</code></a>
Add cache-primary-key and cache-matched-key as outputs (<a
href="https://redirect.github.com/actions/setup-node/issues/1577">#1577</a>)</li>
<li><a
href="https://github.com/actions/setup-node/commit/7c2c68d20d402ed6a201ada70a81341941093140"><code>7c2c68d</code></a>
docs: Update caching recommendations to mitigate cache poisoning risks
(<a
href="https://redirect.github.com/actions/setup-node/issues/1567">#1567</a>)</li>
<li><a
href="https://github.com/actions/setup-node/commit/6a61c0375d66246de94630495909f12cf8dac84d"><code>6a61c03</code></a>
Merge pull request <a
href="https://redirect.github.com/actions/setup-node/issues/1569">#1569</a>
from jasongin/update-actions-cache-5.1.0</li>
<li><a
href="https://github.com/actions/setup-node/commit/30eb73b41ded577900c1ebf968ef95cdf8f7434f"><code>30eb73b</code></a>
Resolve high-severity audit issues</li>
<li><a
href="https://github.com/actions/setup-node/commit/4e1a87a501d0302f99e30e2748568adcb388d09f"><code>4e1a87a</code></a>
Update dist</li>
<li><a
href="https://github.com/actions/setup-node/commit/360237f0c01778d0c17291f75c56d6feae4f7574"><code>360237f</code></a>
Strict equality</li>
<li><a
href="https://github.com/actions/setup-node/commit/4f8aac5beb2f0854bc79651567a18c67eb0b9de3"><code>4f8aac5</code></a>
Bump <code>@​actions/cache</code> to 5.1.0, log cache write denied</li>
<li><a
href="https://github.com/actions/setup-node/commit/f4a67bbeca970f103397d3d2b9462cf787cd2980"><code>f4a67bb</code></a>
Only use <code>mirrorToken</code> in <code>getManifest</code> if it's
provided (<a
href="https://redirect.github.com/actions/setup-node/issues/1548">#1548</a>)</li>
<li><a
href="https://github.com/actions/setup-node/commit/0355742c943ddb13ca8a6b700f824231caa91e75"><code>0355742</code></a>
Remove dummy NODE_AUTH_TOKEN export (<a
href="https://redirect.github.com/actions/setup-node/issues/1558">#1558</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/actions/setup-node/compare/v6...v7">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>
…m 2.18.7 to 2.18.9 in /packages/http-client-java/generator/http-client-generator-clientcore-test (microsoft#11334)

Bumps
[com.fasterxml.jackson.core:jackson-databind](https://github.com/FasterXML/jackson)
from 2.18.7 to 2.18.9.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/FasterXML/jackson/commits">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=com.fasterxml.jackson.core:jackson-databind&package-manager=maven&previous-version=2.18.7&new-version=2.18.9)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

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 this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/microsoft/typespec/network/alerts).

</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
… skip raw bytes payloads (microsoft#11329)

## Fix XML serializer gating for byte[] payloads

### Problem
A recent change (support XML serialization in the http-client-java
generator) emitted a static XML `ObjectSerializer SERIALIZER` field
whenever an operation had an XML content-type. This was wrong in two
cases:

1. **Raw `byte[]`/`BinaryData` payloads** (e.g. an operation returning a
raw XML document as `bytes`, like `azure-analytics-planetarycomputer`'s
`getWmtsCapabilities`). Here the `SERIALIZER` referenced an
`XmlSerializerProviders` helper that is only generated for models
actually used in XML, so the generated code failed to compile.
2. **Non `azure-v1` data-plane clients.** XML `ObjectSerializer`
handling only applies to the `azure-core` (v1) data-plane flavor.

### Fix
- Gate `SERIALIZER` emission on `isAzureV1() && isDataPlaneClient()`.
- Only use the XML `ObjectSerializer` when the payload is an actual
model, i.e. not `byte[]`/`BinaryData`/`Base64Url`.
- Inspect the **convenience** method's model body types (unwrapping
`Mono`/`Flux`/`Response`/`ResponseBase`/`PagedIterable`/`PagedFlux`/`PagedResponseBase`)
instead of the protocol method's `BinaryData` type.

### Verification
- New `tsp/xml-bytes-verify.tsp` case (data-plane azure-v1 op returning
`bytes` with `application/xml`) generates committed source under
`tsptest/xmlbytesverify`.
- New reflection-based `XmlBytesVerifyTests` asserts the generated
clients declare **no** static `SERIALIZER` field for raw bytes payloads,
with a positive control on `payload.xml.SimpleModelValueClient`.
- Regenerating `payload/xml` produces identical output (`SERIALIZER`
count unchanged at 312), confirming real XML model clients are
unaffected.

Ref: Azure/azure-sdk-for-java#49877

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…soft#11339)

Adds a 7-day cooldown to all dependabot update entries so newly
published packages must age before Dependabot opens PRs, satisfying the
quarantine policy.

- **All ecosystems (pip, npm, github-actions)**: added `cooldown:
default-days: 7`

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: timotheeguerin <1031227+timotheeguerin@users.noreply.github.com>
Co-authored-by: Timothee Guerin <tiguerin@microsoft.com>
- Add explicit pnpm format rule and pnpm-lock.yaml avoidance to Commit instructions
- Add new Branch and PR Workflow section with guidance on branching from
  upstream main and PRing against it

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: d6793634-e102-42e8-b249-6e10ff537a39
@github-actions

Copy link
Copy Markdown

❌ There is undocummented changes. Run chronus add to add a changeset or click here.

The following packages have changes but are not documented.

  • @typespec/asset-emitter
  • @typespec/events
  • @typespec/html-program-viewer
  • @typespec/http-canonicalization
  • @typespec/http-client-js
  • @typespec/http-client-python
  • @typespec/http-client
  • @typespec/http-server-csharp
  • @typespec/http-server-js
  • @typespec/internal-build-utils
  • @typespec/json-schema
  • @typespec/library-linter
  • @typespec/mutator-framework
  • @typespec/playground
  • @typespec/prettier-plugin-typespec
  • @typespec/protobuf
  • @typespec/rest
  • @typespec/spec-coverage-sdk
  • @typespec/sse
  • @typespec/streams
  • tmlanguage-generator
  • @typespec/versioning
  • @typespec/xml

The following packages have already been documented:

  • @typespec/bundler
  • @typespec/compiler
  • @typespec/emitter-framework
  • @typespec/graphql
  • @typespec/http-client-java
  • @typespec/http-specs
  • @typespec/http
  • @typespec/openapi
  • @typespec/openapi3
  • @typespec/spec-api
  • @typespec/spector
  • @typespec/tspd
Show changes

@typespec/http-client-java - dependencies ✏️

Update http-client-java Node.js dependencies

@typespec/http-client-java - internal ✏️

Ignore modifications to META-INF metadata.json files

@typespec/emitter-framework - feature ✏️

Add Python Pydantic helpers to the emitter framework: PydanticClassDeclaration, PydanticSettingsClassDeclaration, and PydanticRootModelDeclaration components, along with field_validator, model_validator, field_serializer, and computed_field decorator helpers.

@typespec/compiler - feature ✏️

Add setAutoDecorator API to programmatically apply an auto decorator to a target, mirroring what the synthesized auto dec implementation does when the decorator is written in source. This lets emitters and mutators mark synthetic types without reaching into the program state map directly.,> ,> ts,> import { setAutoDecorator } from "@typespec/compiler";,> ,> setAutoDecorator(program, "MyLib.myFlag", target);,>

@typespec/http-client-java - internal ✏️

Formatting

@typespec/http-client-java - internal ✏️

Add service/multiple-services generation and end-to-end test coverage in http-client-generator-test.

@typespec/http-client-java - internal ✏️

Add e2e tests

@typespec/http-client-java - internal ✏️

Add SpecialChars e2e test, encode/boolean test (disabled), and type/union/discriminated e2e tests

@typespec/http-client-java - dependencies ✏️

Update http-client-java Node.js dependencies and regenerate Java test assets

@typespec/openapi3 - internal ✏️

Provide extended documentation for several diagnostics (path-query, duplicate-header, inline-cycle, invalid-schema, invalid-server-variable, union-null) via co-located markdown files.

@typespec/http-client-java - feature ✏️

Support clientApiVersions

@typespec/graphql - internal ✏️

Add @typespec/graphql emitter for generating GraphQL SDL from TypeSpec definitions

@typespec/http-client-java - internal ✏️

Reformat augment decorator arguments in test files to match updated formatter style.

@typespec/http-client-java - internal ✏️

Reformat a test spec affected by the compiler formatter change keeping is/extends inline for multi-argument template references (whitespace only, no semantic change).

@typespec/http-client-java - internal ✏️

Reformat union template arguments in test files to match updated formatter style.

@typespec/http-client-java - fix ✏️

Fix null LRO error response body handling in generated management clients.

@typespec/http - internal ✏️

Keep the generated linter rule reference pages at their historical libraries/http/rules/<name> location so existing rule documentation URLs stay stable.

@typespec/http-client-java - fix ✏️

Fix multi-client packages generating a separate ServiceVersion enum per client when all clients share the same api-versions. The api-version comparison now compares version strings instead of ApiVersion object references, restoring a single shared ServiceVersion for such packages.

typespec-vscode - fix ✏️

Fix a shell command injection in the tsp compile task provider. Tasks now run via vscode.ProcessExecution with arguments passed as an array instead of vscode.ShellExecution, so workspace file paths and task arguments are no longer interpreted by the OS shell. The task args is now specified as an array of arguments.

@typespec/http-client-java - internal ✏️

Add e2e tests for parameters/body-root, parameters/query special char, type/model/inheritance/single-discriminator no-subtypes, azure/resourcemanager/common-properties arm-resource-identifiers, and azure/resourcemanager/management-group scenarios

@typespec/http-client-java - internal ✏️

Enable the parameters.query.QueryTests dollar-sign test in the clientcore test module now that the @typespec/http-specs dollar-sign route fix is published.

@typespec/http-client-java - fix ✏️

Fix XML serialization to only apply for azure-v1 data-plane clients, and to skip the XML ObjectSerializer for raw byte[]/BinaryData payloads that are not structured XML models. This avoids emitting a reference to a non-generated XmlSerializerProviders helper (which caused a build break) for operations that return raw XML bytes.

@typespec/http-client-java - dependencies ✏️

Bump Node.js dependencies for http-client-java and align dependency ranges in test package overrides.

@typespec/http-client-java - internal ✏️

Replace js-yaml with yaml for code-model serialization and drop lodash in favor of a built-in array comparison.

@typespec/http-client-java - dependencies ✏️

Update Node.js dependencies to latest (compiler 1.13.0, TCGC 0.69.0, azure-core 0.69.0) and bump version to 0.9.0

@typespec/http-client-java - dependencies ✏️

Update Node.js dependencies

@typespec/http-client-java - dependencies ✏️

Update Node.js dependencies

@typespec/http-client-java - fix ✏️

Overload async client method was not generated for advanced-versioning.

@typespec/http-client-java - feature ✏️

Support XML serialization for models: generate XmlSerializer helper classes and use the XML ObjectSerializer overload of toObject/fromObject in convenience methods for XML request/response bodies.

@typespec/http-client-java - fix ✏️

Do not throw on a per-service api-version map; treat it as undefined so a client with a single api-version can still be generated.

@typespec/http-client-java - fix ✏️

Fix duplicate method in generated samples, when advanced-versioning=true

@typespec/http-client-java - dependencies ✏️

Update Node.js dependencies: @azure-tools/typespec-autorest 0.69.1, @azure-tools/typespec-azure-resource-manager 0.69.1, @azure-tools/typespec-azure-rulesets 0.69.1, @microsoft/api-extractor 7.58.9, @types/node 25.9.3, @vitest/coverage-v8 4.1.9, @vitest/ui 4.1.9, vitest 4.1.9

@typespec/http-client-java - fix ✏️

Follow-up on exact name feature, after TCGC bug fix.

@typespec/http-client-java - fix ✏️

fix bug that nullable not handled correctly

@typespec/http-client-java - feature ✏️

Support advanced-versioning for mixed api-version client

@typespec/http-client-java - feature ✏️

Support crossLanguageVersion

@typespec/http-client-java - feature ✏️

Support exact name from TCGC.

@typespec/compiler - internal ✏️

Refactor tsp init template loading around a URI-based TemplateSource abstraction. A UriTemplateSource handles local and remote templates (paths and URLs), while built-in ("core") templates are addressed through an internal: scheme that resolves to an injectable provider. This lets alternative hosts (e.g. an offline single-executable compiler) serve bundled templates via an InMemoryTemplateSource without coupling template loading to the CompilerHost filesystem.

@typespec/openapi - feature ✏️

Add identifier field to the License model in @typespec/openapi. This is an SPDX license expression for the API (e.g. "MIT", "Apache-2.0"). The identifier and url fields are mutually exclusive. For OpenAPI 3.1+, identifier is emitted as-is; for OpenAPI 3.0, it is emitted as the x-oai-license-identifier extension. Importing an OpenAPI document also supports reading back identifier (or x-oai-license-identifier for 3.0 documents).,> ,> typespec,> @info(#{,> license: #{ name: "MIT", identifier: "MIT" },,> }),> namespace MyService;,>

@typespec/openapi3 - feature ✏️

Add identifier field to the License model in @typespec/openapi. This is an SPDX license expression for the API (e.g. "MIT", "Apache-2.0"). The identifier and url fields are mutually exclusive. For OpenAPI 3.1+, identifier is emitted as-is; for OpenAPI 3.0, it is emitted as the x-oai-license-identifier extension. Importing an OpenAPI document also supports reading back identifier (or x-oai-license-identifier for 3.0 documents).,> ,> typespec,> @info(#{,> license: #{ name: "MIT", identifier: "MIT" },,> }),> namespace MyService;,>

@typespec/http-client-java - feature ✏️

Validate Java runtime version in dependency check

@typespec/compiler - internal ✏️

Replace the source-map-support dependency with the native Node.js process.setSourceMapsEnabled(true) API in the CLI entrypoints.

@typespec/tspd - internal ✏️

Replace the source-map-support dependency with the native Node.js process.setSourceMapsEnabled(true) API in the CLI entrypoints.

@typespec/spector - internal ✏️

Replace the source-map-support dependency with the native Node.js process.setSourceMapsEnabled(true) API in the CLI entrypoints.

@typespec/bundler - internal ✏️

Replace the source-map-support dependency with the native Node.js process.setSourceMapsEnabled(true) API in the CLI entrypoints.

@typespec/graphql - internal ✏️

Replace the source-map-support dependency with the native Node.js process.setSourceMapsEnabled(true) API in the CLI entrypoints.

@typespec/openapi3 - feature ✏️

Extend the enum-strategy: annotated emitter option to unions of literals. When set to annotated, a union whose variants are literals is emitted as a oneOf/anyOf of const subschemas with per-variant title/description taken from @summary and @doc, instead of collapsing to a single lossy enum. Supported for OpenAPI 3.1.0 and above; emitting with OpenAPI 3.0.0 falls back to the default form and reports a warning.,> ,> For example, the following TypeSpec:,> ,> typespec,> /** Set of known error types. */,> union ErrorType {,> /** Common error for a bad request. */,> @summary("CommonBadRequest"),> commonBadRequest: "https://example.com/errors/bad-request",,> ,> /** The request body could not be parsed. */,> @summary("InvalidBody"),> invalidBody: "https://example.com/errors/invalid-body",,> },> ,> ,> emits:,> ,> yaml,> ErrorType:,> description: Set of known error types.,> anyOf:,> - const: https://example.com/errors/bad-request,> title: CommonBadRequest,> description: Common error for a bad request.,> - const: https://example.com/errors/invalid-body,> title: InvalidBody,> description: The request body could not be parsed.,> ,> ,> Use @oneOf on the union to emit oneOf instead of anyOf.

@typespec/http - feature ✏️

Add scope support to OpenIdConnectAuth. The model now accepts an optional Scopes template parameter (OpenIdConnectAuth<ConnectUrl, Scopes>) and the OpenAPI3 emitter emits those scopes on each operation's openIdConnect security requirement. The scheme object itself remains unchanged (scopes are discovered via the openIdConnectUrl). Existing OpenIdConnectAuth<Url> usages are unaffected.

@typespec/openapi3 - feature ✏️

Add scope support to OpenIdConnectAuth. The model now accepts an optional Scopes template parameter (OpenIdConnectAuth<ConnectUrl, Scopes>) and the OpenAPI3 emitter emits those scopes on each operation's openIdConnect security requirement. The scheme object itself remains unchanged (scopes are discovered via the openIdConnectUrl). Existing OpenIdConnectAuth<Url> usages are unaffected.

@typespec/bundle-uploader - internal ✏️

Extend publish pipeline to upload emitter bundles to Playground storage account. Update Python emitter to be browser-compatible for use in the TypeSpec playground.

typespec-vscode - internal ✏️

Reuse the compiler's UriTemplateSource.loadIndex() to load tsp init template indexes instead of the extension's own file/URL reading and JSON parsing, unifying how core and configured templates are loaded.

@typespec/compiler - feature ✏️

Add a docs field to linter rule and diagnostic definitions to provide extended reference documentation. The value can be an inline markdown string or a FileRef created with fileRef.fromPackageRoot("src/rules/my-rule.md"), which is read lazily by tooling so it stays safe to bundle for the browser.,> ,> ts,> export const myRule = createRule({,> name: "my-rule",,> severity: "warning",,> description: "Short description.",,> docs: fileRef.fromPackageRoot("src/rules/my-rule.md"),,> messages: {,> /* ... */,> },,> });,>

@typespec/tspd - feature ✏️

tspd doc now generates a documentation page per linter rule (reference/rules/<name>.md) and per diagnostic (reference/diagnostics/<code>.md), sourced from the docs field on the rule and diagnostic definitions. A documentation-missing warning is reported for any linter rule or diagnostic that does not provide documentation.

@typespec/http - internal ✏️

Provide extended documentation for the op-reference-container-route linter rule via a co-located markdown file.

@typespec/compiler - internal ✏️

Remove the unused backupPath fallback argument from the internal runScript helper

@typespec/spec-dashboard - internal ✏️

Add coverage overview component and emitter display name support

@typespec/http-specs - feature ✏️

Add SSE tests

@typespec/spec-api - feature ✏️

Add streamChunks support to MockBody for chunked SSE streaming in mock responses

@typespec/spector - feature ✏️

Support chunked streaming via streamChunks in mock response body

@typespec/compiler - feature ✏️

createTester now mounts each discovered library's tspconfig.yaml into the virtual file system, so experimental features a library opts into (e.g. auto-decorators) are honored when compiling against the tester.

@typespec/tspd - feature ✏️

tspd gen-extern-signature now also generates a typed setter (e.g. setMyFlag, setMyLabel) for each auto decorator, alongside the existing is*/get* readers.

@typespec/tspd - feature ✏️

Add a --rules-dir option (and rulesDir API option) to tspd doc to control where per-rule reference pages are written. Defaults to rules (relative to --output-dir); can be set to a path escaping the output dir (e.g. ../rules) to keep rule pages outside the generated reference folder.

@typespec/http-client-java - dependencies ✏️

Update js-yaml dependency to ^4.2.0

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.