docs: add commit rules and branch/PR workflow to copilot instructions - #3
docs: add commit rules and branch/PR workflow to copilot instructions#3iscai-msft wants to merge 2172 commits into
Conversation
…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 " - 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 "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/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 " - 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 " - 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: "none"</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 /> [](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 & 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 & 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 "<code>@byspec/xml</code>" 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 /> [](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><Activity></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><Activity></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><ViewTransition></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><Activity /></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 "SomeContext" instead of "SomeContext.Provider" (<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`, }); ```
…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 & task lists</strong> — Workshop steps now support filtering by journey/adventure tags, render GitHub-flavored alerts (> [!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 & 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 & 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 /> [](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
|
❌ There is undocummented changes. Run The following packages have changes but are not documented.
The following packages have already been documented:
Show changes
|
Adds two small sections to the repo-root
.github/copilot-instructions.mdto codify workflow conventions for contributors using Copilot:pnpm formatbefore committing and advises against committingpnpm-lock.yamlunless necessary.Microsoft/typespecmain (not a personal fork), and PRs should target that same upstream main branch.All existing content is preserved; these are purely additive changes.