Repository navigation
chore: restore Chrome DevTools upstream ancestry - #32
Merged
Merged
Conversation
While we keep the evaluate script available by default since it is useful for many users, we give an option to disable it.
…ith 6 updates (ChromeDevTools#2632) Bumps the dev-dependencies group with 6 updates in the / directory: | Package | From | To | | --- | --- | --- | | [@blackwell-systems/gcf](https://github.com/blackwell-systems/gcf-typescript) | `2.5.2` | `2.6.1` | | [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) | `8.66.0` | `8.67.0` | | [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) | `8.66.0` | `8.67.0` | | [globals](https://github.com/sindresorhus/globals) | `17.9.0` | `17.11.0` | | [rollup](https://github.com/rollup/rollup) | `4.62.4` | `4.62.5` | | [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) | `8.66.0` | `8.67.0` | Updates `@blackwell-systems/gcf` from 2.5.2 to 2.6.1 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/blackwell-systems/gcf-typescript/releases">@blackwell-systems/gcf's releases</a>.</em></p> <blockquote> <h2>gcf-typescript v2.6.1 — decode quoted-key/array-value round-trip</h2> <p>A quoted key containing <code>[</code> alongside an array value now round-trips. Such a key encodes to a named-array line (<code>{"a[b": [1]}</code> -> <code>"a[b"[1]: 1</code>); the decoder locates the array count bracket after the closing quote, per SPEC 4.2. Verified across all seven SDKs by the shared conformance fixtures (<code>keys/012</code>, <code>keys/014</code>, <code>keys/015</code>) and the cross-SDK differential fuzz.</p> <p><strong>Full changelog:</strong> <a href="https://github.com/blackwell-systems/gcf-typescript/blob/main/CHANGELOG.md">https://github.com/blackwell-systems/gcf-typescript/blob/main/CHANGELOG.md</a></p> <h2>gcf-typescript v2.6.0 — int64 numeric domain + largeInt</h2> <p>Implements the v3.5.3 numeric domain (<a href="https://github.com/blackwell-systems/gcf/releases/tag/v3.5.3">SPEC 2.3.2</a>): the canonical domain is signed <code>int64</code> for integers and IEEE-754 double for non-integers. This SDK parses integer literals to an exact <code>int64</code> on decode and on the JSON-to-value bridge, and rejects a value outside <code>int64</code> with an out-of-range error on both decode and encode, rather than following the host numeric type for integers beyond the double-exact range (2^53). Values beyond <code>int64</code> (unsigned-64 identifiers, exact decimals) are modeled as strings. Canonical number formatting aligns to the domain: a double at or above 2^53 renders in exponent notation. Verified against the shared conformance fixtures (<code>numbers/017-024</code>, <code>errors-v2/041-042</code>) and the cross-SDK differential fuzz.</p> <p>Adds a <code>largeInt</code> decode option (<code>decodeGeneric(input, { largeInt })</code>: <code>error</code> default / <code>string</code> / <code>bigint</code> / <code>number</code>) for an in-domain integer beyond the JavaScript 2^53 safe range; a <code>bigint</code> is accepted and serialized on encode.</p> <p><strong>Full changelog:</strong> <a href="https://github.com/blackwell-systems/gcf-typescript/blob/main/CHANGELOG.md">https://github.com/blackwell-systems/gcf-typescript/blob/main/CHANGELOG.md</a></p> <p><strong>Full Changelog</strong>: <a href="https://github.com/blackwell-systems/gcf-typescript/compare/v2.5.2...v2.6.0">https://github.com/blackwell-systems/gcf-typescript/compare/v2.5.2...v2.6.0</a></p> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/blackwell-systems/gcf-typescript/blob/main/CHANGELOG.md">@blackwell-systems/gcf's changelog</a>.</em></p> <blockquote> <h2>v2.6.1 (2026-08-15)</h2> <ul> <li>Decode: quoted-key/array-value round-trip (SPEC 4.2).</li> </ul> <h2>v2.6.0 (2026-08-14)</h2> <ul> <li><strong>Numeric domain (spec v3.5.3, SPEC 2.3.2).</strong> Specifies the canonical numeric domain as signed <code>int64</code> for integers and IEEE-754 double for non-integers. Earlier versions left integers beyond the double-exact range (2^53) to the host numeric type; this version parses integer literals to an exact <code>int64</code> on decode and on the JSON-to-value bridge, returns an out-of-range error for a value outside <code>int64</code> on both decode and encode, and models larger values (unsigned-64 identifiers, exact decimals) as strings. Canonical number formatting aligns to the domain: a double at or above 2^53 renders in exponent notation. Verified against new <code>numbers/017-024</code> and <code>errors-v2/041-042</code> conformance fixtures and the cross-SDK differential fuzz. Adds a <code>largeInt</code> decode option (<code>decodeGeneric</code> <code>opts.largeInt</code>: <code>'error'</code> default, <code>'string'</code>, <code>'bigint'</code>, <code>'number'</code>) for an in-domain integer beyond the JavaScript 2^53 safe range; a <code>bigint</code> is accepted and serialized on encode.</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/blackwell-systems/gcf-typescript/commit/542beb089ff3be117b0518c71363fad5bccf2b2b"><code>542beb0</code></a> release: v2.6.1</li> <li><a href="https://github.com/blackwell-systems/gcf-typescript/commit/d5ea0fed544b7add7cee6431d9375270dc57f789"><code>d5ea0fe</code></a> fix(decode): locate array count bracket past quoted keys (SPEC 4.2)</li> <li><a href="https://github.com/blackwell-systems/gcf-typescript/commit/dfc3b5c4499bded0b5660472f55a59a4b20b7675"><code>dfc3b5c</code></a> docs(readme): refresh fleet versions for the v3.5.3 release (spec v3.5.3, 279...</li> <li><a href="https://github.com/blackwell-systems/gcf-typescript/commit/ef166cc8ae30429cb98af8d183a55e15ce7c4c26"><code>ef166cc</code></a> release: v2.6.0 — int64 numeric domain (SPEC 2.3.2); largeInt decode option</li> <li><a href="https://github.com/blackwell-systems/gcf-typescript/commit/00972f2dc781477eb6d369e62edfe03ad4112a07"><code>00972f2</code></a> Enforce int64 numeric domain with a largeInt policy (SPEC 2.3.2)</li> <li><a href="https://github.com/blackwell-systems/gcf-typescript/commit/b993b535ecc0e2b71aab688ddb3849f9075a0343"><code>b993b53</code></a> docs(readme): update spec version (v3.5.2), fixture count (269), current SDK ...</li> <li>See full diff in <a href="https://github.com/blackwell-systems/gcf-typescript/compare/v2.5.2...v2.6.1">compare view</a></li> </ul> </details> <br /> Updates `@typescript-eslint/eslint-plugin` from 8.66.0 to 8.67.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/typescript-eslint/typescript-eslint/releases">@typescript-eslint/eslint-plugin's releases</a>.</em></p> <blockquote> <h2>v8.67.0</h2> <h2>8.67.0 (2026-08-10)</h2> <h3>🚀 Features</h3> <ul> <li><strong>typescript-eslint:</strong> export basic globs for using tseslint (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12105">#12105</a>)</li> </ul> <h3>❤️ Thank You</h3> <ul> <li>Evyatar Daud <a href="https://github.com/StyleShit"><code>@StyleShit</code></a></li> <li>Josh Goldberg ✨</li> <li>Kirk Waiblinger <a href="https://github.com/kirkwaiblinger"><code>@kirkwaiblinger</code></a></li> </ul> <p>See <a href="https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.67.0">GitHub Releases</a> for more information.</p> <p>You can read about our <a href="https://typescript-eslint.io/users/versioning">versioning strategy</a> and <a href="https://typescript-eslint.io/users/releases">releases</a> on our website.</p> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md">@typescript-eslint/eslint-plugin's changelog</a>.</em></p> <blockquote> <h2>8.67.0 (2026-08-10)</h2> <p>This was a version bump only for eslint-plugin to align it with other projects, there were no code changes.</p> <p>See <a href="https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.67.0">GitHub Releases</a> for more information.</p> <p>You can read about our <a href="https://typescript-eslint.io/users/versioning">versioning strategy</a> and <a href="https://typescript-eslint.io/users/releases">releases</a> on our website.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/typescript-eslint/typescript-eslint/commit/20a261fb8e62351e88176b075090dc9276d26072"><code>20a261f</code></a> chore(release): publish 8.67.0</li> <li><a href="https://github.com/typescript-eslint/typescript-eslint/commit/6dfe4d0c572c48f51097638ec4132763defa311a"><code>6dfe4d0</code></a> chore(eslint-plugin-internal): [plugin-test-formatting] enforce zero-indentat...</li> <li><a href="https://github.com/typescript-eslint/typescript-eslint/commit/3b155bb1344fd7ce83086cf2f864a7e8f3b4a217"><code>3b155bb</code></a> chore: use typescript 7 for typechecking (<a href="https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin/issues/12601">#12601</a>)</li> <li>See full diff in <a href="https://github.com/typescript-eslint/typescript-eslint/commits/v8.67.0/packages/eslint-plugin">compare view</a></li> </ul> </details> <br /> Updates `@typescript-eslint/parser` from 8.66.0 to 8.67.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/typescript-eslint/typescript-eslint/releases">@typescript-eslint/parser's releases</a>.</em></p> <blockquote> <h2>v8.67.0</h2> <h2>8.67.0 (2026-08-10)</h2> <h3>🚀 Features</h3> <ul> <li><strong>typescript-eslint:</strong> export basic globs for using tseslint (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12105">#12105</a>)</li> </ul> <h3>❤️ Thank You</h3> <ul> <li>Evyatar Daud <a href="https://github.com/StyleShit"><code>@StyleShit</code></a></li> <li>Josh Goldberg ✨</li> <li>Kirk Waiblinger <a href="https://github.com/kirkwaiblinger"><code>@kirkwaiblinger</code></a></li> </ul> <p>See <a href="https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.67.0">GitHub Releases</a> for more information.</p> <p>You can read about our <a href="https://typescript-eslint.io/users/versioning">versioning strategy</a> and <a href="https://typescript-eslint.io/users/releases">releases</a> on our website.</p> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md">@typescript-eslint/parser's changelog</a>.</em></p> <blockquote> <h2>8.67.0 (2026-08-10)</h2> <p>This was a version bump only for parser to align it with other projects, there were no code changes.</p> <p>See <a href="https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.67.0">GitHub Releases</a> for more information.</p> <p>You can read about our <a href="https://typescript-eslint.io/users/versioning">versioning strategy</a> and <a href="https://typescript-eslint.io/users/releases">releases</a> on our website.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/typescript-eslint/typescript-eslint/commit/20a261fb8e62351e88176b075090dc9276d26072"><code>20a261f</code></a> chore(release): publish 8.67.0</li> <li><a href="https://github.com/typescript-eslint/typescript-eslint/commit/3b155bb1344fd7ce83086cf2f864a7e8f3b4a217"><code>3b155bb</code></a> chore: use typescript 7 for typechecking (<a href="https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser/issues/12601">#12601</a>)</li> <li>See full diff in <a href="https://github.com/typescript-eslint/typescript-eslint/commits/v8.67.0/packages/parser">compare view</a></li> </ul> </details> <br /> Updates `globals` from 17.9.0 to 17.11.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/sindresorhus/globals/releases">globals's releases</a>.</em></p> <blockquote> <h2>v17.11.0</h2> <ul> <li>Add <code>react-native</code> globals (<a href="https://redirect.github.com/sindresorhus/globals/issues/337">#337</a>) 61eafbf</li> </ul> <hr /> <p><a href="https://github.com/sindresorhus/globals/compare/v17.10.0...v17.11.0">https://github.com/sindresorhus/globals/compare/v17.10.0...v17.11.0</a></p> <h2>v17.10.0</h2> <ul> <li>Add <code>GM_cookie</code> to Greasemonkey globals (<a href="https://redirect.github.com/sindresorhus/globals/issues/349">#349</a>) f468407</li> </ul> <hr /> <p><a href="https://github.com/sindresorhus/globals/compare/v17.9.0...v17.10.0">https://github.com/sindresorhus/globals/compare/v17.9.0...v17.10.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/sindresorhus/globals/commit/8c599278a68a0a6ea17b0c12f976f2270f70f391"><code>8c59927</code></a> 17.11.0</li> <li><a href="https://github.com/sindresorhus/globals/commit/61eafbf105037079654824d883edc261834a0fbd"><code>61eafbf</code></a> Add <code>react-native</code> globals (<a href="https://redirect.github.com/sindresorhus/globals/issues/337">#337</a>)</li> <li><a href="https://github.com/sindresorhus/globals/commit/7bed4af3730dcb5dbea4274b5264e6be4c4b8910"><code>7bed4af</code></a> 17.10.0</li> <li><a href="https://github.com/sindresorhus/globals/commit/f4684072a5ec0ad598ee4a20989b3eaa733753bf"><code>f468407</code></a> Add <code>GM_cookie</code> to Greasemonkey globals (<a href="https://redirect.github.com/sindresorhus/globals/issues/349">#349</a>)</li> <li>See full diff in <a href="https://github.com/sindresorhus/globals/compare/v17.9.0...v17.11.0">compare view</a></li> </ul> </details> <br /> Updates `rollup` from 4.62.4 to 4.62.5 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/rollup/rollup/releases">rollup's releases</a>.</em></p> <blockquote> <h2>v4.62.5</h2> <h2>4.62.5</h2> <p><em>2026-08-20</em></p> <h3>Bug Fixes</h3> <ul> <li>Resolve an issue where compact mode could result in invalid module concatenations (<a href="https://redirect.github.com/rollup/rollup/issues/6468">#6468</a>)</li> </ul> <h3>Pull Requests</h3> <ul> <li><a href="https://redirect.github.com/rollup/rollup/pull/6468">#6468</a>: Keep the semicolon added after a replaced default export (<a href="https://github.com/Jaybhade"><code>@Jaybhade</code></a>, <a href="https://github.com/lukastaegert"><code>@lukastaegert</code></a>)</li> <li><a href="https://redirect.github.com/rollup/rollup/pull/6469">#6469</a>: fix(deps): update minor/patch updates (<a href="https://github.com/renovate"><code>@renovate</code></a>[bot])</li> <li><a href="https://redirect.github.com/rollup/rollup/pull/6470">#6470</a>: fix(deps): update swc monorepo (major) (<a href="https://github.com/renovate"><code>@renovate</code></a>[bot])</li> <li><a href="https://redirect.github.com/rollup/rollup/pull/6471">#6471</a>: chore(deps): lock file maintenance (<a href="https://github.com/renovate"><code>@renovate</code></a>[bot])</li> <li><a href="https://redirect.github.com/rollup/rollup/pull/6472">#6472</a>: chore(deps): update dependency eslint-plugin-unicorn to v73 (<a href="https://github.com/renovate"><code>@renovate</code></a>[bot])</li> <li><a href="https://redirect.github.com/rollup/rollup/pull/6476">#6476</a>: chore(deps): update dtolnay/rust-toolchain digest to 4360b52 (<a href="https://github.com/renovate"><code>@renovate</code></a>[bot])</li> <li><a href="https://redirect.github.com/rollup/rollup/pull/6477">#6477</a>: fix(deps): update minor/patch updates (<a href="https://github.com/renovate"><code>@renovate</code></a>[bot])</li> <li><a href="https://redirect.github.com/rollup/rollup/pull/6478">#6478</a>: chore(deps): lock file maintenance (<a href="https://github.com/renovate"><code>@renovate</code></a>[bot])</li> <li><a href="https://redirect.github.com/rollup/rollup/pull/6479">#6479</a>: chore(deps): lock file maintenance (<a href="https://github.com/renovate"><code>@renovate</code></a>[bot])</li> <li><a href="https://redirect.github.com/rollup/rollup/pull/6480">#6480</a>: chore(deps): lock file maintenance (<a href="https://github.com/renovate"><code>@renovate</code></a>[bot])</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/rollup/rollup/blob/master/CHANGELOG.md">rollup's changelog</a>.</em></p> <blockquote> <h2>4.62.5</h2> <p><em>2026-08-20</em></p> <h3>Bug Fixes</h3> <ul> <li>Resolve an issue where compact mode could result in invalid module concatenations (<a href="https://redirect.github.com/rollup/rollup/issues/6468">#6468</a>)</li> </ul> <h3>Pull Requests</h3> <ul> <li><a href="https://redirect.github.com/rollup/rollup/pull/6468">#6468</a>: Keep the semicolon added after a replaced default export (<a href="https://github.com/Jaybhade"><code>@Jaybhade</code></a>, <a href="https://github.com/lukastaegert"><code>@lukastaegert</code></a>)</li> <li><a href="https://redirect.github.com/rollup/rollup/pull/6469">#6469</a>: fix(deps): update minor/patch updates (<a href="https://github.com/renovate"><code>@renovate</code></a>[bot])</li> <li><a href="https://redirect.github.com/rollup/rollup/pull/6470">#6470</a>: fix(deps): update swc monorepo (major) (<a href="https://github.com/renovate"><code>@renovate</code></a>[bot])</li> <li><a href="https://redirect.github.com/rollup/rollup/pull/6471">#6471</a>: chore(deps): lock file maintenance (<a href="https://github.com/renovate"><code>@renovate</code></a>[bot])</li> <li><a href="https://redirect.github.com/rollup/rollup/pull/6472">#6472</a>: chore(deps): update dependency eslint-plugin-unicorn to v73 (<a href="https://github.com/renovate"><code>@renovate</code></a>[bot])</li> <li><a href="https://redirect.github.com/rollup/rollup/pull/6476">#6476</a>: chore(deps): update dtolnay/rust-toolchain digest to 4360b52 (<a href="https://github.com/renovate"><code>@renovate</code></a>[bot])</li> <li><a href="https://redirect.github.com/rollup/rollup/pull/6477">#6477</a>: fix(deps): update minor/patch updates (<a href="https://github.com/renovate"><code>@renovate</code></a>[bot])</li> <li><a href="https://redirect.github.com/rollup/rollup/pull/6478">#6478</a>: chore(deps): lock file maintenance (<a href="https://github.com/renovate"><code>@renovate</code></a>[bot])</li> <li><a href="https://redirect.github.com/rollup/rollup/pull/6479">#6479</a>: chore(deps): lock file maintenance (<a href="https://github.com/renovate"><code>@renovate</code></a>[bot])</li> <li><a href="https://redirect.github.com/rollup/rollup/pull/6480">#6480</a>: chore(deps): lock file maintenance (<a href="https://github.com/renovate"><code>@renovate</code></a>[bot])</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/rollup/rollup/commit/c20402e2d4498a5861a4f49e00b2e7446c9900bb"><code>c20402e</code></a> 4.62.5</li> <li><a href="https://github.com/rollup/rollup/commit/e24957a6d37553bab48149ba0d7e20c476dfd294"><code>e24957a</code></a> Keep the semicolon added after a replaced default export (<a href="https://redirect.github.com/rollup/rollup/issues/6468">#6468</a>)</li> <li><a href="https://github.com/rollup/rollup/commit/4b6bc39ea71c5f7ce346da8151657d7fcaae926e"><code>4b6bc39</code></a> chore(deps): update dtolnay/rust-toolchain digest to 4360b52 (<a href="https://redirect.github.com/rollup/rollup/issues/6476">#6476</a>)</li> <li><a href="https://github.com/rollup/rollup/commit/62efc426918aa8a8101f1b5959b9b1c06315719d"><code>62efc42</code></a> fix(deps): update swc monorepo (major) (<a href="https://redirect.github.com/rollup/rollup/issues/6470">#6470</a>)</li> <li><a href="https://github.com/rollup/rollup/commit/c9372898c39240a68f6861515fc14ee9557da016"><code>c937289</code></a> chore(deps): update dependency eslint-plugin-unicorn to v73 (<a href="https://redirect.github.com/rollup/rollup/issues/6472">#6472</a>)</li> <li><a href="https://github.com/rollup/rollup/commit/d652a69048f182c4480babf7578589b9ac0627cd"><code>d652a69</code></a> chore(deps): lock file maintenance (<a href="https://redirect.github.com/rollup/rollup/issues/6480">#6480</a>)</li> <li><a href="https://github.com/rollup/rollup/commit/bd116c7a93bd05ec415395eb9ddf46d9a246582e"><code>bd116c7</code></a> chore(deps): lock file maintenance (<a href="https://redirect.github.com/rollup/rollup/issues/6479">#6479</a>)</li> <li><a href="https://github.com/rollup/rollup/commit/10edaf7446412bb048e120a572000c21af087d8c"><code>10edaf7</code></a> chore(deps): lock file maintenance (<a href="https://redirect.github.com/rollup/rollup/issues/6478">#6478</a>)</li> <li><a href="https://github.com/rollup/rollup/commit/d42b0d641bda24121417ba388c44cb223afb09f6"><code>d42b0d6</code></a> fix(deps): update minor/patch updates (<a href="https://redirect.github.com/rollup/rollup/issues/6477">#6477</a>)</li> <li><a href="https://github.com/rollup/rollup/commit/bfda94f089dfa9b9f9a15239561d21097122fceb"><code>bfda94f</code></a> fix(deps): update minor/patch updates (<a href="https://redirect.github.com/rollup/rollup/issues/6469">#6469</a>)</li> <li>Additional commits viewable in <a href="https://github.com/rollup/rollup/compare/v4.62.4...v4.62.5">compare view</a></li> </ul> </details> <br /> Updates `typescript-eslint` from 8.66.0 to 8.67.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/typescript-eslint/typescript-eslint/releases">typescript-eslint's releases</a>.</em></p> <blockquote> <h2>v8.67.0</h2> <h2>8.67.0 (2026-08-10)</h2> <h3>🚀 Features</h3> <ul> <li><strong>typescript-eslint:</strong> export basic globs for using tseslint (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12105">#12105</a>)</li> </ul> <h3>❤️ Thank You</h3> <ul> <li>Evyatar Daud <a href="https://github.com/StyleShit"><code>@StyleShit</code></a></li> <li>Josh Goldberg ✨</li> <li>Kirk Waiblinger <a href="https://github.com/kirkwaiblinger"><code>@kirkwaiblinger</code></a></li> </ul> <p>See <a href="https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.67.0">GitHub Releases</a> for more information.</p> <p>You can read about our <a href="https://typescript-eslint.io/users/versioning">versioning strategy</a> and <a href="https://typescript-eslint.io/users/releases">releases</a> on our website.</p> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md">typescript-eslint's changelog</a>.</em></p> <blockquote> <h2>8.67.0 (2026-08-10)</h2> <h3>🚀 Features</h3> <ul> <li><strong>typescript-eslint:</strong> export basic globs for using tseslint (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12105">#12105</a>)</li> </ul> <h3>❤️ Thank You</h3> <ul> <li>Claude Sonnet 5</li> <li>Evyatar Daud <a href="https://github.com/StyleShit"><code>@StyleShit</code></a></li> <li>Josh Goldberg</li> <li>Josh Goldberg ✨</li> <li>Kirk Waiblinger <a href="https://github.com/kirkwaiblinger"><code>@kirkwaiblinger</code></a></li> </ul> <p>See <a href="https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.67.0">GitHub Releases</a> for more information.</p> <p>You can read about our <a href="https://typescript-eslint.io/users/versioning">versioning strategy</a> and <a href="https://typescript-eslint.io/users/releases">releases</a> on our website.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/typescript-eslint/typescript-eslint/commit/20a261fb8e62351e88176b075090dc9276d26072"><code>20a261f</code></a> chore(release): publish 8.67.0</li> <li><a href="https://github.com/typescript-eslint/typescript-eslint/commit/c245fbb611d8cff3199ffa3a169df156d0e35928"><code>c245fbb</code></a> feat(typescript-eslint): export basic globs for using tseslint (<a href="https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint/issues/12105">#12105</a>)</li> <li><a href="https://github.com/typescript-eslint/typescript-eslint/commit/3b155bb1344fd7ce83086cf2f864a7e8f3b4a217"><code>3b155bb</code></a> chore: use typescript 7 for typechecking (<a href="https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint/issues/12601">#12601</a>)</li> <li>See full diff in <a href="https://github.com/typescript-eslint/typescript-eslint/commits/v8.67.0/packages/typescript-eslint">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> Co-authored-by: Wolfgang Beyer <wolfi@chromium.org>
I tried to keep the lines of things the same to ease the review process. I will see if any follow up patches will be helpful after this is merged.
…ools#2513) ## What Implements the existing `// TODO truncate the URL` in `src/formatters/NetworkFormatter.ts`: URLs in the concise one-line network request format are now capped at 150 characters, with the file's existing `getSizeLimitedString` helper appending the same `... <truncated>` marker already used for request/response bodies. ## Why `list_network_requests` emits one concise line per request, so a single page with a few `data:` URLs (which can be tens of kilobytes each) can blow up the tool output by orders of magnitude. Truncating in the concise format keeps list output token-friendly while losing nothing that matters for identifying a request. Scope is deliberately narrow — only `convertNetworkRequestConciseToString` changes: - the detailed view (`## Request <url>` heading) still shows the full URL, and - `toJSON()` / structured content still carries the full URL, so nothing that needs the complete URL is affected. (Concise redirect-chain lines inside the detailed view use the same function and are truncated too, which keeps that list compact as well.) ## Limit rationale 150 characters keeps origin + path + the start of the query string intact for virtually all real-world URLs (typical URLs are well under 100 characters), while capping pathological `data:`/blob payloads. It reuses the existing `getSizeLimitedString` pattern with a new `URL_CONTEXT_SIZE_LIMIT` constant next to `BODY_CONTEXT_SIZE_LIMIT`. ## Before / after Before: ``` reqid=12 GET data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA... (10,000+ more chars) ...5CYII= [200] ``` After: ``` reqid=12 GET data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA...(150 chars total)... <truncated> [200] ``` Short URLs are unchanged. ## Testing - `npm run build` — pass - `npm run test:no-build` — pass (all tests, exit 0) - `npm run check-format` — pass (eslint + prettier) Added three cases to `tests/formatters/NetworkFormatter.test.ts`: - long URL is truncated at 150 chars with the `... <truncated>` marker (and `toJSON()` keeps the full URL), - `data:` URL is truncated, - a URL exactly at the limit is left untouched. No existing snapshots changed. 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: ZayanKhan-12 <khanzayan200@gmail.com> Co-authored-by: Alex Rudenko <alexrudenko@chromium.org>
Addresses ChromeDevTools#2291. ## Summary - add an `--experimental-screencast-fps` option for screencast recording - validate the value as a positive integer and imply `--experimental-screencast` - pass the configured FPS through to Puppeteer's `screencast()` call - update generated option docs and flag telemetry metadata ## Testing - `git diff --check origin/main...HEAD` - `npm run check-format` - `npm run typecheck` - `npm test -- --test-only tests/tools/screencast.test.ts tests/cli.test.ts`
## Summary - listen for `Page.frameScheduledNavigation` in addition to `Page.frameStartedNavigating` while waiting for tool-triggered navigations - resolve the navigation probe as soon as the main frame schedules a document navigation, so `evaluate_script` does not miss script-initiated navigations on slower platforms - keep the existing wait window, same-document filtering for started navigations, and response shape unchanged Fixes ChromeDevTools#2609 ## Validation - `npm run format` - `npm run check-format` - `npm run test tests/tools/script.test.ts` - `npm run test tests/utils/WaitForHelper.test.ts` - `npm run test` was also run. It failed in unrelated local environment/browser cases: - extension uninstall timeouts in extension/service-worker/list_pages/evaluate_script extension tests - `browser_take_screenshot > with full page resulting in a large screenshot`: `Protocol error (Page.captureScreenshot): Page is too large` ## Risk This only changes the early navigation-detection signal used by `WaitForHelper`. It does not change navigation timeout values, stable DOM waiting, dialog handling, iframe filtering, or the final `navigatedToUrl` response construction. `--browserUrl` and browser launch behavior are untouched.
## Summary
- Add an Agent Plugins 1.0 package at the repository root.
- Expose the existing stdio server through a version-pinned `mcp.json`.
- Keep the package version and MCP npm pin synchronized through
release-please.
- Use `npx --prefix ${PLUGIN_DATA}` to avoid resolving the repository's
unbuilt local npm package instead of the published server. This keeps
compatibility with clients that cannot represent an explicit working
directory.
- Document installation through Agent Plugins CLI.
## Verification
- `plugin.json` and `mcp.json` pass the Agent Plugins 1.0 schemas.
- Exact head `02372c4d47ad257773b2b80c7d7fd056d7067be0` was tested using
local package bytes with the released Agent Plugins CLI 0.1.24.
- Isolated add, doctor, repair, and remove with data cleanup passed for
Claude Code, Gemini CLI, OpenCode, Cline, and Windsurf.
Configuration-only clients are not claimed as live model tests.
- OpenCode 1.18.25 with its built-in `opencode/big-pickle` model
successfully called `new_page` and `take_snapshot`, recovering a random
marker from a loopback test page. The marker was absent from the prompt,
and other tools were denied.
- Gemini CLI 0.57.0 reported the MCP server as connected. Its model call
was blocked by Google account eligibility, so Gemini model runtime is
not claimed.
- Package tree:
`sha256:50145f0cfd0e4095cfb00fc74755c0c930dc8258952c868de5dc81b54765c1a0`.
- Manifest:
`sha256:b34a4dcd71cd536a7f5a3a51d76d53ae5af3d0ce0f18783e71c7f01da865b867`.
- Sanitized runtime evidence:
https://github.com/777genius/universal-agent-plugins/blob/a022a505df4e9b6627d911d935c5fff511451ecd/tests/e2e/results/chrome-devtools-live-clients-2026-08-31.json
The earlier exact-head lifecycle evidence, including real Claude CLI
plugin discovery, remains available at
https://github.com/777genius/universal-agent-plugins/blob/main/tests/e2e/results/agentplugins-chrome-devtools-multiclient-2026-08-30.json.
It applies to the previously recorded head, not a new runtime claim for
this revision.
No real user project or browser profile was used. The community
directory short alias is being expanded separately; the README keeps the
direct repository command until that publication is available.
`--screenshotFormat` says JPEG and WebP "helps reduce context size in AI conversations". The byte saving is real, but it does not reach the context: image tokens scale with the image's dimensions, not with the size of the encoded payload. Token delta on each Claude turn that followed exactly one image, with the surrounding text small enough that the image dominates it, grouped by pixel count so only the format differs: | pixels | format | n | median bytes | median tokens | | --- | --- | ---: | ---: | ---: | | 1.5-1.8 MP | jpeg | 115 | 326 KB | 2362 | | 1.5-1.8 MP | png | 298 | 357 KB | 2361 | | 2.5-2.8 MP | jpeg | 45 | 444 KB | 3574 | | 2.5-2.8 MP | png | 24 | 252 KB | 3604 | Same pixels, same cost. Each delta carries a small fixed per-turn overhead, so read the pairs against each other rather than as absolute image cost. The formats come from separate captures rather than one image encoded twice, so the byte column shows only that cost ignores it – in the second pair the larger files are the cheaper ones. The numbers are [Claude](https://platform.claude.com/docs/en/build-with-claude/vision)'s, but [GPT](https://developers.openai.com/api/docs/guides/images-vision) and [Gemini](https://ai.google.dev/gemini-api/docs/tokens) price images the same way, by pixel dimensions in patches or tiles. Neither charges on encoded bytes. `--screenshotMaxWidth` just below promises the same thing and does deliver, since it changes the dimensions. New wording: > Override the default output format used by take_screenshot when the caller does not specify one. JPEG and WebP are ~3-5x smaller than PNG, which reduces transfer and storage size. To reduce context size use --screenshotMaxWidth / --screenshotMaxHeight, since image tokens scale with dimensions rather than encoded bytes. Unset preserves the existing default ("png"). `docs/configuration.md` is generated from that description and updated to match.
…496da` (ChromeDevTools#2615) Bumps [third_party/devtools-frontend](https://github.com/ChromeDevTools/devtools-frontend) from `6fdb53e` to `f2496da`. <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/ChromeDevTools/devtools-frontend/commit/f2496daebe37452b8d997f6fca88f24eb49e34f5"><code>f2496da</code></a> [ts_library] Emit tsconfig.ref.json and sync to tsc in ts_library.py</li> <li><a href="https://github.com/ChromeDevTools/devtools-frontend/commit/7976d81ecd17a58fce6c67d546e4f27f1bf36d8e"><code>7976d81</code></a> [settings] Migrate console-history-autocomplete setting to SettingDescriptor</li> <li><a href="https://github.com/ChromeDevTools/devtools-frontend/commit/ffb76e7333f47fa26103961cc02c9ad291b32651"><code>ffb76e7</code></a> Update DevTools DEPS (trusted)</li> <li><a href="https://github.com/ChromeDevTools/devtools-frontend/commit/5f0820f7b46bfa8cc85f8926f6648c7ed5e88e0c"><code>5f0820f</code></a> Remove unused helper script</li> <li><a href="https://github.com/ChromeDevTools/devtools-frontend/commit/6e3fa1c6b2edeae555a5deb13dc206a622e0d136"><code>6e3fa1c</code></a> Update DevTools DEPS (trusted)</li> <li><a href="https://github.com/ChromeDevTools/devtools-frontend/commit/3be3c408eb68d1f17f2be2c7ac04fdbc4c77a002"><code>3be3c40</code></a> Add handleExternalAIRequest hook for AI evaluations</li> <li><a href="https://github.com/ChromeDevTools/devtools-frontend/commit/20c4fec9ae18e4a19999ab57f321c35c15f3d2bf"><code>20c4fec</code></a> AI: Retain AiAgent2 instance across context transitions</li> <li><a href="https://github.com/ChromeDevTools/devtools-frontend/commit/e382e373c3754f38a67589ea70ccdcd0a5a07996"><code>e382e37</code></a> AI Assistance: Introduce Lighthouse capabilities for AI V2 tools</li> <li><a href="https://github.com/ChromeDevTools/devtools-frontend/commit/041b73b217266d67e9a1f495924ac49e787a0b6b"><code>041b73b</code></a> [comments] hide overflown highlights.</li> <li><a href="https://github.com/ChromeDevTools/devtools-frontend/commit/d45d8854d5264d248b6b9e5836b29d0e108d7c5e"><code>d45d885</code></a> Roll browser-protocol and CfT</li> <li>Additional commits viewable in <a href="https://github.com/ChromeDevTools/devtools-frontend/compare/6fdb53e0f7a5cb1ebf16e40c45439a5c8007d9be...f2496daebe37452b8d997f6fca88f24eb49e34f5">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 this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Nikolay Vitkov <nvitkov@chromium.org>
I think this makes a little bit cleaner structures. As now Clearcut holds the responsibility of how the data is formatted.
## Summary - schedule the delayed navigation after `evaluate` returns - give navigation completion a test-specific timeout ## Why The regression test raced execution-context teardown on Windows Node 26 and failed twice in ChromeDevTools#2623. The change keeps the original scenario: the action still takes longer than `expectNavigationIn`, then navigation starts within the expected window. Production code is unchanged. ## Verification - `npm run test -- tests/utils/WaitForHelper.test.ts` - 20 consecutive focused repetitions passed on the exact branch head
…group across 1 directory (ChromeDevTools#2631) Bumps the bundled group with 1 update in the / directory: [puppeteer](https://github.com/puppeteer/puppeteer). Updates `puppeteer` from 25.8.0 to 25.9.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/puppeteer/puppeteer/releases">puppeteer's releases</a>.</em></p> <blockquote> <h2>puppeteer-core: v25.9.0</h2> <h2><a href="https://github.com/puppeteer/puppeteer/compare/puppeteer-core-v25.8.0...puppeteer-core-v25.9.0">25.9.0</a> (2026-08-24)</h2> <h3>🎉 Features</h3> <ul> <li>roll to Firefox 154.0 (<a href="https://redirect.github.com/puppeteer/puppeteer/issues/15361">#15361</a>) (<a href="https://github.com/puppeteer/puppeteer/commit/d702da7ec7d72e3a814ffcf0c4bc70a11c171748">d702da7</a>)</li> <li>support shadow roots in MutationPoller (<a href="https://redirect.github.com/puppeteer/puppeteer/issues/15292">#15292</a>) (<a href="https://github.com/puppeteer/puppeteer/commit/4670a25b16d48c8be8e4a747412a8caf4509063f">4670a25</a>)</li> <li><strong>webmcp:</strong> support canceling tool execution (<a href="https://redirect.github.com/puppeteer/puppeteer/issues/15365">#15365</a>) (<a href="https://github.com/puppeteer/puppeteer/commit/3523f36e840b6c7ebf1167eddb5c2e83c9262c68">3523f36</a>)</li> </ul> <h3>🛠️ Fixes</h3> <ul> <li>roll to Chrome 152.0.7977.54 (<a href="https://redirect.github.com/puppeteer/puppeteer/issues/15363">#15363</a>) (<a href="https://github.com/puppeteer/puppeteer/commit/9088feb7d71cda035eee4f4d21cb20fee9238aa9">9088feb</a>)</li> <li>set frame content without document.write (<a href="https://redirect.github.com/puppeteer/puppeteer/issues/15358">#15358</a>) (<a href="https://github.com/puppeteer/puppeteer/commit/83f8d1c8536f238dbdfdf041c72581bdf2b6f3de">83f8d1c</a>)</li> </ul> <h2>puppeteer: v25.9.0</h2> <h2><a href="https://github.com/puppeteer/puppeteer/compare/puppeteer-v25.8.0...puppeteer-v25.9.0">25.9.0</a> (2026-08-24)</h2> <h3>♻️ Chores</h3> <ul> <li><strong>puppeteer:</strong> Synchronize puppeteer versions</li> </ul> <h3>Dependencies</h3> <ul> <li>The following workspace dependencies were updated <ul> <li>dependencies <ul> <li>puppeteer-core bumped from 25.8.0 to 25.9.0</li> </ul> </li> </ul> </li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/puppeteer/puppeteer/blob/main/CHANGELOG.md">puppeteer's changelog</a>.</em></p> <blockquote> <h1>Changelog</h1> <p>Puppeteer's canonical changelogs are maintained with the packages:</p> <ul> <li><a href="https://github.com/puppeteer/puppeteer/blob/main/packages/puppeteer/CHANGELOG.md"><code>puppeteer</code></a></li> <li><a href="https://github.com/puppeteer/puppeteer/blob/main/packages/puppeteer-core/CHANGELOG.md"><code>puppeteer-core</code></a></li> </ul> <p>The <a href="https://pptr.dev/changelog">combined changelog</a> is generated when the documentation website is built.</p> <p>Historical combined entries are retained below.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/puppeteer/puppeteer/commit/21efe834b7094d53a1c0d633dc69deced17702d8"><code>21efe83</code></a> chore: release main (<a href="https://redirect.github.com/puppeteer/puppeteer/issues/15385">#15385</a>)</li> <li><a href="https://github.com/puppeteer/puppeteer/commit/cb650f663890e6ead5b048dd80cfc8c2e1a38fff"><code>cb650f6</code></a> build: do not use labelled as trigger (<a href="https://redirect.github.com/puppeteer/puppeteer/issues/15384">#15384</a>)</li> <li><a href="https://github.com/puppeteer/puppeteer/commit/8af4a8b806b56a6d536072d0e292feafaef72c8a"><code>8af4a8b</code></a> chore: revert update Node.js version to v24.19.0 (<a href="https://redirect.github.com/puppeteer/puppeteer/issues/15382">#15382</a>)</li> <li><a href="https://github.com/puppeteer/puppeteer/commit/45013728beb8c9b169301b94ed0ad00c69c56244"><code>4501372</code></a> ci: remove base and ref passing from release-please (<a href="https://redirect.github.com/puppeteer/puppeteer/issues/15381">#15381</a>)</li> <li><a href="https://github.com/puppeteer/puppeteer/commit/9fb4917f47d39c27b08d666692b98bbc0a8d8b3f"><code>9fb4917</code></a> chore: materalize website docs and remove pre-release (<a href="https://redirect.github.com/puppeteer/puppeteer/issues/15376">#15376</a>)</li> <li><a href="https://github.com/puppeteer/puppeteer/commit/468572e7a28bf8394fa2a4efcb361d1922210886"><code>468572e</code></a> chore(deps): bump github/codeql-action/upload-sarif from 4.37.6 to 4.37.7 in ...</li> <li><a href="https://github.com/puppeteer/puppeteer/commit/87d457d7da02795f03540c582ecd72bb6d6a0d91"><code>87d457d</code></a> chore: update Node.js version to v24.19.0 (<a href="https://redirect.github.com/puppeteer/puppeteer/issues/15378">#15378</a>)</li> <li><a href="https://github.com/puppeteer/puppeteer/commit/bbd2bfaedafc69cf23a52ed54fceeaec239bc43c"><code>bbd2bfa</code></a> chore: cleanup doctest (<a href="https://redirect.github.com/puppeteer/puppeteer/issues/15372">#15372</a>)</li> <li><a href="https://github.com/puppeteer/puppeteer/commit/57b44b7d8d596f3b759d9dee56e90dcbf33fc0d6"><code>57b44b7</code></a> ci: split out doc workflow (<a href="https://redirect.github.com/puppeteer/puppeteer/issues/15373">#15373</a>)</li> <li><a href="https://github.com/puppeteer/puppeteer/commit/c060305f76d18eaef59dbddf93d8e2a46d504e6b"><code>c060305</code></a> chore: disable Dependabot labels (<a href="https://redirect.github.com/puppeteer/puppeteer/issues/15374">#15374</a>)</li> <li>Additional commits viewable in <a href="https://github.com/puppeteer/puppeteer/compare/puppeteer-v25.8.0...puppeteer-v25.9.0">compare view</a></li> </ul> </details> <br /> --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Wolfgang Beyer <wolfi@chromium.org>
Bumps [fast-uri](https://github.com/fastify/fast-uri) from 3.1.5 to 3.1.7. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/fastify/fast-uri/releases">fast-uri's releases</a>.</em></p> <blockquote> <h2>v3.1.7</h2> <h2>⚠️ Security Warning</h2> <p>This is a security release that fixes the following high-severity security advisories:</p> <ul> <li><a href="https://github.com/fastify/fast-uri/security/advisories/GHSA-qw65-cvwx-89v3">GHSA-qw65-cvwx-89v3</a> — authority injection via an unvalidated port in <code>serialize()</code></li> <li><a href="https://github.com/fastify/fast-uri/security/advisories/GHSA-58mr-gqgx-xq4g">GHSA-58mr-gqgx-xq4g</a> — host confusion via unbalanced or misplaced IP-literal brackets</li> </ul> <p>Users of the v3.x release line should upgrade to v3.1.7.</p> <p><strong>Full Changelog</strong>: <a href="https://github.com/fastify/fast-uri/compare/v3.1.6...v3.1.7">https://github.com/fastify/fast-uri/compare/v3.1.6...v3.1.7</a></p> <h2>v3.1.6</h2> <h2>⚠️ Security Warning</h2> <p>This release addresses the following high-severity security advisories:</p> <ul> <li><a href="https://github.com/fastify/fast-uri/security/advisories/GHSA-5jgf-p345-68v8">GHSA-5jgf-p345-68v8</a> — host confusion via skipped IDN canonicalization on scheme-relative references</li> <li><a href="https://github.com/fastify/fast-uri/security/advisories/GHSA-fph4-wmhf-6fwf">GHSA-fph4-wmhf-6fwf</a> — server-side request forgery via repeated hostname percent-decoding</li> <li><a href="https://github.com/fastify/fast-uri/security/advisories/GHSA-f65p-4m7j-42xc">GHSA-f65p-4m7j-42xc</a> — server-side request forgery via malformed IPv6 normalization</li> <li><a href="https://github.com/fastify/fast-uri/security/advisories/GHSA-jqff-g426-hqxp">GHSA-jqff-g426-hqxp</a> — host confusion via percent-encoded scheme normalization</li> </ul> <p>Users of the v3.x release line should upgrade to v3.1.6.</p> <p><strong>Full Changelog</strong>: <a href="https://github.com/fastify/fast-uri/compare/v3.1.5...v3.1.6">https://github.com/fastify/fast-uri/compare/v3.1.5...v3.1.6</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fastify/fast-uri/commit/412e40abd4eb8beabfb952d80abf949a2baf27a3"><code>412e40a</code></a> Bumped v3.1.7</li> <li><a href="https://github.com/fastify/fast-uri/commit/9f4c943e4d2133e8d78e0941203879216255bb01"><code>9f4c943</code></a> fix: backport port and IP-literal validation to v3.x (<a href="https://redirect.github.com/fastify/fast-uri/issues/216">#216</a>)</li> <li><a href="https://github.com/fastify/fast-uri/commit/1eb3ce436fe050807caba79f886ab894f485a588"><code>1eb3ce4</code></a> fix: treat unterminated bracket hosts as reg-names again (<a href="https://redirect.github.com/fastify/fast-uri/issues/214">#214</a>)</li> <li><a href="https://github.com/fastify/fast-uri/commit/6f970b2951fd896aa0f3a7ff28eeb6640c137d33"><code>6f970b2</code></a> Bumped v3.1.6</li> <li><a href="https://github.com/fastify/fast-uri/commit/d941579a84273ec7e96bde596b1f7a8be447df2a"><code>d941579</code></a> fix: never run IDN canonicalization on bracketed IP literals</li> <li><a href="https://github.com/fastify/fast-uri/commit/c0f0279cf370cb89ee56b04bbcde2a7afbe81aba"><code>c0f0279</code></a> test: adapt decoded-scheme handler assertion to 3.x (no mailto scheme)</li> <li><a href="https://github.com/fastify/fast-uri/commit/37f3417c82994279656854f83ce938acd81c3862"><code>37f3417</code></a> Merge commit from fork</li> <li><a href="https://github.com/fastify/fast-uri/commit/607bfbe953f28a14c2e06ae64aff38c81ca2937f"><code>607bfbe</code></a> Merge commit from fork</li> <li><a href="https://github.com/fastify/fast-uri/commit/ae92a4c5d8c4b6c9e447f048d5fcbde7eebd5514"><code>ae92a4c</code></a> Merge commit from fork</li> <li><a href="https://github.com/fastify/fast-uri/commit/444ecdad447db2cc23c4d422acc6f0daa6fa8eef"><code>444ecda</code></a> Merge commit from fork</li> <li>Additional commits viewable in <a href="https://github.com/fastify/fast-uri/compare/v3.1.5...v3.1.7">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/ChromeDevTools/chrome-devtools-mcp/network/alerts). </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…ools#2643) Bumps [@humanfs/node](https://github.com/humanwhocodes/humanfs/tree/HEAD/packages/node) from 0.16.7 to 0.16.8. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/humanwhocodes/humanfs/releases">@humanfs/node's releases</a>.</em></p> <blockquote> <h2>node: v0.16.8</h2> <h2><a href="https://github.com/humanwhocodes/humanfs/compare/node-v0.16.7...node-v0.16.8">0.16.8</a> (2026-04-17)</h2> <h3>Bug Fixes</h3> <ul> <li>Include type dependencies at runtime (<a href="https://github.com/humanwhocodes/humanfs/commit/956ce7aac2a998d0af23b7cb08e7630b69693138">956ce7a</a>), closes <a href="https://redirect.github.com/humanwhocodes/humanfs/issues/145">#145</a></li> </ul> <h3>Dependencies</h3> <ul> <li>The following workspace dependencies were updated <ul> <li>dependencies <ul> <li><code>@humanfs/core</code> bumped from ^0.19.1 to ^0.19.2</li> </ul> </li> </ul> </li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/humanwhocodes/humanfs/blob/main/packages/node/CHANGELOG.md">@humanfs/node's changelog</a>.</em></p> <blockquote> <h2><a href="https://github.com/humanwhocodes/humanfs/compare/node-v0.16.7...node-v0.16.8">0.16.8</a> (2026-04-17)</h2> <h3>Bug Fixes</h3> <ul> <li>Ensure symlinks are copied as symlinks in <code>copy()</code> and <code>copyAll()</code> (<a href="https://github.com/humanwhocodes/humanfs/commit/22bbaa4487a3e6c1197ca619840de4615d0c3404">22bbaa44</a>)</li> <li>Include type dependencies at runtime (<a href="https://github.com/humanwhocodes/humanfs/commit/956ce7aac2a998d0af23b7cb08e7630b69693138">956ce7a</a>), closes <a href="https://redirect.github.com/humanwhocodes/humanfs/issues/145">#145</a></li> </ul> <h3>Dependencies</h3> <ul> <li>The following workspace dependencies were updated <ul> <li>dependencies <ul> <li><code>@humanfs/core</code> bumped from ^0.19.1 to ^0.19.2</li> </ul> </li> </ul> </li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/humanwhocodes/humanfs/commit/e96070e897f017ae8abd2b0676d98d14e49665cc"><code>e96070e</code></a> chore: release main (<a href="https://github.com/humanwhocodes/humanfs/tree/HEAD/packages/node/issues/146">#146</a>)</li> <li><a href="https://github.com/humanwhocodes/humanfs/commit/22bbaa4487a3e6c1197ca619840de4615d0c3404"><code>22bbaa4</code></a> Merge commit from fork</li> <li><a href="https://github.com/humanwhocodes/humanfs/commit/956ce7aac2a998d0af23b7cb08e7630b69693138"><code>956ce7a</code></a> fix: Include type dependencies at runtime</li> <li>See full diff in <a href="https://github.com/humanwhocodes/humanfs/commits/node-v0.16.8/packages/node">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/ChromeDevTools/chrome-devtools-mcp/network/alerts). </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Fixes ChromeDevTools#2598 This lets people set filesystem roots through the MCP server or the Chrome DevTools CLI. Multiple roots work together with any roots sent by the MCP client, and temp directory access stays the same. I added tests for the flags and root handling. --------- Co-authored-by: Joseph B <289838966+joebasrawi@users.noreply.github.com> Co-authored-by: Joseph B <joebasrawi@users.noreply.github.com>
…0546b` (ChromeDevTools#2646) Bumps [third_party/devtools-frontend](https://github.com/ChromeDevTools/devtools-frontend) from `f2496da` to `de0546b`. <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/ChromeDevTools/devtools-frontend/commit/de0546ba37bda1e4b4115dfa2fbacae08b53e752"><code>de0546b</code></a> [build] Forward _sources transitively in ts_library and firewall entrypoints</li> <li><a href="https://github.com/ChromeDevTools/devtools-frontend/commit/520318a0fc4a0d784ea28028deeaa37a43c48cd1"><code>520318a</code></a> Update DevTools DEPS (trusted)</li> <li><a href="https://github.com/ChromeDevTools/devtools-frontend/commit/514d5be0204cefdcad6b01afd8fbb12a0ca14ad9"><code>514d5be</code></a> [ts_library] Migrate ui/components/snackbars to split compilation</li> <li><a href="https://github.com/ChromeDevTools/devtools-frontend/commit/699e8b454e954f2ce4e4aa251ac65561c627f7e4"><code>699e8b4</code></a> [ts_library] Migrate ui/components/settings to split compilation</li> <li><a href="https://github.com/ChromeDevTools/devtools-frontend/commit/ed1b7f07754e3e8ddb2a5b16b1d1fbbfb9348b17"><code>ed1b7f0</code></a> Use size tokens in objectPopover, panelIntroductionSteps and locationsSetting...</li> <li><a href="https://github.com/ChromeDevTools/devtools-frontend/commit/9f3c93795c216795a8b422d62486a1be6bd0085f"><code>9f3c937</code></a> Roll browser-protocol and CfT</li> <li><a href="https://github.com/ChromeDevTools/devtools-frontend/commit/bbb5a8b2758411a2fca11780cb8acce2af833f5f"><code>bbb5a8b</code></a> RPP: eliminate render lag and redundant updates during timeline navigation</li> <li><a href="https://github.com/ChromeDevTools/devtools-frontend/commit/174f2d4940fe814c8403355d90e0900d54fd41c9"><code>174f2d4</code></a> Use the theme-aware subtle text color so the</li> <li><a href="https://github.com/ChromeDevTools/devtools-frontend/commit/6aabb9b04caafa84df76ff061433ae9d6f8508ae"><code>6aabb9b</code></a> [elements] Support gutter marker decorations in declarative view</li> <li><a href="https://github.com/ChromeDevTools/devtools-frontend/commit/c40b22bc7258aec34a59010dfcae9e60fe2f4b74"><code>c40b22b</code></a> [AI Assistance] Remove legacy manual evaluation UI and server</li> <li>Additional commits viewable in <a href="https://github.com/ChromeDevTools/devtools-frontend/compare/f2496daebe37452b8d997f6fca88f24eb49e34f5...de0546ba37bda1e4b4115dfa2fbacae08b53e752">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 this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Wolfgang Beyer <wolfi@chromium.org>
the test fails often and it does not give a good signal if the feature is working or not. There have been multiple attempts to fix this but it seems to be riddled with some underlying flakiness (seems to be exclusive to Windows but not 100% sure).
…0f6aa` (ChromeDevTools#2656) Bumps [third_party/devtools-frontend](https://github.com/ChromeDevTools/devtools-frontend) from `de0546b` to `330f6aa`. <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/ChromeDevTools/devtools-frontend/commit/330f6aa67c977208d92feb7dfb4abb77e9708ae2"><code>330f6aa</code></a> Add focus rings to expandable controls</li> <li><a href="https://github.com/ChromeDevTools/devtools-frontend/commit/3e299ff967cbe458f3317243960888ae4f1b3f82"><code>3e299ff</code></a> [ts_library] Migrate ui/legacy/components/quick_open to split compilation</li> <li><a href="https://github.com/ChromeDevTools/devtools-frontend/commit/a1722efa2a1b20042f9c5c03a4519c1f3ddf5fae"><code>a1722ef</code></a> [ts_library] Migrate ui/legacy/components/perf_ui to split compilation</li> <li><a href="https://github.com/ChromeDevTools/devtools-frontend/commit/3d9a47c3f53df85b1cd34abf309712ac3f2bed43"><code>3d9a47c</code></a> Add missing console:css_files dependency to application panel bundle</li> <li><a href="https://github.com/ChromeDevTools/devtools-frontend/commit/c86f5b73fd546dac3b12619124a34ac6a93e3211"><code>c86f5b7</code></a> [ts_library] Migrate Changes panel to split compilation</li> <li><a href="https://github.com/ChromeDevTools/devtools-frontend/commit/3eed5d457ebce0739e536da7cf63bde0025079d6"><code>3eed5d4</code></a> [foundation] Fix flaky Universe.test.ts</li> <li><a href="https://github.com/ChromeDevTools/devtools-frontend/commit/674f3f3496b70e8aceb71ce027c65162bf993dff"><code>674f3f3</code></a> Improve return type of getComputedStylesForDomNode</li> <li><a href="https://github.com/ChromeDevTools/devtools-frontend/commit/1d3e71a681dbea922b4fcbd8ac550e08abe6a091"><code>1d3e71a</code></a> [ts_library] Migrate Accessibility panel to split compilation</li> <li><a href="https://github.com/ChromeDevTools/devtools-frontend/commit/390f974f96fe313897ba58a3a3f2d50ea8d56e16"><code>390f974</code></a> [ts_library] Migrate test/e2e/host to split compilation</li> <li><a href="https://github.com/ChromeDevTools/devtools-frontend/commit/5e356a5c2ff344991bea87841db224ec9900aa01"><code>5e356a5</code></a> Make writeIfChanged asynchronous</li> <li>Additional commits viewable in <a href="https://github.com/ChromeDevTools/devtools-frontend/compare/de0546ba37bda1e4b4115dfa2fbacae08b53e752...330f6aa67c977208d92feb7dfb4abb77e9708ae2">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 this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…ols#2658) Fixes ChromeDevTools#2657 ## Summary - `BrowserContext.newPage()` in Puppeteer 25.9 supports the `background` option, so pass it through in the isolated-context branch of `McpContext.newPage()` instead of dropping it. - Add a real-browser regression test asserting the original page keeps focus when `new_page` is called with both `background: true` and `isolatedContext`. ## Testing - `npm run typecheck` - `npm run test:no-build tests/tools/pages.test.ts` - prettier + eslint pass
…s#2641) test: mock-based unit tests for emulation, no real browser needed Relates to ChromeDevTools#2639. Summary Adds tests/mocks.ts — sinon createStubInstance-based factories for McpPage, McpContext, McpResponse, and Puppeteer's Page (via the concrete CdpPage subclass) createHandlerMocks() helper returns {page, context, response} together for handler tests Converts the network and cpu describe blocks in emulation.test.ts from real-browser (withMcpContext) to the sinon mocks Converts emulate() behavior tests in McpPage.test.ts to use a real McpPage instance wrapping a mocked Puppeteer page (createMockPuppeteerPage()), instead of a real browser No new test files — all changes are in-place edits to existing test files, per review feedback Remaining emulate()-related tests that need real browser behavior (predefined-condition validation, secondary DevTools session) are intentionally left as real-browser tests Verification npm run format npm run test
… group (ChromeDevTools#2671) Bumps the bundled group with 1 update: [puppeteer](https://github.com/puppeteer/puppeteer). Updates `puppeteer` from 25.9.0 to 25.10.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/puppeteer/puppeteer/releases">puppeteer's releases</a>.</em></p> <blockquote> <h2>puppeteer-core: v25.10.0</h2> <h2><a href="https://github.com/puppeteer/puppeteer/compare/puppeteer-core-v25.9.0...puppeteer-core-v25.10.0">25.10.0</a> (2026-09-03)</h2> <h3>🎉 Features</h3> <ul> <li>implement video-stream-based screen recording via page.record() (<a href="https://redirect.github.com/puppeteer/puppeteer/issues/15387">#15387</a>) (<a href="https://github.com/puppeteer/puppeteer/commit/f6d5e28021f207d80c10528956738b3b01b41609">f6d5e28</a>)</li> <li>roll to Firefox 155.0 (<a href="https://redirect.github.com/puppeteer/puppeteer/issues/15408">#15408</a>) (<a href="https://github.com/puppeteer/puppeteer/commit/ed544f71fbfadf8748040008453ea1fdedfc5ec9">ed544f7</a>)</li> </ul> <h3>🛠️ Fixes</h3> <ul> <li>detect a websocket connection that died without a close (<a href="https://redirect.github.com/puppeteer/puppeteer/issues/15406">#15406</a>) (<a href="https://github.com/puppeteer/puppeteer/commit/8c3576b789440cc3b9627e9d6749369a6f175ff3">8c3576b</a>)</li> <li>distinguish an unwritable userDataDir from a running browser (<a href="https://redirect.github.com/puppeteer/puppeteer/issues/15405">#15405</a>) (<a href="https://github.com/puppeteer/puppeteer/commit/b464f6d6ea6e119cac48fed961d706325d50d8a9">b464f6d</a>)</li> <li>do not miss the first screencast frame while startScreencast is in flight (<a href="https://redirect.github.com/puppeteer/puppeteer/issues/15389">#15389</a>) (<a href="https://github.com/puppeteer/puppeteer/commit/1969426492e7201e9ff78c49c918cdd1cbbeef2a">1969426</a>)</li> <li>roll to Chrome 152.0.7977.64 (<a href="https://redirect.github.com/puppeteer/puppeteer/issues/15395">#15395</a>) (<a href="https://github.com/puppeteer/puppeteer/commit/974e53667e81363e36f634222eb300a054c1fb6c">974e536</a>)</li> <li>roll to Chrome 152.0.7977.75 (<a href="https://redirect.github.com/puppeteer/puppeteer/issues/15409">#15409</a>) (<a href="https://github.com/puppeteer/puppeteer/commit/89f3f187827fed44fe33bf2ab80f01d1fce20f40">89f3f18</a>)</li> <li>roll to Firefox 154.0.1 (<a href="https://redirect.github.com/puppeteer/puppeteer/issues/15397">#15397</a>) (<a href="https://github.com/puppeteer/puppeteer/commit/8ac76fdbdee170902a2ac4e831c9c82cafe17b65">8ac76fd</a>)</li> </ul> <h3>Dependencies</h3> <ul> <li>The following workspace dependencies were updated <ul> <li>dependencies <ul> <li><code>@puppeteer/browsers</code> bumped from 3.2.1 to 3.2.2</li> </ul> </li> </ul> </li> </ul> <h2>puppeteer: v25.10.0</h2> <h2><a href="https://github.com/puppeteer/puppeteer/compare/puppeteer-v25.9.0...puppeteer-v25.10.0">25.10.0</a> (2026-09-03)</h2> <h3>♻️ Chores</h3> <ul> <li><strong>puppeteer:</strong> Synchronize puppeteer versions</li> </ul> <h3>Dependencies</h3> <ul> <li>The following workspace dependencies were updated <ul> <li>dependencies <ul> <li><code>@puppeteer/browsers</code> bumped from 3.2.1 to 3.2.2</li> <li>puppeteer-core bumped from 25.9.0 to 25.10.0</li> </ul> </li> </ul> </li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/puppeteer/puppeteer/commit/88b517ab3beb4a237b541cd18ada98ba43de71a7"><code>88b517a</code></a> chore: release main (<a href="https://redirect.github.com/puppeteer/puppeteer/issues/15396">#15396</a>)</li> <li><a href="https://github.com/puppeteer/puppeteer/commit/a84b0325de0e860c9c4b60de7bff7c0ae100accd"><code>a84b032</code></a> fix: revert launch browsers in detached mode on Windows to fix flakiness (<a href="https://redirect.github.com/puppeteer/puppeteer/issues/15">#15</a>...</li> <li><a href="https://github.com/puppeteer/puppeteer/commit/7a17a9a843c36f7aab98ea1de840f2f78c761d19"><code>7a17a9a</code></a> chore(deps): bump the all group across 1 directory with 2 updates (<a href="https://redirect.github.com/puppeteer/puppeteer/issues/15368">#15368</a>)</li> <li><a href="https://github.com/puppeteer/puppeteer/commit/4ff495d90c1629f46849e50f39c7fc827ea89630"><code>4ff495d</code></a> test: explain the CDP-only mouse expectations (<a href="https://redirect.github.com/puppeteer/puppeteer/issues/15380">#15380</a>)</li> <li><a href="https://github.com/puppeteer/puppeteer/commit/c3ca31394ae4f133620d6587a7efedbe5e945ff4"><code>c3ca313</code></a> test: update webmcp-types dep and simplify execute handler signatures (<a href="https://redirect.github.com/puppeteer/puppeteer/issues/15414">#15414</a>)</li> <li><a href="https://github.com/puppeteer/puppeteer/commit/8ca9ab4e7b528e632145c85514feb7af61033425"><code>8ca9ab4</code></a> chore(deps-dev): bump browserslist from 4.28.4 to 4.28.8 (<a href="https://redirect.github.com/puppeteer/puppeteer/issues/15413">#15413</a>)</li> <li><a href="https://github.com/puppeteer/puppeteer/commit/3744bad72207a29c11bc1c6e202d916e3f629dc3"><code>3744bad</code></a> chore(deps-dev): bump <code>@humanfs/node</code> from 0.16.7 to 0.16.8 (<a href="https://redirect.github.com/puppeteer/puppeteer/issues/15412">#15412</a>)</li> <li><a href="https://github.com/puppeteer/puppeteer/commit/051c195ab2beb77856ce501e80e61885f9fa6a4f"><code>051c195</code></a> chore(deps): bump fast-uri from 3.1.5 to 3.1.7 in /website (<a href="https://redirect.github.com/puppeteer/puppeteer/issues/15411">#15411</a>)</li> <li><a href="https://github.com/puppeteer/puppeteer/commit/89f3f187827fed44fe33bf2ab80f01d1fce20f40"><code>89f3f18</code></a> fix: roll to Chrome 152.0.7977.75 (<a href="https://redirect.github.com/puppeteer/puppeteer/issues/15409">#15409</a>)</li> <li><a href="https://github.com/puppeteer/puppeteer/commit/ed544f71fbfadf8748040008453ea1fdedfc5ec9"><code>ed544f7</code></a> feat: roll to Firefox 155.0 (<a href="https://redirect.github.com/puppeteer/puppeteer/issues/15408">#15408</a>)</li> <li>Additional commits viewable in <a href="https://github.com/puppeteer/puppeteer/compare/puppeteer-v25.9.0...puppeteer-v25.10.0">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore <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>
allowing to disable DevTools source maps similar to what DevTools settings allow in the UI.
Utilizes the Yargs default. We may need to change this to resolve this ourself, but for now we can explicitly allow this.
…ith 5 updates (ChromeDevTools#2670) Bumps the dev-dependencies group with 5 updates in the / directory: | Package | From | To | | --- | --- | --- | | [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `26.2.0` | `26.4.0` | | [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) | `8.67.0` | `8.69.0` | | [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) | `8.67.0` | `8.69.0` | | [rollup](https://github.com/rollup/rollup) | `4.62.5` | `4.63.1` | | [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) | `8.67.0` | `8.69.0` | Updates `@types/node` from 26.2.0 to 26.4.0 <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 `@typescript-eslint/eslint-plugin` from 8.67.0 to 8.69.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/typescript-eslint/typescript-eslint/releases">@typescript-eslint/eslint-plugin's releases</a>.</em></p> <blockquote> <h2>v8.69.0</h2> <h2>8.69.0 (2026-08-31)</h2> <h3>🚀 Features</h3> <ul> <li><strong>eslint-plugin:</strong> [no-misused-promises] add flagUnions option for checkConditionals (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12603">#12603</a>)</li> </ul> <h3>🩹 Fixes</h3> <ul> <li><strong>eslint-plugin:</strong> [no-mixed-enums] use scope analysis instead of type checking for merged namespaces (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12731">#12731</a>)</li> <li><strong>eslint-plugin:</strong> [unified-signatures] compare type parameters by constraint instead of name (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12741">#12741</a>)</li> <li><strong>eslint-plugin:</strong> [no-meaningless-void-operator] report void on non-call expressions (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12727">#12727</a>)</li> <li><strong>website:</strong> respect allowJs playground config (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12744">#12744</a>)</li> </ul> <h3>❤️ Thank You</h3> <ul> <li>Abdu Alim Arlikhozhaev <a href="https://github.com/Arlikhozhaev"><code>@Arlikhozhaev</code></a></li> <li>Evyatar Daud <a href="https://github.com/StyleShit"><code>@StyleShit</code></a></li> <li>Josh Goldberg ✨</li> <li>wonbeanie <a href="https://github.com/wonbeanie"><code>@wonbeanie</code></a></li> <li>Younsang Na <a href="https://github.com/nayounsang"><code>@nayounsang</code></a></li> </ul> <p>See <a href="https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.69.0">GitHub Releases</a> for more information.</p> <p>You can read about our <a href="https://typescript-eslint.io/users/versioning">versioning strategy</a> and <a href="https://typescript-eslint.io/users/releases">releases</a> on our website.</p> <h2>v8.68.0</h2> <h2>8.68.0 (2026-08-24)</h2> <h3>🚀 Features</h3> <ul> <li><strong>eslint-plugin:</strong> [strict-void-return] add fix suggestions (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12086">#12086</a>)</li> <li><strong>utils:</strong> support ESLint rule meta.languages (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12663">#12663</a>)</li> </ul> <h3>🩹 Fixes</h3> <ul> <li><strong>eslint-plugin:</strong> [unified-signatures] deduplicate types in report (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12656">#12656</a>)</li> <li><strong>eslint-plugin:</strong> [return-await] prevent autofix from breaking code in arrow-functions (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12707">#12707</a>)</li> <li><strong>eslint-plugin:</strong> [unified-signatures] report identical signatures (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12678">#12678</a>)</li> <li><strong>eslint-plugin:</strong> [no-unnecessary-type-assertion] prevent stack overflow in recursive types (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12711">#12711</a>)</li> <li><strong>eslint-plugin:</strong> [no-floating-promises] setting <code>ignoreVoid: false</code> results in false negative in ArrowFunctionExpression (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12646">#12646</a>)</li> <li><strong>eslint-plugin:</strong> [no-empty-object-type] ignore suggestions that result in invalid interfaces and export defaults (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12739">#12739</a>)</li> <li><strong>website:</strong> playground crashes on <code>extends</code> configs (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12608">#12608</a>)</li> <li><strong>website:</strong> account for thanks.dev and out-of-band donors in sponsors list (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12735">#12735</a>)</li> </ul> <h3>❤️ Thank You</h3> <ul> <li>Evyatar Daud <a href="https://github.com/StyleShit"><code>@StyleShit</code></a></li> <li>Hugo <a href="https://github.com/hugop95"><code>@hugop95</code></a></li> <li>Josh Goldberg ✨</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md">@typescript-eslint/eslint-plugin's changelog</a>.</em></p> <blockquote> <h2>8.69.0 (2026-08-31)</h2> <h3>🚀 Features</h3> <ul> <li><strong>eslint-plugin:</strong> [no-misused-promises] add flagUnions option for checkConditionals (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12603">#12603</a>)</li> </ul> <h3>🩹 Fixes</h3> <ul> <li><strong>eslint-plugin:</strong> [no-meaningless-void-operator] report void on non-call expressions (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12727">#12727</a>)</li> <li><strong>eslint-plugin:</strong> [unified-signatures] compare type parameters by constraint instead of name (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12741">#12741</a>)</li> <li><strong>eslint-plugin:</strong> [no-mixed-enums] use scope analysis instead of type checking for merged namespaces (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12731">#12731</a>)</li> </ul> <h3>❤️ Thank You</h3> <ul> <li>Abdu Alim Arlikhozhaev <a href="https://github.com/Arlikhozhaev"><code>@Arlikhozhaev</code></a></li> <li>Evyatar Daud <a href="https://github.com/StyleShit"><code>@StyleShit</code></a></li> <li>Josh Goldberg ✨</li> <li>wonbeanie <a href="https://github.com/wonbeanie"><code>@wonbeanie</code></a></li> </ul> <p>See <a href="https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.69.0">GitHub Releases</a> for more information.</p> <p>You can read about our <a href="https://typescript-eslint.io/users/versioning">versioning strategy</a> and <a href="https://typescript-eslint.io/users/releases">releases</a> on our website.</p> <h2>8.68.0 (2026-08-24)</h2> <h3>🚀 Features</h3> <ul> <li><strong>eslint-plugin:</strong> [strict-void-return] add fix suggestions (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12086">#12086</a>)</li> </ul> <h3>🩹 Fixes</h3> <ul> <li><strong>eslint-plugin:</strong> [no-empty-object-type] ignore suggestions that result in invalid interfaces and export defaults (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12739">#12739</a>)</li> <li><strong>eslint-plugin:</strong> [no-floating-promises] setting <code>ignoreVoid: false</code> results in false negative in ArrowFunctionExpression (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12646">#12646</a>)</li> <li><strong>eslint-plugin:</strong> [no-unnecessary-type-assertion] prevent stack overflow in recursive types (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12711">#12711</a>)</li> <li><strong>eslint-plugin:</strong> [unified-signatures] report identical signatures (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12678">#12678</a>)</li> <li><strong>eslint-plugin:</strong> [return-await] prevent autofix from breaking code in arrow-functions (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12707">#12707</a>)</li> <li><strong>eslint-plugin:</strong> [unified-signatures] deduplicate types in report (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12656">#12656</a>)</li> </ul> <h3>❤️ Thank You</h3> <ul> <li>Evyatar Daud <a href="https://github.com/StyleShit"><code>@StyleShit</code></a></li> <li>Hugo <a href="https://github.com/hugop95"><code>@hugop95</code></a></li> <li>Niki <a href="https://github.com/phaux"><code>@phaux</code></a></li> <li>Younsang Na <a href="https://github.com/nayounsang"><code>@nayounsang</code></a></li> </ul> <p>See <a href="https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.68.0">GitHub Releases</a> for more information.</p> <p>You can read about our <a href="https://typescript-eslint.io/users/versioning">versioning strategy</a> and <a href="https://typescript-eslint.io/users/releases">releases</a> on our website.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/typescript-eslint/typescript-eslint/commit/9a6e546823e5d8f2dc015df2aa66c0230615e209"><code>9a6e546</code></a> chore(release): publish 8.69.0</li> <li><a href="https://github.com/typescript-eslint/typescript-eslint/commit/513638effe9e7b78566cc153d4d809a1435153f3"><code>513638e</code></a> fix(eslint-plugin): [no-meaningless-void-operator] report void on non-call ex...</li> <li><a href="https://github.com/typescript-eslint/typescript-eslint/commit/1dba4c50f0599cc212e9d1eca9ec0f21a818f0b5"><code>1dba4c5</code></a> chore(eslint-plugin): fix <code>eslint-plugin/require-test-error-positions</code> report...</li> <li><a href="https://github.com/typescript-eslint/typescript-eslint/commit/a2fccae39c7cb1e516a29b1c746b7767bffa03e2"><code>a2fccae</code></a> fix(eslint-plugin): [unified-signatures] compare type parameters by constrain...</li> <li><a href="https://github.com/typescript-eslint/typescript-eslint/commit/a23069df170bc4f9c35c8aaf3a8634635591844a"><code>a23069d</code></a> test(eslint-plugin): [no-mixed-enums] add error positions (<a href="https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin/issues/12779">#12779</a>)</li> <li><a href="https://github.com/typescript-eslint/typescript-eslint/commit/3f0dffd45a91d0292bf1acc1159496d1b232d319"><code>3f0dffd</code></a> fix(eslint-plugin): [no-mixed-enums] use scope analysis instead of type check...</li> <li><a href="https://github.com/typescript-eslint/typescript-eslint/commit/e18fea861d50ffc8b7b7149ae3454d114f6a8200"><code>e18fea8</code></a> test(eslint-plugin): [no-floating-promises] reactivate skipped <code>node:test</code> sp...</li> <li><a href="https://github.com/typescript-eslint/typescript-eslint/commit/324515c53c2f541cff2a8af9b2a929decba0af91"><code>324515c</code></a> test(eslint-plugin): [no-unnecessary-condition] add tests for optional chains...</li> <li><a href="https://github.com/typescript-eslint/typescript-eslint/commit/2a387f1298e9c10b83936044a017f84b8ee5b7f3"><code>2a387f1</code></a> feat(eslint-plugin): [no-misused-promises] add flagUnions option for checkCon...</li> <li><a href="https://github.com/typescript-eslint/typescript-eslint/commit/8f4e00a4e8f3bdf93a5e5e8bc568ba1c15a4f896"><code>8f4e00a</code></a> chore(release): publish 8.68.0</li> <li>Additional commits viewable in <a href="https://github.com/typescript-eslint/typescript-eslint/commits/v8.69.0/packages/eslint-plugin">compare view</a></li> </ul> </details> <br /> Updates `@typescript-eslint/parser` from 8.67.0 to 8.69.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/typescript-eslint/typescript-eslint/releases">@typescript-eslint/parser's releases</a>.</em></p> <blockquote> <h2>v8.69.0</h2> <h2>8.69.0 (2026-08-31)</h2> <h3>🚀 Features</h3> <ul> <li><strong>eslint-plugin:</strong> [no-misused-promises] add flagUnions option for checkConditionals (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12603">#12603</a>)</li> </ul> <h3>🩹 Fixes</h3> <ul> <li><strong>eslint-plugin:</strong> [no-mixed-enums] use scope analysis instead of type checking for merged namespaces (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12731">#12731</a>)</li> <li><strong>eslint-plugin:</strong> [unified-signatures] compare type parameters by constraint instead of name (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12741">#12741</a>)</li> <li><strong>eslint-plugin:</strong> [no-meaningless-void-operator] report void on non-call expressions (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12727">#12727</a>)</li> <li><strong>website:</strong> respect allowJs playground config (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12744">#12744</a>)</li> </ul> <h3>❤️ Thank You</h3> <ul> <li>Abdu Alim Arlikhozhaev <a href="https://github.com/Arlikhozhaev"><code>@Arlikhozhaev</code></a></li> <li>Evyatar Daud <a href="https://github.com/StyleShit"><code>@StyleShit</code></a></li> <li>Josh Goldberg ✨</li> <li>wonbeanie <a href="https://github.com/wonbeanie"><code>@wonbeanie</code></a></li> <li>Younsang Na <a href="https://github.com/nayounsang"><code>@nayounsang</code></a></li> </ul> <p>See <a href="https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.69.0">GitHub Releases</a> for more information.</p> <p>You can read about our <a href="https://typescript-eslint.io/users/versioning">versioning strategy</a> and <a href="https://typescript-eslint.io/users/releases">releases</a> on our website.</p> <h2>v8.68.0</h2> <h2>8.68.0 (2026-08-24)</h2> <h3>🚀 Features</h3> <ul> <li><strong>eslint-plugin:</strong> [strict-void-return] add fix suggestions (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12086">#12086</a>)</li> <li><strong>utils:</strong> support ESLint rule meta.languages (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12663">#12663</a>)</li> </ul> <h3>🩹 Fixes</h3> <ul> <li><strong>eslint-plugin:</strong> [unified-signatures] deduplicate types in report (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12656">#12656</a>)</li> <li><strong>eslint-plugin:</strong> [return-await] prevent autofix from breaking code in arrow-functions (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12707">#12707</a>)</li> <li><strong>eslint-plugin:</strong> [unified-signatures] report identical signatures (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12678">#12678</a>)</li> <li><strong>eslint-plugin:</strong> [no-unnecessary-type-assertion] prevent stack overflow in recursive types (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12711">#12711</a>)</li> <li><strong>eslint-plugin:</strong> [no-floating-promises] setting <code>ignoreVoid: false</code> results in false negative in ArrowFunctionExpression (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12646">#12646</a>)</li> <li><strong>eslint-plugin:</strong> [no-empty-object-type] ignore suggestions that result in invalid interfaces and export defaults (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12739">#12739</a>)</li> <li><strong>website:</strong> playground crashes on <code>extends</code> configs (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12608">#12608</a>)</li> <li><strong>website:</strong> account for thanks.dev and out-of-band donors in sponsors list (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12735">#12735</a>)</li> </ul> <h3>❤️ Thank You</h3> <ul> <li>Evyatar Daud <a href="https://github.com/StyleShit"><code>@StyleShit</code></a></li> <li>Hugo <a href="https://github.com/hugop95"><code>@hugop95</code></a></li> <li>Josh Goldberg ✨</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md">@typescript-eslint/parser's changelog</a>.</em></p> <blockquote> <h2>8.69.0 (2026-08-31)</h2> <p>This was a version bump only for parser to align it with other projects, there were no code changes.</p> <p>See <a href="https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.69.0">GitHub Releases</a> for more information.</p> <p>You can read about our <a href="https://typescript-eslint.io/users/versioning">versioning strategy</a> and <a href="https://typescript-eslint.io/users/releases">releases</a> on our website.</p> <h2>8.68.0 (2026-08-24)</h2> <p>This was a version bump only for parser to align it with other projects, there were no code changes.</p> <p>See <a href="https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.68.0">GitHub Releases</a> for more information.</p> <p>You can read about our <a href="https://typescript-eslint.io/users/versioning">versioning strategy</a> and <a href="https://typescript-eslint.io/users/releases">releases</a> on our website.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/typescript-eslint/typescript-eslint/commit/9a6e546823e5d8f2dc015df2aa66c0230615e209"><code>9a6e546</code></a> chore(release): publish 8.69.0</li> <li><a href="https://github.com/typescript-eslint/typescript-eslint/commit/8f4e00a4e8f3bdf93a5e5e8bc568ba1c15a4f896"><code>8f4e00a</code></a> chore(release): publish 8.68.0</li> <li><a href="https://github.com/typescript-eslint/typescript-eslint/commit/55f6d5d4ca39d2fab93db97ced497b956017878d"><code>55f6d5d</code></a> chore: enable source maps (<a href="https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser/issues/12677">#12677</a>)</li> <li>See full diff in <a href="https://github.com/typescript-eslint/typescript-eslint/commits/v8.69.0/packages/parser">compare view</a></li> </ul> </details> <br /> Updates `rollup` from 4.62.5 to 4.63.1 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/rollup/rollup/releases">rollup's releases</a>.</em></p> <blockquote> <h2>v4.63.1</h2> <h2>4.63.1</h2> <p><em>2026-08-28</em></p> <h3>Bug Fixes</h3> <ul> <li>Revert function return value tracking until the most recent issue is understood (<a href="https://redirect.github.com/rollup/rollup/issues/6490">#6490</a>)</li> </ul> <h3>Pull Requests</h3> <ul> <li><a href="https://redirect.github.com/rollup/rollup/pull/6489">#6489</a>: fix(deps): update minor/patch updates (<a href="https://github.com/renovate"><code>@renovate</code></a>[bot])</li> <li><a href="https://redirect.github.com/rollup/rollup/pull/6490">#6490</a>: Revert improve function return value tracking (<a href="https://github.com/lukastaegert"><code>@lukastaegert</code></a>)</li> </ul> <h2>v4.63.0</h2> <h2>4.63.0</h2> <p><em>2026-08-25</em></p> <h3>Features</h3> <ul> <li>Allow to analyze function return values in many more cases (<a href="https://redirect.github.com/rollup/rollup/issues/6065">#6065</a>)</li> </ul> <h3>Pull Requests</h3> <ul> <li><a href="https://redirect.github.com/rollup/rollup/pull/6065">#6065</a>: feat: improve function return value tracking (<a href="https://github.com/cyyynthia"><code>@cyyynthia</code></a>, <a href="https://github.com/lukastaegert"><code>@lukastaegert</code></a>)</li> <li><a href="https://redirect.github.com/rollup/rollup/pull/6482">#6482</a>: Remove unused rendered module sources map (<a href="https://github.com/yoominho91"><code>@yoominho91</code></a>, <a href="https://github.com/irontaek"><code>@irontaek</code></a>, <a href="https://github.com/lukastaegert"><code>@lukastaegert</code></a>)</li> <li><a href="https://redirect.github.com/rollup/rollup/pull/6483">#6483</a>: chore(deps): update minor/patch updates (<a href="https://github.com/renovate"><code>@renovate</code></a>[bot])</li> <li><a href="https://redirect.github.com/rollup/rollup/pull/6484">#6484</a>: fix(deps): update swc monorepo (major) (<a href="https://github.com/renovate"><code>@renovate</code></a>[bot], <a href="https://github.com/lukastaegert"><code>@lukastaegert</code></a>)</li> <li><a href="https://redirect.github.com/rollup/rollup/pull/6485">#6485</a>: chore(deps): lock file maintenance (<a href="https://github.com/renovate"><code>@renovate</code></a>[bot], <a href="https://github.com/lukastaegert"><code>@lukastaegert</code></a>)</li> <li><a href="https://redirect.github.com/rollup/rollup/pull/6486">#6486</a>: chore(deps): lock file maintenance (<a href="https://github.com/renovate"><code>@renovate</code></a>[bot])</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/rollup/rollup/blob/master/CHANGELOG.md">rollup's changelog</a>.</em></p> <blockquote> <h2>4.63.1</h2> <p><em>2026-08-28</em></p> <h3>Bug Fixes</h3> <ul> <li>Revert function return value tracking until the most recent issue is understood (<a href="https://redirect.github.com/rollup/rollup/issues/6490">#6490</a>)</li> </ul> <h3>Pull Requests</h3> <ul> <li><a href="https://redirect.github.com/rollup/rollup/pull/6489">#6489</a>: fix(deps): update minor/patch updates (<a href="https://github.com/renovate"><code>@renovate</code></a>[bot])</li> <li><a href="https://redirect.github.com/rollup/rollup/pull/6490">#6490</a>: Revert improve function return value tracking (<a href="https://github.com/lukastaegert"><code>@lukastaegert</code></a>)</li> </ul> <h2>4.63.0</h2> <p><em>2026-08-25</em></p> <h3>Features</h3> <ul> <li>Allow to analyze function return values in many more cases (<a href="https://redirect.github.com/rollup/rollup/issues/6065">#6065</a>)</li> </ul> <h3>Pull Requests</h3> <ul> <li><a href="https://redirect.github.com/rollup/rollup/pull/6065">#6065</a>: feat: improve function return value tracking (<a href="https://github.com/cyyynthia"><code>@cyyynthia</code></a>, <a href="https://github.com/lukastaegert"><code>@lukastaegert</code></a>)</li> <li><a href="https://redirect.github.com/rollup/rollup/pull/6482">#6482</a>: Remove unused rendered module sources map (<a href="https://github.com/yoominho91"><code>@yoominho91</code></a>, <a href="https://github.com/irontaek"><code>@irontaek</code></a>, <a href="https://github.com/lukastaegert"><code>@lukastaegert</code></a>)</li> <li><a href="https://redirect.github.com/rollup/rollup/pull/6483">#6483</a>: chore(deps): update minor/patch updates (<a href="https://github.com/renovate"><code>@renovate</code></a>[bot])</li> <li><a href="https://redirect.github.com/rollup/rollup/pull/6484">#6484</a>: fix(deps): update swc monorepo (major) (<a href="https://github.com/renovate"><code>@renovate</code></a>[bot], <a href="https://github.com/lukastaegert"><code>@lukastaegert</code></a>)</li> <li><a href="https://redirect.github.com/rollup/rollup/pull/6485">#6485</a>: chore(deps): lock file maintenance (<a href="https://github.com/renovate"><code>@renovate</code></a>[bot], <a href="https://github.com/lukastaegert"><code>@lukastaegert</code></a>)</li> <li><a href="https://redirect.github.com/rollup/rollup/pull/6486">#6486</a>: chore(deps): lock file maintenance (<a href="https://github.com/renovate"><code>@renovate</code></a>[bot])</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/rollup/rollup/commit/78bfef0cb94479566f81012fafa372c84b90bd34"><code>78bfef0</code></a> 4.63.1</li> <li><a href="https://github.com/rollup/rollup/commit/be6b8352974d521a0574205940b9d1bda66acd9c"><code>be6b835</code></a> Revert improve function return value tracking (<a href="https://redirect.github.com/rollup/rollup/issues/6490">#6490</a>)</li> <li><a href="https://github.com/rollup/rollup/commit/db15922c05713465fa11e5eb976e88ffdb0d3376"><code>db15922</code></a> fix(deps): update minor/patch updates (<a href="https://redirect.github.com/rollup/rollup/issues/6489">#6489</a>)</li> <li><a href="https://github.com/rollup/rollup/commit/34b8b924c815ec9413d7821f6fd54cc615584a51"><code>34b8b92</code></a> 4.63.0</li> <li><a href="https://github.com/rollup/rollup/commit/456b237dbfcc35c48d76c6be2060f881f440a532"><code>456b237</code></a> feat: improve function return value tracking (<a href="https://redirect.github.com/rollup/rollup/issues/6065">#6065</a>)</li> <li><a href="https://github.com/rollup/rollup/commit/21528bb381e0c5a5853f91e04d597fa2f45568fa"><code>21528bb</code></a> fix(deps): update swc monorepo (major) (<a href="https://redirect.github.com/rollup/rollup/issues/6484">#6484</a>)</li> <li><a href="https://github.com/rollup/rollup/commit/250b175b33b6a3ef96b54d509137f23db669ee9f"><code>250b175</code></a> chore(deps): lock file maintenance (<a href="https://redirect.github.com/rollup/rollup/issues/6486">#6486</a>)</li> <li><a href="https://github.com/rollup/rollup/commit/89bda2cd8e9def2ea037e7dbffaf392ce9f1ddcb"><code>89bda2c</code></a> chore(deps): update minor/patch updates (<a href="https://redirect.github.com/rollup/rollup/issues/6483">#6483</a>)</li> <li><a href="https://github.com/rollup/rollup/commit/f0b0413470667e1c4efe6e07ef9aecc144a2a950"><code>f0b0413</code></a> chore(deps): lock file maintenance (<a href="https://redirect.github.com/rollup/rollup/issues/6485">#6485</a>)</li> <li><a href="https://github.com/rollup/rollup/commit/a362d28d4cc01513c927678d068182f569954eba"><code>a362d28</code></a> Remove unused rendered module sources map (<a href="https://redirect.github.com/rollup/rollup/issues/6482">#6482</a>)</li> <li>See full diff in <a href="https://github.com/rollup/rollup/compare/v4.62.5...v4.63.1">compare view</a></li> </ul> </details> <br /> Updates `typescript-eslint` from 8.67.0 to 8.69.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/typescript-eslint/typescript-eslint/releases">typescript-eslint's releases</a>.</em></p> <blockquote> <h2>v8.69.0</h2> <h2>8.69.0 (2026-08-31)</h2> <h3>🚀 Features</h3> <ul> <li><strong>eslint-plugin:</strong> [no-misused-promises] add flagUnions option for checkConditionals (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12603">#12603</a>)</li> </ul> <h3>🩹 Fixes</h3> <ul> <li><strong>eslint-plugin:</strong> [no-mixed-enums] use scope analysis instead of type checking for merged namespaces (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12731">#12731</a>)</li> <li><strong>eslint-plugin:</strong> [unified-signatures] compare type parameters by constraint instead of name (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12741">#12741</a>)</li> <li><strong>eslint-plugin:</strong> [no-meaningless-void-operator] report void on non-call expressions (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12727">#12727</a>)</li> <li><strong>website:</strong> respect allowJs playground config (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12744">#12744</a>)</li> </ul> <h3>❤️ Thank You</h3> <ul> <li>Abdu Alim Arlikhozhaev <a href="https://github.com/Arlikhozhaev"><code>@Arlikhozhaev</code></a></li> <li>Evyatar Daud <a href="https://github.com/StyleShit"><code>@StyleShit</code></a></li> <li>Josh Goldberg ✨</li> <li>wonbeanie <a href="https://github.com/wonbeanie"><code>@wonbeanie</code></a></li> <li>Younsang Na <a href="https://github.com/nayounsang"><code>@nayounsang</code></a></li> </ul> <p>See <a href="https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.69.0">GitHub Releases</a> for more information.</p> <p>You can read about our <a href="https://typescript-eslint.io/users/versioning">versioning strategy</a> and <a href="https://typescript-eslint.io/users/releases">releases</a> on our website.</p> <h2>v8.68.0</h2> <h2>8.68.0 (2026-08-24)</h2> <h3>🚀 Features</h3> <ul> <li><strong>eslint-plugin:</strong> [strict-void-return] add fix suggestions (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12086">#12086</a>)</li> <li><strong>utils:</strong> support ESLint rule meta.languages (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12663">#12663</a>)</li> </ul> <h3>🩹 Fixes</h3> <ul> <li><strong>eslint-plugin:</strong> [unified-signatures] deduplicate types in report (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12656">#12656</a>)</li> <li><strong>eslint-plugin:</strong> [return-await] prevent autofix from breaking code in arrow-functions (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12707">#12707</a>)</li> <li><strong>eslint-plugin:</strong> [unified-signatures] report identical signatures (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12678">#12678</a>)</li> <li><strong>eslint-plugin:</strong> [no-unnecessary-type-assertion] prevent stack overflow in recursive types (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12711">#12711</a>)</li> <li><strong>eslint-plugin:</strong> [no-floating-promises] setting <code>ignoreVoid: false</code> results in false negative in ArrowFunctionExpression (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12646">#12646</a>)</li> <li><strong>eslint-plugin:</strong> [no-empty-object-type] ignore suggestions that result in invalid interfaces and export defaults (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12739">#12739</a>)</li> <li><strong>website:</strong> playground crashes on <code>extends</code> configs (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12608">#12608</a>)</li> <li><strong>website:</strong> account for thanks.dev and out-of-band donors in sponsors list (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12735">#12735</a>)</li> </ul> <h3>❤️ Thank You</h3> <ul> <li>Evyatar Daud <a href="https://github.com/StyleShit"><code>@StyleShit</code></a></li> <li>Hugo <a href="https://github.com/hugop95"><code>@hugop95</code></a></li> <li>Josh Goldberg ✨</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md">typescript-eslint's changelog</a>.</em></p> <blockquote> <h2>8.69.0 (2026-08-31)</h2> <p>This was a version bump only for typescript-eslint to align it with other projects, there were no code changes.</p> <p>See <a href="https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.69.0">GitHub Releases</a> for more information.</p> <p>You can read about our <a href="https://typescript-eslint.io/users/versioning">versioning strategy</a> and <a href="https://typescript-eslint.io/users/releases">releases</a> on our website.</p> <h2>8.68.0 (2026-08-24)</h2> <p>This was a version bump only for typescript-eslint to align it with other projects, there were no code changes.</p> <p>See <a href="https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.68.0">GitHub Releases</a> for more information.</p> <p>You can read about our <a href="https://typescript-eslint.io/users/versioning">versioning strategy</a> and <a href="https://typescript-eslint.io/users/releases">releases</a> on our website.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/typescript-eslint/typescript-eslint/commit/9a6e546823e5d8f2dc015df2aa66c0230615e209"><code>9a6e546</code></a> chore(release): publish 8.69.0</li> <li><a href="https://github.com/typescript-eslint/typescript-eslint/commit/8f4e00a4e8f3bdf93a5e5e8bc568ba1c15a4f896"><code>8f4e00a</code></a> chore(release): publish 8.68.0</li> <li><a href="https://github.com/typescript-eslint/typescript-eslint/commit/55f6d5d4ca39d2fab93db97ced497b956017878d"><code>55f6d5d</code></a> chore: enable source maps (<a href="https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint/issues/12677">#12677</a>)</li> <li>See full diff in <a href="https://github.com/typescript-eslint/typescript-eslint/commits/v8.69.0/packages/typescript-eslint">compare view</a></li> </ul> </details> <br /> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Natasha Gorshunova <47688881+nattallius@users.noreply.github.com>
…5562d` (ChromeDevTools#2700) Bumps [third_party/devtools-frontend](https://github.com/ChromeDevTools/devtools-frontend) from `d1a4fbf` to `2a5562d`. <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/ChromeDevTools/devtools-frontend/commit/2a5562dea4bfa759c15700d2311fc623c1b684d1"><code>2a5562d</code></a> Fix flaky test in front_end/panels/application/WebMCPView.test.ts</li> <li><a href="https://github.com/ChromeDevTools/devtools-frontend/commit/b44678065f0b07b07b35f8d111e3272500c6318c"><code>b446780</code></a> [position-area] Allow configuring axis mode and self bit in the editor</li> <li><a href="https://github.com/ChromeDevTools/devtools-frontend/commit/e751f983c9a47b34c8ea59a68e16cb053bcc259b"><code>e751f98</code></a> Timeline: Clean up track appender tests and assertions</li> <li><a href="https://github.com/ChromeDevTools/devtools-frontend/commit/49fe11a1e9191ca6a3ee854af69a57f91f3b76e7"><code>49fe11a</code></a> Testing: Migrate NetworkDataGridNode unit tests to NetworkRequestHelpers</li> <li><a href="https://github.com/ChromeDevTools/devtools-frontend/commit/27d82ddc7c925a2ed7a0b5a18a1574c98efff2b6"><code>27d82dd</code></a> Testing: Migrate Network headers and item views to NetworkRequestHelpers</li> <li><a href="https://github.com/ChromeDevTools/devtools-frontend/commit/5d3299c13092010a391fa50fae0f8589a501ace5"><code>5d3299c</code></a> Timeline: Clean up and optimize timeline panel test suites</li> <li><a href="https://github.com/ChromeDevTools/devtools-frontend/commit/c1bbd5816b1335e4fd6165b6740971b7fd6a0124"><code>c1bbd58</code></a> Parse initial_url from task.textproto in AI eval helpers</li> <li><a href="https://github.com/ChromeDevTools/devtools-frontend/commit/d13fdbd416b5d3ab3d185910e1550461fdef0dae"><code>d13fdbd</code></a> Add wrap-reverse to the flexbox editor's flex-wrap options</li> <li><a href="https://github.com/ChromeDevTools/devtools-frontend/commit/93d8a052f677cb46e6e52446e19368d725367408"><code>93d8a05</code></a> Add helpers to launch eval base apps</li> <li><a href="https://github.com/ChromeDevTools/devtools-frontend/commit/d75f2201f3c10c495a7ecd9015567c8d7383bbb9"><code>d75f220</code></a> Add Phase 1 run_started initialization and commit marker</li> <li>Additional commits viewable in <a href="https://github.com/ChromeDevTools/devtools-frontend/compare/d1a4fbfd673fecf19981c27b3a461f9881eebe8e...2a5562dea4bfa759c15700d2311fc623c1b684d1">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 this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
This is part 1 of stacked PRs for DevTools comments support. Adds the hidden CLI flag `devtoolsComments` to feature-gate all new DevTools comment tools.
…hromeDevTools#2693) This is part 2 of stacked PRs for DevTools comments support. Defines the `open_devtools`, `get_devtools_comments`, `resolve_devtools_comment`, and `reveal_in_devtools` tools with complete schemas, categories, and descriptions, throwing `Not implemented` until implemented. Gated behind the hidden flag `devtoolsComments`. ### Stack 1. ChromeDevTools#2692 chore: add hidden devtoolsComments flag 2. **#this PR**: chore: add comments and open_devtools tools without implementation 3. chore: implement bridge and DevTools comments tools
… tests to McpPage (ChromeDevTools#2698) This PR migrates tests in `tests/tools/snapshot.test.ts` to mock-based unit tests using the established Sinon mock infrastructure and relocates the real-browser integration tests to `tests/McpPage.test.ts`. ### Summary - References ChromeDevTools#2639 (item 1). - Follow-up building on ChromeDevTools#2641, ChromeDevTools#2665, and ChromeDevTools#2683. - Relocated the 6 real-browser `waitFor` integration tests to a dedicated `waitForTextOnPage()` suite in `tests/McpPage.test.ts` to directly cover the `mcpPage.waitForTextOnPage` method. - Converted all tool handler tests in `tests/tools/snapshot.test.ts` (`take_snapshot` and `wait_for`) to mock unit tests using `createHandlerMocks()`, completely removing `withMcpContext` from the file. - Asserted exact method calls on `response` and `page` using `sinon.assert.calledOnceWithExactly()`. - Maintained `afterEach(() => sinon.restore())` cleanup per `AGENTS.md`. ### Verification - `npm run test tests/tools/snapshot.test.ts` (4 passed, 0 failed, exit code: 0) - `npm run test tests/McpPage.test.ts` (39 passed, 0 failed, exit code: 0) - `npm run check-format` (exit code: 0) - `npm run docs:generate` (exit code: 0) - `git status` (clean working tree, exit code: 0)
) This is part 3 of stacked PRs for DevTools comments support. Implements `DevToolsCommentBridge`, `McpPage` and `McpContext` bridge integration, full handlers for comment tools. ### Stack 1. ChromeDevTools#2692 chore: add hidden devtoolsComments flag 2. ChromeDevTools#2693 chore: add comments and open_devtools tools without implementation 3. **#this PR**: chore: implement bridge and DevTools comments tools 4. Skill PR
…2705) The state file is now loaded into memory and stored within ClearcutLogger. At each tool call it checks whether it's been more than one day since the recorded value in the state file, and if so, log the last tool active, and update the state file. Regarding the state file's format, lastToolCall is not exactly the very last one, but rather the last one that was **logged**. This is the same with the existing lastActive timestamp (i.e. it's not the last timestamp when the server is active, but rather the last timestamp when the active status is logged). So here we keep the definitions consistent. A caveat for future improvement: arguably the loadState() and writeState() and everything in between should be a atomic unit (there might be multiple mcp servers running), but I think it's probably good enough for now. If we see weirdness we can make that happen. I also added format guards to loadState() so we don't have to try and catch everywhere else when de-serializing the string. We should actually just deserialize in loadState() but let me do this in a follow-up CL.
Add the CssFormatter class which will be used to format CSS styles (returned by getMatchedStyles) into structured JSON and text representations This PR adds support for inline styles, attributes, animations and transitions Co-authored-by: Samiya Caur <samiyac@chromium.org>
…6645d` (ChromeDevTools#2712) Bumps [third_party/devtools-frontend](https://github.com/ChromeDevTools/devtools-frontend) from `2a5562d` to `9b6645d`. Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [hono](https://github.com/honojs/hono) from 4.13.1 to 4.13.7. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/honojs/hono/releases">hono's releases</a>.</em></p> <blockquote> <h2>v4.13.7</h2> <h2>Security fixes</h2> <p>This release includes a fix for the following security issue:</p> <h3><code>hono/jsx</code> renders plain strings unescaped in boundary components, leading to XSS</h3> <p>Affects: <code>Suspense</code>, <code>ErrorBoundary</code>, and <code>Context.Provider</code> in <code>hono/jsx</code>, and <code>renderToString()</code> / <code>renderToReadableStream()</code> in <code>hono/jsx/dom/server</code>. Fixes missing HTML escaping for a plain string placed directly as a child or <code>fallback</code> of these components, or as the root value of the server rendering functions, so untrusted strings could be emitted as markup. GHSA-hxh3-vqpv-xpqv</p> <hr /> <p>Users who render untrusted strings inside <code>Suspense</code>, <code>ErrorBoundary</code>, or <code>Context.Provider</code>, or pass them directly to <code>hono/jsx/dom/server</code>, are strongly encouraged to upgrade to this version.</p> <h2>v4.13.6</h2> <h2>What's Changed</h2> <ul> <li>fix(client): keep a param value of "index" in $url() and $path() in <a href="https://redirect.github.com/honojs/hono/pull/5297">honojs/hono#5297</a></li> <li>fix(client): normalize root WebSocket URLs in <a href="https://redirect.github.com/honojs/hono/pull/5291">honojs/hono#5291</a></li> <li>fix(types): allow symbol keys in Context<!-- raw HTML omitted --> get and set fallbacks in <a href="https://redirect.github.com/honojs/hono/pull/5300">honojs/hono#5300</a></li> <li>chore: bump <code>editorconfig-checker</code> in <a href="https://redirect.github.com/honojs/hono/pull/5336">honojs/hono#5336</a></li> <li>refactor(on-handler): use forEach for consistent handler iteration in <a href="https://redirect.github.com/honojs/hono/pull/5326">honojs/hono#5326</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/honojs/hono/compare/v4.13.5...v4.13.6">https://github.com/honojs/hono/compare/v4.13.5...v4.13.6</a></p> <h2>v4.13.5</h2> <h2>Security fixes</h2> <p>This release includes fixes for the following security issues:</p> <h3>Query parser reads parameters after the URL fragment, causing cache-key and proxy interpretation differentials</h3> <p>Affects: Cache Middleware and applications behind a proxy, WAF, or logging layer that inspects query strings. Fixes query parsing that did not stop at the URL fragment, so a <code>?</code> after a <code>#</code> was treated as the start of a query string and the application could read parameters that the other component never saw. GHSA-crvj-82cr-hjcx</p> <h3>Incomplete fix for CVE-2026-39408: <code>toSSG()</code> still writes files outside the output directory</h3> <p>Affects: <code>toSSG()</code> for Static Site Generation. Fixes a path normalization gap where consecutive parent-directory segments in <code>ssgParams</code> values were not fully collapsed, bypassing the containment check added in 4.12.12. GHSA-gqvv-2mrq-wpjv</p> <h3>Unbounded dot-notation nesting in <code>parseBody()</code> can cause memory exhaustion</h3> <p>Affects: <code>parseBody()</code> when dot-notation parsing is enabled. Fixes unbounded expansion of dot-separated field names, where a small request body could allocate a disproportionately large object graph and concurrent requests could exhaust the heap. GHSA-g6gw-c38x-mqfc</p> <hr /> <p>Users who use Cache Middleware, deploy behind a proxy or WAF that inspects query strings, use Static Site Generation, or use <code>parseBody({ dot: true })</code> are strongly encouraged to upgrade to this version.</p> <h2>v4.13.4</h2> <h2>What's Changed</h2> <ul> <li>fix(request): handle params on unmatched requests in <a href="https://redirect.github.com/honojs/hono/pull/5268">honojs/hono#5268</a></li> <li>fix(jsx/dom): execute previous ref cleanup when ref prop changes on re-render in <a href="https://redirect.github.com/honojs/hono/pull/5264">honojs/hono#5264</a></li> <li>fix(reg-exp-router): associate wildcard middleware with matching routes in <a href="https://redirect.github.com/honojs/hono/pull/5266">honojs/hono#5266</a></li> <li>perf(router): share null object creation in <a href="https://redirect.github.com/honojs/hono/pull/5267">honojs/hono#5267</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/honojs/hono/commit/eebdf7be39abf0a872671835ccce0c4f03ea497a"><code>eebdf7b</code></a> 4.13.7</li> <li><a href="https://github.com/honojs/hono/commit/2b8ed402cdab6dfc5e829b480806dcd8db94161e"><code>2b8ed40</code></a> Merge commit from fork</li> <li><a href="https://github.com/honojs/hono/commit/cac0c4d3fe29aca4e426031067cbbb3b9131e30c"><code>cac0c4d</code></a> 4.13.6</li> <li><a href="https://github.com/honojs/hono/commit/dac5d5794c6134711e469c5e69d09cd6274e1fc1"><code>dac5d57</code></a> refactor(on-handler): use forEach for consistent handler iteration (<a href="https://redirect.github.com/honojs/hono/issues/5326">#5326</a>)</li> <li><a href="https://github.com/honojs/hono/commit/ec648d683768ec5093315e5dc694c05594fec185"><code>ec648d6</code></a> chore: bump <code>editorconfig-checker</code> (<a href="https://redirect.github.com/honojs/hono/issues/5336">#5336</a>)</li> <li><a href="https://github.com/honojs/hono/commit/e2740d5a1bd0b4254e517e3af8b60789284bc7bd"><code>e2740d5</code></a> fix(types): allow symbol keys in Context<any> get and set fallbacks (<a href="https://redirect.github.com/honojs/hono/issues/5300">#5300</a>)</li> <li><a href="https://github.com/honojs/hono/commit/499c35ebda35777fd35a7dd1906dd4f2687da61e"><code>499c35e</code></a> fix(client): normalize root WebSocket URLs (<a href="https://redirect.github.com/honojs/hono/issues/5291">#5291</a>)</li> <li><a href="https://github.com/honojs/hono/commit/50b8788cf54cb60112b7cd93642bc5094901475c"><code>50b8788</code></a> fix(client): keep a param value of "index" in $url() and $path() (<a href="https://redirect.github.com/honojs/hono/issues/5297">#5297</a>)</li> <li><a href="https://github.com/honojs/hono/commit/06880c4a2b04de9dd74217f26dd831209b9c01f1"><code>06880c4</code></a> 4.13.5</li> <li><a href="https://github.com/honojs/hono/commit/531e9c5a3ae058d10de33f643055bd4009a87178"><code>531e9c5</code></a> Merge commit from fork</li> <li>Additional commits viewable in <a href="https://github.com/honojs/hono/compare/v4.13.1...v4.13.7">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/ChromeDevTools/chrome-devtools-mcp/network/alerts). </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…eDevTools#2676) Fixes ChromeDevTools#2650 Alternative to ChromeDevTools#2655: that PR is currently failing all CI checks and its diff reverts the `background` support added in ChromeDevTools#2658. This implementation is based on the latest `main` and keeps that feature intact.
…#2713) Updates CssFormatter class to support matched CSS rules It also adds formatting for ancestor rules, including `@media`, `@supports`, `@layer`, `@container`, `@scope`, `@starting-style`, and nested styles Co-authored-by: Samiya Caur <samiyac@chromium.org>
…ls#2715) Adds support for inherited CSS rules in CssFormatter, resolving parent DOM element details and selectors for inherited declarations Co-authored-by: Samiya Caur <samiyac@chromium.org>
…s#2716) Adds support for direct and inherited pseudo-element rules in CssFormatter. It also implements inheritance filtering specific to pseudo-elements. Co-authored-by: Samiya Caur <samiyac@chromium.org>
…er parse (ChromeDevTools#2720) ## Rationale DevTools' `TraceEngine.TraceModel.Model` permanently retains parsed traces in an internal recordings array (`#traces`). Calling `engine.resetProcessor()` between runs only resets the underlying processor and does not clear `#traces`. Because `engine` was previously instantiated as a module-scoped singleton, every performance trace recorded or parsed in a session remained permanently held in heap memory for the lifetime of the process. ## Changes - In `src/processors/PerformanceTrace.ts`, instantiate `DevTools.TraceEngine.TraceModel.Model.createWithAllHandlers()` per invocation of `parseRawTraceBuffer()`. - Remove the module-scoped `engine` singleton and the obsolete `engine.resetProcessor()` call. - Add a unit test in `tests/trace-processing/parse.test.ts` verifying that consecutive trace parses construct isolated `Model` instances and keep internal trace retention bounded at 1. - Add a profiling regression scenario in `scripts/profile/scenarios/performance_trace.ts` to guard against memory retention across consecutive traces during `npm run test:memory`.
…ertyRule, FunctionRule (ChromeDevTools#2717) Adds formatting support for modern CSS at-rules Co-authored-by: Samiya Caur <samiyac@chromium.org>
Adds `@keyframes` animation rule support to CssFormatter, parsing individual animation steps and their styled properties. Co-authored-by: Samiya Caur <samiyac@chromium.org>
This PR migrates the mock-eligible test in `tests/tools/extensions.test.ts` from a real-browser test (`withMcpContext`) to a mock-based unit test using the established Sinon mock infrastructure. ### Architectural Principle (Category 1 vs. Category 2 Split) This PR continues issue ChromeDevTools#2639 (item 1), applying the core architectural separation of concerns established across ChromeDevTools#2641, ChromeDevTools#2665, ChromeDevTools#2683, and ChromeDevTools#2698: - **Category 1 (Handler wiring & response verification -> Mock unit tests)**: Tests that only verify tool parameter parsing and response manipulation should not launch real browsers. Launching Chrome just to assert that a tool invoked `response.setListExtensions()` introduces unnecessary startup latency and lifecycle flakiness without providing real integration coverage. These are converted to deterministic unit tests using `createHandlerMocks()`. - **Category 2 (Genuine browser, extension, and protocol behavior -> Retained real-browser tests)**: Tests that depend on genuine browser mechanics must remain in `withMcpContext`. Mocking them would require simulating Chrome's internal extension loader, V8 script execution, or Puppeteer's target lifecycle inside mocks, creating brittle and artificial tests that do not validate real behavior. ### Summary of Changes - **Converted to mocks (Category 1)**: - `lists installed extensions`: Converted to `createHandlerMocks()`. Asserts `response.setListExtensions` was invoked with `sinon.assert.calledOnceWithExactly(response.setListExtensions)`. - **Intentionally retained as real-browser tests (Category 2)**: - `installs and uninstalls an extension and verifies it in chrome://extensions`: Genuinely installs an unpacked extension into Chrome and verifies real extension lifecycle and management. - `reloads an extension`: Verifies Chrome's live extension reload mechanics and registry reappearance. - `triggers an extension action`: Validates asynchronous Puppeteer `Target` creation when an extension action fires. - `verifies that content script console logs are received`: Tests real content script execution in a live navigated page and CDP console capture. ### Verification - `powershell -Command "Remove-Item -Recurse -Force build -ErrorAction SilentlyContinue"; npm run build` (exit code: 0) - `node scripts/test.js tests/tools/extensions.test.ts` (6 passed, 0 failed, exit code: 0) - `npm run check-format` (exit code: 0) - `npm run docs:generate` (exit code: 0) - `git status` (clean working tree, exit code: 0)
Add `get_css_styles` tool which exposes matched styles and the CSS cascade to empower accurate CSS debugging workflows. It integrates `CssFormatter` into `McpPage` and `McpResponse`, adding container query resolution and rule pagination support. Co-authored-by: Samiya Caur <samiyac@chromium.org>
) Fixes ChromeDevTools#2666. This keeps the symlink-specific `resolveCanonicalPath` coverage on hosts that can create symbolic links. When Windows rejects `fs.symlink` with `EPERM` or `EACCES`, only that case is marked skipped; non-symlink cases and unexpected errors still run or fail normally. Tests: - `npm test -- tests/utils/files.test.ts` (3 passed, 4 skipped on Windows without symlink privileges) - `npm test -- tests/McpContext.test.ts` - `npm test` - `npm run check-format` - `git diff --check` --------- Co-authored-by: Natasha Gorshunova <47688881+nattallius@users.noreply.github.com>
…evTools#2725) Ref: ChromeDevTools#2639 Prior PRs: ChromeDevTools#2641, ChromeDevTools#2665, ChromeDevTools#2683, ChromeDevTools#2698, ChromeDevTools#2704 ### Rationale Unlike tools whose core logic is delegated to \McpPage\ or \McpContext\, Lighthouse's audit execution and report generation live directly inside \src/tools/lighthouse.ts\. As noted by @OrKoN, tests verifying genuine Lighthouse audit behavior must stay as real-browser e2e tests because there is no lower-level class to isolate them against. Incidental side-effects owned by another class—specifically \ estores emulation\, which tests \McpPage.restoreEmulation()\—are converted to mock-based unit tests to verify handler wiring, while real behavior coverage is relocated to \ ests/McpPage.test.ts\. ### Test Classification in \ ests/tools/lighthouse.test.ts\ - **\ uns Lighthouse audit by default (navigation, desktop)\** — **Stays Real**: Tests genuine Lighthouse navigation audit, score summary, report generation (JSON & HTML), and filesystem writes. - **\ estores emulation\** — **Converted to Mocks**: Verifies handler calls \page.restoreEmulation()\ in its \ inally\ block; real behavior is relocated to \ ests/McpPage.test.ts\. - **\ estores emulation even when audit fails\** — **New Unit Test**: Verifies handler reliably calls \page.restoreEmulation()\ even if the audit operation rejects. - **\ uns Lighthouse in snapshot mode with mobile device\** — **Stays Real**: Tests genuine Lighthouse snapshot audit execution and mobile device emulation settings. - **\ uns Lighthouse with custom output dir\** — **Stays Real**: Tests genuine report generation and file persistence with a custom output directory. ### Key Changes - **\src/third_party/index.ts\**: Exported \lighthouseRunner = {snapshot, navigation}\ (and kept individual exports for backward compatibility). - **\src/tools/lighthouse.ts\**: Imported \lighthouseRunner\ from \../third_party/index.js\ and updated handler to invoke \lighthouseRunner.navigation(...)\ / \lighthouseRunner.snapshot(...)\. - **\ ests/tools/lighthouse.test.ts\**: Converted \ estores emulation\ to use \createHandlerMocks()\, stubbing \sinon.stub(lighthouseRunner, 'snapshot')\; added \�fterEach(() => sinon.restore())\. - **\ ests/McpPage.test.ts\**: Added dedicated \describe('restoreEmulation()', ...)\ suite testing that \ estoreEmulation()\ restores viewport, network conditions, and CPU throttling settings on the underlying Puppeteer page. - **\ ests/mocks.ts\**: Added \createMockRunnerResult()\ factory returning a minimal, type-safe \RunnerResult\.
…7509a` (ChromeDevTools#2724) Bumps [third_party/devtools-frontend](https://github.com/ChromeDevTools/devtools-frontend) from `9b6645d` to `717509a`. Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Natasha Gorshunova <47688881+nattallius@users.noreply.github.com> Co-authored-by: Natallia Harshunova <nattallius@gmail.com>
## Summary - Serialize `chrome-devtools start` arguments against the CLI defaults. - Preserve explicit false values such as `--headless=false` as `--no-headless`. - Add an end-to-end regression test for the forwarded daemon arguments. ## Problem The CLI defaults `headless` to true while the MCP server defaults it to false. The start command parsed an explicit false value correctly, but then serialized it against the server defaults. Because false matched the server default, the argument was dropped. The daemon subsequently reparsed the missing option in CLI mode and restored `headless=true`. Using the CLI option definitions for serialization keeps the default compact while forwarding explicit values that differ from the CLI default. ## Testing - `npm run test tests/e2e/chrome-devtools-start-stop.test.ts` - `npm run format` - `npm run test` (all relevant tests passed; the local full-suite run only failed the unrelated large full-page screenshot case because Chrome returned `Page is too large`) Co-authored-by: Natasha Gorshunova <47688881+nattallius@users.noreply.github.com>
PR #31 was squash-merged, which dropped the merge's second parent and refroze the merge base at the old fork point. The tree on main already contains all of upstream v1.9.0, but GitHub still reports "64 commits behind" because upstream/main is no longer an ancestor. This is an ancestry-only merge: `-s ours` keeps main's tree byte-identical and records upstream/main (d9a8cb6) as the second parent, so the fork reads as 0 commits behind again. Merge this with a merge commit — squashing it would drop the second parent and reintroduce the exact problem it fixes. Co-Authored-By: Claude <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
PR #31 was squash-merged, which dropped the merge's second parent and refroze the merge base at the old fork point.
main's tree already contains all of upstream v1.9.0, but GitHub reports "33 commits ahead of and 64 commits behind" becauseupstream/mainis no longer an ancestor.Caution
Merge this with "Create a merge commit" — squashing it drops the second parent and reintroduces the exact problem it fixes. Merge commits are enabled on this repo; squash is just the default button.
What this is
An ancestry-only merge.
git merge -s ours upstream/mainkeepsmain's tree byte-identical and only recordsupstream/main(d9a8cb6e) as the second parent.git diff main HEAD→ empty. No file changes, no version change, nothing to review.5b034dc2(main) +d9a8cb6e(upstream tip).Result
mainnowRebasing would not fix this — the tree is already correct; what's missing is the ancestry link, and only a commit with upstream's tip as a parent restores it.
🤖 Generated with Claude Code