提交

提交图

601 次代码提交

作者 SHA1 备注 提交日期
Alex Rudenko f3ac1edc12 chore: cli 2026-03-02 14:49:39 +01:00
Alex Rudenko e51ba47203 fix: simplify emulation and script tools (#1073)
- reduces the token usage.
- makes emulation and script compatible with CLI.
- documents .nullable() and .object() restrictions for the future.
- the emulation tools do not have nullable anymore and undefined would
clear the emulation instead. The model is thus required to provide all
emulation settings at once.

Closes https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/918
2026-03-02 13:31:55 +00:00
Alex Rudenko 35980fda16 chore: Enable blank issues in issue template configuration (#1074)
unable to create tasks
2026-03-02 14:23:42 +01:00
dependabot[bot] 5ecc6e274f chore(deps-dev): bump the dev-dependencies group with 6 updates (#1066)
Bumps the dev-dependencies group with 6 updates:

| Package | From | To |
| --- | --- | --- |
| [@google/genai](https://github.com/googleapis/js-genai) | `1.42.0` |
`1.43.0` |
|
[@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)
| `25.3.0` | `25.3.3` |
|
[@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin)
| `8.56.0` | `8.56.1` |
|
[@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser)
| `8.56.0` | `8.56.1` |
| [lighthouse](https://github.com/GoogleChrome/lighthouse) | `13.0.2` |
`13.0.3` |
|
[typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint)
| `8.56.0` | `8.56.1` |

Updates `@google/genai` from 1.42.0 to 1.43.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/googleapis/js-genai/releases"><code>@​google/genai</code>'s
releases</a>.</em></p>
<blockquote>
<h2>v1.43.0</h2>
<h2><a
href="https://github.com/googleapis/js-genai/compare/v1.42.0...v1.43.0">1.43.0</a>
(2026-02-26)</h2>
<h3>Features</h3>
<ul>
<li>Add gemini-3.1-pro-preview to list of models in Interactions (<a
href="https://github.com/googleapis/js-genai/commit/14775fefb814c21d8f34b776935b72d7f20896bd">14775fe</a>)</li>
<li>Add Image Grounding support to GoogleSearch tool (<a
href="https://github.com/googleapis/js-genai/commit/9187ca748b9de10037134e34e4da8ca06f0d2696">9187ca7</a>)</li>
<li>enable server side MCP and disable all other AFC when server side
MCP is configured. (<a
href="https://github.com/googleapis/js-genai/commit/c7888c4aec34b7f86983ea0c55c499c1f8d089c2">c7888c4</a>)</li>
<li>Support more image sizes and resolutions (<a
href="https://github.com/googleapis/js-genai/commit/54f41457984fc451e659ab594086bc462486e9d0">54f4145</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>change interactions media mime type to enum (breaking change for
experimental feature) (<a
href="https://github.com/googleapis/js-genai/commit/7c2d5b29b8e7d2a146ec1a117ccef4fe13b4362e">7c2d5b2</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/googleapis/js-genai/blob/main/CHANGELOG.md"><code>@​google/genai</code>'s
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/googleapis/js-genai/compare/v1.42.0...v1.43.0">1.43.0</a>
(2026-02-26)</h2>
<h3>Features</h3>
<ul>
<li>Add gemini-3.1-pro-preview to list of models in Interactions (<a
href="https://github.com/googleapis/js-genai/commit/14775fefb814c21d8f34b776935b72d7f20896bd">14775fe</a>)</li>
<li>Add Image Grounding support to GoogleSearch tool (<a
href="https://github.com/googleapis/js-genai/commit/9187ca748b9de10037134e34e4da8ca06f0d2696">9187ca7</a>)</li>
<li>enable server side MCP and disable all other AFC when server side
MCP is configured. (<a
href="https://github.com/googleapis/js-genai/commit/c7888c4aec34b7f86983ea0c55c499c1f8d089c2">c7888c4</a>)</li>
<li>Support more image sizes and resolutions (<a
href="https://github.com/googleapis/js-genai/commit/54f41457984fc451e659ab594086bc462486e9d0">54f4145</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>change interactions media mime type to enum (breaking change for
experimental feature) (<a
href="https://github.com/googleapis/js-genai/commit/7c2d5b29b8e7d2a146ec1a117ccef4fe13b4362e">7c2d5b2</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/googleapis/js-genai/commit/673129ee4f9160016aeded92f09a6b9f357001ca"><code>673129e</code></a>
chore(main): release 1.43.0 (<a
href="https://redirect.github.com/googleapis/js-genai/issues/1341">#1341</a>)</li>
<li><a
href="https://github.com/googleapis/js-genai/commit/a5a1399665bec360a908d4e03789c5d9cc237510"><code>a5a1399</code></a>
chore: update InteractionCompleteEvent comment</li>
<li><a
href="https://github.com/googleapis/js-genai/commit/9187ca748b9de10037134e34e4da8ca06f0d2696"><code>9187ca7</code></a>
feat: Add Image Grounding support to GoogleSearch tool</li>
<li><a
href="https://github.com/googleapis/js-genai/commit/2247f1846289d721db3ed28b0022edebdc2f7e9c"><code>2247f18</code></a>
chore: pull in change merged outside</li>
<li><a
href="https://github.com/googleapis/js-genai/commit/54f41457984fc451e659ab594086bc462486e9d0"><code>54f4145</code></a>
feat: Support more image sizes and resolutions</li>
<li><a
href="https://github.com/googleapis/js-genai/commit/bafdfc52970df457b277be63a54c045841e2f95f"><code>bafdfc5</code></a>
chore: Support API-mode multi-step integration tests for the JavaScript
GenAI...</li>
<li><a
href="https://github.com/googleapis/js-genai/commit/13549a22dd8c7f497a546235199ff91d320f0259"><code>13549a2</code></a>
chore: Update comments</li>
<li><a
href="https://github.com/googleapis/js-genai/commit/a013ffa153fa9a6ae01c41c7e72517939307794c"><code>a013ffa</code></a>
chore: Internal Cleanup</li>
<li><a
href="https://github.com/googleapis/js-genai/commit/0a0c485b495ec5bfffd79fee3412dac2e334d316"><code>0a0c485</code></a>
chore: Mark Interaction fields as required</li>
<li><a
href="https://github.com/googleapis/js-genai/commit/7c2d5b29b8e7d2a146ec1a117ccef4fe13b4362e"><code>7c2d5b2</code></a>
fix: change interactions media mime type to enum (breaking change for
experim...</li>
<li>Additional commits viewable in <a
href="https://github.com/googleapis/js-genai/compare/v1.42.0...v1.43.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `@types/node` from 25.3.0 to 25.3.3
<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.56.0 to 8.56.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/typescript-eslint/typescript-eslint/releases"><code>@​typescript-eslint/eslint-plugin</code>'s
releases</a>.</em></p>
<blockquote>
<h2>v8.56.1</h2>
<h2>8.56.1 (2026-02-23)</h2>
<h2>What's Changed</h2>
<ul>
<li>chore(deps): update dependency minimatch to v10.2.2 by <a
href="https://github.com/benmccann"><code>@​benmccann</code></a> in <a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12074">typescript-eslint/typescript-eslint#12074</a></li>
</ul>
<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"><code>@​typescript-eslint/eslint-plugin</code>'s
changelog</a>.</em></p>
<blockquote>
<h2>8.56.1 (2026-02-23)</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.56.1">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/96a04a97454cf6b6ae8366711c09333bf6e2327a"><code>96a04a9</code></a>
chore(release): publish 8.56.1</li>
<li><a
href="https://github.com/typescript-eslint/typescript-eslint/commit/958f390c8c5b136e6f095f9230ba301fc1db00e9"><code>958f390</code></a>
chore(eslint-plugin): add default excludes to vitest (<a
href="https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin/issues/12067">#12067</a>)</li>
<li><a
href="https://github.com/typescript-eslint/typescript-eslint/commit/ffb46eaa41a7c8a831dc09f0ed726dd4cc06ea4f"><code>ffb46ea</code></a>
docs(eslint-plugin): [method-signature-style] clarify autofix impact on
type ...</li>
<li>See full diff in <a
href="https://github.com/typescript-eslint/typescript-eslint/commits/v8.56.1/packages/eslint-plugin">compare
view</a></li>
</ul>
</details>
<br />

Updates `@typescript-eslint/parser` from 8.56.0 to 8.56.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/typescript-eslint/typescript-eslint/releases"><code>@​typescript-eslint/parser</code>'s
releases</a>.</em></p>
<blockquote>
<h2>v8.56.1</h2>
<h2>8.56.1 (2026-02-23)</h2>
<h2>What's Changed</h2>
<ul>
<li>chore(deps): update dependency minimatch to v10.2.2 by <a
href="https://github.com/benmccann"><code>@​benmccann</code></a> in <a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12074">typescript-eslint/typescript-eslint#12074</a></li>
</ul>
<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"><code>@​typescript-eslint/parser</code>'s
changelog</a>.</em></p>
<blockquote>
<h2>8.56.1 (2026-02-23)</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.56.1">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/96a04a97454cf6b6ae8366711c09333bf6e2327a"><code>96a04a9</code></a>
chore(release): publish 8.56.1</li>
<li>See full diff in <a
href="https://github.com/typescript-eslint/typescript-eslint/commits/v8.56.1/packages/parser">compare
view</a></li>
</ul>
</details>
<br />

Updates `lighthouse` from 13.0.2 to 13.0.3
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/GoogleChrome/lighthouse/releases">lighthouse's
releases</a>.</em></p>
<blockquote>
<h2>v13.0.3</h2>
<p>Fixes npm package publish of 13.0.2. Refer to <a
href="https://github.com/GoogleChrome/lighthouse/releases/tag/v13.0.2">https://github.com/GoogleChrome/lighthouse/releases/tag/v13.0.2</a>
for actual changes.</p>
<p>We expect this release to ship in the DevTools of <a
href="https://chromiumdash.appspot.com/schedule">Chrome 146</a>, and to
PageSpeed Insights within 2 weeks.</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/GoogleChrome/lighthouse/blob/main/changelog.md">lighthouse's
changelog</a>.</em></p>
<blockquote>
<h1>13.0.3 (2026-02-11)</h1>
<p>Fix npm package publish of 13.0.2. Refer to <a
href="https://github.com/GoogleChrome/lighthouse/releases/tag/v13.0.2">https://github.com/GoogleChrome/lighthouse/releases/tag/v13.0.2</a>.</p>
<p>We expect this release to ship in the DevTools of <a
href="https://chromiumdash.appspot.com/schedule">Chrome 146</a>, and to
PageSpeed Insights within 2 weeks.</p>
<p><!-- raw HTML omitted --><!-- raw HTML omitted --></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/GoogleChrome/lighthouse/commit/cfef2a74ed02239be6c6e81cfb447fb5f8512176"><code>cfef2a7</code></a>
v13.0.3 (<a
href="https://redirect.github.com/GoogleChrome/lighthouse/issues/16881">#16881</a>)</li>
<li>See full diff in <a
href="https://github.com/GoogleChrome/lighthouse/compare/v13.0.2...v13.0.3">compare
view</a></li>
</ul>
</details>
<br />

Updates `typescript-eslint` from 8.56.0 to 8.56.1
<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.56.1</h2>
<h2>8.56.1 (2026-02-23)</h2>
<h2>What's Changed</h2>
<ul>
<li>chore(deps): update dependency minimatch to v10.2.2 by <a
href="https://github.com/benmccann"><code>@​benmccann</code></a> in <a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12074">typescript-eslint/typescript-eslint#12074</a></li>
</ul>
<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.56.1 (2026-02-23)</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.56.1">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/96a04a97454cf6b6ae8366711c09333bf6e2327a"><code>96a04a9</code></a>
chore(release): publish 8.56.1</li>
<li>See full diff in <a
href="https://github.com/typescript-eslint/typescript-eslint/commits/v8.56.1/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>
2026-03-02 08:14:28 +00:00
dependabot[bot] 652d1da6f4 chore(deps-dev): bump chrome-devtools-frontend from 1.0.1587572 to 1.0.1591204 in the bundled-devtools group (#1067)
Bumps the bundled-devtools group with 1 update:
[chrome-devtools-frontend](https://github.com/ChromeDevTools/devtools-frontend).

Updates `chrome-devtools-frontend` from 1.0.1587572 to 1.0.1591204
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/e27f62c91b96b3f59a6322ee587f80bfa2d9ed96"><code>e27f62c</code></a>
Update DevTools DEPS (trusted)</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/c804bd56a0e5089b60ad36855f181564fa114789"><code>c804bd5</code></a>
Fix display of compressed request bodies in Network panel</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/d18b4e4910cbfd42272e85e529e94e4d5674021e"><code>d18b4e4</code></a>
AI: fix missing jslog context values</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/dc2b4fe3565f05fde49b65393c8f0f88b2d517af"><code>dc2b4fe</code></a>
Disable e2e/sources/ignore-list.test.ts: Ignore list/skips
instrumentation br...</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/5a701434e05d1ce7ba1e49fc69dfd8962331eb9a"><code>5a70143</code></a>
AI: show loading spinner in walkthrough CTA</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/cbd5e68a1af9f6de574623bb77146619b01b8235"><code>cbd5e68</code></a>
DevTools: reland JPEG XL disabled image format emulation</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/9c75755924bdc4bacb0d22591cd3ff39ceb3fa6e"><code>9c75755</code></a>
Roll browser-protocol and CfT</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/889d4d63fdd34e7299247a52a56693d854d60221"><code>889d4d6</code></a>
AI: fix walkthrough tests</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/71e834d06fed082d360942b624937aea36eaf135"><code>71e834d</code></a>
ComputedStyleWidget: allow the filter regexp to be set</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/1bbe315ed5e21182aa018e83b370793a8dbda6c3"><code>1bbe315</code></a>
Roll browser-protocol and CfT</li>
<li>Additional commits viewable in <a
href="https://github.com/ChromeDevTools/devtools-frontend/compare/v1.0.1587572...v1.0.1591204">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=chrome-devtools-frontend&package-manager=npm_and_yarn&previous-version=1.0.1587572&new-version=1.0.1591204)](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>
2026-03-02 08:12:35 +00:00
dependabot[bot] b36f2a76fa chore(deps-dev): bump @modelcontextprotocol/sdk from 1.26.0 to 1.27.1 in the bundled group (#1068)
Bumps the bundled group with 1 update:
[@modelcontextprotocol/sdk](https://github.com/modelcontextprotocol/typescript-sdk).

Updates `@modelcontextprotocol/sdk` from 1.26.0 to 1.27.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/modelcontextprotocol/typescript-sdk/releases"><code>@​modelcontextprotocol/sdk</code>'s
releases</a>.</em></p>
<blockquote>
<h2>v1.27.1</h2>
<h2>What's Changed</h2>
<ul>
<li>feat: implement auth/pre-registration conformance scenario by <a
href="https://github.com/felixweinberger"><code>@​felixweinberger</code></a>
in <a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/1545">modelcontextprotocol/typescript-sdk#1545</a></li>
<li>docs: add governance documentation for SEP-1730 by <a
href="https://github.com/felixweinberger"><code>@​felixweinberger</code></a>
in <a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/1547">modelcontextprotocol/typescript-sdk#1547</a></li>
<li>docs: comprehensive feature documentation for SEP-1730 Tier 1 by <a
href="https://github.com/felixweinberger"><code>@​felixweinberger</code></a>
in <a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/1548">modelcontextprotocol/typescript-sdk#1548</a></li>
<li>fix: prevent command injection in example URL opening (v1.x
backport) by <a
href="https://github.com/maxisbey"><code>@​maxisbey</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/1579">modelcontextprotocol/typescript-sdk#1579</a></li>
<li>fix: call onerror for silently swallowed transport errors by <a
href="https://github.com/qing-ant"><code>@​qing-ant</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/1580">modelcontextprotocol/typescript-sdk#1580</a></li>
<li>chore: bump version to 1.27.1 by <a
href="https://github.com/felixweinberger"><code>@​felixweinberger</code></a>
in <a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/1581">modelcontextprotocol/typescript-sdk#1581</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/qing-ant"><code>@​qing-ant</code></a>
made their first contribution in <a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/1580">modelcontextprotocol/typescript-sdk#1580</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/modelcontextprotocol/typescript-sdk/compare/v1.27.0...v1.27.1">https://github.com/modelcontextprotocol/typescript-sdk/compare/v1.27.0...v1.27.1</a></p>
<h2>v1.27.0</h2>
<h2>What's Changed</h2>
<ul>
<li>feat: add conformance test infrastructure for v1.x by <a
href="https://github.com/felixweinberger"><code>@​felixweinberger</code></a>
in <a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/1518">modelcontextprotocol/typescript-sdk#1518</a></li>
<li>feat: backport discoverOAuthServerInfo() and discovery caching to
v1.x by <a
href="https://github.com/felixweinberger"><code>@​felixweinberger</code></a>
in <a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/1533">modelcontextprotocol/typescript-sdk#1533</a></li>
<li>feat: add url property to RequestInfo interface by <a
href="https://github.com/valentinbeggi"><code>@​valentinbeggi</code></a>
in <a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/1353">modelcontextprotocol/typescript-sdk#1353</a></li>
<li>[v1.x] feat(tasks): add streaming methods for elicitation and
sampling by <a
href="https://github.com/LucaButBoring"><code>@​LucaButBoring</code></a>
in <a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/1528">modelcontextprotocol/typescript-sdk#1528</a></li>
<li>chore: bump version for v1.27.0 by <a
href="https://github.com/felixweinberger"><code>@​felixweinberger</code></a>
in <a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/1541">modelcontextprotocol/typescript-sdk#1541</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/valentinbeggi"><code>@​valentinbeggi</code></a>
made their first contribution in <a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/1353">modelcontextprotocol/typescript-sdk#1353</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/modelcontextprotocol/typescript-sdk/compare/v1.26.0...v1.27.0">https://github.com/modelcontextprotocol/typescript-sdk/compare/v1.26.0...v1.27.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/modelcontextprotocol/typescript-sdk/commit/4faa8c899c069a98f8a0c3f804ec1a50dc2bae64"><code>4faa8c8</code></a>
chore: bump version to 1.27.1 (<a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/issues/1581">#1581</a>)</li>
<li><a
href="https://github.com/modelcontextprotocol/typescript-sdk/commit/09a85a80439f0ca9e5556ac20bdec41461e35234"><code>09a85a8</code></a>
fix: call onerror for silently swallowed transport errors (<a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/issues/1580">#1580</a>)</li>
<li><a
href="https://github.com/modelcontextprotocol/typescript-sdk/commit/e79d14ab6d8fbcb49543cab3917a60a89d0a6df9"><code>e79d14a</code></a>
fix: prevent command injection in example URL opening (v1.x backport)
(<a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/issues/1579">#1579</a>)</li>
<li><a
href="https://github.com/modelcontextprotocol/typescript-sdk/commit/342ea394ca6e660e294162efdeafc411284bcc0d"><code>342ea39</code></a>
docs: comprehensive feature documentation for SEP-1730 Tier 1 (<a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/issues/1548">#1548</a>)</li>
<li><a
href="https://github.com/modelcontextprotocol/typescript-sdk/commit/2084a22074d4c8fd54ddc8637783fb10c13edf90"><code>2084a22</code></a>
docs: add governance documentation for SEP-1730 (<a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/issues/1547">#1547</a>)</li>
<li><a
href="https://github.com/modelcontextprotocol/typescript-sdk/commit/f2d21458ccccd7cfaa1a2a171a262961591d4d0b"><code>f2d2145</code></a>
feat: implement auth/pre-registration conformance scenario (<a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/issues/1545">#1545</a>)</li>
<li><a
href="https://github.com/modelcontextprotocol/typescript-sdk/commit/8cbc65848388cb0364122f5760cb6b01ff8a3654"><code>8cbc658</code></a>
chore: bump version for v1.27.0 (<a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/issues/1541">#1541</a>)</li>
<li><a
href="https://github.com/modelcontextprotocol/typescript-sdk/commit/5c16ae3339bfa1dd71b0dee1a534e1b6d8be658e"><code>5c16ae3</code></a>
[v1.x] feat(tasks): add streaming methods for elicitation and sampling
(<a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/issues/1528">#1528</a>)</li>
<li><a
href="https://github.com/modelcontextprotocol/typescript-sdk/commit/97ab379e4572ac8e38ff8b99891f29a69cfbb5bb"><code>97ab379</code></a>
feat: add url property to RequestInfo interface (<a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/issues/1353">#1353</a>)</li>
<li><a
href="https://github.com/modelcontextprotocol/typescript-sdk/commit/825e9ab80332e7fac19d221f6aae352dc73172fe"><code>825e9ab</code></a>
feat: backport discoverOAuthServerInfo() and discovery caching to v1.x
(<a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/issues/1533">#1533</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/modelcontextprotocol/typescript-sdk/compare/v1.26.0...v1.27.1">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@modelcontextprotocol/sdk&package-manager=npm_and_yarn&previous-version=1.26.0&new-version=1.27.1)](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>
2026-03-02 08:12:07 +00:00
dependabot[bot] 960be06aee chore(deps-dev): bump minimatch from 3.1.2 to 3.1.5 (#1070)
Bumps [minimatch](https://github.com/isaacs/minimatch) from 3.1.2 to
3.1.5.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/isaacs/minimatch/commit/7bba97888a27a6162983056bcce2a6e28f668712"><code>7bba978</code></a>
3.1.5</li>
<li><a
href="https://github.com/isaacs/minimatch/commit/bd259425b2ca17b42897997f93e890314155522d"><code>bd25942</code></a>
docs: add warning about ReDoS</li>
<li><a
href="https://github.com/isaacs/minimatch/commit/1a9c27c75725474dbde57db2995b6281b267756d"><code>1a9c27c</code></a>
fix partial matching of globstar patterns</li>
<li><a
href="https://github.com/isaacs/minimatch/commit/1a2e084af579731af66c221214e3ca8222c9bf23"><code>1a2e084</code></a>
3.1.4</li>
<li><a
href="https://github.com/isaacs/minimatch/commit/ae24656237c3d58067442f790ce17eff84463a47"><code>ae24656</code></a>
update lockfile</li>
<li><a
href="https://github.com/isaacs/minimatch/commit/b1003749228b2a79e1f237963a0d559ef7a0941e"><code>b100374</code></a>
limit recursion for **, improve perf considerably</li>
<li><a
href="https://github.com/isaacs/minimatch/commit/26ffeaa091b9f660833e23f42e07165b33e85c13"><code>26ffeaa</code></a>
lockfile update</li>
<li><a
href="https://github.com/isaacs/minimatch/commit/9eca892a4e5dbb20534f9f30483b85cdeee6c2eb"><code>9eca892</code></a>
lock node version to 14</li>
<li><a
href="https://github.com/isaacs/minimatch/commit/00c323b188b704e5d4bc534ecec2268cfa70a32a"><code>00c323b</code></a>
3.1.3</li>
<li><a
href="https://github.com/isaacs/minimatch/commit/30486b2048929264f44d18822891cfffa02af78b"><code>30486b2</code></a>
update CI matrix and actions</li>
<li>Additional commits viewable in <a
href="https://github.com/isaacs/minimatch/compare/v3.1.2...v3.1.5">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=minimatch&package-manager=npm_and_yarn&previous-version=3.1.2&new-version=3.1.5)](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>
2026-03-02 08:11:26 +00:00
Nicholas Roscino 505089c288 chore: evaluate script on service workers (#1052)
This PR introduce script evaluation on service workers behind the flag
--category-extension.
2026-02-27 13:29:17 +00:00
Alex Rudenko 2d5e4fa357 refactor: type-cast as internal CdpPage interface (#1064) 2026-02-27 13:16:15 +00:00
Alex Rudenko f763da24a1 fix: simplify focus state management (#1063)
Simplify focus management by emulating focused state for all pages. This
is especially useful in the new multi agent use case.
2026-02-27 14:10:00 +01:00
Alex Rudenko 9628dabcb4 refactor: clean up more of the context getters (#1062)
- moves more code to the McpPage
- deleted Context specific tests
2026-02-27 12:53:20 +00:00
Alex Rudenko 4cb5a17b57 refactor: remove page passing via context (#1061)
- removes several redundant getters on the context.
- removes passing page instances via context.
2026-02-27 12:08:10 +00:00
Alex Rudenko d6c06c56a7 refactor: make cdp resolvers use McpPage (#1060)
Makes cdp resolvers scoped to the page. Once collectors are per McpPage,
the entire method could be moved to McpPage.
2026-02-27 10:58:49 +00:00
Alex Rudenko 40c241bbfc refactor: move dialog handling to McpPage (#1059)
- renamed getSelectedPage to getSelectedPptrPage
- removes getSelectedPptrPage from tool interfaces
- moves dialog handling to McpPage
- makes responses to be optionally McpPage-scoped
2026-02-27 11:49:43 +01:00
Alex Rudenko 302e5a0419 refactor: consistently use McpPage in tools (#1057)
Follow-up to
https://github.com/ChromeDevTools/chrome-devtools-mcp/commit/caf601a32832bb87cfac801a6bbeacb87508412f

The work is not complete and as a follow-up I will handle other Context
methods and moved whatever is relevant to the McpPage. Also, duplicate
getters would go away.
2026-02-27 09:41:08 +00:00
Michael Hablich 21634e660c docs: Adapt a11y skill to utilize Lighthouse (#1054)
- **feat: Add Lighthouse audit as the initial step in the accessibility
debugging workflow and reorder subsequent sections.**
- **feat: Add critical instructions for parsing Lighthouse audit reports
to efficiently extract failing elements.**
2026-02-27 06:47:06 +00:00
Alex Rudenko 13a18e2380 chore: implement daemon client (#1037)
The client is meant to start the daemon if it is not running or connect
to the existing one. Long-running client connections are not needed yet.

Removed previous direct daemon test as we better test it via the client,
the intended way to manage the daemon.
2026-02-26 15:03:21 +00:00
Alex Rudenko 5f694c60ff refactor: improve type safety for page scoped tools (#1051)
I think we should create proper classes for tool definitions soon.

Follow-up for
https://github.com/ChromeDevTools/chrome-devtools-mcp/pull/1022
2026-02-26 14:33:57 +00:00
Alex Rudenko ef4b11d6f3 chore: update pre-release workflow name (#1050) 2026-02-26 13:06:58 +00:00
Alex Rudenko dfdac2648e feat: integrate Lighthouse audits (#831)
This PR adds tool to perform navigation and snapshot audits using
Lighthouse for Accessibility, SEO and Best practices. For performance
audits existing tools can be used.

Closes https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/473
2026-02-26 12:30:45 +00:00
Stanislav Publika caf601a328 feat: add pageId routing for parallel multi-agent workflows (#1022)
## Summary

Adds optional `pageId` routing to page-scoped tools, gated behind
`--experimental-page-id-routing`. When enabled, multi-agent callers can
target a specific page without relying on global selection state. Fully
backward-compatible: without the flag, behavior is unchanged.

### Key changes

- **`pageScoped` annotation**: tools declare `pageScoped: true`; the
server merges `pageId` into their schema at registration time (when the
flag is on)
- **`McpPage` wrapper**: consolidates per-page state (numeric id,
isolated context name, focus tracking) into a single class
- **Request-scoped page routing**: `resolvePageById()` resolves the
target page, `setRequestPage()` threads it through the handler so tools
like `getSelectedPage()` see the right page
- **`assertPageIsFocused`**: keyboard/input tools validate that the
target page holds browser focus, returning an actionable error ("call
select_page first") instead of silently dispatching to the wrong page
- **`--experimental-page-id-routing` CLI flag** (hidden): gates schema
injection and request-scoped routing so the feature can be tested before
graduating
- **Eval scenarios**: `page_id_routing_test` and
`page_focus_keyboard_test` with `serverArgs` support in the eval harness

Addresses #1019
2026-02-26 11:39:38 +00:00
dependabot[bot] e4db2501f3 chore(deps): bump hono from 4.12.0 to 4.12.2 (#1044)
Bumps [hono](https://github.com/honojs/hono) from 4.12.0 to 4.12.2.
<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.12.2</h2>
<h2>Security fix</h2>
<p>Fixed incorrect handling of <code>X-Forwarded-For</code> in the AWS
Lambda adapter behind ALB that could allow IP-based access control
bypass. The detail: <a
href="https://github.com/honojs/hono/security/advisories/GHSA-xh87-mx6m-69f3">https://github.com/honojs/hono/security/advisories/GHSA-xh87-mx6m-69f3</a></p>
<p>Thanks <a
href="https://github.com/EdamAme-x"><code>@​EdamAme-x</code></a></p>
<h2>What's Changed</h2>
<ul>
<li>fix(context): revert PR <a
href="https://redirect.github.com/honojs/hono/issues/4707">#4707</a> by
<a href="https://github.com/yusukebe"><code>@​yusukebe</code></a> in <a
href="https://redirect.github.com/honojs/hono/pull/4757">honojs/hono#4757</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/honojs/hono/compare/v4.12.1...v4.12.2">https://github.com/honojs/hono/compare/v4.12.1...v4.12.2</a></p>
<h2>v4.12.1</h2>
<h2>What's Changed</h2>
<ul>
<li>fix(client): export <code>ApplyGlobalResponse</code> from
<code>hono/client</code> by <a
href="https://github.com/sushichan044"><code>@​sushichan044</code></a>
in <a
href="https://redirect.github.com/honojs/hono/pull/4743">honojs/hono#4743</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/honojs/hono/compare/v4.12.0...v4.12.1">https://github.com/honojs/hono/compare/v4.12.0...v4.12.1</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/honojs/hono/commit/df97e5f49771a2a219770515859b9cc1d80abab0"><code>df97e5f</code></a>
4.12.2</li>
<li><a
href="https://github.com/honojs/hono/commit/212c64f2c262c60585e4d80d547fb154fd8b9a16"><code>212c64f</code></a>
fix(context): revert PR <a
href="https://redirect.github.com/honojs/hono/issues/4707">#4707</a> (<a
href="https://redirect.github.com/honojs/hono/issues/4757">#4757</a>)</li>
<li><a
href="https://github.com/honojs/hono/commit/5cc8f8f79eb600a1d98be117c2c7c2de3e0d400e"><code>5cc8f8f</code></a>
ci: apply automated fixes</li>
<li><a
href="https://github.com/honojs/hono/commit/41adbf56e252c04611f8972364ac0887ae07a4c7"><code>41adbf5</code></a>
Merge commit from fork</li>
<li><a
href="https://github.com/honojs/hono/commit/2de30d7c2a25885c5df03c454582c305a34da771"><code>2de30d7</code></a>
4.12.1</li>
<li><a
href="https://github.com/honojs/hono/commit/91ef235f9fd34266dbb473a4c43d999465be3c87"><code>91ef235</code></a>
fix(client): export <code>ApplyGlobalResponse</code> from
<code>hono/client</code> (<a
href="https://redirect.github.com/honojs/hono/issues/4743">#4743</a>)</li>
<li>See full diff in <a
href="https://github.com/honojs/hono/compare/v4.12.0...v4.12.2">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=hono&package-manager=npm_and_yarn&previous-version=4.12.0&new-version=4.12.2)](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>
2026-02-26 10:22:26 +00:00
dependabot[bot] 9001984761 chore(deps-dev): bump rollup from 4.58.0 to 4.59.0 (#1047)
Bumps [rollup](https://github.com/rollup/rollup) from 4.58.0 to 4.59.0.
<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.59.0</h2>
<h2>4.59.0</h2>
<p><em>2026-02-22</em></p>
<h3>Features</h3>
<ul>
<li>Throw when the generated bundle contains paths that would leave the
output directory (<a
href="https://redirect.github.com/rollup/rollup/issues/6276">#6276</a>)</li>
</ul>
<h3>Pull Requests</h3>
<ul>
<li><a
href="https://redirect.github.com/rollup/rollup/pull/6275">#6275</a>:
Validate bundle stays within output dir (<a
href="https://github.com/lukastaegert"><code>@​lukastaegert</code></a>)</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.59.0</h2>
<p><em>2026-02-22</em></p>
<h3>Features</h3>
<ul>
<li>Throw when the generated bundle contains paths that would leave the
output directory (<a
href="https://redirect.github.com/rollup/rollup/issues/6276">#6276</a>)</li>
</ul>
<h3>Pull Requests</h3>
<ul>
<li><a
href="https://redirect.github.com/rollup/rollup/pull/6275">#6275</a>:
Validate bundle stays within output dir (<a
href="https://github.com/lukastaegert"><code>@​lukastaegert</code></a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/rollup/rollup/commit/ae846957f109690a866cc3e4c073613c338d3476"><code>ae84695</code></a>
4.59.0</li>
<li><a
href="https://github.com/rollup/rollup/commit/b39616e9175b3d9fc3977c99153174c490805a93"><code>b39616e</code></a>
Update audit-resolve</li>
<li><a
href="https://github.com/rollup/rollup/commit/c60770d7aaf750e512c1b2774989ea4596e660b2"><code>c60770d</code></a>
Validate bundle stays within output dir (<a
href="https://redirect.github.com/rollup/rollup/issues/6275">#6275</a>)</li>
<li>See full diff in <a
href="https://github.com/rollup/rollup/compare/v4.58.0...v4.59.0">compare
view</a></li>
</ul>
</details>
<br />


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

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/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>
2026-02-26 10:22:09 +00:00
Alex Rudenko a8bf3e5856 refactor: move server to a separate file (#1043)
Refs https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/1038

by importing server.ts and calling calling `createMcpServer` the server
can be instantiated without a transport.
2026-02-26 08:24:01 +00:00
dependabot[bot] 9ddb7daba8 chore(deps-dev): bump basic-ftp from 5.1.0 to 5.2.0 (#1045)
Bumps [basic-ftp](https://github.com/patrickjuchli/basic-ftp) from 5.1.0
to 5.2.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/patrickjuchli/basic-ftp/releases">basic-ftp's
releases</a>.</em></p>
<blockquote>
<h2>5.2.0</h2>
<ul>
<li>Changed: Skip files with invalid name in downloadToDir.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/patrickjuchli/basic-ftp/blob/master/CHANGELOG.md">basic-ftp's
changelog</a>.</em></p>
<blockquote>
<h2>5.2.0</h2>
<ul>
<li>Changed: Skip files with invalid name in downloadToDir.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/patrickjuchli/basic-ftp/commit/5d41e45073ed1a8a3b5e5a1bbfcd131e61295bf8"><code>5d41e45</code></a>
Bump version</li>
<li><a
href="https://github.com/patrickjuchli/basic-ftp/commit/49c2e73ed1cae4962ae38b33ab93a3548c2f5622"><code>49c2e73</code></a>
Update dependencies</li>
<li><a
href="https://github.com/patrickjuchli/basic-ftp/commit/2a2a0e6514357b9eda07c2f8afbd3f04727a7cd9"><code>2a2a0e6</code></a>
Skip invalid filenames</li>
<li><a
href="https://github.com/patrickjuchli/basic-ftp/commit/65c90d949c0f8a9709759dff9e76bbe07061812b"><code>65c90d9</code></a>
Fix permissions for workflows</li>
<li><a
href="https://github.com/patrickjuchli/basic-ftp/commit/593cb7831bec60d5590acc3eeb2e553f4a431167"><code>593cb78</code></a>
Set permissions for workflow jobs</li>
<li><a
href="https://github.com/patrickjuchli/basic-ftp/commit/36adf110beabc9acdcad122149a2ea795a2b1a6c"><code>36adf11</code></a>
Remove deprecated CodeQL check</li>
<li>See full diff in <a
href="https://github.com/patrickjuchli/basic-ftp/compare/v5.1.0...v5.2.0">compare
view</a></li>
</ul>
</details>
<br />


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

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/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>
2026-02-26 08:21:47 +00:00
Alex Rudenko 080bcf6f66 chore: add additional logs to clearcut sender (#1040)
Co-authored-by: Nikolay Vitkov <34244704+Lightning00Blade@users.noreply.github.com>
2026-02-25 15:54:51 +00:00
browser-automation-bot 9c966b42f7 chore(main): release chrome-devtools-mcp 0.18.1 (#1042)
publish-on-tag / publish-to-npm (push) Has been cancelled
publish-on-tag / publish-to-mcp-registry (push) Has been cancelled
🤖 I have created a release *beep* *boop*
---


##
[0.18.1](https://github.com/ChromeDevTools/chrome-devtools-mcp/compare/chrome-devtools-mcp-v0.18.0...chrome-devtools-mcp-v0.18.1)
(2026-02-25)


### 🛠️ Fixes

* remove endsWith for filePath in memory tools
([#1041](https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/1041))
([d0622d5](https://github.com/ChromeDevTools/chrome-devtools-mcp/commit/d0622d52d46ac72a28bc22f93a337fb5007214c7))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
chrome-devtools-mcp-v0.18.1
2026-02-25 14:47:46 +00:00
Alex Rudenko d0622d52d4 fix: remove endsWith for filePath in memory tools (#1041)
Looks like there is another incompatibility in JSON schema handling
between MCP clients.

Closes https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/1039
2026-02-25 15:27:58 +01:00
Nicholas Roscino 1a4eaba95b chore: list service workers (#1035)
This PR adds the extension service workers to the output of listPages.
This is available only behind "--category-extensions" flag
2026-02-25 13:49:37 +00:00
browser-automation-bot ff7ac7c499 chore(main): release chrome-devtools-mcp 0.18.0 (#1006)
publish-on-tag / publish-to-npm (push) Has been cancelled
publish-on-tag / publish-to-mcp-registry (push) Has been cancelled
🤖 I have created a release *beep* *boop*
---


##
[0.18.0](https://github.com/ChromeDevTools/chrome-devtools-mcp/compare/chrome-devtools-mcp-v0.17.3...chrome-devtools-mcp-v0.18.0)
(2026-02-24)


### 🎉 Features

* `--slim` mode for maximum token savings
([#958](https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/958))
([c402b43](https://github.com/ChromeDevTools/chrome-devtools-mcp/commit/c402b43697d834994c4fc141305189082da14bee))
* add a new skill for accessibility debugging and auditing with Chrome
DevTools MCP.
([#1002](https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/1002))
([b0c6d04](https://github.com/ChromeDevTools/chrome-devtools-mcp/commit/b0c6d042e4d68763acf989edc8097ce07e85dc7a))
* add experimental screencast recording tools
([#941](https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/941))
([33446d4](https://github.com/ChromeDevTools/chrome-devtools-mcp/commit/33446d457e4386fadcfe4ddf6c7a43b2e9098c9a))
* add skill to debug and optimize LCP
([#993](https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/993))
([2cd9b95](https://github.com/ChromeDevTools/chrome-devtools-mcp/commit/2cd9b95346226aa52cce18f6ab889a2ae194806c))
* add storage-isolated browser contexts
([#991](https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/991))
([59f6477](https://github.com/ChromeDevTools/chrome-devtools-mcp/commit/59f6477a70eb07585e9a510089f1dfc840a012fd))
* add take_memory_snapshot tool
([#1023](https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/1023))
([7ffdc5e](https://github.com/ChromeDevTools/chrome-devtools-mcp/commit/7ffdc5ee4d9df9f62f03354fa758fb4d022c3b08))
* support any-match text arrays in wait_for
([#1011](https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/1011))
([496ab1b](https://github.com/ChromeDevTools/chrome-devtools-mcp/commit/496ab1b45f7a283a1432643777e0795a17f33667))
* support type_text
([#1026](https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/1026))
([b5d01b5](https://github.com/ChromeDevTools/chrome-devtools-mcp/commit/b5d01b5fe65fa20f9b76555b86a749960a5d1738))


### 🛠️ Fixes

* detect X server display on Linux
([#1027](https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/1027))
([1746ed9](https://github.com/ChromeDevTools/chrome-devtools-mcp/commit/1746ed9ee11c212f78dcbb00af99a0400595e778))


### ♻️ Chores

* cleanup string and structured console formatters
([#1005](https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/1005))
([0d78685](https://github.com/ChromeDevTools/chrome-devtools-mcp/commit/0d78685a5b37dc68bb11a1088ff8816ecff3bb82))
* extract version in a seprate file
([#1032](https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/1032))
([0106865](https://github.com/ChromeDevTools/chrome-devtools-mcp/commit/0106865aad6d51b6cb590bf98ccaf7078e8d7436))
* move emulation settings to context
([#1000](https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/1000))
([bc3c40e](https://github.com/ChromeDevTools/chrome-devtools-mcp/commit/bc3c40e8f961433fb2ae858482d66f9a55fdde32))
* optimize slim tool descriptions and params
([#1028](https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/1028))
([ca6635d](https://github.com/ChromeDevTools/chrome-devtools-mcp/commit/ca6635d5a5d5e8b7b9944fa8b4e1063e6269a5f2))
* simplify JavaScript code examples, update code block language, and
refine descriptions in a11y debugging skill documentation.
([#1009](https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/1009))
([5cedcaa](https://github.com/ChromeDevTools/chrome-devtools-mcp/commit/5cedcaad2c8a5e488064e21fb56cbd8643345440))
* types for JSON output of IssueFormatter
([#1007](https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/1007))
([9ef4479](https://github.com/ChromeDevTools/chrome-devtools-mcp/commit/9ef4479bec39c5f2651d6ebb63e9ec0fecf8bf89))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
chrome-devtools-mcp-v0.18.0
2026-02-25 06:52:41 +00:00
Nicholas Roscino 25638f093b chore: enable dynamic tool definition based on CLI arguments (#1031)
This PR allows tools to be created dynamically based on the provided cli
arguments
2026-02-24 17:01:33 +00:00
Alex Rudenko b9f65e62e4 chore: cleanup tool defintion context interface (#1033)
these methods are not used by tools
2026-02-24 15:38:46 +00:00
Alex Rudenko 1746ed9ee1 fix: detect X server display on Linux (#1027)
in headful mode on Linux we should try detecting X server if DISPLAY is
not set.
2026-02-24 14:35:55 +00:00
Nikolay Vitkov 0106865aad refactor: extract version in a seprate file (#1032) 2026-02-24 14:22:26 +00:00
Alex Rudenko dd26bbf172 chore: implement a daemon process (#1020)
Implements a daemon process needed for the CLI. The daemon has commands
to start/stop itself as well as an ability to forward data to the
managed MCP server. Local sockets or named pipes are used depending on
the platform.

The .sock and .pid files are placed under
XDG_RUNTIME_DIR/chrome-devtools-mcp or /tmp/chrome-devtools-mcp for
short socket paths.

It uses Puppeteer's PipeTransport to avoid re-implementing \0 terminated
messages.

Note the code is not used anywhere at the moment.
2026-02-24 13:48:36 +00:00
Alex Rudenko ca6635d5a5 refactor: optimize slim tool descriptions and params (#1028)
Minor changes to shorten descriptions and improve ease of use.

Note that `--slim` mode is not released yet and this is an improvement
for it.
2026-02-24 13:28:04 +00:00
Stanislav Publika a10617002f chore: make eval scripts cross-platform compatible (Windows) (#1030)
Fixes #1029

## Summary
- Use `pathToFileURL()` from `node:url` for dynamic imports in
`eval_gemini.ts` to fix `ERR_UNSUPPORTED_ESM_URL_SCHEME` on Windows -
converts absolute paths like `D:\projects\...\console_test.ts` to proper
`file:///D:/projects/.../console_test.ts` URLs that the Node.js ESM
loader accepts on all platforms
- Move `CHROME_DEVTOOLS_MCP_NO_USAGE_STATISTICS=true` from Unix-only
shell env var prefix in `package.json` into `eval_gemini.ts` code,
matching the pattern already used in `scripts/test.mjs`
- Add `.gitattributes` with `* text=auto eol=lf` to enforce LF line
endings on checkout - Windows contributors cloning the repo would
otherwise get CRLF endings, which conflicts with the project's Prettier
`endOfLine: 'lf'` config and causes spurious diffs or formatting
failures
2026-02-24 13:16:27 +00:00
Alex Rudenko b5d01b5fe6 feat: support type_text (#1026)
`type_text` is useful for pages that do not have a11y and, thus, uid is
not known. It's also useful for testing user-like keyboard input and
testing the focus state changes. The `fill` tools force the focus change
and require an uid and therefore are not suitable for these tasks.
2026-02-24 09:05:24 +00:00
dependabot[bot] 25af426977 chore(deps-dev): bump chrome-devtools-frontend from 1.0.1583146 to 1.0.1587572 in the bundled-devtools group (#1015)
Bumps the bundled-devtools group with 1 update:
[chrome-devtools-frontend](https://github.com/ChromeDevTools/devtools-frontend).

Updates `chrome-devtools-frontend` from 1.0.1583146 to 1.0.1587572
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/8a37ab63053ff579d9a32872f037cf091fd0b8a0"><code>8a37ab6</code></a>
Update DevTools DEPS (trusted)</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/1a89a4b43201e141b0bfe18aa4a6abf6b7f60814"><code>1a89a4b</code></a>
DevTools: retry restoring focused DOM node after reload</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/1a74495bf3768f4b83f9c9a5b4e11322464b53c0"><code>1a74495</code></a>
Fix CfT binary path in downloadedChromeBinaryPath()</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/4dfe44264389130c653c02ffdd36c934a767ace4"><code>4dfe442</code></a>
Roll browser-protocol</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/22bd478d5ffaca9871f02fdcf70082000c0fe0e7"><code>22bd478</code></a>
Reland &quot;Harden devtools csp&quot;</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/7448159117fcb11e1c653e9da10441f79c6a45a3"><code>7448159</code></a>
Update DevTools DEPS (trusted)</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/17a2bdff1671790b088611677c14f107ae8e3650"><code>17a2bdf</code></a>
Rebuild inside script and not output file</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/5d869f985b3f5b65ca5d3a28f8951db4eedc8edc"><code>5d869f9</code></a>
Move RequestHeadersView out of components</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/5391300ccc6bc5a6e7c59041c9b42e14a351fb2b"><code>5391300</code></a>
[ui] Migrate fragment rendering of StackTracePreviewContent to lit</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/2fac72206d82d9b152af787ab16ea9ecd330589e"><code>2fac722</code></a>
[ui] Render &lt;tfoot&gt; in lit in StackTracePreviewContent</li>
<li>Additional commits viewable in <a
href="https://github.com/ChromeDevTools/devtools-frontend/compare/v1.0.1583146...v1.0.1587572">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=chrome-devtools-frontend&package-manager=npm_and_yarn&previous-version=1.0.1583146&new-version=1.0.1587572)](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>
2026-02-24 08:16:08 +00:00
Ashutosh Kumar 496ab1b45f feat: support any-match text arrays in wait_for (#1011)
## Summary

Enhances wait_for to support waiting on multiple possible texts and
resolve when any one appears.

This addresses long-running flows that can end in different UI outcomes
(for example, "Complete" or "Error"), avoiding unnecessary 300s waits
when only one expected string is provided.

Closes #916.

## Tool Update

### wait_for

Waits for text on the selected page, now with any-match support.

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| text | string \| string[] | yes | A single text or a non-empty list of
texts. Resolves when any value appears. |
| timeout | integer | no | Maximum wait in ms (0 keeps default
behavior). |

---

## Design / Implementation

- Kept backward compatibility: existing single-string text calls
continue to work unchanged.
- Added schema support for string | string[] with non-empty array
validation.
- Updated context API to accept string | string[].
- Matching logic now normalizes to an array and races all candidates
across all frames using both:
    - aria/<text>
    - text/<text>
- Added clearer response output for array input:
    - Element matching one of ["Complete","Error"] found.
- Updated generated tool docs for the new wait_for contract.
- Improved docs generation to render ZodUnion types (so union params are
documented correctly, not as unknown).
  
---

## Tests

Added/updated coverage for:

- Schema acceptance of:
    - single string
    - non-empty string array
    - rejection of empty array
- Any-match array success case
- Any-match array when matching text appears later (async/delayed
content)
- Existing wait_for behavior remains covered for single-text usage

Executed relevant test suites:

- tests/tools/snapshot.test.ts
- tests/McpContext.test.ts
- tests/index.test.ts 

Confirmation after the change applied:
https://opncd.ai/share/8m6I4r4a
2026-02-24 07:16:47 +00:00
Alex Rudenko 7ffdc5ee4d feat: add take_memory_snapshot tool (#1023)
Refs: https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/406
2026-02-23 18:12:29 +00:00
Matthias Rohmer 2cd9b95346 feat: add skill to debug and optimize LCP (#993)
This is a draft for new skill to debug and optimize LCP scores, going
hand in hand with
https://github.com/ChromeDevTools/chrome-devtools-mcp/pull/831.

Base for this skill is key authoritative learning material from web.dev,
about debugging and optimizing LCP, mainly:

- http://web.dev/articles/lcp
- http://web.dev/articles/optimize-lcp
- https://web.dev/articles/top-cwv

I gave the content of those articles together with the [tool
reference](https://github.com/ChromeDevTools/chrome-devtools-mcp/blob/main/docs/tool-reference.md),
the README and the chrome-devtools core skill to both Claude Opus 4.6
and Gemini 3 Pro and their respective skill creator skills. The final
skill in this PR is a merge of multiple runs with both models.

The snippets to run with `evaluate_script` is something only Opus came
up with, but I think it's quite nice, though our own `performance_*`
tools might give the same insight but likely with more overhead (meaning
tokens).
2026-02-23 15:41:14 +00:00
Alex Rudenko c402b43697 feat: --slim mode for maximum token savings (#958)
- navigate
- run js
- take screenshot

That's it. Basic functionality for a low (~368) token price.
2026-02-23 14:42:27 +00:00
Matthias Rohmer 0ccc15e1fb chore: add -f argument for count token tool to read from file instead (#1021)
Makes it a little easier to repeatedly run the skill counter on the
contents of a file, instead of copy-pasting.
2026-02-23 14:06:04 +00:00
RobertWsp 59f6477a70 feat: add storage-isolated browser contexts (#991)
## Summary

Adds storage-isolated browser contexts via an optional `isolatedContext`
parameter on the `new_page` tool, following the simplified design
proposed by @OrKoN in #926.

Pages created with the same `isolatedContext` name share cookies,
localStorage, and storage. Pages in different isolated contexts (or the
default context) are fully isolated — ideal for testing multi-user
real-time features like chat, notifications, or collaborative editing.

## Changes

### `new_page` tool
- New optional `isolatedContext: string` parameter
- If specified, creates/reuses a named `BrowserContext` and opens a page
in it
- If omitted, uses the default browser context (existing behavior
unchanged)

### `McpContext`
- `#isolatedContexts` Map: LLM-provided names → Puppeteer
`BrowserContext` instances
- `#pageToIsolatedContextName` WeakMap: GC-safe page → context name
reverse lookup
- Auto-discovery: externally created browser contexts get
`isolated-context-1`, `isolated-context-2`, etc.
- `getIsolatedContextName(page)`: returns the isolated context name for
a page (used by response formatting)
- `page.browserContext()` used for context membership detection (no
custom target event forwarding needed)
- No context cleanup in `dispose()` or `closePage()` — either the entire
browser is closed or we disconnect without destroying state

### `McpResponse`
- Page list includes `isolatedContext=${name}` labels (both text and
structured JSON output)

### `ToolDefinition`
- `Context` interface extended with `getIsolatedContextName(page)`
method

## What's NOT included (by design)
- **No `TargetEventEmitter`**: Puppeteer forwards target events from
`BrowserContext` → `Browser` internally
- **No context cleanup**: Browser contexts are not closed on `dispose()`
or page close, per maintainer guidance
- **No `about:blank` cleanup**: Default context and isolated contexts
coexist side-by-side

## Example

```
> new_page url="https://app.example.com/chat" isolatedContext="userA"
> new_page url="https://app.example.com/chat" isolatedContext="userB"
> list_pages

Page 1: [app.example.com/chat] isolatedContext=userA
Page 2: [app.example.com/chat] isolatedContext=userB [selected]
```

Pages in different isolated contexts have fully independent cookies,
localStorage, IndexedDB, and WebSocket connections.

## Tests

- 6 new tests covering `isolatedContext` feature in
`tests/tools/pages.test.ts`
- All existing tests pass (333+)
- Zero type errors, lint clean

Closes #926

---------

Co-authored-by: Alex Rudenko <alexrudenko@chromium.org>
2026-02-23 11:36:16 +00:00
dependabot[bot] 9f88127ebf chore(deps-dev): bump puppeteer from 24.37.4 to 24.37.5 in the bundled group (#1016)
Bumps the bundled group with 1 update:
[puppeteer](https://github.com/puppeteer/puppeteer).

Updates `puppeteer` from 24.37.4 to 24.37.5
<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: v24.37.5</h2>
<h2><a
href="https://github.com/puppeteer/puppeteer/compare/puppeteer-core-v24.37.4...puppeteer-core-v24.37.5">24.37.5</a>
(2026-02-19)</h2>
<h3>🛠️ Fixes</h3>
<ul>
<li>roll to Chrome 145.0.7632.77 (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14703">#14703</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/b31215eaaa2f48768690600d68b301747696d7bc">b31215e</a>)</li>
</ul>
<h2>puppeteer: v24.37.5</h2>
<h2><a
href="https://github.com/puppeteer/puppeteer/compare/puppeteer-v24.37.4...puppeteer-v24.37.5">24.37.5</a>
(2026-02-19)</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 24.37.4 to 24.37.5</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>
<h2><a
href="https://github.com/puppeteer/puppeteer/compare/puppeteer-v24.37.4...puppeteer-v24.37.5">24.37.5</a>
(2026-02-19)</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 24.37.4 to 24.37.5</li>
</ul>
</li>
</ul>
</li>
</ul>
<h3>🛠️ Fixes</h3>
<ul>
<li>roll to Chrome 145.0.7632.77 (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14703">#14703</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/b31215eaaa2f48768690600d68b301747696d7bc">b31215e</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/puppeteer/puppeteer/commit/fcb37e3b3a4f6b55b6f81a40811243260bcea16f"><code>fcb37e3</code></a>
chore: release main (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14704">#14704</a>)</li>
<li><a
href="https://github.com/puppeteer/puppeteer/commit/d9a795483de4199e8e71b79a79b14c6b99ce49a3"><code>d9a7954</code></a>
ci: use lower case as every other label (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14702">#14702</a>)</li>
<li><a
href="https://github.com/puppeteer/puppeteer/commit/b31215eaaa2f48768690600d68b301747696d7bc"><code>b31215e</code></a>
fix: roll to Chrome 145.0.7632.77 (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14703">#14703</a>)</li>
<li>See full diff in <a
href="https://github.com/puppeteer/puppeteer/compare/puppeteer-v24.37.4...puppeteer-v24.37.5">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=puppeteer&package-manager=npm_and_yarn&previous-version=24.37.4&new-version=24.37.5)](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>
2026-02-23 10:40:25 +00:00
dependabot[bot] d0fbf2522a chore(deps-dev): bump the dev-dependencies group with 6 updates (#1014)
Bumps the dev-dependencies group with 6 updates:

| Package | From | To |
| --- | --- | --- |
| [@eslint/js](https://github.com/eslint/eslint/tree/HEAD/packages/js) |
`9.39.2` | `9.39.3` |
| [@google/genai](https://github.com/googleapis/js-genai) | `1.41.0` |
`1.42.0` |
|
[@stylistic/eslint-plugin](https://github.com/eslint-stylistic/eslint-stylistic/tree/HEAD/packages/eslint-plugin)
| `5.8.0` | `5.9.0` |
|
[@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)
| `25.2.3` | `25.3.0` |
| [eslint](https://github.com/eslint/eslint) | `9.39.2` | `9.39.3` |
| [rollup](https://github.com/rollup/rollup) | `4.57.1` | `4.58.0` |

Updates `@eslint/js` from 9.39.2 to 9.39.3
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/eslint/eslint/releases"><code>@​eslint/js</code>'s
releases</a>.</em></p>
<blockquote>
<h2>v9.39.3</h2>
<h2>Bug Fixes</h2>
<ul>
<li><a
href="https://github.com/eslint/eslint/commit/791bf8d7e76ce7ab8c88cb8982658823da4eff27"><code>791bf8d</code></a>
fix: restore TypeScript 4.0 compatibility in types (<a
href="https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20504">#20504</a>)
(sethamus)</li>
</ul>
<h2>Chores</h2>
<ul>
<li><a
href="https://github.com/eslint/eslint/commit/8594a436c22a0167fe3c2c4109bbdb04e519a014"><code>8594a43</code></a>
chore: upgrade <code>@​eslint/js</code><a
href="https://github.com/9"><code>@​9</code></a>.39.3 (<a
href="https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20529">#20529</a>)
(Milos Djermanovic)</li>
<li><a
href="https://github.com/eslint/eslint/commit/9ceef92fbd3d1298d9a00483f86897834b88acac"><code>9ceef92</code></a>
chore: package.json update for <code>@​eslint/js</code> release
(Jenkins)</li>
<li><a
href="https://github.com/eslint/eslint/commit/af498c63b9ca065223a425a85afabdcc8451e69b"><code>af498c6</code></a>
chore: ignore <code>/docs/v9.x</code> in link checker (<a
href="https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20453">#20453</a>)
(Milos Djermanovic)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/eslint/eslint/commit/9ceef92fbd3d1298d9a00483f86897834b88acac"><code>9ceef92</code></a>
chore: package.json update for <code>@​eslint/js</code> release</li>
<li>See full diff in <a
href="https://github.com/eslint/eslint/commits/v9.39.3/packages/js">compare
view</a></li>
</ul>
</details>
<br />

Updates `@google/genai` from 1.41.0 to 1.42.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/googleapis/js-genai/releases"><code>@​google/genai</code>'s
releases</a>.</em></p>
<blockquote>
<h2>v1.42.0</h2>
<h2><a
href="https://github.com/googleapis/js-genai/compare/v1.41.0...v1.42.0">1.42.0</a>
(2026-02-18)</h2>
<h3>Features</h3>
<ul>
<li>Support multimodal embedding for Gemini Embedding 2.0 and support
MaaS models in Models.embed_content() (Vertex AI API) (<a
href="https://github.com/googleapis/js-genai/commit/944ae97f33168aa36612f4fec9717726b9d03629">944ae97</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/googleapis/js-genai/blob/main/CHANGELOG.md"><code>@​google/genai</code>'s
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/googleapis/js-genai/compare/v1.41.0...v1.42.0">1.42.0</a>
(2026-02-18)</h2>
<h3>Features</h3>
<ul>
<li>Support multimodal embedding for Gemini Embedding 2.0 and support
MaaS models in Models.embed_content() (Vertex AI API) (<a
href="https://github.com/googleapis/js-genai/commit/944ae97f33168aa36612f4fec9717726b9d03629">944ae97</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/googleapis/js-genai/commit/aba266968b2df120ba48fb43f5a0ae89680f1557"><code>aba2669</code></a>
chore(main): release 1.42.0 (<a
href="https://redirect.github.com/googleapis/js-genai/issues/1324">#1324</a>)</li>
<li><a
href="https://github.com/googleapis/js-genai/commit/7bc0428efbd1a3d8f022a7c61e71c1d4463d83a4"><code>7bc0428</code></a>
chore: Make discriminator properties required in Interactions</li>
<li><a
href="https://github.com/googleapis/js-genai/commit/4ad4126ee40a33e65f4408c1fae00827c167bce1"><code>4ad4126</code></a>
chore: Add 'p-retry' to Rollup externals.</li>
<li><a
href="https://github.com/googleapis/js-genai/commit/24fdf50c68915a4baa3fcda6ba4fff6396166197"><code>24fdf50</code></a>
chore: Downgrade p-retry package requirement to resolve CJS issue</li>
<li><a
href="https://github.com/googleapis/js-genai/commit/960414e28e34323c885f60a4ca890df16f0ffaec"><code>960414e</code></a>
chore: Add type assertions and ignore type overlap in genai
libraries</li>
<li><a
href="https://github.com/googleapis/js-genai/commit/944ae97f33168aa36612f4fec9717726b9d03629"><code>944ae97</code></a>
feat: Support multimodal embedding for Gemini Embedding 2.0 and support
MaaS ...</li>
<li>See full diff in <a
href="https://github.com/googleapis/js-genai/compare/v1.41.0...v1.42.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `@stylistic/eslint-plugin` from 5.8.0 to 5.9.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/eslint-stylistic/eslint-stylistic/releases"><code>@​stylistic/eslint-plugin</code>'s
releases</a>.</em></p>
<blockquote>
<h2>v5.9.0</h2>
<h2><a
href="https://github.com/eslint-stylistic/eslint-stylistic/compare/v5.8.0...v5.9.0">5.9.0</a>
(2026-02-19)</h2>
<h3>Features</h3>
<ul>
<li><strong>no-trailing-spaces:</strong> support more file types (<a
href="https://redirect.github.com/eslint-stylistic/eslint-stylistic/issues/1138">#1138</a>)
(<a
href="https://github.com/eslint-stylistic/eslint-stylistic/commit/501e8383bd9b27ff3e8d5e66c43e4ac7877fc862">501e838</a>)</li>
<li><strong>padding-line-between-statements:</strong> support
selector-based statement matchers (<a
href="https://redirect.github.com/eslint-stylistic/eslint-stylistic/issues/1134">#1134</a>)
(<a
href="https://github.com/eslint-stylistic/eslint-stylistic/commit/8f5cc9ee69b58de1dc00a9a487a1461de2d3494b">8f5cc9e</a>)</li>
<li>support ESLint 10 (<a
href="https://redirect.github.com/eslint-stylistic/eslint-stylistic/issues/1066">#1066</a>)
(<a
href="https://github.com/eslint-stylistic/eslint-stylistic/commit/5d99706e7c156af617a7ed935bd9bbe87630738a">5d99706</a>)</li>
<li>update deps (<a
href="https://redirect.github.com/eslint-stylistic/eslint-stylistic/issues/1141">#1141</a>)
(<a
href="https://github.com/eslint-stylistic/eslint-stylistic/commit/f29fcff09f86ac7d9feff8a9f954bbeed32e91db">f29fcff</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li><strong>comma-dangle:</strong> check tsx file correctly (<a
href="https://redirect.github.com/eslint-stylistic/eslint-stylistic/issues/1127">#1127</a>)
(<a
href="https://github.com/eslint-stylistic/eslint-stylistic/commit/271da423f8d47e264e5a9e1ded444eaa7b208c43">271da42</a>)</li>
<li><strong>comma-dangle:</strong> prevent crash when linting non-js
files (<a
href="https://redirect.github.com/eslint-stylistic/eslint-stylistic/issues/1140">#1140</a>)
(<a
href="https://github.com/eslint-stylistic/eslint-stylistic/commit/4a96eae4e31998904bc3c2b5c0719920a7984f98">4a96eae</a>)</li>
<li><strong>indent:</strong> ignore when source code is not ESTree (<a
href="https://redirect.github.com/eslint-stylistic/eslint-stylistic/issues/1139">#1139</a>)
(<a
href="https://github.com/eslint-stylistic/eslint-stylistic/commit/9e7f42264b9462e21c269568e506977d5abac8ed">9e7f422</a>)</li>
<li><strong>no-extra-parens:</strong> don't report jsdoc type assertion
by default (<a
href="https://redirect.github.com/eslint-stylistic/eslint-stylistic/issues/1100">#1100</a>)
(<a
href="https://github.com/eslint-stylistic/eslint-stylistic/commit/cfb62964a3daf488903ee33c88b23bade7009cac">cfb6296</a>)</li>
<li><strong>object-curly-spacing:</strong> correctly handle object
patterns with type annotations (<a
href="https://redirect.github.com/eslint-stylistic/eslint-stylistic/issues/1129">#1129</a>)
(<a
href="https://github.com/eslint-stylistic/eslint-stylistic/commit/5aaaec61ed9f4f7cc4fb431e5628f5d67e48be3c">5aaaec6</a>)</li>
</ul>
<h3>Chores</h3>
<ul>
<li><strong>lines-around-comment:</strong> improve extensibility of
allow boundary checks (<a
href="https://redirect.github.com/eslint-stylistic/eslint-stylistic/issues/1136">#1136</a>)
(<a
href="https://github.com/eslint-stylistic/eslint-stylistic/commit/18b961eacd7a37dc772a3669e236e60773965d9d">18b961e</a>)</li>
<li><strong>no-extra-parens:</strong> simplify fixer (<a
href="https://redirect.github.com/eslint-stylistic/eslint-stylistic/issues/1133">#1133</a>)
(<a
href="https://github.com/eslint-stylistic/eslint-stylistic/commit/3504e1fa3901f68d7d028465a1c0f779077db7eb">3504e1f</a>)</li>
<li><strong>on-var-declaration-per-line:</strong> simplify fixer (<a
href="https://redirect.github.com/eslint-stylistic/eslint-stylistic/issues/1132">#1132</a>)
(<a
href="https://github.com/eslint-stylistic/eslint-stylistic/commit/c827fde7e77e2a66b0873c41d10bb8e02cb2bf66">c827fde</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/eslint-stylistic/eslint-stylistic/blob/main/CHANGELOG.md"><code>@​stylistic/eslint-plugin</code>'s
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/eslint-stylistic/eslint-stylistic/compare/v5.8.0...v5.9.0">5.9.0</a>
(2026-02-19)</h2>
<h3>Features</h3>
<ul>
<li><strong>no-trailing-spaces:</strong> support more file types (<a
href="https://redirect.github.com/eslint-stylistic/eslint-stylistic/issues/1138">#1138</a>)
(<a
href="https://github.com/eslint-stylistic/eslint-stylistic/commit/501e8383bd9b27ff3e8d5e66c43e4ac7877fc862">501e838</a>)</li>
<li><strong>padding-line-between-statements:</strong> support
selector-based statement matchers (<a
href="https://redirect.github.com/eslint-stylistic/eslint-stylistic/issues/1134">#1134</a>)
(<a
href="https://github.com/eslint-stylistic/eslint-stylistic/commit/8f5cc9ee69b58de1dc00a9a487a1461de2d3494b">8f5cc9e</a>)</li>
<li>support ESLint 10 (<a
href="https://redirect.github.com/eslint-stylistic/eslint-stylistic/issues/1066">#1066</a>)
(<a
href="https://github.com/eslint-stylistic/eslint-stylistic/commit/5d99706e7c156af617a7ed935bd9bbe87630738a">5d99706</a>)</li>
<li>update deps (<a
href="https://redirect.github.com/eslint-stylistic/eslint-stylistic/issues/1141">#1141</a>)
(<a
href="https://github.com/eslint-stylistic/eslint-stylistic/commit/f29fcff09f86ac7d9feff8a9f954bbeed32e91db">f29fcff</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li><strong>comma-dangle:</strong> check tsx file correctly (<a
href="https://redirect.github.com/eslint-stylistic/eslint-stylistic/issues/1127">#1127</a>)
(<a
href="https://github.com/eslint-stylistic/eslint-stylistic/commit/271da423f8d47e264e5a9e1ded444eaa7b208c43">271da42</a>)</li>
<li><strong>comma-dangle:</strong> prevent crash when linting non-js
files (<a
href="https://redirect.github.com/eslint-stylistic/eslint-stylistic/issues/1140">#1140</a>)
(<a
href="https://github.com/eslint-stylistic/eslint-stylistic/commit/4a96eae4e31998904bc3c2b5c0719920a7984f98">4a96eae</a>)</li>
<li><strong>indent:</strong> ignore when source code is not ESTree (<a
href="https://redirect.github.com/eslint-stylistic/eslint-stylistic/issues/1139">#1139</a>)
(<a
href="https://github.com/eslint-stylistic/eslint-stylistic/commit/9e7f42264b9462e21c269568e506977d5abac8ed">9e7f422</a>)</li>
<li><strong>no-extra-parens:</strong> don't report jsdoc type assertion
by default (<a
href="https://redirect.github.com/eslint-stylistic/eslint-stylistic/issues/1100">#1100</a>)
(<a
href="https://github.com/eslint-stylistic/eslint-stylistic/commit/cfb62964a3daf488903ee33c88b23bade7009cac">cfb6296</a>)</li>
<li><strong>object-curly-spacing:</strong> correctly handle object
patterns with type annotations (<a
href="https://redirect.github.com/eslint-stylistic/eslint-stylistic/issues/1129">#1129</a>)
(<a
href="https://github.com/eslint-stylistic/eslint-stylistic/commit/5aaaec61ed9f4f7cc4fb431e5628f5d67e48be3c">5aaaec6</a>)</li>
</ul>
<h3>Chores</h3>
<ul>
<li><strong>lines-around-comment:</strong> improve extensibility of
allow boundary checks (<a
href="https://redirect.github.com/eslint-stylistic/eslint-stylistic/issues/1136">#1136</a>)
(<a
href="https://github.com/eslint-stylistic/eslint-stylistic/commit/18b961eacd7a37dc772a3669e236e60773965d9d">18b961e</a>)</li>
<li><strong>no-extra-parens:</strong> simplify fixer (<a
href="https://redirect.github.com/eslint-stylistic/eslint-stylistic/issues/1133">#1133</a>)
(<a
href="https://github.com/eslint-stylistic/eslint-stylistic/commit/3504e1fa3901f68d7d028465a1c0f779077db7eb">3504e1f</a>)</li>
<li><strong>on-var-declaration-per-line:</strong> simplify fixer (<a
href="https://redirect.github.com/eslint-stylistic/eslint-stylistic/issues/1132">#1132</a>)
(<a
href="https://github.com/eslint-stylistic/eslint-stylistic/commit/c827fde7e77e2a66b0873c41d10bb8e02cb2bf66">c827fde</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/eslint-stylistic/eslint-stylistic/commit/96ce1c7e165ee2a0322afdd7dde9a594ab6dbd70"><code>96ce1c7</code></a>
chore: release v5.9.0 (main) (<a
href="https://github.com/eslint-stylistic/eslint-stylistic/tree/HEAD/packages/eslint-plugin/issues/1131">#1131</a>)</li>
<li><a
href="https://github.com/eslint-stylistic/eslint-stylistic/commit/5d99706e7c156af617a7ed935bd9bbe87630738a"><code>5d99706</code></a>
feat: support ESLint 10 (<a
href="https://github.com/eslint-stylistic/eslint-stylistic/tree/HEAD/packages/eslint-plugin/issues/1066">#1066</a>)</li>
<li><a
href="https://github.com/eslint-stylistic/eslint-stylistic/commit/cfb62964a3daf488903ee33c88b23bade7009cac"><code>cfb6296</code></a>
fix(no-extra-parens): don't report jsdoc type assertion by default (<a
href="https://github.com/eslint-stylistic/eslint-stylistic/tree/HEAD/packages/eslint-plugin/issues/1100">#1100</a>)</li>
<li><a
href="https://github.com/eslint-stylistic/eslint-stylistic/commit/501e8383bd9b27ff3e8d5e66c43e4ac7877fc862"><code>501e838</code></a>
feat(no-trailing-spaces): support more file types (<a
href="https://github.com/eslint-stylistic/eslint-stylistic/tree/HEAD/packages/eslint-plugin/issues/1138">#1138</a>)</li>
<li><a
href="https://github.com/eslint-stylistic/eslint-stylistic/commit/8f5cc9ee69b58de1dc00a9a487a1461de2d3494b"><code>8f5cc9e</code></a>
feat(padding-line-between-statements): support selector-based statement
match...</li>
<li><a
href="https://github.com/eslint-stylistic/eslint-stylistic/commit/9e7f42264b9462e21c269568e506977d5abac8ed"><code>9e7f422</code></a>
fix(indent): ignore when source code is not ESTree (<a
href="https://github.com/eslint-stylistic/eslint-stylistic/tree/HEAD/packages/eslint-plugin/issues/1139">#1139</a>)</li>
<li><a
href="https://github.com/eslint-stylistic/eslint-stylistic/commit/4a96eae4e31998904bc3c2b5c0719920a7984f98"><code>4a96eae</code></a>
fix(comma-dangle): prevent crash when linting non-js files (<a
href="https://github.com/eslint-stylistic/eslint-stylistic/tree/HEAD/packages/eslint-plugin/issues/1140">#1140</a>)</li>
<li><a
href="https://github.com/eslint-stylistic/eslint-stylistic/commit/18b961eacd7a37dc772a3669e236e60773965d9d"><code>18b961e</code></a>
refactor(lines-around-comment): improve extensibility of allow boundary
check...</li>
<li><a
href="https://github.com/eslint-stylistic/eslint-stylistic/commit/3504e1fa3901f68d7d028465a1c0f779077db7eb"><code>3504e1f</code></a>
refactor(no-extra-parens): simplify fixer (<a
href="https://github.com/eslint-stylistic/eslint-stylistic/tree/HEAD/packages/eslint-plugin/issues/1133">#1133</a>)</li>
<li><a
href="https://github.com/eslint-stylistic/eslint-stylistic/commit/c827fde7e77e2a66b0873c41d10bb8e02cb2bf66"><code>c827fde</code></a>
refactor(on-var-declaration-per-line): simplify fixer (<a
href="https://github.com/eslint-stylistic/eslint-stylistic/tree/HEAD/packages/eslint-plugin/issues/1132">#1132</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/eslint-stylistic/eslint-stylistic/commits/v5.9.0/packages/eslint-plugin">compare
view</a></li>
</ul>
</details>
<br />

Updates `@types/node` from 25.2.3 to 25.3.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 `eslint` from 9.39.2 to 9.39.3
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/eslint/eslint/releases">eslint's
releases</a>.</em></p>
<blockquote>
<h2>v9.39.3</h2>
<h2>Bug Fixes</h2>
<ul>
<li><a
href="https://github.com/eslint/eslint/commit/791bf8d7e76ce7ab8c88cb8982658823da4eff27"><code>791bf8d</code></a>
fix: restore TypeScript 4.0 compatibility in types (<a
href="https://redirect.github.com/eslint/eslint/issues/20504">#20504</a>)
(sethamus)</li>
</ul>
<h2>Chores</h2>
<ul>
<li><a
href="https://github.com/eslint/eslint/commit/8594a436c22a0167fe3c2c4109bbdb04e519a014"><code>8594a43</code></a>
chore: upgrade <code>@​eslint/js</code><a
href="https://github.com/9"><code>@​9</code></a>.39.3 (<a
href="https://redirect.github.com/eslint/eslint/issues/20529">#20529</a>)
(Milos Djermanovic)</li>
<li><a
href="https://github.com/eslint/eslint/commit/9ceef92fbd3d1298d9a00483f86897834b88acac"><code>9ceef92</code></a>
chore: package.json update for <code>@​eslint/js</code> release
(Jenkins)</li>
<li><a
href="https://github.com/eslint/eslint/commit/af498c63b9ca065223a425a85afabdcc8451e69b"><code>af498c6</code></a>
chore: ignore <code>/docs/v9.x</code> in link checker (<a
href="https://redirect.github.com/eslint/eslint/issues/20453">#20453</a>)
(Milos Djermanovic)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/eslint/eslint/commit/a7d5fe64f402eefdc2bbb73992d3a4ac49f426a5"><code>a7d5fe6</code></a>
9.39.3</li>
<li><a
href="https://github.com/eslint/eslint/commit/42e6b065f5a1c3b2dfb1fcdccf44ba17c0048bf2"><code>42e6b06</code></a>
Build: changelog update for 9.39.3</li>
<li><a
href="https://github.com/eslint/eslint/commit/8594a436c22a0167fe3c2c4109bbdb04e519a014"><code>8594a43</code></a>
chore: upgrade <code>@​eslint/js</code><a
href="https://github.com/9"><code>@​9</code></a>.39.3 (<a
href="https://redirect.github.com/eslint/eslint/issues/20529">#20529</a>)</li>
<li><a
href="https://github.com/eslint/eslint/commit/9ceef92fbd3d1298d9a00483f86897834b88acac"><code>9ceef92</code></a>
chore: package.json update for <code>@​eslint/js</code> release</li>
<li><a
href="https://github.com/eslint/eslint/commit/791bf8d7e76ce7ab8c88cb8982658823da4eff27"><code>791bf8d</code></a>
fix: restore TypeScript 4.0 compatibility in types (<a
href="https://redirect.github.com/eslint/eslint/issues/20504">#20504</a>)</li>
<li><a
href="https://github.com/eslint/eslint/commit/af498c63b9ca065223a425a85afabdcc8451e69b"><code>af498c6</code></a>
chore: ignore <code>/docs/v9.x</code> in link checker (<a
href="https://redirect.github.com/eslint/eslint/issues/20453">#20453</a>)</li>
<li>See full diff in <a
href="https://github.com/eslint/eslint/compare/v9.39.2...v9.39.3">compare
view</a></li>
</ul>
</details>
<br />

Updates `rollup` from 4.57.1 to 4.58.0
<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.58.0</h2>
<h2>4.58.0</h2>
<p><em>2026-02-20</em></p>
<h3>Features</h3>
<ul>
<li>Also support <code>__NO_SIDE_EFFECTS__</code> annotation before
variable declarations declaring function expressions (<a
href="https://redirect.github.com/rollup/rollup/issues/6272">#6272</a>)</li>
</ul>
<h3>Pull Requests</h3>
<ul>
<li><a
href="https://redirect.github.com/rollup/rollup/pull/6256">#6256</a>:
docs: document PreRenderedChunk properties including isDynamicEntry and
isImplicitEntry (<a
href="https://github.com/njg7194"><code>@​njg7194</code></a>, <a
href="https://github.com/lukastaegert"><code>@​lukastaegert</code></a>)</li>
<li><a
href="https://redirect.github.com/rollup/rollup/pull/6259">#6259</a>:
docs: Correct typo and improve sentence structure in docs for
<code>output.experimentalMinChunkSize</code> (<a
href="https://github.com/millerick"><code>@​millerick</code></a>, <a
href="https://github.com/lukastaegert"><code>@​lukastaegert</code></a>)</li>
<li><a
href="https://redirect.github.com/rollup/rollup/pull/6260">#6260</a>:
fix(deps): update rust crate swc_compiler_base to v47 (<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/6261">#6261</a>:
fix(deps): lock file maintenance minor/patch updates (<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/6262">#6262</a>:
Avoid unnecessary cloning of the code string (<a
href="https://github.com/lukastaegert"><code>@​lukastaegert</code></a>)</li>
<li><a
href="https://redirect.github.com/rollup/rollup/pull/6263">#6263</a>:
fix(deps): update minor/patch updates (<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/6265">#6265</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/6267">#6267</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/6268">#6268</a>:
chore(deps): update dependency eslint-plugin-unicorn to v63 (<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/6269">#6269</a>:
chore(deps): update dependency lru-cache to v11 (<a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot])</li>
<li><a
href="https://redirect.github.com/rollup/rollup/pull/6270">#6270</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/6272">#6272</a>:
forward NO_SIDE_EFFECTS annotations to function expressions in variable
declarations (<a
href="https://github.com/lukastaegert"><code>@​lukastaegert</code></a>)</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.58.0</h2>
<p><em>2026-02-20</em></p>
<h3>Features</h3>
<ul>
<li>Also support <code>__NO_SIDE_EFFECTS__</code> annotation before
variable declarations declaring function expressions (<a
href="https://redirect.github.com/rollup/rollup/issues/6272">#6272</a>)</li>
</ul>
<h3>Pull Requests</h3>
<ul>
<li><a
href="https://redirect.github.com/rollup/rollup/pull/6256">#6256</a>:
docs: document PreRenderedChunk properties including isDynamicEntry and
isImplicitEntry (<a
href="https://github.com/njg7194"><code>@​njg7194</code></a>, <a
href="https://github.com/lukastaegert"><code>@​lukastaegert</code></a>)</li>
<li><a
href="https://redirect.github.com/rollup/rollup/pull/6259">#6259</a>:
docs: Correct typo and improve sentence structure in docs for
<code>output.experimentalMinChunkSize</code> (<a
href="https://github.com/millerick"><code>@​millerick</code></a>, <a
href="https://github.com/lukastaegert"><code>@​lukastaegert</code></a>)</li>
<li><a
href="https://redirect.github.com/rollup/rollup/pull/6260">#6260</a>:
fix(deps): update rust crate swc_compiler_base to v47 (<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/6261">#6261</a>:
fix(deps): lock file maintenance minor/patch updates (<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/6262">#6262</a>:
Avoid unnecessary cloning of the code string (<a
href="https://github.com/lukastaegert"><code>@​lukastaegert</code></a>)</li>
<li><a
href="https://redirect.github.com/rollup/rollup/pull/6263">#6263</a>:
fix(deps): update minor/patch updates (<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/6265">#6265</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/6267">#6267</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/6268">#6268</a>:
chore(deps): update dependency eslint-plugin-unicorn to v63 (<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/6269">#6269</a>:
chore(deps): update dependency lru-cache to v11 (<a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot])</li>
<li><a
href="https://redirect.github.com/rollup/rollup/pull/6270">#6270</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/6272">#6272</a>:
forward NO_SIDE_EFFECTS annotations to function expressions in variable
declarations (<a
href="https://github.com/lukastaegert"><code>@​lukastaegert</code></a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/rollup/rollup/commit/33f39c1f205ea2eadaf4b589e493453e2baa3662"><code>33f39c1</code></a>
4.58.0</li>
<li><a
href="https://github.com/rollup/rollup/commit/b61c40803b717854c1c28937e8098e5ad3c7b8ca"><code>b61c408</code></a>
forward NO_SIDE_EFFECTS annotations to function expressions in variable
decla...</li>
<li><a
href="https://github.com/rollup/rollup/commit/7f00689ec90e2cafb11c26eefbcac62343c936f6"><code>7f00689</code></a>
Extend agent instructions</li>
<li><a
href="https://github.com/rollup/rollup/commit/e7b2b85af0901244ecc141b9d792c6db6b527ea4"><code>e7b2b85</code></a>
chore(deps): lock file maintenance (<a
href="https://redirect.github.com/rollup/rollup/issues/6270">#6270</a>)</li>
<li><a
href="https://github.com/rollup/rollup/commit/2aa5da9baf82211b8207d268c8751630cb766970"><code>2aa5da9</code></a>
fix(deps): update minor/patch updates (<a
href="https://redirect.github.com/rollup/rollup/issues/6267">#6267</a>)</li>
<li><a
href="https://github.com/rollup/rollup/commit/4319837c5448d0c10d89e9ded118888deec2eeec"><code>4319837</code></a>
chore(deps): update dependency lru-cache to v11 (<a
href="https://redirect.github.com/rollup/rollup/issues/6269">#6269</a>)</li>
<li><a
href="https://github.com/rollup/rollup/commit/c3b6b4bdc4f2ed978fa233132a526957e6513233"><code>c3b6b4b</code></a>
chore(deps): update dependency eslint-plugin-unicorn to v63 (<a
href="https://redirect.github.com/rollup/rollup/issues/6268">#6268</a>)</li>
<li><a
href="https://github.com/rollup/rollup/commit/8653dd7500b75e6a3930d86479261f242b09aef8"><code>8653dd7</code></a>
fix(deps): update minor/patch updates (<a
href="https://redirect.github.com/rollup/rollup/issues/6263">#6263</a>)</li>
<li><a
href="https://github.com/rollup/rollup/commit/c49fba1e8df6654c8f424350dc6871fa29acb17b"><code>c49fba1</code></a>
chore(deps): lock file maintenance (<a
href="https://redirect.github.com/rollup/rollup/issues/6265">#6265</a>)</li>
<li><a
href="https://github.com/rollup/rollup/commit/74559c007feee669ef9c5978c0c713e496122f6f"><code>74559c0</code></a>
Avoid unnecessary cloning of the code string (<a
href="https://redirect.github.com/rollup/rollup/issues/6262">#6262</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/rollup/rollup/compare/v4.57.1...v4.58.0">compare
view</a></li>
</ul>
</details>
<br />

<details>
<summary>Most Recent Ignore Conditions Applied to This Pull
Request</summary>

| Dependency Name | Ignore Conditions |
| --- | --- |
| eslint | [>= 10.a, < 11] |
| @eslint/js | [>= 10.a, < 11] |
</details>


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>
2026-02-23 08:57:15 +00:00
Alex Rudenko 9ef4479bec refactor: types for JSON output of IssueFormatter (#1007)
- makes the id required in types
- requires toString(), toStringDetailed() to use the JSON
representation.
2026-02-23 08:03:09 +00:00
Michael Hablich 5cedcaad2c refactor: simplify JavaScript code examples, update code block language, and refine descriptions in a11y debugging skill documentation. (#1009) 2026-02-20 14:04:03 +00:00
Dobes Vandermeer 33446d457e feat: add experimental screencast recording tools (#941)
## Summary

Adds `screencast_start` and `screencast_stop` MCP tools that allow
agents to record a video of a page using Puppeteer's `page.screencast()`
API.

Only enabled if the command line option `--experimental-screencast` is
provided

Closes #878.

## New Tools

### `screencast_start`
Starts recording a screencast (video) of the selected page in mp4
format.

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `path` | string (optional) | temp file | Output file path |

### `screencast_stop`
Stops the active recording and reports the saved file path.

## Design

- **Start/stop pair** following the `performance_start_trace` /
`performance_stop_trace` pattern
- **State management** via `getScreenRecorder()` / `setScreenRecorder()`
on the Context interface
- **Category**: `DEBUGGING` (alongside `take_screenshot`)
- **ffmpeg dependency**: Clear error message when ffmpeg is not
installed
- **Temp file fallback**: When no `path` is provided, creates a temp
file with the correct extension

---------

Co-authored-by: Alex Rudenko <alexrudenko@chromium.org>
2026-02-20 13:15:48 +00:00