Bumps the minor group with 3 updates: [on-finished](https://github.com/jshttp/on-finished), [rolldown](https://github.com/rolldown/rolldown/tree/HEAD/packages/rolldown) and [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite). Updates `on-finished` from 2.4.1 to 2.4.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/jshttp/on-finished/releases">on-finished's releases</a>.</em></p> <blockquote> <h2>2.4.2</h2> <h2>Highlights</h2> <h3>🔧 Node.js deprecation</h3> <ul> <li><code>isFinished(res)</code> now reads <code>writableEnded</code> instead of the deprecated <code>finished</code> property (<a href="https://nodejs.org/api/deprecations.html#DEP0136">DEP0136</a>), with a fallback to <code>finished</code> on older Node.js versions. No behavior change for consumers. (<a href="https://redirect.github.com/jshttp/on-finished/issues/54">#54</a>)</li> </ul> <h3>📦 Packaging</h3> <ul> <li><code>HISTORY.md</code> is no longer shipped in the npm tarball. (<a href="https://redirect.github.com/jshttp/on-finished/issues/109">#109</a>)</li> <li><code>package.json</code> now declares <code>"type": "commonjs"</code> explicitly. (<a href="https://redirect.github.com/jshttp/on-finished/issues/108">#108</a>)</li> </ul> <h3>🧪 Testing and CI</h3> <ul> <li>Added edge case tests for <code>isFinished</code> with invalid input. (<a href="https://redirect.github.com/jshttp/on-finished/issues/88">#88</a>)</li> <li>Node.js 19 through 26 added to the test matrix. (<a href="https://redirect.github.com/jshttp/on-finished/issues/53">#53</a>, <a href="https://redirect.github.com/jshttp/on-finished/issues/106">#106</a>)</li> <li><code>mocha</code> bumped to 12.0.3 and the CI pipeline refreshed. (<a href="https://redirect.github.com/jshttp/on-finished/issues/103">#103</a>)</li> <li>OSSF Scorecard enabled and security best practices applied to the workflows. (<a href="https://redirect.github.com/jshttp/on-finished/issues/47">#47</a>, <a href="https://redirect.github.com/jshttp/on-finished/issues/60">#60</a>)</li> <li>Dependabot now groups GitHub Actions updates. (<a href="https://redirect.github.com/jshttp/on-finished/issues/104">#104</a>)</li> </ul> <h2>What's Changed</h2> <ul> <li>Update node 8 version and pin nyc. Also added missing 9.x to ci-tests… by <a href="https://github.com/carpasse"><code>@carpasse</code></a> in <a href="https://redirect.github.com/jshttp/on-finished/pull/49">jshttp/on-finished#49</a></li> <li>Add OSSF scorecard by <a href="https://github.com/carpasse"><code>@carpasse</code></a> in <a href="https://redirect.github.com/jshttp/on-finished/pull/47">jshttp/on-finished#47</a></li> <li>build: Node.js 19+ by <a href="https://github.com/bjohansebas"><code>@bjohansebas</code></a> in <a href="https://redirect.github.com/jshttp/on-finished/pull/53">jshttp/on-finished#53</a></li> <li>ci: apply OSSF Scorecard security best practices by <a href="https://github.com/UlisesGascon"><code>@UlisesGascon</code></a> in <a href="https://redirect.github.com/jshttp/on-finished/pull/60">jshttp/on-finished#60</a></li> <li>chore: add funding to package.json by <a href="https://github.com/Phillip9587"><code>@Phillip9587</code></a> in <a href="https://redirect.github.com/jshttp/on-finished/pull/76">jshttp/on-finished#76</a></li> <li>use writableEnd instead finished by <a href="https://github.com/bjohansebas"><code>@bjohansebas</code></a> in <a href="https://redirect.github.com/jshttp/on-finished/pull/54">jshttp/on-finished#54</a></li> <li>build(deps): bump ossf/scorecard-action from 2.0.6 to 2.4.3 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/jshttp/on-finished/pull/85">jshttp/on-finished#85</a></li> <li>build(deps): bump actions/upload-artifact from 3.1.3 to 4.6.2 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/jshttp/on-finished/pull/64">jshttp/on-finished#64</a></li> <li>build(deps): bump actions/checkout from 3.6.0 to 5.0.0 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/jshttp/on-finished/pull/84">jshttp/on-finished#84</a></li> <li>build(deps): bump actions/download-artifact from 4.3.0 to 5.0.0 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/jshttp/on-finished/pull/82">jshttp/on-finished#82</a></li> <li>test: add edge case tests for isFinished with invalid input by <a href="https://github.com/Ayoub-Mabrouk"><code>@Ayoub-Mabrouk</code></a> in <a href="https://redirect.github.com/jshttp/on-finished/pull/88">jshttp/on-finished#88</a></li> <li>build(deps): bump actions/checkout from 5.0.0 to 6.0.0 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/jshttp/on-finished/pull/93">jshttp/on-finished#93</a></li> <li>build(deps): bump actions/upload-artifact from 4.6.2 to 5.0.0 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/jshttp/on-finished/pull/92">jshttp/on-finished#92</a></li> <li>build(deps): bump actions/download-artifact from 5.0.0 to 6.0.0 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/jshttp/on-finished/pull/91">jshttp/on-finished#91</a></li> <li>build(deps): bump github/codeql-action from 2.23.2 to 4.31.6 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/jshttp/on-finished/pull/90">jshttp/on-finished#90</a></li> <li>build(deps): bump coverallsapp/github-action from 2.3.6 to 2.3.7 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/jshttp/on-finished/pull/89">jshttp/on-finished#89</a></li> <li>chore: group github actions updates by <a href="https://github.com/Phillip9587"><code>@Phillip9587</code></a> in <a href="https://redirect.github.com/jshttp/on-finished/pull/104">jshttp/on-finished#104</a></li> <li>bump Mocha to version 12.0.3 by <a href="https://github.com/rafapaezbas"><code>@rafapaezbas</code></a> in <a href="https://redirect.github.com/jshttp/on-finished/pull/103">jshttp/on-finished#103</a></li> <li>ci: add Node 25 and 26 to workflow by <a href="https://github.com/Phillip9587"><code>@Phillip9587</code></a> in <a href="https://redirect.github.com/jshttp/on-finished/pull/106">jshttp/on-finished#106</a></li> <li>build(deps): bump the github-actions group with 10 updates by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/jshttp/on-finished/pull/105">jshttp/on-finished#105</a></li> <li>chore: add explicit type commonjs to package.json by <a href="https://github.com/Phillip9587"><code>@Phillip9587</code></a> in <a href="https://redirect.github.com/jshttp/on-finished/pull/108">jshttp/on-finished#108</a></li> <li>chore: remove HISTORY.md from being packaged on publish by <a href="https://github.com/Phillip9587"><code>@Phillip9587</code></a> in <a href="https://redirect.github.com/jshttp/on-finished/pull/109">jshttp/on-finished#109</a></li> <li>chore(ci): npm-publish via stage publish by <a href="https://github.com/UlisesGascon"><code>@UlisesGascon</code></a> in <a href="https://redirect.github.com/jshttp/on-finished/pull/111">jshttp/on-finished#111</a></li> <li>Release: 2.4.2 by <a href="https://github.com/Phillip9587"><code>@Phillip9587</code></a> in <a href="https://redirect.github.com/jshttp/on-finished/pull/110">jshttp/on-finished#110</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/carpasse"><code>@carpasse</code></a> made their first contribution in <a href="https://redirect.github.com/jshttp/on-finished/pull/49">jshttp/on-finished#49</a></li> <li><a href="https://github.com/UlisesGascon"><code>@UlisesGascon</code></a> made their first contribution in <a href="https://redirect.github.com/jshttp/on-finished/pull/60">jshttp/on-finished#60</a></li> <li><a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] made their first contribution in <a href="https://redirect.github.com/jshttp/on-finished/pull/85">jshttp/on-finished#85</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/jshttp/on-finished/blob/master/HISTORY.md">on-finished's changelog</a>.</em></p> <blockquote> <h1>2.4.2</h1> <ul> <li>Use <code>writableEnded</code> instead of deprecated <code>finished</code>, with a fallback for older Node.js versions (<a href="https://redirect.github.com/jshttp/on-finished/issues/54">#54</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="9a73f9c1c0"><code>9a73f9c</code></a> 2.4.2 (<a href="https://redirect.github.com/jshttp/on-finished/issues/110">#110</a>)</li> <li><a href="0ec28ddc1d"><code>0ec28dd</code></a> chore(ci): npm-publish via stage publish (<a href="https://redirect.github.com/jshttp/on-finished/issues/111">#111</a>)</li> <li><a href="4b8ac4669c"><code>4b8ac46</code></a> chore: remove HISTORY.md from being packaged on publish (<a href="https://redirect.github.com/jshttp/on-finished/issues/109">#109</a>)</li> <li><a href="9c5f7b805b"><code>9c5f7b8</code></a> chore: add explicit type commonjs to package.json (<a href="https://redirect.github.com/jshttp/on-finished/issues/108">#108</a>)</li> <li><a href="8c33090d5b"><code>8c33090</code></a> build(deps): bump the github-actions group with 10 updates (<a href="https://redirect.github.com/jshttp/on-finished/issues/105">#105</a>)</li> <li><a href="1ca32c56e7"><code>1ca32c5</code></a> ci: add Node 25 and 26 to workflow (<a href="https://redirect.github.com/jshttp/on-finished/issues/106">#106</a>)</li> <li><a href="4ea365ed85"><code>4ea365e</code></a> deps: bump mocha to v12.0.3 and update CI pipeline (<a href="https://redirect.github.com/jshttp/on-finished/issues/103">#103</a>)</li> <li><a href="673ff9fbb2"><code>673ff9f</code></a> chore: group github actions updates (<a href="https://redirect.github.com/jshttp/on-finished/issues/104">#104</a>)</li> <li><a href="500c84cec0"><code>500c84c</code></a> build(deps): bump coverallsapp/github-action from 2.3.6 to 2.3.7 (<a href="https://redirect.github.com/jshttp/on-finished/issues/89">#89</a>)</li> <li><a href="1dbd9cd615"><code>1dbd9cd</code></a> build(deps): bump github/codeql-action from 2.23.2 to 4.31.6 (<a href="https://redirect.github.com/jshttp/on-finished/issues/90">#90</a>)</li> <li>Additional commits viewable in <a href="https://github.com/jshttp/on-finished/compare/v2.4.1...v2.4.2">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 on-finished since your current version.</p> </details> <br /> Updates `rolldown` from 1.2.14 to 1.2.15 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/rolldown/rolldown/releases">rolldown's releases</a>.</em></p> <blockquote> <h2>v1.2.15</h2> <h2>[1.2.15] - 2026-10-21</h2> <h3>🚀 Features</h3> <ul> <li>rolldown_plugin_vite_resolve: add <code>isBundled</code> to pick the browser-external stub format (<a href="https://github.com/rolldown/rolldown/tree/HEAD/packages/rolldown/issues/11260">#11260</a>) by <a href="https://github.com/h-a-n-a"><code>@h-a-n-a</code></a></li> <li>dev: mark entry modules in the HMR module graph (<a href="https://github.com/rolldown/rolldown/tree/HEAD/packages/rolldown/issues/11252">#11252</a>) by <a href="https://github.com/h-a-n-a"><code>@h-a-n-a</code></a></li> <li>mark module starts with <code>// <id></code> comments instead of <code>#region</code> pairs (<a href="https://github.com/rolldown/rolldown/tree/HEAD/packages/rolldown/issues/11235">#11235</a>) by <a href="https://github.com/IWANABETHATGUY"><code>@IWANABETHATGUY</code></a></li> </ul> <h3>🐛 Bug Fixes</h3> <ul> <li>plugin: stop <code>this.resolve</code> recursion between plugins with <code>skipSelf: true</code> (<a href="https://github.com/rolldown/rolldown/tree/HEAD/packages/rolldown/issues/11181">#11181</a>) by <a href="https://github.com/anzal1"><code>@anzal1</code></a></li> <li>rolldown_plugin_vite_resolve: handle external <code>require</code> for <code>ssr.target: 'webworker'</code> (<a href="https://github.com/rolldown/rolldown/tree/HEAD/packages/rolldown/issues/11205">#11205</a>) by <a href="https://github.com/sapphi-red"><code>@sapphi-red</code></a></li> <li>rolldown_plugin_vite_build_import_analysis: only wrap dynamic imports with static specifiers in __vitePreload (<a href="https://github.com/rolldown/rolldown/tree/HEAD/packages/rolldown/issues/10879">#10879</a>) by <a href="https://github.com/smeng9"><code>@smeng9</code></a></li> <li>strict-execution-order: wrap eager modules that forward wrapped definers (<a href="https://github.com/rolldown/rolldown/tree/HEAD/packages/rolldown/issues/11186">#11186</a>) by <a href="https://github.com/hyfdev"><code>@hyfdev</code></a></li> <li>chunk-import-map: keep common chunk keys unique when enabling inline common chunks (<a href="https://github.com/rolldown/rolldown/tree/HEAD/packages/rolldown/issues/11230">#11230</a>) by <a href="https://github.com/hyfdev"><code>@hyfdev</code></a></li> <li>only register signal-exit handler when a trace subscriber is active (<a href="https://github.com/rolldown/rolldown/tree/HEAD/packages/rolldown/issues/11208">#11208</a>) by <a href="https://github.com/DaniilIsupov"><code>@DaniilIsupov</code></a></li> </ul> <h3>🧪 Testing</h3> <ul> <li>fold hand-unrolled Rust test tables (<a href="https://github.com/rolldown/rolldown/tree/HEAD/packages/rolldown/issues/11212">#11212</a>) by <a href="https://github.com/Brooooooklyn"><code>@Brooooooklyn</code></a></li> </ul> <h3>⚙️ Miscellaneous Tasks</h3> <ul> <li>deps: upgrade oxc to 0.155.0 (<a href="https://github.com/rolldown/rolldown/tree/HEAD/packages/rolldown/issues/11228">#11228</a>) by <a href="https://github.com/Dunqing"><code>@Dunqing</code></a></li> <li>rollup-tests: retriage failed tests (<a href="https://github.com/rolldown/rolldown/tree/HEAD/packages/rolldown/issues/11251">#11251</a>) by <a href="https://github.com/sapphi-red"><code>@sapphi-red</code></a></li> <li>deps: update rollup submodule for tests to v4.64.12 (<a href="https://github.com/rolldown/rolldown/tree/HEAD/packages/rolldown/issues/11249">#11249</a>) by <a href="https://github.com/rolldown-guard"><code>@rolldown-guard</code></a>[bot]</li> <li>deps: update test262 submodule for tests (<a href="https://github.com/rolldown/rolldown/tree/HEAD/packages/rolldown/issues/11242">#11242</a>) by <a href="https://github.com/rolldown-guard"><code>@rolldown-guard</code></a>[bot]</li> </ul> <h3>❤️ New Contributors</h3> <ul> <li><a href="https://github.com/anzal1"><code>@anzal1</code></a> made their first contribution in <a href="https://redirect.github.com/rolldown/rolldown/pull/11181">#11181</a></li> <li><a href="https://github.com/smeng9"><code>@smeng9</code></a> made their first contribution in <a href="https://redirect.github.com/rolldown/rolldown/pull/10879">#10879</a></li> <li><a href="https://github.com/DaniilIsupov"><code>@DaniilIsupov</code></a> made their first contribution in <a href="https://redirect.github.com/rolldown/rolldown/pull/11208">#11208</a></li> </ul> <p>Co-authored-by: shulaoda <a href="mailto:165626830+shulaoda@users.noreply.github.com">165626830+shulaoda@users.noreply.github.com</a></p> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/rolldown/rolldown/blob/main/CHANGELOG.md">rolldown's changelog</a>.</em></p> <blockquote> <h2>[1.2.15] - 2026-10-21</h2> <h3>🚀 Features</h3> <ul> <li>rolldown_plugin_vite_resolve: add <code>isBundled</code> to pick the browser-external stub format (<a href="https://github.com/rolldown/rolldown/tree/HEAD/packages/rolldown/issues/11260">#11260</a>) by <a href="https://github.com/h-a-n-a"><code>@h-a-n-a</code></a></li> <li>dev: mark entry modules in the HMR module graph (<a href="https://github.com/rolldown/rolldown/tree/HEAD/packages/rolldown/issues/11252">#11252</a>) by <a href="https://github.com/h-a-n-a"><code>@h-a-n-a</code></a></li> <li>mark module starts with <code>// <id></code> comments instead of <code>#region</code> pairs (<a href="https://github.com/rolldown/rolldown/tree/HEAD/packages/rolldown/issues/11235">#11235</a>) by <a href="https://github.com/IWANABETHATGUY"><code>@IWANABETHATGUY</code></a></li> </ul> <h3>🐛 Bug Fixes</h3> <ul> <li>plugin: stop <code>this.resolve</code> recursion between plugins with <code>skipSelf: true</code> (<a href="https://github.com/rolldown/rolldown/tree/HEAD/packages/rolldown/issues/11181">#11181</a>) by <a href="https://github.com/anzal1"><code>@anzal1</code></a></li> <li>rolldown_plugin_vite_resolve: handle external <code>require</code> for <code>ssr.target: 'webworker'</code> (<a href="https://github.com/rolldown/rolldown/tree/HEAD/packages/rolldown/issues/11205">#11205</a>) by <a href="https://github.com/sapphi-red"><code>@sapphi-red</code></a></li> <li>rolldown_plugin_vite_build_import_analysis: only wrap dynamic imports with static specifiers in __vitePreload (<a href="https://github.com/rolldown/rolldown/tree/HEAD/packages/rolldown/issues/10879">#10879</a>) by <a href="https://github.com/smeng9"><code>@smeng9</code></a></li> <li>strict-execution-order: wrap eager modules that forward wrapped definers (<a href="https://github.com/rolldown/rolldown/tree/HEAD/packages/rolldown/issues/11186">#11186</a>) by <a href="https://github.com/hyfdev"><code>@hyfdev</code></a></li> <li>chunk-import-map: keep common chunk keys unique when enabling inline common chunks (<a href="https://github.com/rolldown/rolldown/tree/HEAD/packages/rolldown/issues/11230">#11230</a>) by <a href="https://github.com/hyfdev"><code>@hyfdev</code></a></li> <li>only register signal-exit handler when a trace subscriber is active (<a href="https://github.com/rolldown/rolldown/tree/HEAD/packages/rolldown/issues/11208">#11208</a>) by <a href="https://github.com/DaniilIsupov"><code>@DaniilIsupov</code></a></li> </ul> <h3>🧪 Testing</h3> <ul> <li>fold hand-unrolled Rust test tables (<a href="https://github.com/rolldown/rolldown/tree/HEAD/packages/rolldown/issues/11212">#11212</a>) by <a href="https://github.com/Brooooooklyn"><code>@Brooooooklyn</code></a></li> </ul> <h3>⚙️ Miscellaneous Tasks</h3> <ul> <li>deps: upgrade oxc to 0.155.0 (<a href="https://github.com/rolldown/rolldown/tree/HEAD/packages/rolldown/issues/11228">#11228</a>) by <a href="https://github.com/Dunqing"><code>@Dunqing</code></a></li> <li>rollup-tests: retriage failed tests (<a href="https://github.com/rolldown/rolldown/tree/HEAD/packages/rolldown/issues/11251">#11251</a>) by <a href="https://github.com/sapphi-red"><code>@sapphi-red</code></a></li> <li>deps: update rollup submodule for tests to v4.64.12 (<a href="https://github.com/rolldown/rolldown/tree/HEAD/packages/rolldown/issues/11249">#11249</a>) by <a href="https://github.com/rolldown-guard"><code>@rolldown-guard</code></a>[bot]</li> <li>deps: update test262 submodule for tests (<a href="https://github.com/rolldown/rolldown/tree/HEAD/packages/rolldown/issues/11242">#11242</a>) by <a href="https://github.com/rolldown-guard"><code>@rolldown-guard</code></a>[bot]</li> </ul> <h3>❤️ New Contributors</h3> <ul> <li><a href="https://github.com/anzal1"><code>@anzal1</code></a> made their first contribution in <a href="https://redirect.github.com/rolldown/rolldown/pull/11181">#11181</a></li> <li><a href="https://github.com/smeng9"><code>@smeng9</code></a> made their first contribution in <a href="https://redirect.github.com/rolldown/rolldown/pull/10879">#10879</a></li> <li><a href="https://github.com/DaniilIsupov"><code>@DaniilIsupov</code></a> made their first contribution in <a href="https://redirect.github.com/rolldown/rolldown/pull/11208">#11208</a></li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="89d821ca07"><code>89d821c</code></a> release: v1.2.15 (<a href="https://github.com/rolldown/rolldown/tree/HEAD/packages/rolldown/issues/11261">#11261</a>)</li> <li><a href="3b0841ef80"><code>3b0841e</code></a> feat(rolldown_plugin_vite_resolve): add <code>isBundled</code> to pick the browser-exter...</li> <li><a href="a973d41247"><code>a973d41</code></a> chore(deps): upgrade oxc to 0.155.0 (<a href="https://github.com/rolldown/rolldown/tree/HEAD/packages/rolldown/issues/11228">#11228</a>)</li> <li><a href="5bfb74e2b0"><code>5bfb74e</code></a> feat(dev): mark entry modules in the HMR module graph (<a href="https://github.com/rolldown/rolldown/tree/HEAD/packages/rolldown/issues/11252">#11252</a>)</li> <li><a href="fb0a8db6f1"><code>fb0a8db</code></a> fix(rolldown_plugin_vite_resolve): handle external <code>require</code> for `ssr.target:...</li> <li><a href="547a5a733c"><code>547a5a7</code></a> fix(rolldown_plugin_vite_build_import_analysis): only wrap dynamic imports wi...</li> <li><a href="648591f0eb"><code>648591f</code></a> feat: mark module starts with <code>// \<id></code> comments instead of <code>#region</code> pairs (...</li> <li><a href="3f0374181d"><code>3f03741</code></a> fix(chunk-import-map): keep common chunk keys unique when enabling inline com...</li> <li><a href="33a987d8bf"><code>33a987d</code></a> fix: only register signal-exit handler when a trace subscriber is active (<a href="https://github.com/rolldown/rolldown/tree/HEAD/packages/rolldown/issues/11">#11</a>...</li> <li>See full diff in <a href="https://github.com/rolldown/rolldown/commits/v1.2.15/packages/rolldown">compare view</a></li> </ul> </details> <br /> Updates `vite` from 8.3.4 to 8.3.5 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/vitejs/vite/releases">vite's releases</a>.</em></p> <blockquote> <h2>v8.3.5</h2> <h3>Bug Fixes</h3> <ul> <li><strong>build:</strong> handle missing chunk import maps (<a href="https://redirect.github.com/vitejs/vite/issues/23777">#23777</a>) (<a href="8d7623d9b5">8d7623d</a>)</li> <li><strong>build:</strong> include preload dependencies to chunk import map hashing (<a href="https://redirect.github.com/vitejs/vite/issues/23793">#23793</a>) (<a href="4d16e7c14d">4d16e7c</a>)</li> <li><strong>bundled-dev:</strong> apply <code>server.origin</code> to asset URLs (<a href="https://redirect.github.com/vitejs/vite/issues/23683">#23683</a>) (<a href="52ba877693">52ba877</a>)</li> <li><strong>bundled-dev:</strong> declare utf-8 charset in fallback page (<a href="https://redirect.github.com/vitejs/vite/issues/23846">#23846</a>) (<a href="197daf6c4c">197daf6</a>)</li> <li><strong>bundled-dev:</strong> ignore build.chunkImportMap (<a href="https://redirect.github.com/vitejs/vite/issues/23685">#23685</a>) (<a href="cfe917d67d">cfe917d</a>)</li> <li><strong>bundled-dev:</strong> include user <code>import.meta.env.*</code> defines in the <code>import.meta.env</code> object (<a href="https://redirect.github.com/vitejs/vite/issues/23713">#23713</a>) (<a href="6019aa7997">6019aa7</a>)</li> <li><strong>bundled-dev:</strong> map forwarded error stacks through the bundle source maps (<a href="https://redirect.github.com/vitejs/vite/issues/23741">#23741</a>) (<a href="11fe1e46ff">11fe1e4</a>)</li> <li><strong>bundled-dev:</strong> normalize served output files (<a href="https://redirect.github.com/vitejs/vite/issues/23684">#23684</a>) (<a href="df4e02cc83">df4e02c</a>)</li> <li><strong>bundled-dev:</strong> stop hmr propagation at modules that are no longer imported (<a href="https://redirect.github.com/vitejs/vite/issues/23839">#23839</a>) (<a href="7471e8c3b3">7471e8c</a>)</li> <li><strong>css:</strong> don't fail on a literal <code>%</code> in <code>url()</code> (<a href="https://redirect.github.com/vitejs/vite/issues/23676">#23676</a>) (<a href="50b382d318">50b382d</a>)</li> <li><strong>deps:</strong> update all non-major dependencies (<a href="https://redirect.github.com/vitejs/vite/issues/23731">#23731</a>) (<a href="cf80aa552c">cf80aa5</a>)</li> <li><strong>deps:</strong> update all non-major dependencies (<a href="https://redirect.github.com/vitejs/vite/issues/23826">#23826</a>) (<a href="77d8373510">77d8373</a>)</li> <li><strong>deps:</strong> update rolldown-related dependencies (<a href="https://redirect.github.com/vitejs/vite/issues/23733">#23733</a>) (<a href="43f0d052e5">43f0d05</a>)</li> <li><strong>deps:</strong> update rolldown-related dependencies (<a href="https://redirect.github.com/vitejs/vite/issues/23827">#23827</a>) (<a href="c2e04187e4">c2e0418</a>)</li> <li><strong>optimizer:</strong> fall back to yarn.lock for lockfile hash (<a href="https://redirect.github.com/vitejs/vite/issues/23667">#23667</a>) (<a href="f20609630f">f206096</a>)</li> <li><strong>optimizer:</strong> scan <code>oxc.jsxInject</code> imports (<a href="https://redirect.github.com/vitejs/vite/issues/23758">#23758</a>) (<a href="38f3cb45b1">38f3cb4</a>)</li> <li><strong>optimizer:</strong> skip patches dir check for yarn.lock fallback (<a href="https://redirect.github.com/vitejs/vite/issues/23725">#23725</a>) (<a href="8e890e1ce4">8e890e1</a>)</li> <li><strong>optimizer:</strong> skip patches dir hash for nub lockfile (<a href="https://redirect.github.com/vitejs/vite/issues/23761">#23761</a>) (<a href="a7d56967ef">a7d5696</a>)</li> <li><strong>resolve:</strong> support subpath imports with multiple <code>#</code> (<a href="https://redirect.github.com/vitejs/vite/issues/23631">#23631</a>) (<a href="0d86b3485f">0d86b34</a>)</li> <li><strong>resolve:</strong> update resolve.exports to 2.0.4 (<a href="https://redirect.github.com/vitejs/vite/issues/23739">#23739</a>) (<a href="4ea708a3ae">4ea708a</a>)</li> <li><strong>server:</strong> handle socket errors on upgrade requests not taken by the HMR server (<a href="https://redirect.github.com/vitejs/vite/issues/23728">#23728</a>) (<a href="c2c9ef4dcd">c2c9ef4</a>)</li> <li><strong>server:</strong> only strip base when path matches a full segment (<a href="https://redirect.github.com/vitejs/vite/issues/23641">#23641</a>) (<a href="3dfde87b90">3dfde87</a>)</li> </ul> <h3>Performance Improvements</h3> <ul> <li><strong>ssr:</strong> extract inline source maps without a regexp (<a href="https://redirect.github.com/vitejs/vite/issues/23775">#23775</a>) (<a href="6a0278055d">6a02780</a>)</li> </ul> <h3>Miscellaneous Chores</h3> <ul> <li>migrate to Oxlint (<a href="https://redirect.github.com/vitejs/vite/issues/23746">#23746</a>) (<a href="5b73935881">5b73935</a>)</li> </ul> <h3>Code Refactoring</h3> <ul> <li><strong>deps:</strong> replace <code>@vercel/detect-agent</code> with <code>std-env</code> (<a href="https://redirect.github.com/vitejs/vite/issues/23744">#23744</a>) (<a href="ce4293f15c">ce4293f</a>)</li> <li><strong>dev:</strong> consolidate moduleURL to file path utilities (<a href="https://redirect.github.com/vitejs/vite/issues/23828">#23828</a>) (<a href="df7b40ee9d">df7b40e</a>)</li> <li><strong>dev:</strong> separate import resolution from URL conversion (<a href="https://redirect.github.com/vitejs/vite/issues/23791">#23791</a>) (<a href="611668983d">6116689</a>)</li> <li><strong>dev:</strong> share ModuleURL and BrowserURL conversions (<a href="https://redirect.github.com/vitejs/vite/issues/23790">#23790</a>) (<a href="446954c69c">446954c</a>)</li> <li><strong>dev:</strong> use ModuleURLs throughout HTML transforms (<a href="https://redirect.github.com/vitejs/vite/issues/23815">#23815</a>) (<a href="a16299092c">a162990</a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md">vite's changelog</a>.</em></p> <blockquote> <h2><!-- raw HTML omitted --><a href="https://github.com/vitejs/vite/compare/v8.3.4...v8.3.5">8.3.5</a> (2026-10-21)<!-- raw HTML omitted --></h2> <h3>Bug Fixes</h3> <ul> <li><strong>build:</strong> handle missing chunk import maps (<a href="https://redirect.github.com/vitejs/vite/issues/23777">#23777</a>) (<a href="8d7623d9b5">8d7623d</a>)</li> <li><strong>build:</strong> include preload dependencies to chunk import map hashing (<a href="https://redirect.github.com/vitejs/vite/issues/23793">#23793</a>) (<a href="4d16e7c14d">4d16e7c</a>)</li> <li><strong>bundled-dev:</strong> apply <code>server.origin</code> to asset URLs (<a href="https://redirect.github.com/vitejs/vite/issues/23683">#23683</a>) (<a href="52ba877693">52ba877</a>)</li> <li><strong>bundled-dev:</strong> declare utf-8 charset in fallback page (<a href="https://redirect.github.com/vitejs/vite/issues/23846">#23846</a>) (<a href="197daf6c4c">197daf6</a>)</li> <li><strong>bundled-dev:</strong> ignore build.chunkImportMap (<a href="https://redirect.github.com/vitejs/vite/issues/23685">#23685</a>) (<a href="cfe917d67d">cfe917d</a>)</li> <li><strong>bundled-dev:</strong> include user <code>import.meta.env.*</code> defines in the <code>import.meta.env</code> object (<a href="https://redirect.github.com/vitejs/vite/issues/23713">#23713</a>) (<a href="6019aa7997">6019aa7</a>)</li> <li><strong>bundled-dev:</strong> map forwarded error stacks through the bundle source maps (<a href="https://redirect.github.com/vitejs/vite/issues/23741">#23741</a>) (<a href="11fe1e46ff">11fe1e4</a>)</li> <li><strong>bundled-dev:</strong> normalize served output files (<a href="https://redirect.github.com/vitejs/vite/issues/23684">#23684</a>) (<a href="df4e02cc83">df4e02c</a>)</li> <li><strong>bundled-dev:</strong> stop hmr propagation at modules that are no longer imported (<a href="https://redirect.github.com/vitejs/vite/issues/23839">#23839</a>) (<a href="7471e8c3b3">7471e8c</a>)</li> <li><strong>css:</strong> don't fail on a literal <code>%</code> in <code>url()</code> (<a href="https://redirect.github.com/vitejs/vite/issues/23676">#23676</a>) (<a href="50b382d318">50b382d</a>)</li> <li><strong>deps:</strong> update all non-major dependencies (<a href="https://redirect.github.com/vitejs/vite/issues/23731">#23731</a>) (<a href="cf80aa552c">cf80aa5</a>)</li> <li><strong>deps:</strong> update all non-major dependencies (<a href="https://redirect.github.com/vitejs/vite/issues/23826">#23826</a>) (<a href="77d8373510">77d8373</a>)</li> <li><strong>deps:</strong> update rolldown-related dependencies (<a href="https://redirect.github.com/vitejs/vite/issues/23733">#23733</a>) (<a href="43f0d052e5">43f0d05</a>)</li> <li><strong>deps:</strong> update rolldown-related dependencies (<a href="https://redirect.github.com/vitejs/vite/issues/23827">#23827</a>) (<a href="c2e04187e4">c2e0418</a>)</li> <li><strong>optimizer:</strong> fall back to yarn.lock for lockfile hash (<a href="https://redirect.github.com/vitejs/vite/issues/23667">#23667</a>) (<a href="f20609630f">f206096</a>)</li> <li><strong>optimizer:</strong> scan <code>oxc.jsxInject</code> imports (<a href="https://redirect.github.com/vitejs/vite/issues/23758">#23758</a>) (<a href="38f3cb45b1">38f3cb4</a>)</li> <li><strong>optimizer:</strong> skip patches dir check for yarn.lock fallback (<a href="https://redirect.github.com/vitejs/vite/issues/23725">#23725</a>) (<a href="8e890e1ce4">8e890e1</a>)</li> <li><strong>optimizer:</strong> skip patches dir hash for nub lockfile (<a href="https://redirect.github.com/vitejs/vite/issues/23761">#23761</a>) (<a href="a7d56967ef">a7d5696</a>)</li> <li><strong>resolve:</strong> support subpath imports with multiple <code>#</code> (<a href="https://redirect.github.com/vitejs/vite/issues/23631">#23631</a>) (<a href="0d86b3485f">0d86b34</a>)</li> <li><strong>resolve:</strong> update resolve.exports to 2.0.4 (<a href="https://redirect.github.com/vitejs/vite/issues/23739">#23739</a>) (<a href="4ea708a3ae">4ea708a</a>)</li> <li><strong>server:</strong> handle socket errors on upgrade requests not taken by the HMR server (<a href="https://redirect.github.com/vitejs/vite/issues/23728">#23728</a>) (<a href="c2c9ef4dcd">c2c9ef4</a>)</li> <li><strong>server:</strong> only strip base when path matches a full segment (<a href="https://redirect.github.com/vitejs/vite/issues/23641">#23641</a>) (<a href="3dfde87b90">3dfde87</a>)</li> </ul> <h3>Performance Improvements</h3> <ul> <li><strong>ssr:</strong> extract inline source maps without a regexp (<a href="https://redirect.github.com/vitejs/vite/issues/23775">#23775</a>) (<a href="6a0278055d">6a02780</a>)</li> </ul> <h3>Miscellaneous Chores</h3> <ul> <li>migrate to Oxlint (<a href="https://redirect.github.com/vitejs/vite/issues/23746">#23746</a>) (<a href="5b73935881">5b73935</a>)</li> </ul> <h3>Code Refactoring</h3> <ul> <li><strong>deps:</strong> replace <code>@vercel/detect-agent</code> with <code>std-env</code> (<a href="https://redirect.github.com/vitejs/vite/issues/23744">#23744</a>) (<a href="ce4293f15c">ce4293f</a>)</li> <li><strong>dev:</strong> consolidate moduleURL to file path utilities (<a href="https://redirect.github.com/vitejs/vite/issues/23828">#23828</a>) (<a href="df7b40ee9d">df7b40e</a>)</li> <li><strong>dev:</strong> separate import resolution from URL conversion (<a href="https://redirect.github.com/vitejs/vite/issues/23791">#23791</a>) (<a href="611668983d">6116689</a>)</li> <li><strong>dev:</strong> share ModuleURL and BrowserURL conversions (<a href="https://redirect.github.com/vitejs/vite/issues/23790">#23790</a>) (<a href="446954c69c">446954c</a>)</li> <li><strong>dev:</strong> use ModuleURLs throughout HTML transforms (<a href="https://redirect.github.com/vitejs/vite/issues/23815">#23815</a>) (<a href="a16299092c">a162990</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="981f07fa45"><code>981f07f</code></a> release: v8.3.5 (<a href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/23856">#23856</a>)</li> <li><a href="0d86b3485f"><code>0d86b34</code></a> fix(resolve): support subpath imports with multiple <code>#</code> (<a href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/23631">#23631</a>)</li> <li><a href="6a0278055d"><code>6a02780</code></a> perf(ssr): extract inline source maps without a regexp (<a href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/23775">#23775</a>)</li> <li><a href="8e890e1ce4"><code>8e890e1</code></a> fix(optimizer): skip patches dir check for yarn.lock fallback (<a href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/23725">#23725</a>)</li> <li><a href="197daf6c4c"><code>197daf6</code></a> fix(bundled-dev): declare utf-8 charset in fallback page (<a href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/23846">#23846</a>)</li> <li><a href="4d16e7c14d"><code>4d16e7c</code></a> fix(build): include preload dependencies to chunk import map hashing (<a href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/23793">#23793</a>)</li> <li><a href="df7b40ee9d"><code>df7b40e</code></a> refactor(dev): consolidate moduleURL to file path utilities (<a href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/23828">#23828</a>)</li> <li><a href="a16299092c"><code>a162990</code></a> refactor(dev): use ModuleURLs throughout HTML transforms (<a href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/23815">#23815</a>)</li> <li><a href="611668983d"><code>6116689</code></a> refactor(dev): separate import resolution from URL conversion (<a href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/23791">#23791</a>)</li> <li><a href="446954c69c"><code>446954c</code></a> refactor(dev): share ModuleURL and BrowserURL conversions (<a href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/23790">#23790</a>)</li> <li>Additional commits viewable in <a href="https://github.com/vitejs/vite/commits/v8.3.5/packages/vite">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>
ACP adapter for the Claude Agent SDK
Use Claude Agent SDK from ACP-compatible clients!
This tool implements an ACP agent by using the official Claude Agent SDK, supporting:
- Context @-mentions
- Images
- Tool calls (with permission requests)
- Compact file changes through the negotiated AIR diff patch extension
- Following
- Edit review
- TODO lists
- Nested subagent transcripts
- Interactive (and background) terminals
- Custom Slash commands
- Client MCP servers
- An Ultracode session config option, which turns on Claude Code's dynamic workflows for every task. It appears when dynamic workflows are enabled and the model supports ultracode (any model with
xhigheffort) /mcpin the chat: the MCP server status as a list. The adapter runs/mcp reconnect,/mcp enable, and/mcp disablethrough the SDK control API, because Claude Code refuses them in SDK mode. A reconnect of an ACP server that needs authentication starts MCP OAuth through URL elicitation- Session-scoped long-running goals for AIR through the goal extension under
_meta.jetbrains.air.goal - Structured errors, recovery, and warnings through the opt-in session failure extension
- Concrete model and effort defaults through the opt-in recommended config value extension
- Tool permission presentation, editable choices, and durable effects through the permission extension
- One fact per field in every tool call report, as the ACP tool call contract defines
- All AIR extensions, capabilities, and
_metakeys: AIR extensions
Learn more about the Agent Client Protocol.
To try changes that have landed on main but are not released yet, install from the
preview channel — every push to main publishes one. See
docs/RELEASES.md.
npm install @agentclientprotocol/claude-agent-acp@preview
Subagent sessions
A client that declares clientCapabilities.subagents, other than JetBrains AIR, gets each Agent or
Task subagent as its own child session, following the subagents RFD:
subagent_updateon the parent announces the child before any of its traffic, with the parent'stitleanddescriptionfor it, and reports its work state:running,requires_actionwhile one of its requests is open (andrunningagain when the last one ends, unless a cancel withdrew it: the child is stopping then), andidlewhen its work ends, withend_turnorcancelledwhen the SDK gives the reason. A failure isidlewith theerrorstop reason and the SDK's error text as itserror. The child keeps its session for every delegation to it.- Session messages replace the Agent or Task call that launches the child, which its parent is
not shown:
- The launch's prompt is a
session_messagein both transcripts: the parent's outgoing view and the child's incoming one. Both use the launch's tool use id, and each names the other with the draft RFD'srecipientMessageIdandsenderMessageId. - A foreground child's answer, from the launch's result, is the child's
session_messageto the parent. In Claude Code's hand-back mode, the child'sSubagentHandbackcall is its message to the parent instead, in both transcripts and linked the same way. - A launch whose child is never exposed is shown as a tool call after all, with its final status.
- The launch's prompt is a
- The message of a SendMessage call that resumes the child is a
session_messagein the child's transcript. The SendMessage call stays a tool call of the session that made it. session/cancelon the parent interrupts Claude Code, which stops the foreground children that the turn waits on. Background children keep running, as the RFD prefers; a client stops one with its owncancel. Each stopped child reportsidlewithcancelledfrom Claude Code's own events, and its open requests are withdrawn. The adapter ends no child at a cancel itself, so a child that keeps running keeps its open requests and its open tool calls. To spare background children, the adapter declares the SDK optionperTaskStopAffordance, which a client can turn off in_meta.claudeCode.options. That option spares background workflows too, which a client cannot stop, so the adapter stops them after the interrupt, as Claude Code did without it. Background commands keep running after a cancel either way. A tool call of a stopped child that Claude Code reports no result for, such as the command it was running, ends in the child's session before the cancelled prompt resolves. When Claude Code stops a background child after that, or while no prompt runs, the tool call ends right after the child reportsidle. A child that still runs when Claude Code exits isidlewith no stop reason.- A child whose parent is not yet known when it ends is not exposed, since the RFD forbids guessing its parent.
- A replay restores each child under its live session id, from its own transcript, with the same
session messages as live, and its end is an
idlebefore the response. A launch without Claude Code's metadata file for the child stays an ordinary tool call of the parent, and a notice, for a client that takes notices, says that subagent history is missing. - After a load or resume, with or without replay, a SendMessage that resumes an agent from before it runs that agent in its session from before. Before the agent's traffic, each of its ancestors that the client was not told about in this connection is announced, parent before child and with no work state, as the RFD requires. An agent whose launch the session's history does not record stays unexposed.
- Each running child is announced with the
cancelcapability.session/cancelwith the child's session id stops that child's current work, through the SDK'sQuery.stopTask, and not its parent's: Claude Code also stops the foreground children it waits on, and the parent's turn goes on. Each stopped child reportsidlewithcancelledfrom Claude Code's own events, and its requests that the stop withdraws report norunningfirst. A replayed child, which no longer runs, gets no capabilities. A client cannot prompt or otherwise change a child.
An ACP v2 client gets the same without declaring anything, since subagents
are part of v2's baseline. Each child also reports its work state as its own state_update, right
after the parent's copy.
JetBrains AIR keeps the earlier draft of the RFD (subagent_spawned, subagent_state_update),
which it enables with nativeSubagentSessions in _meta.jetbrains.air.capabilities. See
AIR extensions.
Without either signal, Agent and Task stay ordinary tool calls and child interactions stay on the
root session. Clients that use the historical _meta["subagent-transcript"] capability or the
forwardSubagentText session option retain the flattened child transcript.
Experimental ACP v2
The adapter also serves the draft ACP v2:
a client that asks for protocol version 2 or later in initialize gets v2, and every other client
gets v1. The draft can still change, and this surface changes with it.
CLAUDE_AGENT_ACP_PROTOCOL limits the adapter to one version. With v1, a client that asks
for v2 is negotiated down to v1. With v2, the adapter rejects the initialize of a v1 client.
auto, the default, serves both.
On v2 the adapter serves the session baseline (session/new, session/list, session/resume
with replay, session/close, session/prompt, session/cancel), session/delete,
session/fork, additional directories, config options (the mode is one), plans, notices,
compaction, display terminals for commands, permission requests, elicitation, providers, auth, and
subagents. Steering and the AIR extensions are v1 only for now.
Contribution Policy
This project does not require a Contributor License Agreement (CLA). Instead, contributions are accepted under the following terms:
By contributing to this project, you agree that your contributions will be licensed under the Apache License, Version 2.0. You affirm that you have the legal right to submit your work, that you are not including code you do not have rights to, and that you understand contributions are made without requiring a Contributor License Agreement (CLA).