dependabot[bot] opened a new pull request, #74881: URL: https://github.com/apache/airflow/pull/74881
Bumps the core-ui-package-updates group with 16 updates in the /airflow-core/src/airflow/ui directory: | Package | From | To | | --- | --- | --- | | [@tanstack/react-query](https://github.com/TanStack/query/tree/HEAD/packages/react-query) | `5.104.0` | `5.104.2` | | [@tanstack/react-virtual](https://github.com/TanStack/virtual/tree/HEAD/packages/react-virtual) | `3.14.13` | `3.14.17` | | [i18next](https://github.com/i18next/i18next) | `26.4.2` | `26.4.4` | | [react-hook-form](https://github.com/react-hook-form/react-hook-form) | `7.89.0` | `7.90.0` | | [react-i18next](https://github.com/i18next/react-i18next) | `17.0.15` | `17.0.16` | | [react-resizable-panels](https://github.com/bvaughn/react-resizable-panels) | `4.14.1` | `4.14.4` | | [react-syntax-highlighter](https://github.com/react-syntax-highlighter/react-syntax-highlighter) | `16.1.1` | `16.1.2` | | [@playwright/test](https://github.com/microsoft/playwright) | `1.63.0` | `1.64.0` | | [@tanstack/eslint-plugin-query](https://github.com/TanStack/query/tree/HEAD/packages/eslint-plugin-query) | `5.104.0` | `5.104.2` | | [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `26.6.3` | `26.6.5` | | [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react) | `6.1.1` | `6.1.2` | | [@vitest/coverage-v8](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8) | `5.0.3` | `5.0.4` | | [msw](https://github.com/mswjs/msw) | `3.0.2` | `3.0.3` | | [prettier](https://github.com/prettier/prettier) | `3.9.9` | `3.9.10` | | [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) | `8.3.3` | `8.3.4` | | [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) | `5.0.3` | `5.0.4` | Updates `@tanstack/react-query` from 5.104.0 to 5.104.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/TanStack/query/releases">@tanstack/react-query's releases</a>.</em></p> <blockquote> <h2><code>@tanstack/react-query-devtools</code><a href="https://github.com/5"><code>@5</code></a>.104.2</h2> <h3>Patch Changes</h3> <ul> <li>Updated dependencies []: <ul> <li><code>@tanstack/query-devtools</code><a href="https://github.com/5"><code>@5</code></a>.104.2</li> <li><code>@tanstack/react-query</code><a href="https://github.com/5"><code>@5</code></a>.104.2</li> </ul> </li> </ul> <h2><code>@tanstack/react-query-next-experimental</code><a href="https://github.com/5"><code>@5</code></a>.104.2</h2> <h3>Patch Changes</h3> <ul> <li>Updated dependencies []: <ul> <li><code>@tanstack/react-query</code><a href="https://github.com/5"><code>@5</code></a>.104.2</li> </ul> </li> </ul> <h2><code>@tanstack/react-query-persist-client</code><a href="https://github.com/5"><code>@5</code></a>.104.2</h2> <h3>Patch Changes</h3> <ul> <li>Updated dependencies []: <ul> <li><code>@tanstack/query-persist-client-core</code><a href="https://github.com/5"><code>@5</code></a>.104.2</li> <li><code>@tanstack/react-query</code><a href="https://github.com/5"><code>@5</code></a>.104.2</li> </ul> </li> </ul> <h2><code>@tanstack/react-query</code><a href="https://github.com/5"><code>@5</code></a>.104.2</h2> <h3>Patch Changes</h3> <ul> <li>Updated dependencies [<a href="https://github.com/TanStack/query/commit/03e8c3955ddbf20f0a07b79982b52dfad8df5323"><code>03e8c39</code></a>]: <ul> <li><code>@tanstack/query-core</code><a href="https://github.com/5"><code>@5</code></a>.104.2</li> </ul> </li> </ul> <h2><code>@tanstack/react-query-devtools</code><a href="https://github.com/5"><code>@5</code></a>.104.1</h2> <h3>Patch Changes</h3> <ul> <li>Updated dependencies [<a href="https://github.com/TanStack/query/commit/ec060b6f74b2e51f4b0c78932beec656ef6f6878"><code>ec060b6</code></a>]: <ul> <li><code>@tanstack/query-devtools</code><a href="https://github.com/5"><code>@5</code></a>.104.1</li> <li><code>@tanstack/react-query</code><a href="https://github.com/5"><code>@5</code></a>.104.1</li> </ul> </li> </ul> <h2><code>@tanstack/react-query-next-experimental</code><a href="https://github.com/5"><code>@5</code></a>.104.1</h2> <h3>Patch Changes</h3> <ul> <li>Updated dependencies []: <ul> <li><code>@tanstack/react-query</code><a href="https://github.com/5"><code>@5</code></a>.104.1</li> </ul> </li> </ul> <h2><code>@tanstack/react-query-persist-client</code><a href="https://github.com/5"><code>@5</code></a>.104.1</h2> <h3>Patch Changes</h3> <ul> <li>Updated dependencies []: <ul> <li><code>@tanstack/query-persist-client-core</code><a href="https://github.com/5"><code>@5</code></a>.104.1</li> <li><code>@tanstack/react-query</code><a href="https://github.com/5"><code>@5</code></a>.104.1</li> </ul> </li> </ul> <h2><code>@tanstack/react-query</code><a href="https://github.com/5"><code>@5</code></a>.104.1</h2> <h3>Patch Changes</h3> <ul> <li>Updated dependencies []:</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/TanStack/query/blob/main/packages/react-query/CHANGELOG.md">@tanstack/react-query's changelog</a>.</em></p> <blockquote> <h2>5.104.2</h2> <h3>Patch Changes</h3> <ul> <li>Updated dependencies [<a href="https://github.com/TanStack/query/commit/03e8c3955ddbf20f0a07b79982b52dfad8df5323"><code>03e8c39</code></a>]: <ul> <li><code>@tanstack/query-core</code><a href="https://github.com/5"><code>@5</code></a>.104.2</li> </ul> </li> </ul> <h2>5.104.1</h2> <h3>Patch Changes</h3> <ul> <li>Updated dependencies []: <ul> <li><code>@tanstack/query-core</code><a href="https://github.com/5"><code>@5</code></a>.104.1</li> </ul> </li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/TanStack/query/commit/b699b52d60e10220403673a407d95bcebeba3e81"><code>b699b52</code></a> ci: Version Packages (<a href="https://github.com/TanStack/query/tree/HEAD/packages/react-query/issues/11849">#11849</a>)</li> <li><a href="https://github.com/TanStack/query/commit/e22e7c4a27129457636a2a800f8ce19fc0c7b0e3"><code>e22e7c4</code></a> chore: test TypeScript 7.1 preview and drop 5.6 (<a href="https://github.com/TanStack/query/tree/HEAD/packages/react-query/issues/11947">#11947</a>)</li> <li><a href="https://github.com/TanStack/query/commit/df78a9d137993546a6d7407b3fd68c1b5429888a"><code>df78a9d</code></a> chore(*): pass the root 'settings' to the package oxlint configs, which 'exte...</li> <li><a href="https://github.com/TanStack/query/commit/833062c2fcf3720f6e0201adb832aa7bd90e3770"><code>833062c</code></a> chore: replace prettier with oxfmt (<a href="https://github.com/TanStack/query/tree/HEAD/packages/react-query/issues/11939">#11939</a>)</li> <li><a href="https://github.com/TanStack/query/commit/d0cfa6a4a8ee7ad9895ae196910a8718e9308a74"><code>d0cfa6a</code></a> chore: replace eslint with oxlint (<a href="https://github.com/TanStack/query/tree/HEAD/packages/react-query/issues/11938">#11938</a>)</li> <li><a href="https://github.com/TanStack/query/commit/0012ec14c3679f4a441acf6fdc1f928cd602ed5d"><code>0012ec1</code></a> docs(react-query): add JSDoc to the properties of the exported interfaces and...</li> <li><a href="https://github.com/TanStack/query/commit/b5e8e7b697b9a4a104c7c1a550280a9e03e33048"><code>b5e8e7b</code></a> docs(react-query): add JSDoc to the exported classes, methods, and arrow func...</li> <li><a href="https://github.com/TanStack/query/commit/01abab33f866299afa2aeebfd4e00fd0c2bbc4c8"><code>01abab3</code></a> docs(*): note that 'throwOnError' makes the hook rethrow the errors of 'mutat...</li> <li><a href="https://github.com/TanStack/query/commit/b42166e557c4c4a5badcd175deb5ead542afbe4a"><code>b42166e</code></a> docs(react-query): add JSDoc to the exported interfaces and type aliases (<a href="https://github.com/TanStack/query/tree/HEAD/packages/react-query/issues/11">#11</a>...</li> <li><a href="https://github.com/TanStack/query/commit/205d422412f8176c59396074c669253d61837996"><code>205d422</code></a> docs(*): add missing JSDoc descriptions and enforce 'jsdoc/require-descriptio...</li> <li>Additional commits viewable in <a href="https://github.com/TanStack/query/commits/@tanstack/[email protected]/packages/react-query">compare view</a></li> </ul> </details> <br /> Updates `@tanstack/react-virtual` from 3.14.13 to 3.14.17 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/TanStack/virtual/releases">@tanstack/react-virtual's releases</a>.</em></p> <blockquote> <h2><code>@tanstack/react-virtual</code><a href="https://github.com/3"><code>@3</code></a>.14.17</h2> <h3>Patch Changes</h3> <ul> <li>Updated dependencies [<a href="https://github.com/TanStack/virtual/commit/3800fb3e76aa7e86bc8a8eba7ddde84aef3066eb"><code>3800fb3</code></a>, <a href="https://github.com/TanStack/virtual/commit/cb510cbb50a3e10eaaa7ff8c3c51f320d1224c79"><code>cb510cb</code></a>]: <ul> <li><code>@tanstack/virtual-core</code><a href="https://github.com/3"><code>@3</code></a>.19.2</li> </ul> </li> </ul> <h2><code>@tanstack/react-virtual</code><a href="https://github.com/3"><code>@3</code></a>.14.16</h2> <h3>Patch Changes</h3> <ul> <li>Updated dependencies [<a href="https://github.com/TanStack/virtual/commit/7aa34f62587aab20938dbc84ba88a25e59552036"><code>7aa34f6</code></a>, <a href="https://github.com/TanStack/virtual/commit/e7a0a92e4bec5ecd0a37659e951c8e8ff72e0207"><code>e7a0a92</code></a>]: <ul> <li><code>@tanstack/virtual-core</code><a href="https://github.com/3"><code>@3</code></a>.19.1</li> </ul> </li> </ul> <h2><code>@tanstack/react-virtual</code><a href="https://github.com/3"><code>@3</code></a>.14.15</h2> <h3>Patch Changes</h3> <ul> <li>Updated dependencies [<a href="https://github.com/TanStack/virtual/commit/28a21741bcc5055bbda9891655630989dc6b7517"><code>28a2174</code></a>, <a href="https://github.com/TanStack/virtual/commit/92c697f7b9c5189137b14f0b0fb41a29eddedbc6"><code>92c697f</code></a>]: <ul> <li><code>@tanstack/virtual-core</code><a href="https://github.com/3"><code>@3</code></a>.19.0</li> </ul> </li> </ul> <h2><code>@tanstack/react-virtual</code><a href="https://github.com/3"><code>@3</code></a>.14.14</h2> <h3>Patch Changes</h3> <ul> <li> <p><a href="https://redirect.github.com/TanStack/virtual/pull/1301">#1301</a> <a href="https://github.com/TanStack/virtual/commit/ce57b78ddf7c2c3384067c528ef59f18d3199a46"><code>ce57b78</code></a> - fix(react-virtual): position <code>directDomUpdates</code> rows that mount without the owner re-rendering</p> <p>Rows were only positioned by the owner's layout effect or the next <code>onChange</code>. A row mounted by a child that re-renders on its own (local state, context, a resolved Suspense boundary) skipped both when it was fixed-size, and stayed unpositioned until the range changed. Rows are now positioned as they register through <code>measureElement</code>, and <code>containerRef</code> positions the rows that mounted together with the container.</p> </li> <li> <p>Updated dependencies [<a href="https://github.com/TanStack/virtual/commit/43675bc42e3043cb2cea4dba015df077d9813602"><code>43675bc</code></a>, <a href="https://github.com/TanStack/virtual/commit/9df47a3215f3fb3d182442316d058e2a96696e4f"><code>9df47a3</code></a>, <a href="https://github.com/TanStack/virtual/commit/c644f1096c9f4d8221d92862afdc9316b17df62a"><code>c644f10</code></a>, <a href="https://github.com/TanStack/virtual/commit/2a631f46f4366227533f45604af3db8e60deb70f"><code>2a631f4</code></a>]:</p> <ul> <li><code>@tanstack/virtual-core</code><a href="https://github.com/3"><code>@3</code></a>.18.0</li> </ul> </li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/TanStack/virtual/blob/main/packages/react-virtual/CHANGELOG.md">@tanstack/react-virtual's changelog</a>.</em></p> <blockquote> <h2>3.14.17</h2> <h3>Patch Changes</h3> <ul> <li>Updated dependencies [<a href="https://github.com/TanStack/virtual/commit/3800fb3e76aa7e86bc8a8eba7ddde84aef3066eb"><code>3800fb3</code></a>, <a href="https://github.com/TanStack/virtual/commit/cb510cbb50a3e10eaaa7ff8c3c51f320d1224c79"><code>cb510cb</code></a>]: <ul> <li><code>@tanstack/virtual-core</code><a href="https://github.com/3"><code>@3</code></a>.19.2</li> </ul> </li> </ul> <h2>3.14.16</h2> <h3>Patch Changes</h3> <ul> <li>Updated dependencies [<a href="https://github.com/TanStack/virtual/commit/7aa34f62587aab20938dbc84ba88a25e59552036"><code>7aa34f6</code></a>, <a href="https://github.com/TanStack/virtual/commit/e7a0a92e4bec5ecd0a37659e951c8e8ff72e0207"><code>e7a0a92</code></a>]: <ul> <li><code>@tanstack/virtual-core</code><a href="https://github.com/3"><code>@3</code></a>.19.1</li> </ul> </li> </ul> <h2>3.14.15</h2> <h3>Patch Changes</h3> <ul> <li>Updated dependencies [<a href="https://github.com/TanStack/virtual/commit/28a21741bcc5055bbda9891655630989dc6b7517"><code>28a2174</code></a>, <a href="https://github.com/TanStack/virtual/commit/92c697f7b9c5189137b14f0b0fb41a29eddedbc6"><code>92c697f</code></a>]: <ul> <li><code>@tanstack/virtual-core</code><a href="https://github.com/3"><code>@3</code></a>.19.0</li> </ul> </li> </ul> <h2>3.14.14</h2> <h3>Patch Changes</h3> <ul> <li> <p><a href="https://redirect.github.com/TanStack/virtual/pull/1301">#1301</a> <a href="https://github.com/TanStack/virtual/commit/ce57b78ddf7c2c3384067c528ef59f18d3199a46"><code>ce57b78</code></a> - fix(react-virtual): position <code>directDomUpdates</code> rows that mount without the owner re-rendering</p> <p>Rows were only positioned by the owner's layout effect or the next <code>onChange</code>. A row mounted by a child that re-renders on its own (local state, context, a resolved Suspense boundary) skipped both when it was fixed-size, and stayed unpositioned until the range changed. Rows are now positioned as they register through <code>measureElement</code>, and <code>containerRef</code> positions the rows that mounted together with the container.</p> </li> <li> <p>Updated dependencies [<a href="https://github.com/TanStack/virtual/commit/43675bc42e3043cb2cea4dba015df077d9813602"><code>43675bc</code></a>, <a href="https://github.com/TanStack/virtual/commit/9df47a3215f3fb3d182442316d058e2a96696e4f"><code>9df47a3</code></a>, <a href="https://github.com/TanStack/virtual/commit/c644f1096c9f4d8221d92862afdc9316b17df62a"><code>c644f10</code></a>, <a href="https://github.com/TanStack/virtual/commit/2a631f46f4366227533f45604af3db8e60deb70f"><code>2a631f4</code></a>]:</p> <ul> <li><code>@tanstack/virtual-core</code><a href="https://github.com/3"><code>@3</code></a>.18.0</li> </ul> </li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/TanStack/virtual/commit/7c20899ba738f898a95a259390bf189b5fc1e6b5"><code>7c20899</code></a> ci: Version Packages (<a href="https://github.com/TanStack/virtual/tree/HEAD/packages/react-virtual/issues/1315">#1315</a>)</li> <li><a href="https://github.com/TanStack/virtual/commit/cb510cbb50a3e10eaaa7ff8c3c51f320d1224c79"><code>cb510cb</code></a> refactor(virtual-core): describe an in-flight scroll command by one phase (<a href="https://github.com/TanStack/virtual/tree/HEAD/packages/react-virtual/issues/1">#1</a>...</li> <li><a href="https://github.com/TanStack/virtual/commit/46f73fb419185536ee34ec1c6eba8ad8824d77b7"><code>46f73fb</code></a> ci: Version Packages (<a href="https://github.com/TanStack/virtual/tree/HEAD/packages/react-virtual/issues/1312">#1312</a>)</li> <li><a href="https://github.com/TanStack/virtual/commit/6732e00f9baa0a155321e788503bc2f487ea3b00"><code>6732e00</code></a> test(virtual-core): pin the iOS deferral and index-scroll orderings measured ...</li> <li><a href="https://github.com/TanStack/virtual/commit/84c1502c3a6904b52b82892793fa4c274014fd90"><code>84c1502</code></a> ci: Version Packages (<a href="https://github.com/TanStack/virtual/tree/HEAD/packages/react-virtual/issues/1303">#1303</a>)</li> <li><a href="https://github.com/TanStack/virtual/commit/92c697f7b9c5189137b14f0b0fb41a29eddedbc6"><code>92c697f</code></a> fix(virtual-core): keep lanes aligned after changing lanes with measureElemen...</li> <li><a href="https://github.com/TanStack/virtual/commit/259fc1aefa0653e22cb01c2050011ee785124c6d"><code>259fc1a</code></a> ci: Version Packages (<a href="https://github.com/TanStack/virtual/tree/HEAD/packages/react-virtual/issues/1299">#1299</a>)</li> <li><a href="https://github.com/TanStack/virtual/commit/2a631f46f4366227533f45604af3db8e60deb70f"><code>2a631f4</code></a> fix(virtual-core): reconcile index scrolls after pending measurements (<a href="https://github.com/TanStack/virtual/tree/HEAD/packages/react-virtual/issues/1294">#1294</a>)</li> <li><a href="https://github.com/TanStack/virtual/commit/ce57b78ddf7c2c3384067c528ef59f18d3199a46"><code>ce57b78</code></a> fix(react-virtual): position directDomUpdates rows that mount without the own...</li> <li>See full diff in <a href="https://github.com/TanStack/virtual/commits/@tanstack/[email protected]/packages/react-virtual">compare view</a></li> </ul> </details> <br /> Updates `i18next` from 26.4.2 to 26.4.4 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/i18next/i18next/releases">i18next's releases</a>.</em></p> <blockquote> <h2>v26.4.4</h2> <ul> <li>fix(security): the nesting regexp no longer backtracks exponentially (ReDoS) on an unclosed <code>$t(</code>. Its repeated group had overlapping alternatives (<code>[^()"']+</code> inside <code>(?:...)*?</code>, and inside parentheses <code>[^()]</code> also matched quotes), so a string containing <code>$t(</code> without a closing <code>)</code> made the engine try every way to split the text: about 2x the runtime per extra character, and a ~25 character value hung <code>t()</code> for minutes. With the default config this was reachable through any interpolated value (<code>t('greet', { name: '$t(aaaaaaaaaaaaaaaaaaaaaaaa' })</code>): escaping does not touch <code>$</code>, <code>t</code> or <code>(</code>, and the <code>skipOnVariables</code> check runs the regexp on the interpolated result, so <code>nest: false</code> did not help either. Every alternative now starts with a different character (plain char, <code>"</code>, <code>'</code> or <code>(</code>), so there is only one way to match and the cost is linear. Quoted strings and one level of parentheses in nesting options keep working (<a href="https://redirect.github.com/i18next/i18next/issues/2336">#2336</a>). The only difference: a lone <code>"</code> or <code>'</code> inside unquoted parentheses within <code>$t(...)</code> is no longer matched. Affects 25.3.3 to 26.4.3. Thanks to Anisetti Chaitanya Eshwar Prasad for the responsible disclosure.</li> <li>fix(security): <code>nest()</code> now resolves <code>$t(...)</code> in a single pass and no longer nests text that came out of a resolved value. Every nested lookup reset the shared nesting regexp, so the loop started over from the beginning of the string after each match. That had two effects. First, a <code>$t(...)</code> inside a variable that the nested lookup deliberately kept literal (default <code>skipOnVariables: true</code>) was resolved anyway by the outer loop: with <code>outer: 'A $t(inner) B'</code> and <code>inner: 'Hi {{name}}'</code>, <code>t('outer', { name: '$t(secret)' })</code> rendered the <code>secret</code> translation. It now stays <code>A Hi $t(secret) B</code>, the same as without the outer nesting; with <code>skipOnVariables: false</code> it is still resolved. Second, the cost was quadratic when an unclosed <code>$t(</code> preceded many nestings, which matters when an app passes untrusted input as the key itself (<code>t(userInput)</code>): 20,000 nestings took ~1.4 s, now ~25 ms. The resolved value is now sliced into the result instead of going through <code>String.replace</code>, so <code>$&</code>, <code>$`</code>, <code>$'</code> and <code>$$</code> stay literal as before (26.4.2).</li> </ul> <h2>v26.4.3</h2> <ul> <li>perf: <code>ResourceStore.hasLanguageSomeTranslations()</code> no longer enumerates every key of a large bundle on each call. It ran <code>Object.keys()</code> on the whole bundle just to learn whether it had at least one key, and <code>init()</code> / <code>changeLanguage()</code> reach it three times per instance (once while picking the language, twice via <code>setResolvedLanguage()</code>). With large flat bundles and one i18next instance per SSR request reusing the same resources, that showed up as measurable CPU work before any <code>t()</code> call. Bundle objects already found non-empty are now remembered in a <code>WeakSet</code> shared across instances, so later checks are O(1): 2,000 inits with a 6,800-key bundle went from ~750 ms to ~20 ms, the same as a one-key bundle. Only the non-empty result is cached. No API removes single keys from a bundle, so a non-empty bundle stays non-empty, and empty bundles are re-checked every time, so keys added later (backend loads, <code>addResource</code>, <code>addResourceBundle</code>, direct or silent changes) count right away. The only edge case: a bundle emptied by hand with <code>delete</code> on every key while it is still in the store keeps counting as having translations; use <code>removeResourceBundle()</code> for that. Thanks <a href="https://github.com/dmchoi77"><code>@dmchoi77</code></a> for the detailed report (<a href="https://redirect.github.com/i18next/i18next/issues/2449">#2449</a>).</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/i18next/i18next/blob/master/CHANGELOG.md">i18next's changelog</a>.</em></p> <blockquote> <h2>26.4.4</h2> <ul> <li>fix(security): the nesting regexp no longer backtracks exponentially (ReDoS) on an unclosed <code>$t(</code>. Its repeated group had overlapping alternatives (<code>[^()"']+</code> inside <code>(?:...)*?</code>, and inside parentheses <code>[^()]</code> also matched quotes), so a string containing <code>$t(</code> without a closing <code>)</code> made the engine try every way to split the text: about 2x the runtime per extra character, and a ~25 character value hung <code>t()</code> for minutes. With the default config this was reachable through any interpolated value (<code>t('greet', { name: '$t(aaaaaaaaaaaaaaaaaaaaaaaa' })</code>): escaping does not touch <code>$</code>, <code>t</code> or <code>(</code>, and the <code>skipOnVariables</code> check runs the regexp on the interpolated result, so <code>nest: false</code> did not help either. Every alternative now starts with a different character (plain char, <code>"</code>, <code>'</code> or <code>(</code>), so there is only one way to match and the cost is linear. Quoted strings and one level of parentheses in nesting options keep working (<a href="https://redirect.github.com/i18next/i18next/issues/2336">#2336</a>). The only difference: a lone <code>"</code> or <code>'</code> inside unquoted parentheses within <code>$t(...)</code> is no longer matched. Affects 25.3.3 to 26.4.3. See advisory <a href="https://github.com/i18next/i18next/security/advisories/GHSA-5jr9-983r-c8x4">GHSA-5jr9-983r-c8x4</a>, CVSS 7.5 (<code>CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H</code>). Thanks to Anisetti Chaitanya Eshwar Prasad for the responsible disclosure.</li> <li>fix(security): <code>nest()</code> now resolves <code>$t(...)</code> in a single pass and no longer nests text that came out of a resolved value. Every nested lookup reset the shared nesting regexp, so the loop started over from the beginning of the string after each match. That had two effects. First, a <code>$t(...)</code> inside a variable that the nested lookup deliberately kept literal (default <code>skipOnVariables: true</code>) was resolved anyway by the outer loop: with <code>outer: 'A $t(inner) B'</code> and <code>inner: 'Hi {{name}}'</code>, <code>t('outer', { name: '$t(secret)' })</code> rendered the <code>secret</code> translation. It now stays <code>A Hi $t(secret) B</code>, the same as without the outer nesting; with <code>skipOnVariables: false</code> it is still resolved. Second, the cost was quadratic when an unclosed <code>$t(</code> preceded many nestings, which matters when an app passes untrusted input as the key itself (<code>t(userInput)</code>): 20,000 nestings took ~1.4 s, now ~25 ms. The resolved value is now sliced into the result instead of going through <code>String.replace</code>, so <code>$&</code>, <code>$`</code>, <code>$'</code> and <code>$$</code> stay literal as before (26.4.2).</li> </ul> <h2>26.4.3</h2> <ul> <li>perf: <code>ResourceStore.hasLanguageSomeTranslations()</code> no longer enumerates every key of a large bundle on each call. It ran <code>Object.keys()</code> on the whole bundle just to learn whether it had at least one key, and <code>init()</code> / <code>changeLanguage()</code> reach it three times per instance (once while picking the language, twice via <code>setResolvedLanguage()</code>). With large flat bundles and one i18next instance per SSR request reusing the same resources, that showed up as measurable CPU work before any <code>t()</code> call. Bundle objects already found non-empty are now remembered in a <code>WeakSet</code> shared across instances, so later checks are O(1): 2,000 inits with a 6,800-key bundle went from ~750 ms to ~20 ms, the same as a one-key bundle. Only the non-empty result is cached. No API removes single keys from a bundle, so a non-empty bundle stays non-empty, and empty bundles are re-checked every time, so keys added later (backend loads, <code>addResource</code>, <code>addResourceBundle</code>, direct or silent changes) count right away. The only edge case: a bundle emptied by hand with <code>delete</code> on every key while it is still in the store keeps counting as having translations; use <code>removeResourceBundle()</code> for that. Thanks <a href="https://github.com/dmchoi77"><code>@dmchoi77</code></a> for the detailed report (<a href="https://redirect.github.com/i18next/i18next/issues/2449">#2449</a>).</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/i18next/i18next/commit/f6a7746d119790f07bc03ba86b130b090af8e443"><code>f6a7746</code></a> 26.4.4</li> <li><a href="https://github.com/i18next/i18next/commit/25988d5405e8e57415b2550af179f512c33ca2be"><code>25988d5</code></a> build</li> <li><a href="https://github.com/i18next/i18next/commit/c9f8ebab17b456b5837e61a2e542ee27d190e151"><code>c9f8eba</code></a> fix(security): nesting regexp ReDoS on unclosed $t( and single-pass nest(), c...</li> <li><a href="https://github.com/i18next/i18next/commit/0d2845a2360dcc236fe9681f849781f5dfdd35c4"><code>0d2845a</code></a> 26.4.3</li> <li><a href="https://github.com/i18next/i18next/commit/a2dbe15e844b7f897ff5851419ba000fbacdbc45"><code>a2dbe15</code></a> build</li> <li><a href="https://github.com/i18next/i18next/commit/e75843ffeac038a961f91181d963ae4a8f228976"><code>e75843f</code></a> perf: cache non-empty bundles in hasLanguageSomeTranslations, changelog v26.4.3</li> <li><a href="https://github.com/i18next/i18next/commit/edaea71b729aa54dc35d5e7dfea72b2b12f24a61"><code>edaea71</code></a> Fix TypeScript examples build and update them to i18next v26 (<a href="https://redirect.github.com/i18next/i18next/issues/2448">#2448</a>)</li> <li><a href="https://github.com/i18next/i18next/commit/4ebd19d89111fa558d7086f6be64eb748bad6327"><code>4ebd19d</code></a> docs: "For AI assistants" paragraph in the README and a fuller saveMissing JSDoc</li> <li>See full diff in <a href="https://github.com/i18next/i18next/compare/v26.4.2...v26.4.4">compare view</a></li> </ul> </details> <br /> Updates `react-hook-form` from 7.89.0 to 7.90.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/react-hook-form/react-hook-form/releases">react-hook-form's releases</a>.</em></p> <blockquote> <h2>Version 7.90.0</h2> <h2>🐞 Fixes</h2> <ul> <li>Fix <code>useForm</code> marking fields named after <code>Object.prototype</code> members as touched on blur and <code>setValue</code> (<a href="https://redirect.github.com/react-hook-form/react-hook-form/issues/13833">#13833</a>)</li> <li>Fix <code>cloneObject</code> preserving the length of sparse arrays (<a href="https://redirect.github.com/react-hook-form/react-hook-form/issues/13834">#13834</a>)</li> <li>Fix dirty values extraction for fields named <code>hasOwnProperty</code> (<a href="https://redirect.github.com/react-hook-form/react-hook-form/issues/13832">#13832</a>)</li> <li>Fix <code>useForm</code> retaining options removed from props on re-render (<a href="https://redirect.github.com/react-hook-form/react-hook-form/issues/13831">#13831</a>)</li> <li>Fix <code>useFieldArray</code> handling duplicate indexes in <code>remove()</code> without mutating the provided indexes (<a href="https://redirect.github.com/react-hook-form/react-hook-form/issues/13830">#13830</a>)</li> <li>Fix <code>useFieldArray</code> unregistering fields while a parent array reindexes (<a href="https://redirect.github.com/react-hook-form/react-hook-form/issues/13828">#13828</a>)</li> <li>Fix input values edited before the form is ready being lost (<a href="https://redirect.github.com/react-hook-form/react-hook-form/issues/13827">#13827</a>)</li> <li>Fix <code>useWatch</code> not updating watched objects after an Activity subtree reconnects (<a href="https://redirect.github.com/react-hook-form/react-hook-form/issues/13819">#13819</a>)</li> <li>Fix <code>reset()</code> incorrectly setting <code>isDirty</code> when using <code>keepDefaultValues</code> without values (<a href="https://redirect.github.com/react-hook-form/react-hook-form/issues/13820">#13820</a>)</li> <li>Fix <code>Controller</code> blur validation not working after <code>reset()</code> (<a href="https://redirect.github.com/react-hook-form/react-hook-form/issues/13817">#13817</a>)</li> <li>Fix <code>watch</code> using stale <code>shouldUnregister</code> options when registering fields (<a href="https://redirect.github.com/react-hook-form/react-hook-form/issues/13814">#13814</a>)</li> <li>Fix form value comparison for fields named <code>ref</code> (<a href="https://redirect.github.com/react-hook-form/react-hook-form/issues/13812">#13812</a>)</li> <li>Fix native validation using stale <code>shouldUseNativeValidation</code> options (<a href="https://redirect.github.com/react-hook-form/react-hook-form/issues/13806">#13806</a>)</li> <li>Fix <code>cloneObject</code> not cloning objects with a null prototype (<a href="https://redirect.github.com/react-hook-form/react-hook-form/issues/13808">#13808</a>)</li> <li>Fix <code>useWatch</code> array names not prioritizing form <code>defaultValues</code> (<a href="https://redirect.github.com/react-hook-form/react-hook-form/issues/13805">#13805</a>)</li> <li>Fix error updates not producing a new <code>errors</code> reference (<a href="https://redirect.github.com/react-hook-form/react-hook-form/issues/13800">#13800</a>)</li> <li>Fix <code>setError</code> and <code>clearErrors</code> not producing a new <code>errors</code> reference (<a href="https://redirect.github.com/react-hook-form/react-hook-form/issues/13791">#13791</a>)</li> </ul> <h2>⚡ Performance Improvements</h2> <ul> <li>Improve dirty fields checking (<a href="https://redirect.github.com/react-hook-form/react-hook-form/issues/13788">#13788</a>)</li> <li>Improve subscription value handling (<a href="https://redirect.github.com/react-hook-form/react-hook-form/issues/13787">#13787</a>)</li> <li>Improve <code>watch</code> API performance (<a href="https://redirect.github.com/react-hook-form/react-hook-form/issues/13792">#13792</a>)</li> <li>Improve named scoped subscriptions (<a href="https://redirect.github.com/react-hook-form/react-hook-form/issues/13793">#13793</a>)</li> <li>Preserve form-state tracking across unsubscribe (<a href="https://redirect.github.com/react-hook-form/react-hook-form/issues/13794">#13794</a>)</li> <li>Improve subject subscription handling (<a href="https://redirect.github.com/react-hook-form/react-hook-form/issues/13795">#13795</a>)</li> <li>Skip redundant form-state merges during subscriber notifications (<a href="https://redirect.github.com/react-hook-form/react-hook-form/issues/13796">#13796</a>)</li> <li>Avoid allocations when matching subscription names (<a href="https://redirect.github.com/react-hook-form/react-hook-form/issues/13823">#13823</a>)</li> </ul> <h2>🧹 Refactors</h2> <ul> <li>Reduce bundle size (<a href="https://redirect.github.com/react-hook-form/react-hook-form/issues/13797">#13797</a>, <a href="https://redirect.github.com/react-hook-form/react-hook-form/issues/13798">#13798</a>)</li> <li>Clean up tests and fix warnings (<a href="https://redirect.github.com/react-hook-form/react-hook-form/issues/13835">#13835</a>)</li> </ul> <h2>🧪 Tests</h2> <ul> <li>Add coverage for <code>useFieldArray</code> index boundary and no-op behavior (<a href="https://redirect.github.com/react-hook-form/react-hook-form/issues/13815">#13815</a>, <a href="https://redirect.github.com/react-hook-form/react-hook-form/issues/13822">#13822</a>, <a href="https://redirect.github.com/react-hook-form/react-hook-form/issues/13824">#13824</a>, <a href="https://redirect.github.com/react-hook-form/react-hook-form/issues/13829">#13829</a>)</li> <li>Add coverage for JSON stringify and parse edge cases (<a href="https://redirect.github.com/react-hook-form/react-hook-form/issues/13821">#13821</a>)</li> </ul> <h2>📦 Dependencies</h2> <ul> <li>Bump <code>fast-uri</code> from 3.1.2 to 3.1.8 (<a href="https://redirect.github.com/react-hook-form/react-hook-form/issues/13811">#13811</a>)</li> <li>Bump <code>joi</code> from 18.2.5 to 18.2.6 (<a href="https://redirect.github.com/react-hook-form/react-hook-form/issues/13810">#13810</a>)</li> </ul> <h2>❤️ Thank You</h2> <p>Thanks to <a href="https://github.com/charan-rathore"><code>@charan-rathore</code></a>, <a href="https://github.com/zigzagdev"><code>@zigzagdev</code></a>, <a href="https://github.com/AdzerKI"><code>@AdzerKI</code></a>, <a href="https://github.com/huytdps13400"><code>@huytdps13400</code></a>, <a href="https://github.com/dfedoryshchev"><code>@dfedoryshchev</code></a>, <a href="https://github.com/kory-kaai"><code>@kory-kaai</code></a>, <a href="https://github.com/Mohamed-Elshesheny"><code>@Mohamed-Elshesheny</code></a>, <a href="https://github.com/breken-ai"><code>@breken-ai</code></a>, <a href="https://github.com/sarmah-rup"><code>@sarmah-rup</code></a>, <a href="https://github.com/00200200"><code>@00200200</code></a>, <a href="https://github.com/giaBaoJS"><code>@giaBaoJS</code></a> and <a href="https://github.com/bluebill1049"><code>@bluebill1049</code></a> for their contributions! 🎉</p> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/react-hook-form/react-hook-form/blob/master/CHANGELOG.md">react-hook-form's changelog</a>.</em></p> <blockquote> <h2>[7.90.0] - 2026-10-10</h2> <h3>Changed</h3> <ul> <li>Improve performance of <code>watch</code>, <code>subscribe</code>, scoped subscriptions, dirty field checks and form state fan-out</li> <li>Reduce bundle size</li> </ul> <h3>Fixed</h3> <ul> <li>Fields named after <code>Object.prototype</code> members not being marked as touched on blur and <code>setValue</code></li> <li>Dirty values extraction for fields named <code>hasOwnProperty</code></li> <li><code>cloneObject</code> dropping the length of sparse arrays</li> <li><code>cloneObject</code> failing on objects with a null prototype</li> <li>Form options removed from props on re-render not being reset</li> <li><code>remove()</code> mishandling duplicated indexes and mutating the indexes passed in</li> <li><code>useFieldArray</code> unregistering fields while a parent array reindexes</li> <li>Input edited before the form is ready being overwritten</li> <li><code>useWatch</code> not updating watched objects after an <code><Activity></code> subtree reconnects</li> <li><code>useWatch</code> preferring its own <code>defaultValue</code> over form <code>defaultValues</code> for array names</li> <li><code>reset</code> without values and <code>keepDefaultValues</code> setting <code>isDirty</code> to true</li> <li><code>Controller</code> blur validation not working after <code>reset</code></li> <li><code>watch</code> reading a stale <code>shouldUnregister</code> option when a field registers</li> <li>Native validation reading a stale <code>shouldUseNativeValidation</code> option when stopping at the first error</li> <li>Form values stored under a <code>ref</code> key not being compared correctly</li> <li><code>setError</code>, <code>clearErrors</code> and remaining error updates not producing a new <code>errors</code> reference</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/react-hook-form/react-hook-form/commit/8ac7cc0bcc1f50f887230d50b1929d977b4d3fb4"><code>8ac7cc0</code></a> 7.90.0</li> <li><a href="https://github.com/react-hook-form/react-hook-form/commit/8f7d2de7b9526d21fb2ad79430f32289eaa27d39"><code>8f7d2de</code></a> 🧪 tests cleanup and fix warnings (<a href="https://redirect.github.com/react-hook-form/react-hook-form/issues/13835">#13835</a>)</li> <li><a href="https://github.com/react-hook-form/react-hook-form/commit/e76876b02550b3ad48a351c638845d9dc1aaa3c8"><code>e76876b</code></a> 🐞 fix(useForm): mark fields named after Object.prototype members as touched o...</li> <li><a href="https://github.com/react-hook-form/react-hook-form/commit/08ddcd69c7d04c2e5492568b952916f5bac171b7"><code>08ddcd6</code></a> 🐞 fix(cloneObject): keep the length of sparse arrays (<a href="https://redirect.github.com/react-hook-form/react-hook-form/issues/13834">#13834</a>)</li> <li><a href="https://github.com/react-hook-form/react-hook-form/commit/b8e0a6da16865e87ef45d92e0f6001c600df1c32"><code>b8e0a6d</code></a> 🐞 fix: safely extract dirty values for hasOwnProperty fields (<a href="https://redirect.github.com/react-hook-form/react-hook-form/issues/13832">#13832</a>)</li> <li><a href="https://github.com/react-hook-form/react-hook-form/commit/36e53296193eb98fc8ffe9db2165cf53ceb62b8e"><code>36e5329</code></a> 🐞 fix(useForm): reset options that are removed from the props on re-render (#...</li> <li><a href="https://github.com/react-hook-form/react-hook-form/commit/c7cb33adf71979807d93b6af159aa0982f101198"><code>c7cb33a</code></a> 🐞 fix(useFieldArray): ignore duplicated indexes and keep the indexes passed t...</li> <li><a href="https://github.com/react-hook-form/react-hook-form/commit/91856c260dc116b28d74c4145b884a7e337285f6"><code>91856c2</code></a> 🧪 test(swap): cover self-index no-op behavior (<a href="https://redirect.github.com/react-hook-form/react-hook-form/issues/13829">#13829</a>)</li> <li><a href="https://github.com/react-hook-form/react-hook-form/commit/000faaf67b9550f998994107e163f7e25e5e9082"><code>000faaf</code></a> 🐞 fix(useFieldArray): skip unregister while a parent array reindexes (<a href="https://redirect.github.com/react-hook-form/react-hook-form/issues/13828">#13828</a>)</li> <li><a href="https://github.com/react-hook-form/react-hook-form/commit/7838f08f41499652f0f1defd625f589d0f31cc3e"><code>7838f08</code></a> 🐞 fix <a href="https://redirect.github.com/react-hook-form/react-hook-form/issues/13802">#13802</a>: keep input edited before the form is ready (<a href="https://redirect.github.com/react-hook-form/react-hook-form/issues/13827">#13827</a>)</li> <li>Additional commits viewable in <a href="https://github.com/react-hook-form/react-hook-form/compare/v7.89.0...v7.90.0">compare view</a></li> </ul> </details> <br /> Updates `react-i18next` from 17.0.15 to 17.0.16 <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/i18next/react-i18next/blob/master/CHANGELOG.md">react-i18next's changelog</a>.</em></p> <blockquote> <h2>17.0.16</h2> <ul> <li>fix(Trans): a selector <code>i18nKey</code> that points into a secondary namespace of <code>useTranslation</code> now resolves the same way <code>t()</code> does. With <code>const { t } = useTranslation(['ns1', 'ns2'])</code>, <code>t($ => $.ns2.message)</code> works since 17.0.7, but <code><Trans t={t} i18nKey={$ => $.ns2.message} /></code> rendered the raw key (or its children). <code>Trans</code> always passed an <code>ns</code> option to <code>t</code>, filled from <code>t.ns</code> (the primary namespace only), and an explicit <code>ns</code> makes i18next's fixed <code>t</code> skip the hook's full namespace list (<code>scopeNs</code>). When <code>Trans</code> or <code>TransWithoutContext</code> gets a <code>t</code> that carries its own namespace and no <code>ns</code> prop, it now leaves <code>ns</code> out and lets that <code>t</code> apply its own. String keys, <code>keyPrefix</code>, <code>nsMode: 'fallback'</code>, an explicit <code>ns</code> prop and < code>Trans</code> without a <code>t</code> prop behave as before. Compatibility note: if the primary namespace has a nested object named like a secondary namespace (<code>ns1</code> → <code>ns2.message</code>), <code>Trans</code> now resolves <code>$ => $.ns2.message</code> to <code>ns2:message</code>, as <code>t()</code> already does. Fixes <a href="https://redirect.github.com/i18next/react-i18next/issues/1933">#1933</a>.</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/i18next/react-i18next/commit/606b6a55f231bbf73823863fbb94e6b8eb8272fd"><code>606b6a5</code></a> 17.0.16</li> <li><a href="https://github.com/i18next/react-i18next/commit/51b7c269597ab52477574153633aa0062e5f4b9b"><code>51b7c26</code></a> fix(Trans): resolve selector keys into useTranslation's secondary namespaces</li> <li><a href="https://github.com/i18next/react-i18next/commit/0a2f0182b9f2c51d9868364057db8d5987a550d3"><code>0a2f018</code></a> fix(examples): load the Swedish file in test-jest and align the ru plural tag...</li> <li>See full diff in <a href="https://github.com/i18next/react-i18next/compare/v17.0.15...v17.0.16">compare view</a></li> </ul> </details> <br /> Updates `react-resizable-panels` from 4.14.1 to 4.14.4 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/bvaughn/react-resizable-panels/releases">react-resizable-panels's releases</a>.</em></p> <blockquote> <h2>4.14.4</h2> <ul> <li>Fix pointer events in one document affecting groups mounted in another (e.g. a popup window). The resize cursor is now only shown in the document that contains the active group. - <a href="https://redirect.github.com/bvaughn/react-resizable-panels/pull/762">#762</a></li> <li>Fix an error thrown by an <code>onLayoutChange</code>, <code>onLayoutChanged</code>, or <code>onResize</code> callback leaving a drag stuck in the active state or preventing other groups from being updated. The error is now re-thrown once all groups have been updated. - <a href="https://redirect.github.com/bvaughn/react-resizable-panels/pull/763">#763</a></li> </ul> <h2>4.14.3</h2> <ul> <li><a href="https://redirect.github.com/bvaughn/react-resizable-panels/pull/761">761</a> Bugfix: A drag interrupted by <code>pointercancel</code>, <code>lostpointercapture</code>, or the window losing focus (e.g. Alt/Cmd+Tab) now ends and commits the current layout, rather than staying active until the next pointer event</li> </ul> <h2>4.14.2</h2> <ul> <li><a href="https://redirect.github.com/bvaughn/react-resizable-panels/pull/759">759</a>: Bugfix: Resort panels and separators before (re)deriving constraints</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/bvaughn/react-resizable-panels/blob/main/CHANGELOG.md">react-resizable-panels's changelog</a>.</em></p> <blockquote> <h2>4.14.4</h2> <ul> <li>Fix pointer events in one document affecting groups mounted in another (e.g. a popup window). The resize cursor is now only shown in the document that contains the active group. - <a href="https://redirect.github.com/bvaughn/react-resizable-panels/pull/762">#762</a></li> <li>Fix an error thrown by an <code>onLayoutChange</code>, <code>onLayoutChanged</code>, or <code>onResize</code> callback leaving a drag stuck in the active state or preventing other groups from being updated. The error is now re-thrown once all groups have been updated. - <a href="https://redirect.github.com/bvaughn/react-resizable-panels/pull/763">#763</a></li> </ul> <h2>4.14.3</h2> <ul> <li>Fix drags interrupted by <code>"pointercancel"</code>, <code>"lostpointercapture"</code>, or the window losing focus (e.g. Alt/Cmd+Tab) staying active until the next pointer event. The drag now ends and commits the current layout. - <a href="https://redirect.github.com/bvaughn/react-resizable-panels/pull/761">#761</a></li> </ul> <h2>4.14.2</h2> <ul> <li>Fix constraints derived from stale panel and separator order by re-sorting them first. - <a href="https://redirect.github.com/bvaughn/react-resizable-panels/pull/759">#759</a></li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/bvaughn/react-resizable-panels/commit/b070a13ecad02ac814a7de85a4a288febdebfb61"><code>b070a13</code></a> 4.14.3 -> 4.14.4</li> <li><a href="https://github.com/bvaughn/react-resizable-panels/commit/cf40d48f1ed06441344c0546411e43c2ab1816fc"><code>cf40d48</code></a> Defer errors thrown by layout change callbacks so drags always finish cleanly...</li> <li><a href="https://github.com/bvaughn/react-resizable-panels/commit/ada7a2130f73112c733804cb8bdb4aea7e7ef5b2"><code>ada7a21</code></a> fix: ignore hit targets from other documents (<a href="https://redirect.github.com/bvaughn/react-resizable-panels/issues/762">#762</a>)</li> <li><a href="https://github.com/bvaughn/react-resizable-panels/commit/f4c06add8848836e65cbbd20a02f8de0d6be4618"><code>f4c06ad</code></a> Update CHANGELOG</li> <li><a href="https://github.com/bvaughn/react-resizable-panels/commit/6abc6ac81e51819edecd40b71ac2c580f472093a"><code>6abc6ac</code></a> 4.14.2 -> 4.14.3</li> <li><a href="https://github.com/bvaughn/react-resizable-panels/commit/5ac3e5cdedbd528588e6abb47648e32287d78e00"><code>5ac3e5c</code></a> Bugfix: Handle drags interrupted by "pointercancel", "lostpointercapture", or...</li> <li><a href="https://github.com/bvaughn/react-resizable-panels/commit/8c0573b7938b50c868ae837813fda8945e36b596"><code>8c0573b</code></a> 4.14.1 -> 4.14.2</li> <li><a href="https://github.com/bvaughn/react-resizable-panels/commit/e00997ab338672df82e67cb711e9ef565b2eab2a"><code>e00997a</code></a> Bugfix: Resort panels and separators before (re)deriving constraints (<a href="https://redirect.github.com/bvaughn/react-resizable-panels/issues/759">#759</a>)</li> <li><a href="https://github.com/bvaughn/react-resizable-panels/commit/7eb8d7af0ae9311055354a16f6ce4997b60783e1"><code>7eb8d7a</code></a> Update react-lib-tools and docs site content</li> <li><a href="https://github.com/bvaughn/react-resizable-panels/commit/8d30dadcf428b9c7aa8636e9a4b3820a75041cd7"><code>8d30dad</code></a> Update react-lib-tools</li> <li>Additional commits viewable in <a href="https://github.com/bvaughn/react-resizable-panels/compare/4.14.1...4.14.4">compare view</a></li> </ul> </details> <br /> Updates `react-syntax-highlighter` from 16.1.1 to 16.1.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/react-syntax-highlighter/react-syntax-highlighter/releases">react-syntax-highlighter's releases</a>.</em></p> <blockquote> <h2>v16.1.2</h2> <h2>What's Changed</h2> <ul> <li>fix: ESM still missing <code>.js</code> with highlight.js by <a href="https://github.com/Ronny-zzl"><code>@Ronny-zzl</code></a> in <a href="https://redirect.github.com/react-syntax-highlighter/react-syntax-highlighter/pull/635">react-syntax-highlighter/react-syntax-highlighter#635</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/Ronny-zzl"><code>@Ronny-zzl</code></a> made their first contribution in <a href="https://redirect.github.com/react-syntax-highlighter/react-syntax-highlighter/pull/635">react-syntax-highlighter/react-syntax-highlighter#635</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/react-syntax-highlighter/react-syntax-highlighter/compare/v16.1.1...v16.1.2">https://github.com/react-syntax-highlighter/react-syntax-highlighter/compare/v16.1.1...v16.1.2</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/react-syntax-highlighter/react-syntax-highlighter/commit/26dbd6c70d917ba6f272d3026d829eb0652232d1"><code>26dbd6c</code></a> version bump to 16.1.2</li> <li><a href="https://github.com/react-syntax-highlighter/react-syntax-highlighter/commit/0c5da9e42ac6ad71b6117151114be438ecdbf880"><code>0c5da9e</code></a> fix: ESM still missing <code>.js</code> with highlight.js (<a href="https://redirect.github.com/react-syntax-highlighter/react-syntax-highlighter/issues/635">#635</a>)</li> <li>See full diff in <a href="https://github.com/react-syntax-highlighter/react-syntax-highlighter/compare/v16.1.1...v16.1.2">compare view</a></li> </ul> </details> <br /> Updates `@playwright/test` from 1.63.0 to 1.64.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/microsoft/playwright/releases">@playwright/test's releases</a>.</em></p> <blockquote> <h2>v1.64.0</h2> <h2>🧰 WebMCP</h2> <p>New <a href="https://playwright.dev/docs/api/class-page#page-webmcp">page.webmcp</a> and <a href="https://playwright.dev/docs/api/class-frame#frame-webmcp">frame.webmcp</a> give access to the tools that a page registers through the experimental <a href="https://playwright.dev/docs/api/class-webmcp">WebMCP</a> browser API, so you can test them like any other part of your app:</p> <pre lang="js"><code>const browser = await chromium.launch({ args: ['--enable-features=WebMCP'] }); const page = await browser.newPage(); await page.goto('https://example.com'); <p>for (const tool of await page.webmcp.tools()) console.log(tool.name, tool.description);</p> <p>const result = await page.webmcp.callTool('add', { a: 2, b: 40 }); console.log(result.content[0].text); // "42" </code></pre></p> <p><a href="https://playwright.dev/docs/getting-started-mcp">Playwright MCP</a> also supports WebMCP by default, with page-defined tools offered to the agent as <code>webmcp_<tool></code>. Pass <code>--no-webmcp</code> to opt out.</p> <p><a href="https://playwright.dev/docs/getting-started-cli"><code>playwright-cli</code></a> exposes them as well:</p> <pre lang="bash"><code>playwright-cli webmcp-list playwright-cli webmcp-call search_catalog --params '{"query":"cats"}' </code></pre> <h2>🎬 Better videos</h2> <p>Videos can now be recorded at a custom frame rate, and the decorations for actions are styled with plain CSS:</p> <pre lang="js"><code>// playwright.config.ts import { defineConfig } from '@playwright/test'; <p>export default defineConfig({ use: { video: { mode: 'on', size: { width: 1920, height: 1080 }, fps: 60, show: { actions: { style: { point: 'width: 20px; height: 20px; border-radius: 50%; background: red', highlight: 'outline: 2px solid <a href="https://redirect.github.com/microsoft/playwright/issues/333">#333</a>; background: rgba(0, 128, 255, .15)', title: 'font-size: 16px', }, }, }, }, </tr></table> </code></pre></p> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/microsoft/playwright/commit/606ecd8b34bac100db32561b6278ffd76e5eb3cd"><code>606ecd8</code></a> cherry-pick(<a href="https://redirect.github.com/microsoft/playwright/issues/43192">#43192</a>): fix(locators): parse locators the way the client API bui...</li> <li><a href="https://github.com/microsoft/playwright/commit/e4f872c79530583300185d3e4aa9689e2f85d0b0"><code>e4f872c</code></a> cherry-pick(<a href="https://redirect.github.com/microsoft/playwright/issues/43188">#43188</a>): feat(api): expose asLocatorDescription via LocalUtils fo...</li> <li><a href="https://github.com/microsoft/playwright/commit/f6a439e6f496f75d8e8b687116eef8c21316aa1f"><code>f6a439e</code></a> cherry-pick(<a href="https://redirect.github.com/microsoft/playwright/issues/43189">#43189</a>): docs(webmcp): expose WebMCP to all languages</li> <li><a href="https://github.com/microsoft/playwright/commit/e2335c30f16196a96f81c099598803ca74f9120c"><code>e2335c3</code></a> cherry-pick(<a href="https://redirect.github.com/microsoft/playwright/issues/43174">#43174</a>): fix(mcp): do not close the browser twice when the client...</li> <li><a href="https://github.com/microsoft/playwright/commit/d2a436e0111091ba99836fa6711de28201606cfc"><code>d2a436e</code></a> cherry-pick(<a href="https://redirect.github.com/microsoft/playwright/issues/43163">#43163</a>): Revert "fix(blob): do not remove existing reports from o...</li> <li><a href="https://github.com/microsoft/playwright/commit/a0c4b5efc965577e19f5ebfdcc27f384d3058783"><code>a0c4b5e</code></a> cherry-pick(<a href="https://redirect.github.com/microsoft/playwright/issues/43175">#43175</a>): feat(api): return language-specific locator code from re...</li> <li><a href="https://github.com/microsoft/playwright/commit/3f7d535c7b69ff1997307dc304c3c8c76b51179d"><code>3f7d535</code></a> cherry-pick(<a href="https://redirect.github.com/microsoft/playwright/issues/43131">#43131</a>): docs: fix broken C# samples in API docs and handles guide</li> <li><a href="https://github.com/microsoft/playwright/commit/1cde64f74a0f85304f2f4091a46670bf9a3e0dc3"><code>1cde64f</code></a> cherry-pick(<a href="https://redirect.github.com/microsoft/playwright/issues/43170">#43170</a>): fix(locators): parse mixed role options</li> <li><a href="https://github.com/microsoft/playwright/commit/8851e7296508ae50cd1f822e50d1e4fa92eab218"><code>8851e72</code></a> cherry-pick(<a href="https://redirect.github.com/microsoft/playwright/issues/43171">#43171</a>): fix(locators): parse JavaScript escapes and regex classes</li> <li><a href="https://github.com/microsoft/playwright/commit/dcc50654872510b630c73ec6eba1fb3d625c735e"><code>dcc5065</code></a> cherry-pick(<a href="https://redirect.github.com/microsoft/playwright/issues/43172">#43172</a>): fix(locator): parse within and getByRef locators</li> <li>Additional commits viewable in <a href="https://github.com/microsoft/playwright/compare/v1.63.0...v1.64.0">compare view</a></li> </ul> </details> <br /> Updates `@tanstack/eslint-plugin-query` from 5.104.0 to 5.104.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/TanStack/query/releases">@tanstack/eslint-plugin-query's releases</a>.</em></p> <blockquote> <h2><code>@tanstack/eslint-plugin-query</code><a href="https://github.com/5"><code>@5</code></a>.104.2</h2> <p>No changes in this release.</p> <h2><code>@tanstack/eslint-plugin-query</code><a href="https://github.com/5"><code>@5</code></a>.104.1</h2> <p>No changes in this release.</p> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/TanStack/query/blob/main/packages/eslint-plugin-query/CHANGELOG.md">@tanstack/eslint-plugin-query's changelog</a>.</em></p> <blockquote> <h2>5.104.2</h2> <p>No changes in this release.</p> <h2>5.104.1</h2> <p>No changes in this release.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/TanStack/query/commit/b699b52d60e10220403673a407d95bcebeba3e81"><code>b699b52</code></a> ci: Version Packages (<a href="https://github.com/TanStack/query/tree/HEAD/packages/eslint-plugin-query/issues/11849">#11849</a>)</li> <li><a href="https://github.com/TanStack/query/commit/e22e7c4a27129457636a2a800f8ce19fc0c7b0e3"><code>e22e7c4</code></a> chore: test TypeScript 7.1 preview and drop 5.6 (<a href="https://github.com/TanStack/query/tree/HEAD/packages/eslint-plugin-query/issues/11947">#11947</a>)</li> <li><a href="https://github.com/TanStack/query/commit/df78a9d137993546a6d7407b3fd68c1b5429888a"><code>df78a9d</code></a> chore(*): pass the root 'settings' to the package oxlint configs, which 'exte...</li> <li><a href="https://github.com/TanStack/query/commit/d0cfa6a4a8ee7ad9895ae196910a8718e9308a74"><code>d0cfa6a</code></a> chore: replace eslint with oxlint (<a href="https://github.com/TanStack/query/tree/HEAD/packages/eslint-plugin-query/issues/11938">#11938</a>)</li> <li><a href="https://github.com/TanStack/query/commit/e3415e0149832b70a95df09e1beb89a108ede812"><code>e3415e0</code></a> docs(eslint-plugin-query): add JSDoc to the properties of the exported interf...</li> <li><a href="https://github.com/TanStack/query/commit/f9fe54c960ffe39affe89a7b3dd8a69e6b194fda"><code>f9fe54c</code></a> docs(eslint-plugin-query): add JSDoc to the exported classes, methods, and ar...</li> <li><a href="https://github.com/TanStack/query/commit/847036b577ee172f7fccb88097b27b124f7199fe"><code>847036b</code></a> docs(eslint-plugin-query): add JSDoc to the exported interfaces and type alia...</li> <li><a href="https://github.com/TanStack/query/commit/473679162498b4c49b4725ca9696cdd3a6b3b3e0"><code>4736791</code></a> docs(*): end JSDoc descriptions with a period and start them with an uppercas...</li> <li><a href="https://github.com/TanStack/query/commit/cbdb21468a6f21aac80be277320f132bd2a9d012"><code>cbdb214</code></a> docs(*): replace JSDoc descriptions that only repeat the names and enforce 'j...</li> <li><a href="https://github.com/TanStack/query/commit/fe30a84837c6b6088ca9499bd4acf25098453440"><code>fe30a84</code></a> docs(eslint-plugin-query): add missing JSDoc to rule helpers and utilities (#...</li> <li>Additional commits viewable in <a href="https://github.com/TanStack/query/commits/@tanstack/[email protected]/packages/eslint-plugin-query">compare view</a></li> </ul> </details> <br /> Updates `@types/node` from 26.6.3 to 26.6.5 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node">compare view</a></li> </ul> </details> <br /> Updates `@vitejs/plugin-react` from 6.1.1 to 6.1.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/vitejs/vite-plugin-react/releases">@vitejs/plugin-react's releases</a>.</em></p> <blockquote> <h2>[email protected]</h2> <h3>Fix HMR for compound components (<a href="https://redirect.github.com/vitejs/vite-plugin-react/pull/1484">#1484</a>)</h3> <p>Adding or removing a component from a compound component was not handled, creating stale updates. Doing this now triggers hmr invalidate on the file and propagates the invalidation to importers.</p> <h3>Fix <code>compiler.logDiagnostics</code> option not working (<a href="https://redirect.github.com/vitejs/vite-plugin-react/pull/1483">#1483</a>)</h3> <p>With <code>oxc-transform-react</code> >= 0.148, the <code>logDiagnostics</code> was not working. This version fixes it and requires <code>oxc-transform-react</code> >= 0.152 as a peer dependency if you are using the <code>compiler</code> option. <code>compiler.logDiagnostics</code> option is now deprecated and should be swapped for the builtin <code>compiler.reportDiagnostics</code>.</p> <h3>Disable refresh for non-jsx with compiler enabled (fix <a href="https://redirect.github.com/vitejs/vite-plugin-react/issues/1478">#1478</a>) (<a href="https://redirect.github.com/vitejs/vite-plugin-react/pull/1485">#1485</a>)</h3> <p>When the compiler was enabled, TS files could trigger fast refresh which would cause runtime errors. The logic now follows what the builtin oxc plugin in Vite does.</p> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/CHANGELOG.md">@vitejs/plugin-react's changelog</a>.</em></p> <blockquote> <h2>6.1.2 (2026-10-05)</h2> <h3>Fix HMR for compound components (<a href="https://redirect.github.com/vitejs/vite-plugin-react/pull/1484">#1484</a>)</h3> <p>Adding or removing a component from a compound component was not handled, creating stale updates. Doing this now triggers hmr invalidate on the file and propagates the invalidation to importers.</p> <h3>Fix <code>compiler.logDiagnostics</code> option not working (<a href="https://redirect.github.com/vitejs/vite-plugin-react/pull/1483">#1483</a>)</h3> <p>With <code>oxc-transform-react</code> >= 0.148, the <code>logDiagnostics</code> was not working. This version fixes it and requires <code>oxc-transform-react</code> >= 0.152 as a peer dependency if you are using the <code>compiler</code> option. <code>compiler.logDiagnostics</code> option is now deprecated and should be swapped for the builtin <code>compiler.reportDiagnostics</code>.</p> <h3>Disable refresh for non-jsx with compiler enabled (fix <a href="https://redirect.github.com/vitejs/vite-plugin-react/issues/1478">#1478</a>) (<a href="https://redirect.github.com/vitejs/vite-plugin-react/pull/1485">#1485</a>)</h3> <p>When the compiler was enabled, TS files could trigger fast refresh which would cause runtime errors. The logic now follows what the builtin oxc plugin in Vite does.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/vitejs/vite-plugin-react/commit/ac47648e17674299accb51816e9e33b8a7b07b05"><code>ac47648</code></a> release: [email protected] (<a href="https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react/issues/1491">#1491</a>)</li> <li><a href="https://github.com/vitejs/vite-plugin-react/commit/98277e7d49fea7fa707170d2892738c8bfb5f1c0"><code>98277e7</code></a> fix(deps): update all non-major dependencies (<a href="https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react/issues/1486">#1486</a>)</li> <li><a href="https://github.com/vitejs/vite-plugin-react/commit/12eddea34ae9de92b3dc8d8b8a76fa1260b781bf"><code>12eddea</code></a> fix(hmr): better handle compound components (<a href="https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react/issues/1484">#1484</a>)</li> <li><a href="https://github.com/vitejs/vite-plugin-react/commit/3cfb1d1114df64cf9aeee4aae0ac951d0c2f3abf"><code>3cfb1d1</code></a> fix(plugin-react): fix <code>compiler.logDiagnostics</code> (<a href="https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react/issues/1483">#1483</a>)</li> <li><a href="https://github.com/vitejs/vite-plugin-react/commit/6de9915e1b4c1b8a7b390eb1364ab6cd83d64e62"><code>6de9915</code></a> fix(plugin-react): disable refresh for non-jsx with compiler enabled (<a href="https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react/issues/1485">#1485</a>)</li> <li><a href="https://github.com/vitejs/vite-plugin-react/commit/ee97d2f3bd25cda8f06c27366722f01aaac0201f"><code>ee97d2f</code></a> fix(deps): update all non-major dependencies (<a href="https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react/issues/1445">#1445</a>)</li> <li><a href="https://github.com/vitejs/vite-plugin-react/commit/b0a014da31be23c7806ffb0b997ec53b52ab68f2"><code>b0a014d</code></a> chore: use Babel 8 for babel compiler playgrounds (<a href="https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react/issues/1460">#1460</a>)</li> <li><a href="https://github.com/vitejs/vite-plugin-react/commit/61b650fe93c3fe30d79aa8615199cdcb0a2594f4"><code>61b650f</code></a> fix(deps): update react-related dependencies (<a href="https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react/issues/1452">#1452</a>)</li> <li><a href="https://github.com/vitejs/vite-plugin-react/commit/736efe2f004002abee693a44b405e70699432ecd"><code>736efe2</code></a> chore(deps): update tsdown to v0.23 (<a href="https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react/issues/1451">#1451</a>)</li> <li>See full diff in <a href="https://github.com/vitejs/vite-plugin-react/commits/[email protected]/packages/plugin-react">compare view</a></li> </ul> </details> <br /> Updates `@vitest/coverage-v8` from 5.0.3 to 5.0.4 <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>v5.0.4</h2> <h3> 🚀 Features</h3> <ul> <li><strong>experimental</strong>: <ul> <li>Tag cache directories with CACHEDIR.TAG - by <a href="https://github.com/lifeiscontent"><code>@lifeiscontent</code></a> in <a href="https://redirect.github.com/vitest-dev/vitest/issues/11461">vitest-dev/vitest#11461</a> <a href="https://github.com/vitest-dev/vitest/commit/a8ea3c8fd"><!-- raw HTML omitted -->(a8ea3)<!-- raw HTML omitted --></a></li> <li>Support <code>test.ui.theme</code> option - by <a href="https://github.com/sheremet-va"><code>@sheremet-va</code></a> in <a href="https://redirect.github.com/vitest-dev/vitest/issues/11499">vitest-dev/vitest#11499</a> <a href="https://github.com/vitest-dev/vitest/com... _Description has been truncated_ -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
